{"version":3,"file":"static/js/main.1edf54da.js","mappings":"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KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SAAU,cAAe,KAAM,cAAe,KAAM,cAAe,MAAO,cAAe,OAC5G,CAAE,gBAAiB,SA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AAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,MAC7G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,MAC7G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,MAC7G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,MAAO,cAAe,MAC7G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC9G,CAAE,gBAAiB,SAAU,cAAe,MAAO,cAAe,KAAM,cAA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,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAC/G,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACjH,CAAE,gBAAiB,WAAY,cAAe,KAAM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WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,WAAY,cAAe,MAAO,cAAe,KA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AAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAChH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAChH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAChH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAChH,CAAE,gBAAiB,YAAa,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SAClH,CAAE,gBAAiB,YAAa,cAA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Ae,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SA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,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,KAAM,cAAe,MAChH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,OAAQ,cAAe,QAClH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,QAAS,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,KAAM,cAAe,KAAM,cAAe,SAAU,cAAe,SACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,OAAQ,cAAe,QACnH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,QAAS,cAAe,QACpH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,SACrH,CAAE,gBAAiB,cAAe,cAAe,MAAO,cAAe,KAAM,cAAe,SAAU,cAAe,6CCtiCzH,IAAI4mF,EAAmB9kF,MAAQA,KAAK8kF,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIhH,WAAcgH,EAAM,CAAE,QAAWA,EACxD,EACA3nF,OAAOgY,eAAelX,EAAS,aAAc,CAAEV,OAAO,IACtDU,EAAQ8mF,IAAM9mF,EAAQ+mF,IAAM/mF,EAAQgnF,eAAY,EAIhD,IAHA,IAAIC,EAAaL,EAAgB1lF,EAAQ,OACrCgmF,EAAsB,CAAC,EACvBC,EAAgBpkF,OAAOokF,cAAgBpkF,OAAOokF,cAsBlD,SAA+BH,GAC3B,GAAIA,GAAa,MAEb,OAAOjkF,OAAOw7E,aAAayI,GAK3B,IAAII,EAAgB7H,KAAK8H,OAAOL,EAAY,OAAW,MAAS,MAC5DM,GAAgBN,EAAY,OAAW,KAAQ,MACnD,OAAOjkF,OAAOw7E,aAAa6I,EAAeE,EAElD,EAjCSC,EAAK,EAAGC,EAAaP,EAAWnH,QAASyH,EAAKC,EAAWzmF,OAAQwmF,IAAM,CAC5E,IAAIE,EAAUD,EAAWD,GACrBG,EAAcjJ,SAASgJ,EAAQ,eAAgB,IAC/CE,EAAc,CACdX,UAAWU,EACXE,OAAQT,EAAcO,IAE1BR,EAAoBO,EAAQ,iBAAiBI,cAAgB,IAAMJ,EAAQ,gBAAkBE,CACjG,CACA,SAASX,EAAUc,EAAUd,GACzB,OAAOE,EAAoBY,EAASD,cAAgB,IAAMb,EAC9D,CACAhnF,EAAQgnF,UAAYA,EAIpBhnF,EAAQ+mF,IAHR,SAAae,EAAUf,GACnB,OAAOC,EAAUc,EAAUrJ,SAASsI,EAAK,IAC7C,EAKA/mF,EAAQ8mF,IAHR,SAAagB,EAAUhB,GACnB,OAAOE,EAAUc,EAAUrJ,SAASqI,EAAK,IAC7C,sDCZA,IAAIiB,EAAgB,SAAS/H,EAAGC,GAI5B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAE,GACzE,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAO/gF,OAAOoB,UAAUC,eAAeC,KAAKy/E,EAAGj3E,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAG,EAC5F++E,EAAc/H,EAAGC,EAC5B,EAEO,SAASiI,EAAUlI,EAAGC,GACzB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI7/E,UAAU,uBAAyB2C,OAAOk9E,GAAK,iCAE7D,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAE,CADrC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CAEO,IAAIE,EAAW,WAQlB,OAPAA,EAAWnpF,OAAOe,QAAU,SAAkBoJ,GAC1C,IAAK,IAAIqzE,EAAG57E,EAAI,EAAG4R,EAAI7L,UAAU9F,OAAQD,EAAI4R,EAAG5R,IAE5C,IAAK,IAAIkI,KADT0zE,EAAI71E,UAAU/F,GACO5B,OAAOoB,UAAUC,eAAeC,KAAKk8E,EAAG1zE,KAAIK,EAAEL,GAAK0zE,EAAE1zE,IAE9E,OAAOK,CACf,EACWg/E,EAASzhF,MAAM9E,KAAM+E,UAChC,EA6BO,SAASyhF,EAAUC,EAASC,EAAYC,EAAGC,GAC9C,SAASC,EAAMrpF,GAAS,OAAOA,aAAiBmpF,EAAInpF,EAAQ,IAAImpF,GAAE,SAAUG,GAAWA,EAAQtpF,EAAO,GAAI,CAC1G,OAAO,IAAKmpF,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAUzpF,GAAS,IAAM0pF,EAAKN,EAAUt6E,KAAK9O,GAAQ,CAAG,MAAOgY,IAAKwxE,EAAOxxE,GAAG,CAAE,CACzF,SAAS2xE,EAAS3pF,GAAS,IAAM0pF,EAAKN,EAAiB,MAAEppF,GAAQ,CAAG,MAAOgY,IAAKwxE,EAAOxxE,GAAG,CAAE,CAC5F,SAAS0xE,EAAKE,GAAUA,EAAOC,KAAOP,EAAQM,EAAO5pF,OAASqpF,EAAMO,EAAO5pF,OAAO8pF,KAAKL,EAAWE,EAAU,CAC5GD,GAAMN,EAAYA,EAAU9hF,MAAM2hF,EAASC,GAAc,KAAKp6E,OACtE,GACA,CAEO,SAASi7E,EAAYd,EAASe,GACjC,IAAsGtN,EAAGkE,EAAG72E,EAAG64E,EAA3GZ,EAAI,CAAEiI,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPngF,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAG,EAAIogF,KAAM,GAAIC,IAAK,IAChG,OAAOxH,EAAI,CAAE9zE,KAAMu7E,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX/G,SAA0BV,EAAEU,OAAOC,UAAY,WAAa,OAAO/gF,IAAK,GAAKogF,EACvJ,SAASyH,EAAKj3E,GAAK,OAAO,SAAUC,GAAK,OAAOq2E,EAAK,CAACt2E,EAAGC,GAAI,CAAG,CAChE,SAASq2E,EAAKY,GACV,GAAI5N,EAAG,MAAM,IAAI57E,UAAU,mCAC3B,KAAOkhF,OACH,GAAItF,EAAI,EAAGkE,IAAM72E,EAAY,EAARugF,EAAG,GAAS1J,EAAU,OAAI0J,EAAG,GAAK1J,EAAS,SAAO72E,EAAI62E,EAAU,SAAM72E,EAAE7I,KAAK0/E,GAAI,GAAKA,EAAE9xE,SAAW/E,EAAIA,EAAE7I,KAAK0/E,EAAG0J,EAAG,KAAKT,KAAM,OAAO9/E,EAE3J,OADI62E,EAAI,EAAG72E,IAAGugF,EAAK,CAAS,EAARA,EAAG,GAAQvgF,EAAE/J,QACzBsqF,EAAG,IACP,KAAK,EAAG,KAAK,EAAGvgF,EAAIugF,EAAI,MACxB,KAAK,EAAc,OAAXtI,EAAEiI,QAAgB,CAAEjqF,MAAOsqF,EAAG,GAAIT,MAAM,GAChD,KAAK,EAAG7H,EAAEiI,QAASrJ,EAAI0J,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKtI,EAAEoI,IAAIvK,MAAOmC,EAAEmI,KAAKtK,MAAO,SACxC,QACI,KAAkB91E,GAAZA,EAAIi4E,EAAEmI,MAAY1oF,OAAS,GAAKsI,EAAEA,EAAEtI,OAAS,MAAkB,IAAV6oF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEtI,EAAI,EAAG,QAAS,CAC1G,GAAc,IAAVsI,EAAG,MAAcvgF,GAAMugF,EAAG,GAAKvgF,EAAE,IAAMugF,EAAG,GAAKvgF,EAAE,IAAM,CAAEi4E,EAAEiI,MAAQK,EAAG,GAAI,KAAM,CACpF,GAAc,IAAVA,EAAG,IAAYtI,EAAEiI,MAAQlgF,EAAE,GAAI,CAAEi4E,EAAEiI,MAAQlgF,EAAE,GAAIA,EAAIugF,EAAI,KAAM,CACnE,GAAIvgF,GAAKi4E,EAAEiI,MAAQlgF,EAAE,GAAI,CAAEi4E,EAAEiI,MAAQlgF,EAAE,GAAIi4E,EAAEoI,IAAIh4E,KAAKk4E,GAAK,KAAM,CAC7DvgF,EAAE,IAAIi4E,EAAEoI,IAAIvK,MAChBmC,EAAEmI,KAAKtK,MAAO,SAEtByK,EAAKN,EAAK9oF,KAAK+nF,EAASjH,EACpC,CAAU,MAAOhqE,IAAKsyE,EAAK,CAAC,EAAGtyE,IAAI4oE,EAAI,CAAE,CAAG,QAAUlE,EAAI3yE,EAAI,CAAE,CACxD,GAAY,EAARugF,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEtqF,MAAOsqF,EAAG,GAAKA,EAAG,QAAK,EAAQT,MAAM,EAClF,CACA,CA2DO,SAASU,EAAcC,EAAIC,EAAMC,GACpC,GAAIA,GAA6B,IAArBnjF,UAAU9F,OAAc,IAAK,IAA4BkpF,EAAxBnpF,EAAI,EAAGyB,EAAIwnF,EAAKhpF,OAAYD,EAAIyB,EAAGzB,KACxEmpF,GAAQnpF,KAAKipF,IACRE,IAAIA,EAAKppF,MAAMP,UAAU2R,MAAMzR,KAAKupF,EAAM,EAAGjpF,IAClDmpF,EAAGnpF,GAAKipF,EAAKjpF,IAGrB,OAAOgpF,EAAGhG,OAAOmG,GAAMF,EAC3B,CCrHA,ICrDA,IAAAG,EAAA,WACI,SAAAA,EAAqB9E,EAAuBna,EAAsBkf,EAAwBC,GAArE,KAAAhF,KAAAA,EAAuB,KAAAna,IAAAA,EAAsB,KAAAkf,MAAAA,EAAwB,KAAAC,OAAAA,EA4B9F,OA1BIF,EAAA5pF,UAAAikF,IAAA,SAAIlE,EAAWH,EAAWE,EAAWD,GACjC,OAAO,IAAI+J,EAAOpoF,KAAKsjF,KAAO/E,EAAGv+E,KAAKmpE,IAAMiV,EAAGp+E,KAAKqoF,MAAQ/J,EAAGt+E,KAAKsoF,OAASjK,IAG1E+J,EAAAG,eAAP,SAAsBC,EAAkBC,GACpC,OAAO,IAAIL,EACPK,EAAWnF,KAAOkF,EAAQE,aAAapF,KACvCmF,EAAWtf,IAAMqf,EAAQE,aAAavf,IACtCsf,EAAWJ,MACXI,EAAWH,SAIZF,EAAAO,gBAAP,SAAuBH,EAAkBI,GACrC,IAAMC,EAAU9pF,MAAMkpF,KAAKW,GAAajqF,MAAK,SAACw2D,GAAS,OAAe,IAAfA,EAAKkzB,KAAW,IACvE,OAAOQ,EACD,IAAIT,EACAS,EAAQvF,KAAOkF,EAAQE,aAAapF,KACpCuF,EAAQ1f,IAAMqf,EAAQE,aAAavf,IACnC0f,EAAQR,MACRQ,EAAQP,QAEZF,EAAOU,OAGVV,EAAAU,MAAQ,IAAIV,EAAO,EAAG,EAAG,EAAG,GACvCA,EA7BA,GA+BaW,EAAc,SAACP,EAAkBnoF,GAC1C,OAAO+nF,EAAOG,eAAeC,EAASnoF,EAAK2oF,wBAC/C,EAEaC,EAAoB,SAACxJ,GAC9B,IAAM+H,EAAO/H,EAAS+H,KAChBr4E,EAAkBswE,EAAStwE,gBAEjC,IAAKq4E,IAASr4E,EACV,MAAM,IAAIzF,MAAM,+BAEpB,IAAM2+E,EAAQ5K,KAAKC,IACfD,KAAKC,IAAI8J,EAAK0B,YAAa/5E,EAAgB+5E,aAC3CzL,KAAKC,IAAI8J,EAAK2B,YAAah6E,EAAgBg6E,aAC3C1L,KAAKC,IAAI8J,EAAK4B,YAAaj6E,EAAgBi6E,cAGzCd,EAAS7K,KAAKC,IAChBD,KAAKC,IAAI8J,EAAK6B,aAAcl6E,EAAgBk6E,cAC5C5L,KAAKC,IAAI8J,EAAKxE,aAAc7zE,EAAgB6zE,cAC5CvF,KAAKC,IAAI8J,EAAK8B,aAAcn6E,EAAgBm6E,eAGhD,OAAO,IAAIlB,EAAO,EAAG,EAAGC,EAAOC,EACnC,EDzDaiB,EAAe,SAACC,GAIzB,IAHA,IAAMC,EAAa,GACfzqF,EAAI,EACFC,EAASuqF,EAAIvqF,OACZD,EAAIC,GAAQ,CACf,IAAMzB,EAAQgsF,EAAIj+E,WAAWvM,KAC7B,GAAIxB,GAAS,OAAUA,GAAS,OAAUwB,EAAIC,EAAQ,CAClD,IAAMyqF,EAAQF,EAAIj+E,WAAWvM,KACJ,SAAZ,MAAR0qF,GACDD,EAAW75E,OAAe,KAARpS,IAAkB,KAAe,KAARksF,GAAiB,QAE5DD,EAAW75E,KAAKpS,GAChBwB,UAGJyqF,EAAW75E,KAAKpS,GAGxB,OAAOisF,CACX,EAEaE,EAAgB,eAAC,IAAAF,EAAA,GAAAhE,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAgE,EAAAhE,GAAA1gF,UAAA0gF,GAC1B,GAAIxkF,OAAOokF,cACP,OAAOpkF,OAAOokF,cAAavgF,MAApB7D,OAAwBwoF,GAGnC,IAAMxqF,EAASwqF,EAAWxqF,OAC1B,IAAKA,EACD,MAAO,GAOX,IAJA,IAAM2qF,EAAY,GAEd54E,GAAS,EACTo2E,EAAS,KACJp2E,EAAQ/R,GAAQ,CACrB,IAAIimF,EAAYuE,EAAWz4E,GACvBk0E,GAAa,MACb0E,EAAUh6E,KAAKs1E,IAEfA,GAAa,MACb0E,EAAUh6E,KAAyB,OAAnBs1E,GAAa,IAAeA,EAAY,KAAS,SAEjEl0E,EAAQ,IAAM/R,GAAU2qF,EAAU3qF,OAAS,SAC3CmoF,GAAUnmF,OAAOw7E,aAAY33E,MAAnB7D,OAAuB2oF,GACjCA,EAAU3qF,OAAS,GAG3B,OAAOmoF,CACX,EAEMyC,EAAQ,mEAGRC,EAA+B,qBAAflF,WAA6B,GAAK,IAAIA,WAAW,KAC9DmF,EAAI,EAAGA,EAAIF,EAAM5qF,OAAQ8qF,IAC9BD,EAAOD,EAAMt+E,WAAWw+E,IAAMA,EEpDlC,IAJA,IAAMC,EAAQ,mEAGRC,EAA+B,qBAAfrF,WAA6B,GAAK,IAAIA,WAAW,KAC9DsF,EAAI,EAAGA,EAAIF,EAAM/qF,OAAQirF,IAC9BD,EAAOD,EAAMz+E,WAAW2+E,IAAMA,ECDlC,IDIO,IAAMC,EAAS,SAACC,GACnB,IAEIprF,EAEAqrF,EACAC,EACAC,EACAC,EAPAC,EAA+B,IAAhBL,EAAOnrF,OACtBsE,EAAM6mF,EAAOnrF,OAEbiI,EAAI,EAM0B,MAA9BkjF,EAAOA,EAAOnrF,OAAS,KACvBwrF,IACkC,MAA9BL,EAAOA,EAAOnrF,OAAS,IACvBwrF,KAIR,IAAMC,EACqB,qBAAhBC,aACe,qBAAf/F,YAC+B,qBAA/BA,WAAWpmF,UAAU2R,MACtB,IAAIw6E,YAAYF,GAChB,IAAI1rF,MAAM0rF,GACdG,EAAQ7rF,MAAM8rF,QAAQH,GAAUA,EAAS,IAAI9F,WAAW8F,GAE9D,IAAK1rF,EAAI,EAAGA,EAAIuE,EAAKvE,GAAK,EACtBqrF,EAAWJ,EAAOG,EAAO7+E,WAAWvM,IACpCsrF,EAAWL,EAAOG,EAAO7+E,WAAWvM,EAAI,IACxCurF,EAAWN,EAAOG,EAAO7+E,WAAWvM,EAAI,IACxCwrF,EAAWP,EAAOG,EAAO7+E,WAAWvM,EAAI,IAExC4rF,EAAM1jF,KAAQmjF,GAAY,EAAMC,GAAY,EAC5CM,EAAM1jF,MAAoB,GAAXojF,IAAkB,EAAMC,GAAY,EACnDK,EAAM1jF,MAAoB,EAAXqjF,IAAiB,EAAiB,GAAXC,EAG1C,OAAOE,CACX,EAEaI,EAAkB,SAACJ,GAG5B,IAFA,IAAMzrF,EAASyrF,EAAOzrF,OAChB2rF,EAAQ,GACL5rF,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAC7B4rF,EAAMh7E,KAAM86E,EAAO1rF,EAAI,IAAM,EAAK0rF,EAAO1rF,IAE7C,OAAO4rF,CACX,EAEaG,EAAkB,SAACL,GAG5B,IAFA,IAAMzrF,EAASyrF,EAAOzrF,OAChB2rF,EAAQ,GACL5rF,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAC7B4rF,EAAMh7E,KAAM86E,EAAO1rF,EAAI,IAAM,GAAO0rF,EAAO1rF,EAAI,IAAM,GAAO0rF,EAAO1rF,EAAI,IAAM,EAAK0rF,EAAO1rF,IAE7F,OAAO4rF,CACX,EE1DaI,EAAiB,EAGjBC,EAAiB,GAQjBC,EAAqB,EAcrBC,EAA6B,OAAWH,EAKxCI,GAF2B,GAAKJ,GAEc,EAuB9CK,EAnB4BF,GAFC,MAASH,GAQN,GAmBhCM,EAAoC,OAAWL,EAK/CM,GAF8B,GA7CXN,EAAiBD,GA+CgB,EAE3DQ,EAAU,SAACC,EAA8B5qF,EAAei7E,GAC1D,OAAI2P,EAAKt7E,MACEs7E,EAAKt7E,MAAMtP,EAAOi7E,GAGtB,IAAI4P,YAAY3sF,MAAMP,UAAU2R,MAAMzR,KAAK+sF,EAAM5qF,EAAOi7E,GACnE,EAEM6P,EAAU,SAACF,EAA8B5qF,EAAei7E,GAC1D,OAAI2P,EAAKt7E,MACEs7E,EAAKt7E,MAAMtP,EAAOi7E,GAGtB,IAAI8P,YAAY7sF,MAAMP,UAAU2R,MAAMzR,KAAK+sF,EAAM5qF,EAAOi7E,GACnE,EAEa+P,EAAuB,SAACzB,EAAgBnG,GACjD,IAAMyG,EAASP,EAAOC,GAChB0B,EAAS/sF,MAAM8rF,QAAQH,GAAUK,EAAgBL,GAAU,IAAIkB,YAAYlB,GAC3EqB,EAAShtF,MAAM8rF,QAAQH,GAAUI,EAAgBJ,GAAU,IAAIgB,YAAYhB,GAC3EsB,EAAe,GAEfh7E,EAAQw6E,EAAQO,EAAQC,EAAe,EAAGF,EAAO,GAAK,GACtDtnF,EACY,IAAdsnF,EAAO,GACDN,EAAQO,GAASC,EAAeF,EAAO,IAAM,GAC7CH,EAAQG,EAAQrO,KAAKwO,MAAMD,EAAeF,EAAO,IAAM,IAEjE,OAAO,IAAII,EAAKJ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI96E,EAAOxM,EACvE,eAUI,SAAA2nF,EACIC,EACAC,EACAC,EACAC,EACAv7E,EACAxM,GAEAxE,KAAKosF,aAAeA,EACpBpsF,KAAKqsF,WAAaA,EAClBrsF,KAAKssF,UAAYA,EACjBtsF,KAAKusF,eAAiBA,EACtBvsF,KAAKgR,MAAQA,EACbhR,KAAKwE,KAAOA,EAkDpB,OAzCI2nF,EAAA3tF,UAAA8W,IAAA,SAAI4vE,GACA,IAAIsH,EACJ,GAAItH,GAAa,EAAG,CAChB,GAAIA,EAAY,OAAYA,EAAY,OAAWA,GAAa,MAM5D,OADAsH,IADAA,EAAKxsF,KAAKgR,MAAMk0E,GAAa8F,KACjBE,IAAuBhG,EAAYkG,GACxCprF,KAAKwE,KAAKgoF,GAGrB,GAAItH,GAAa,MASb,OADAsH,IADAA,EAAKxsF,KAAKgR,MAAMm6E,GAA+BjG,EAAY,OAAW8F,MAC1DE,IAAuBhG,EAAYkG,GACxCprF,KAAKwE,KAAKgoF,GAGrB,GAAItH,EAAYllF,KAAKssF,UAOjB,OALAE,EAAKnB,EAAwBC,GAAqCpG,GAAa+F,GAC/EuB,EAAKxsF,KAAKgR,MAAMw7E,GAChBA,GAAOtH,GAAa8F,EAAkBO,EAEtCiB,IADAA,EAAKxsF,KAAKgR,MAAMw7E,KACJtB,IAAuBhG,EAAYkG,GACxCprF,KAAKwE,KAAKgoF,GAErB,GAAItH,GAAa,QACb,OAAOllF,KAAKwE,KAAKxE,KAAKusF,gBAK9B,OAAOvsF,KAAKqsF,YAEpBF,CAAA,ID7KMM,EAAQ,mEAGRC,EAA+B,qBAAf9H,WAA6B,GAAK,IAAIA,WAAW,KAC9D+H,EAAI,EAAGA,EAAIF,EAAMxtF,OAAQ0tF,IAC9BD,EAAOD,EAAMlhF,WAAWohF,IAAMA,EEL3B,ICMMC,EAAyB,GAGhCC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAELC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,GACLC,EAAM,GAENC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAK,GAELC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GACLC,GAAK,GAELC,GAAQ,CAAC,KAAQ,OAgDVC,GAAkB,IAClBC,GAAoB,OACpBC,GAAgB,OAChBC,GAAc9D,ED3GvB,4pnDC6GE+D,GAAc,CAACnB,GAAIM,IACnBc,GAAmB,CAAChD,EAAIC,EAAIC,EAAIE,GAChC6C,GAAQ,CAACzC,EAAIF,GACb4C,GAAiB,CAACzB,GAAID,IACtB2B,GAAcH,GAAiB7N,OAAO8N,IACtCG,GAAwB,CAAChB,GAAIC,GAAIC,GAAIN,GAAIC,IACzCoB,GAAS,CAACxC,EAAIF,GAEP2C,GAA+B,SACxC1G,EACA2G,QAAA,IAAAA,IAAAA,EAAA,UAEA,IAAMC,EAAkB,GAClBC,EAAoB,GACpBC,EAAwB,GAgE9B,OA/DA9G,EAAWrK,SAAQ,SAAC8F,EAAWl0E,GAC3B,IAAIw/E,EAAYb,GAAYr6E,IAAI4vE,GAQhC,GAPIsL,EAAY5D,GACZ2D,EAAW3gF,MAAK,GAChB4gF,GAAa5D,GAEb2D,EAAW3gF,MAAK,IAGoC,IAApD,CAAC,SAAU,OAAQ,SAAS7C,QAAQqjF,KAEyB,IAAzD,CAAC,KAAQ,KAAQ,MAAQ,OAAQrjF,QAAQm4E,GAEzC,OADAoL,EAAQ1gF,KAAKoB,GACNq/E,EAAMzgF,KAAK+9E,GAI1B,GAAI6C,IAAcxD,GAAMwD,IAAclD,EAAK,CAEvC,GAAc,IAAVt8E,EAEA,OADAs/E,EAAQ1gF,KAAKoB,GACNq/E,EAAMzgF,KAAK6+E,IAKtB,IAAMgC,EAAOJ,EAAMr/E,EAAQ,GAC3B,OAAmC,IAA/Bg/E,GAAYjjF,QAAQ0jF,IACpBH,EAAQ1gF,KAAK0gF,EAAQt/E,EAAQ,IACtBq/E,EAAMzgF,KAAK6gF,KAEtBH,EAAQ1gF,KAAKoB,GACNq/E,EAAMzgF,KAAK6+E,KAKtB,OAFA6B,EAAQ1gF,KAAKoB,GAETw/E,IAAc9B,GACP2B,EAAMzgF,KAAmB,WAAdwgF,EAAyBpC,GAAKgB,IAGhDwB,IAAcnB,IAIdmB,IAAchC,GAHP6B,EAAMzgF,KAAK6+E,IAUlB+B,IAAclB,GACTpK,GAAa,QAAWA,GAAa,QAAaA,GAAa,QAAWA,GAAa,OACjFmL,EAAMzgF,KAAKo/E,IAEXqB,EAAMzgF,KAAK6+E,SAI1B4B,EAAMzgF,KAAK4gF,MAGR,CAACF,EAASD,EAAOE,EAC5B,EAEMG,GAA6B,SAC/BxV,EACAiD,EACAwS,EACAC,GAEA,IAAM3sF,EAAU2sF,EAAWD,GAC3B,GAAI5xF,MAAM8rF,QAAQ3P,IAA6B,IAAxBA,EAAEnuE,QAAQ9I,GAAkBi3E,IAAMj3E,EAErD,IADA,IAAIjF,EAAI2xF,EACD3xF,GAAK4xF,EAAW3xF,QAAQ,CAI3B,IAFIqN,EAAOskF,IADX5xF,MAGam/E,EACT,OAAO,EAGX,GAAI7xE,IAAS+gF,EACT,MAKZ,GAAIppF,IAAYopF,EAGZ,IAFIruF,EAAI2xF,EAED3xF,EAAI,GAAG,CAEV,IAAMyxF,EAAOG,IADb5xF,GAGA,GAAID,MAAM8rF,QAAQ3P,IAA0B,IAArBA,EAAEnuE,QAAQ0jF,GAAevV,IAAMuV,EAElD,IADA,IAAI7/E,EAAI+/E,EACD//E,GAAKggF,EAAW3xF,QAAQ,CAE3B,IAAIqN,EAEJ,IAFIA,EAAOskF,IADXhgF,MAGautE,EACT,OAAO,EAGX,GAAI7xE,IAAS+gF,EACT,MAKZ,GAAIoD,IAASpD,EACT,MAIZ,OAAO,CACX,EAEMwD,GAA4B,SAACF,EAAsBC,GAErD,IADA,IAAI5xF,EAAI2xF,EACD3xF,GAAK,GAAG,CACX,IAAI8xF,EAAOF,EAAW5xF,GACtB,GAAI8xF,IAASzD,EAGT,OAAOyD,EAFP9xF,IAKR,OAAO,CACX,EAIM+xF,GAAoB,SACtBtH,EACAmH,EACAI,EACAhgF,EACAigF,GAEA,GAAwB,IAApBD,EAAShgF,GACT,OAAOy+E,GAGX,IAAIkB,EAAe3/E,EAAQ,EAC3B,GAAIjS,MAAM8rF,QAAQoG,KAAsD,IAAlCA,EAAgBN,GAClD,OAAOlB,GAGX,IAAIyB,EAAcP,EAAe,EAC7BQ,EAAaR,EAAe,EAC5B1sF,EAAU2sF,EAAWD,GAIrBS,EAASF,GAAe,EAAIN,EAAWM,GAAe,EACtD5kF,EAAOskF,EAAWO,GAEtB,GAAIltF,IAAY6oF,GAAMxgF,IAASygF,EAC3B,OAAO0C,GAGX,IAA2C,IAAvCI,GAAiB9iF,QAAQ9I,GACzB,OAAOurF,GAIX,IAAwC,IAApCK,GAAiB9iF,QAAQT,GACzB,OAAOmjF,GAIX,IAA6B,IAAzBK,GAAM/iF,QAAQT,GACd,OAAOmjF,GAIX,GAAIoB,GAA0BF,EAAcC,KAAgBzD,EACxD,OAAOuC,GAIX,GAAIC,GAAYr6E,IAAIm0E,EAAWkH,MAAmBrD,EAC9C,OAAOmC,GAIX,IAAKxrF,IAAY0qF,IAAM1qF,IAAY2qF,KAAOe,GAAYr6E,IAAIm0E,EAAW0H,MAAiB7D,EAClF,OAAOmC,GAIX,GAAIxrF,IAAYipF,GAAM5gF,IAAS4gF,EAC3B,OAAOuC,GAIX,GAAIxrF,IAAYmpF,EACZ,OAAOqC,GAIX,IAAuC,IAAnC,CAACpC,EAAIG,EAAIE,GAAI3gF,QAAQ9I,IAAmBqI,IAAS8gF,EACjD,OAAOqC,GAIX,IAA4C,IAAxC,CAAC7B,EAAIC,EAAIC,EAAIK,GAAII,IAAIxhF,QAAQT,GAC7B,OAAOmjF,GAIX,GAAIoB,GAA0BF,EAAcC,KAAgB3C,GACxD,OAAOwB,GAIX,GAAIiB,GAA2BxC,GAAID,GAAI0C,EAAcC,GACjD,OAAOnB,GAIX,GAAIiB,GAA2B,CAAC9C,EAAIC,GAAKG,GAAI2C,EAAcC,GACvD,OAAOnB,GAIX,GAAIiB,GAA2BnD,EAAIA,EAAIoD,EAAcC,GACjD,OAAOnB,GAIX,GAAIxrF,IAAYopF,EACZ,OAAOqC,GAIX,GAAIzrF,IAAYiqF,IAAM5hF,IAAS4hF,GAC3B,OAAOuB,GAIX,GAAInjF,IAASqhF,GAAM1pF,IAAY0pF,EAC3B,OAAO+B,GAIX,IAAoC,IAAhC,CAAClC,EAAIE,EAAIM,IAAIjhF,QAAQT,IAAgBrI,IAAYwpF,EACjD,OAAOgC,GAIX,GAAI2B,IAAWrC,KAAmC,IAA7BmB,GAAOnjF,QAAQ9I,GAChC,OAAOwrF,GAIX,GAAIxrF,IAAYsqF,IAAMjiF,IAASyiF,GAC3B,OAAOU,GAIX,GAAInjF,IAASyhF,GACT,OAAO0B,GAIX,IAAoC,IAA/BG,GAAY7iF,QAAQT,IAAgBrI,IAAYmqF,KAA0C,IAAlCwB,GAAY7iF,QAAQ9I,IAAmBqI,IAAS8hF,GACzG,OAAOqB,GAIX,GACKxrF,IAAYqqF,KAAsC,IAAhC,CAACU,GAAIL,GAAIC,IAAI7hF,QAAQT,KACJ,IAAnC,CAAC0iF,GAAIL,GAAIC,IAAI7hF,QAAQ9I,IAAmBqI,IAAS+hF,GAElD,OAAOoB,GAIX,IACuC,IAAlCG,GAAY7iF,QAAQ9I,KAAqD,IAAlC8rF,GAAehjF,QAAQT,KACzB,IAArCyjF,GAAehjF,QAAQ9I,KAAkD,IAA/B2rF,GAAY7iF,QAAQT,GAE/D,OAAOmjF,GAIX,IAEoC,IAA/B,CAACnB,GAAID,IAAIthF,QAAQ9I,KACbqI,IAAS8hF,KAAmC,IAA5B,CAACH,GAAIP,GAAI3gF,QAAQT,IAAgBskF,EAAWO,EAAa,KAAO/C,MAErD,IAA/B,CAACH,GAAIP,GAAI3gF,QAAQ9I,IAAmBqI,IAAS8hF,IAE7CnqF,IAAYmqF,KAAsC,IAAhC,CAACA,GAAIG,GAAIJ,IAAIphF,QAAQT,GAExC,OAAOmjF,GAIX,IAA4C,IAAxC,CAACrB,GAAIG,GAAIJ,GAAIP,EAAIC,GAAI9gF,QAAQT,GAE7B,IADA,IAAI+kF,EAAYV,EACTU,GAAa,GAAG,CAEnB,IADIP,EAAOF,EAAWS,MACTjD,GACT,OAAOqB,GACJ,IAAgC,IAA5B,CAAClB,GAAIJ,IAAIphF,QAAQ+jF,GAGxB,MAFAO,IAQZ,IAAgC,IAA5B,CAAC/C,GAAID,IAAIthF,QAAQT,GAEjB,IADI+kF,GAA2C,IAA/B,CAACzD,EAAIC,GAAI9gF,QAAQ9I,GAAkBitF,EAAcP,EAC1DU,GAAa,GAAG,CACnB,IAAIP,EACJ,IADIA,EAAOF,EAAWS,MACTjD,GACT,OAAOqB,GACJ,IAAgC,IAA5B,CAAClB,GAAIJ,IAAIphF,QAAQ+jF,GAGxB,MAFAO,IAQZ,GACKpC,KAAOhrF,IAA+C,IAApC,CAACgrF,GAAIC,GAAIL,GAAIC,IAAI/hF,QAAQT,KACZ,IAA/B,CAAC4iF,GAAIL,IAAI9hF,QAAQ9I,KAA+C,IAA5B,CAACirF,GAAIC,IAAIpiF,QAAQT,KACtB,IAA/B,CAAC6iF,GAAIL,IAAI/hF,QAAQ9I,IAAmBqI,IAAS6iF,GAE9C,OAAOM,GAIX,IACiD,IAA5CQ,GAAsBljF,QAAQ9I,KAA+C,IAA5B,CAAC8pF,GAAIM,IAAIthF,QAAQT,KACzB,IAAzC2jF,GAAsBljF,QAAQT,IAAgBrI,IAAYqqF,GAE3D,OAAOmB,GAIX,IAAsC,IAAlCG,GAAY7iF,QAAQ9I,KAAkD,IAA/B2rF,GAAY7iF,QAAQT,GAC3D,OAAOmjF,GAIX,GAAIxrF,IAAYkqF,KAAqC,IAA/ByB,GAAY7iF,QAAQT,GACtC,OAAOmjF,GAIX,IACkD,IAA7CG,GAAY5N,OAAOoM,IAAIrhF,QAAQ9I,IAC5BqI,IAAS2hF,KACkC,IAA3CsB,GAAMxiF,QAAQ08E,EAAW0H,MACc,IAA1CvB,GAAY5N,OAAOoM,IAAIrhF,QAAQT,IAAgBrI,IAAY4pF,EAE5D,OAAO4B,GAKX,GAAIxrF,IAAYmrF,IAAM9iF,IAAS8iF,GAAI,CAG/B,IAFA,IAAIpwF,EAAIgyF,EAASL,GACbh8E,EAAQ,EACL3V,EAAI,GAEH4xF,IADJ5xF,KACsBowF,IAClBz6E,IAKR,GAAIA,EAAQ,IAAM,EACd,OAAO86E,GAKf,OAAIxrF,IAAY0qF,IAAMriF,IAASsiF,GACpBa,GAGJC,EACX,EA0BM4B,GAAsB,SAAC7H,EAAsB1pF,GAC1CA,IACDA,EAAU,CAACqwF,UAAW,SAAUmB,UAAW,WAE3C,IAAAC,EAAyCrB,GAA6B1G,EAAY1pF,EAAQqwF,WAAzFY,EAAQQ,EAAA,GAAEZ,EAAUY,EAAA,GAAEC,EAAcD,EAAA,GAEf,cAAtBzxF,EAAQwxF,WAAmD,eAAtBxxF,EAAQwxF,YAC7CX,EAAaA,EAAWx+E,KAAI,SAAC0+E,GAAS,OAAiC,IAAhC,CAAC1C,GAAIK,GAAIY,IAAItiF,QAAQ+jF,GAAe9B,GAAK8B,CAAI,KAGxF,IAAMY,EACoB,aAAtB3xF,EAAQwxF,UACFE,EAAer/E,KAAI,SAACu/E,EAAc3yF,GAC9B,OAAO2yF,GAAgBlI,EAAWzqF,IAAM,OAAUyqF,EAAWzqF,IAAM,cAEvE7B,EAEV,MAAO,CAAC6zF,EAAUJ,EAAYc,EAClC,EAkBAE,GAAA,WAMI,SAAAA,EAAYnI,EAAsB2G,EAAmBvvF,EAAei7E,GAChE97E,KAAKypF,WAAaA,EAClBzpF,KAAK6xF,SAAWzB,IAAcZ,GAC9BxvF,KAAKa,MAAQA,EACbb,KAAK87E,IAAMA,EAMnB,OAHI8V,EAAApzF,UAAA2R,MAAA,WACI,OAAOw5E,EAAa7kF,WAAC,EAAG9E,KAAKypF,WAAWt5E,MAAMnQ,KAAKa,MAAOb,KAAK87E,OAEvE8V,CAAA,CAhBA,GAgCaE,GAAc,SAACtI,EAAazpF,GACrC,IAAM0pF,EAAaF,EAAaC,GAC1BgI,EAA+CF,GAAoB7H,EAAY1pF,GAA9EixF,EAAQQ,EAAA,GAAEZ,EAAUY,EAAA,GAAEE,EAAoBF,EAAA,GAC3CvyF,EAASwqF,EAAWxqF,OACtB8yF,EAAU,EACVC,EAAY,EAEhB,MAAO,CACH1lF,KAAM,WACF,GAAI0lF,GAAa/yF,EACb,MAAO,CAACooF,MAAM,EAAM7pF,MAAO,MAG/B,IADA,IAAI4yF,EAAYX,GAEZuC,EAAY/yF,IACXmxF,EAAYW,GAAkBtH,EAAYmH,EAAYI,IAAYgB,EAAWN,MAC1EjC,KAGR,GAAIW,IAAcX,IAAqBuC,IAAc/yF,EAAQ,CACzD,IAAMzB,EAAQ,IAAIo0F,GAAMnI,EAAY2G,EAAW2B,EAASC,GAExD,OADAD,EAAUC,EACH,CAACx0F,MAAKA,EAAE6pF,MAAM,GAGzB,MAAO,CAACA,MAAM,EAAM7pF,MAAO,OAGvC,ECrhBay0F,GAAoB,EACpBC,GAAU,EACVC,GAAe,EACfC,GAAc,EAErBC,GAAY,GACZC,GAAU,GACVC,GAAkB,GAClBC,GAAuB,EACvBC,GAAQ,GACRC,GAAiB,GACjBC,GAAc,GACdC,GAAc,GACdC,GAAc,GACdC,GAAkB,GAClBC,GAAa,GACbC,GAAmB,GACnBC,GAAoB,GACpBC,GAAW,GACXC,GAAe,GACfC,GAAmB,GACnBC,GAAiB,GACjBC,GAAoB,GACpBC,GAAgB,GAChBC,GAAsB,GACtBC,GAAuB,GACvBC,GAAoB,GACpBC,GAAqB,IACrBC,GAAgB,GAChBC,GAAsB,IACtBC,GAAgB,IAChBC,GAAQ,IACRC,GAAU,IACVC,GAAwB,MACxBC,GAAW,GACXC,GAAY,GACZC,GAAQ,GACRC,GAAQ,GACRC,GAAY,GACZC,GAAY,GACZC,GAAO,EACPC,GAAY,EACZC,GAAkB,GAClBC,GAAY,GACZC,GAA4B,GAC5BC,GAAS,IACTC,IAAO,EACPC,GAAO,GACP7Z,GAAI,GACJ1lE,GAAI,IACJ0kE,GAAI,IACJ+D,GAAI,IACJ+W,GAAI,IACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GAEJC,GAAU,SAACpQ,GAAsB,OAAAA,GAAa6P,IAAQ7P,GAAa,EAAM,EACzEqQ,GAAuB,SAACrQ,GAAsB,OAAAA,GAAa,OAAUA,GAAa,KAAM,EACxFsQ,GAAQ,SAACtQ,GACX,OAAAoQ,GAAQpQ,IAAeA,GAAa+P,IAAK/P,GAAaiQ,IAAOjQ,GAAahK,IAAKgK,GAAahL,EAA5F,EACEub,GAAoB,SAACvQ,GAAsB,OAAAA,GAAahK,IAAKgK,GAAa8P,EAAC,EAC3EU,GAAoB,SAACxQ,GAAsB,OAAAA,GAAa+P,IAAK/P,GAAamQ,EAAC,EAC3EM,GAAW,SAACzQ,GAAsB,OAAAuQ,GAAkBvQ,IAAcwQ,GAAkBxQ,EAAU,EAC9F0Q,GAAsB,SAAC1Q,GAAsB,OAAAA,GAAa8O,EAAO,EACjE6B,GAAe,SAAC3Q,GAClB,OAAAA,IAAcmN,IAAanN,IAAcsN,IAAwBtN,IAAcuN,EAA/E,EACEqD,GAAuB,SAAC5Q,GAC1B,OAAAyQ,GAASzQ,IAAc0Q,GAAoB1Q,IAAcA,IAAcgO,EAAvE,EACE6C,GAAkB,SAAC7Q,GACrB,OAAA4Q,GAAqB5Q,IAAcoQ,GAAQpQ,IAAcA,IAAciO,EAAvE,EACE6C,GAA0B,SAAC9Q,GAC7B,OACKA,GAAasP,IAAQtP,GAAauP,IACnCvP,IAAcwP,IACbxP,GAAayP,IAAazP,GAAa0P,IACxC1P,IAAc2P,EAEtB,EACMoB,GAAgB,SAACC,EAAYC,GAC/B,OAAID,IAAO3D,IAIJ4D,IAAO9D,EAClB,EACM+D,GAAoB,SAACF,EAAYC,EAAYE,GAC/C,OAAIH,IAAO/C,GACA2C,GAAqBK,IAAOF,GAAcE,EAAIE,KAC9CP,GAAqBI,MAErBA,IAAO3D,KAAmB0D,GAAcC,EAAIC,GAI3D,EAEMG,GAAgB,SAACJ,EAAYC,EAAYE,GAC3C,OAAIH,IAAO/B,IAAa+B,IAAO/C,KACvBmC,GAAQa,IAILA,IAAO5B,IAAae,GAAQe,GAI5Bf,GADPY,IAAO3B,GACQ4B,EAGJD,EACnB,EAEMK,GAAiB,SAAC9M,GACpB,IAAIn+E,EAAI,EACJkrF,EAAO,EACP/M,EAAWn+E,KAAO6oF,IAAa1K,EAAWn+E,KAAO6nF,KAC7C1J,EAAWn+E,KAAO6nF,KAClBqD,GAAQ,GAEZlrF,KAKJ,IAFA,IAAM04B,EAAW,GAEVsxD,GAAQ7L,EAAWn+E,KACtB04B,EAASp0B,KAAK65E,EAAWn+E,MAG7B,IAAMw4B,EAAME,EAAS/kC,OAAS09E,SAASgN,EAAa7kF,WAAC,EAAGk/B,GAAW,IAAM,EAErEylD,EAAWn+E,KAAOipF,IAClBjpF,IAIJ,IADA,IAAMmrF,EAAW,GACVnB,GAAQ7L,EAAWn+E,KACtBmrF,EAAS7mF,KAAK65E,EAAWn+E,MAG7B,IAAMorF,EAAQD,EAASx3F,OACjB03F,EAAOD,EAAQ/Z,SAASgN,EAAa7kF,WAAC,EAAG2xF,GAAW,IAAM,EAE5DhN,EAAWn+E,KAAO4pF,IAAKzL,EAAWn+E,KAAOkK,IACzClK,IAGJ,IAAIsrF,EAAU,EAEVnN,EAAWn+E,KAAO6oF,IAAa1K,EAAWn+E,KAAO6nF,KAC7C1J,EAAWn+E,KAAO6nF,KAClByD,GAAW,GAEftrF,KAKJ,IAFA,IAAMurF,EAAW,GAEVvB,GAAQ7L,EAAWn+E,KACtBurF,EAASjnF,KAAK65E,EAAWn+E,MAG7B,IAAMwrF,EAAMD,EAAS53F,OAAS09E,SAASgN,EAAa7kF,WAAC,EAAG+xF,GAAW,IAAM,EAEzE,OAAOL,GAAQ1yD,EAAM6yD,EAAOlZ,KAAKsZ,IAAI,IAAKL,IAAUjZ,KAAKsZ,IAAI,GAAIH,EAAUE,EAC/E,EAEME,GAAgC,CAClClG,KAAM,GAEJmG,GAAiC,CACnCnG,KAAM,GAEJoG,GAAqB,CAACpG,KAAM,GAC5BqG,GAA4B,CAACrG,KAAM,IACnCsG,GAA4B,CAACtG,KAAM,GACnCuG,GAAsB,CAACvG,KAAM,IAC7BwG,GAA0B,CAACxG,KAAM,GACjCyG,GAA6B,CAACzG,KAAM,IACpC0G,GAAkC,CACpC1G,KAAM,IAEJ2G,GAAmC,CACrC3G,KAAM,IAEJ4G,GAA+B,CAAC5G,KAAM,IACtC6G,GAAuB,CAAC7G,KAAM,IAC9B8G,GAA0B,CAAC9G,KAAM,GACjC+G,GAAmB,CAAC/G,KAAM,IAC1BgH,GAAmB,CAAChH,KAAM,IAC1BiH,GAAqB,CAACjH,KAAM,IAC5BkH,GAAyB,CAAClH,KAAM,IAChCmH,GAAmC,CACrCnH,KAAM,IAEJoH,GAAoC,CACtCpH,KAAM,IAEJqH,GAA0B,CAACrH,KAAM,IAC1BsH,GAAmB,CAACtH,KAAM,IAEvCuH,GAAA,WAGI,SAAAA,IACIr4F,KAAKs4F,OAAS,GAyetB,OAteID,EAAA75F,UAAA+5F,MAAA,SAAMC,GACFx4F,KAAKs4F,OAASt4F,KAAKs4F,OAAOtW,OAAOuH,EAAaiP,KAGlDH,EAAA75F,UAAAi6F,KAAA,WAGI,IAFA,IAAMC,EAAS,GACXC,EAAQ34F,KAAK44F,eACVD,IAAUP,IACbM,EAAO9oF,KAAK+oF,GACZA,EAAQ34F,KAAK44F,eAEjB,OAAOF,GAGHL,EAAA75F,UAAAo6F,aAAR,WACI,IAAM1T,EAAYllF,KAAK64F,mBAEvB,OAAQ3T,GACJ,KAAKwN,GACD,OAAO1yF,KAAK84F,mBAAmBpG,IACnC,KAAKE,GACD,IAAMsD,EAAKl2F,KAAK+4F,cAAc,GACxB5C,EAAKn2F,KAAK+4F,cAAc,GACxB1C,EAAKr2F,KAAK+4F,cAAc,GAC9B,GAAIhD,GAAgBG,IAAOD,GAAcE,EAAIE,GAAK,CAC9C,IAAM2C,EAAQ5C,GAAkBF,EAAIC,EAAIE,GAAMnE,GAAUD,GAGxD,MAAO,CAACnB,KAAM,EAAsBtzF,MAFtBwC,KAAKi5F,cAEwBD,MAAKA,GAEpD,MACJ,KAAKnG,GACD,GAAI7yF,KAAK+4F,cAAc,KAAOpG,GAE1B,OADA3yF,KAAK64F,mBACE1B,GAEX,MACJ,KAAKpE,GACD,OAAO/yF,KAAK84F,mBAAmB/F,IACnC,KAAKC,GACD,OAAOgE,GACX,KAAK/D,GACD,OAAOgE,GACX,KAAK/C,GACD,GAAIl0F,KAAK+4F,cAAc,KAAOpG,GAE1B,OADA3yF,KAAK64F,mBACEnB,GAEX,MACJ,KAAKvD,GACD,GAAImC,GAAcpR,EAAWllF,KAAK+4F,cAAc,GAAI/4F,KAAK+4F,cAAc,IAEnE,OADA/4F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKm5F,sBAEhB,MACJ,KAAK/E,GACD,OAAO8C,GACX,KAAK/D,GACD,IAAMiG,EAAKlU,EACLmU,EAAKr5F,KAAK+4F,cAAc,GACxBO,EAAKt5F,KAAK+4F,cAAc,GAE9B,GAAIzC,GAAc8C,EAAIC,EAAIC,GAEtB,OADAt5F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKm5F,sBAGhB,GAAI/C,GAAkBgD,EAAIC,EAAIC,GAE1B,OADAt5F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKu5F,wBAGhB,GAAIF,IAAOlG,IAAgBmG,IAAOhG,GAG9B,OAFAtzF,KAAK64F,mBACL74F,KAAK64F,mBACEf,GAEX,MAEJ,KAAKvD,GACD,GAAI+B,GAAcpR,EAAWllF,KAAK+4F,cAAc,GAAI/4F,KAAK+4F,cAAc,IAEnE,OADA/4F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKm5F,sBAEhB,MACJ,KAAK7G,GACD,GAAItyF,KAAK+4F,cAAc,KAAO7E,GAE1B,IADAl0F,KAAK64F,qBACQ,CACT,IAAIvtF,EAAItL,KAAK64F,mBACb,GAAIvtF,IAAM4oF,KACN5oF,EAAItL,KAAK64F,sBACCvG,GACN,OAAOtyF,KAAK44F,eAGpB,GAAIttF,IAAMwpF,GACN,OAAO90F,KAAK44F,eAIxB,MACJ,KAAKvE,GACD,OAAO0D,GACX,KAAKzD,GACD,OAAO0D,GACX,KAAK3E,GACD,GACIrzF,KAAK+4F,cAAc,KAAO3F,IAC1BpzF,KAAK+4F,cAAc,KAAO5F,IAC1BnzF,KAAK+4F,cAAc,KAAO5F,GAI1B,OAFAnzF,KAAK64F,mBACL74F,KAAK64F,mBACEhB,GAEX,MACJ,KAAKtE,GACD,IAAMiG,EAAKx5F,KAAK+4F,cAAc,GACxBU,EAAKz5F,KAAK+4F,cAAc,GACxBW,EAAK15F,KAAK+4F,cAAc,GAC9B,GAAI3C,GAAkBoD,EAAIC,EAAIC,GAE1B,MAAO,CAAC5I,KAAM,EAA4BtzF,MAD5BwC,KAAKi5F,eAGvB,MACJ,KAAKzF,GACD,OAAOyE,GACX,KAAK1F,GACD,GAAI0D,GAAc/Q,EAAWllF,KAAK+4F,cAAc,IAE5C,OADA/4F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKu5F,wBAEhB,MACJ,KAAK9F,GACD,OAAOyE,GACX,KAAKxE,GACD,GAAI1zF,KAAK+4F,cAAc,KAAOpG,GAE1B,OADA3yF,KAAK64F,mBACEzB,GAEX,MACJ,KAAKzD,GACD,OAAO6D,GACX,KAAK3D,GACD,OAAO4D,GACX,KAAKxZ,GACL,KAAKmX,GACD,IAAMuE,EAAK35F,KAAK+4F,cAAc,GACxBa,EAAK55F,KAAK+4F,cAAc,GAM9B,OALIY,IAAOxF,KAAcqB,GAAMoE,IAAOA,IAAOhG,KACzC5zF,KAAK64F,mBACL74F,KAAK65F,4BAET75F,KAAKk5F,mBAAmBhU,GACjBllF,KAAKu5F,wBAChB,KAAKzF,GACD,GAAI9zF,KAAK+4F,cAAc,KAAOpG,GAE1B,OADA3yF,KAAK64F,mBACEvB,GAEX,GAAIt3F,KAAK+4F,cAAc,KAAOjF,GAE1B,OADA9zF,KAAK64F,mBACExB,GAEX,MACJ,KAAKtD,GACD,GAAI/zF,KAAK+4F,cAAc,KAAOpG,GAE1B,OADA3yF,KAAK64F,mBACEtB,GAEX,MACJ,KAAKzC,GACD,OAAOsD,GAGf,OAAIvC,GAAa3Q,IACbllF,KAAK85F,oBACE3B,IAGP7C,GAAQpQ,IACRllF,KAAKk5F,mBAAmBhU,GACjBllF,KAAKm5F,uBAGZrD,GAAqB5Q,IACrBllF,KAAKk5F,mBAAmBhU,GACjBllF,KAAKu5F,yBAGT,CAACzI,KAAM,EAAuBtzF,MAAOmsF,EAAczE,KAGtDmT,EAAA75F,UAAAq6F,iBAAR,WACI,IAAMr7F,EAAQwC,KAAKs4F,OAAOyB,QAE1B,MAAwB,qBAAVv8F,GAAyB,EAAIA,GAGvC66F,EAAA75F,UAAA06F,mBAAR,SAA2BhU,GACvBllF,KAAKs4F,OAAO0B,QAAQ9U,IAGhBmT,EAAA75F,UAAAu6F,cAAR,SAAsB/sE,GAClB,OAAIA,GAAShsB,KAAKs4F,OAAOr5F,QACb,EAGLe,KAAKs4F,OAAOtsE,IAGfqsE,EAAA75F,UAAAq7F,yBAAR,WAGI,IAFA,IAAMI,EAAS,GACX/U,EAAYllF,KAAK64F,mBACdrD,GAAMtQ,IAAc+U,EAAOh7F,OAAS,GACvCg7F,EAAOrqF,KAAKs1E,GACZA,EAAYllF,KAAK64F,mBAGrB,IADA,IAAIqB,GAAgB,EACbhV,IAAc0O,IAAiBqG,EAAOh7F,OAAS,GAClDg7F,EAAOrqF,KAAKs1E,GACZA,EAAYllF,KAAK64F,mBACjBqB,GAAgB,EAGpB,GAAIA,EAMA,MAAO,CAACpJ,KAAM,GAA+BjwF,MAL/B87E,SACVgN,EAAa7kF,WAAC,EAAGm1F,EAAO7nF,KAAI,SAAC+nF,GAAU,OAACA,IAAUvG,GAAgBmB,GAAOoF,CAAK,KAC9E,IAGgDre,IADxCa,SAASgN,EAAa7kF,WAAC,EAAGm1F,EAAO7nF,KAAI,SAAC+nF,GAAU,OAACA,IAAUvG,GAAgBuB,GAAIgF,CAAK,KAAK,KAIzG,IAAMt5F,EAAQ87E,SAASgN,EAAa7kF,WAAC,EAAGm1F,GAAS,IACjD,GAAIj6F,KAAK+4F,cAAc,KAAO5F,IAAgBqC,GAAMx1F,KAAK+4F,cAAc,IAAK,CACxE/4F,KAAK64F,mBACL3T,EAAYllF,KAAK64F,mBAEjB,IADA,IAAMuB,EAAY,GACX5E,GAAMtQ,IAAckV,EAAUn7F,OAAS,GAC1Cm7F,EAAUxqF,KAAKs1E,GACfA,EAAYllF,KAAK64F,mBAIrB,MAAO,CAAC/H,KAAM,GAA+BjwF,MAAKA,EAAEi7E,IAFxCa,SAASgN,EAAa7kF,WAAC,EAAGs1F,GAAY,KAIlD,MAAO,CAACtJ,KAAM,GAA+BjwF,MAAKA,EAAEi7E,IAAKj7E,IAIzDw3F,EAAA75F,UAAA+6F,sBAAR,WACI,IAAM/7F,EAAQwC,KAAKi5F,cACnB,MAA4B,QAAxBz7F,EAAM+/E,eAA2Bv9E,KAAK+4F,cAAc,KAAO/F,IAC3DhzF,KAAK64F,mBACE74F,KAAKq6F,mBACLr6F,KAAK+4F,cAAc,KAAO/F,IACjChzF,KAAK64F,mBACE,CAAC/H,KAAM,GAA0BtzF,MAAKA,IAG1C,CAACszF,KAAM,GAAuBtzF,MAAKA,IAGtC66F,EAAA75F,UAAA67F,gBAAR,WACI,IAAM78F,EAAQ,GAGd,GAFAwC,KAAK85F,oBAED95F,KAAK+4F,cAAc,KAAOjE,GAC1B,MAAO,CAAChE,KAAM,GAAqBtzF,MAAO,IAG9C,IAAM8O,EAAOtM,KAAK+4F,cAAc,GAChC,GAAIzsF,IAASymF,IAAczmF,IAASomF,GAAgB,CAChD,IAAM4H,EAAct6F,KAAK84F,mBAAmB94F,KAAK64F,oBACjD,OAAyB,IAArByB,EAAYxJ,OACZ9wF,KAAK85F,oBAED95F,KAAK+4F,cAAc,KAAOjE,IAAO90F,KAAK+4F,cAAc,KAAO9F,KAC3DjzF,KAAK64F,mBACE,CAAC/H,KAAM,GAAqBtzF,MAAO88F,EAAY98F,SAI9DwC,KAAKu6F,wBACE5C,IAGX,OAAa,CACT,IAAMzS,EAAYllF,KAAK64F,mBACvB,GAAI3T,IAAc4P,IAAO5P,IAAc+N,GACnC,MAAO,CAACnC,KAAM,GAAqBtzF,MAAOmsF,EAAa7kF,WAAC,EAAGtH,IACxD,GAAIq4F,GAAa3Q,GAEpB,OADAllF,KAAK85F,oBACD95F,KAAK+4F,cAAc,KAAOjE,IAAO90F,KAAK+4F,cAAc,KAAO9F,IAC3DjzF,KAAK64F,mBACE,CAAC/H,KAAM,GAAqBtzF,MAAOmsF,EAAa7kF,WAAC,EAAGtH,MAE/DwC,KAAKu6F,wBACE5C,IACJ,GACHzS,IAAcwN,IACdxN,IAAc6N,IACd7N,IAAc8N,IACdgD,GAAwB9Q,GAGxB,OADAllF,KAAKu6F,wBACE5C,GACJ,GAAIzS,IAAcqN,GAAiB,CACtC,IAAI0D,GAAc/Q,EAAWllF,KAAK+4F,cAAc,IAI5C,OADA/4F,KAAKu6F,wBACE5C,GAHPn6F,EAAMoS,KAAK5P,KAAKw6F,gCAMpBh9F,EAAMoS,KAAKs1E,KAKfmT,EAAA75F,UAAAs7F,kBAAR,WACI,KAAOjE,GAAa71F,KAAK+4F,cAAc,KACnC/4F,KAAK64F,oBAILR,EAAA75F,UAAA+7F,sBAAR,WACI,OAAa,CACT,IAAMrV,EAAYllF,KAAK64F,mBACvB,GAAI3T,IAAc+N,IAAqB/N,IAAc4P,GACjD,OAGAmB,GAAc/Q,EAAWllF,KAAK+4F,cAAc,KAC5C/4F,KAAKw6F,4BAKTnC,EAAA75F,UAAAi8F,mBAAR,SAA2B9lF,GAGvB,IAFA,IAAM+lF,EAAmB,IACrBl9F,EAAQ,GACLmX,EAAQ,GAAG,CACd,IAAMgmF,EAASld,KAAKyD,IAAIwZ,EAAkB/lF,GAC1CnX,GAASmsF,EAAa7kF,WAAC,EAAG9E,KAAKs4F,OAAOsC,OAAO,EAAGD,IAChDhmF,GAASgmF,EAIb,OAFA36F,KAAKs4F,OAAOyB,QAELv8F,GAGH66F,EAAA75F,UAAAs6F,mBAAR,SAA2B+B,GAIvB,IAHA,IAAIr9F,EAAQ,GACRwB,EAAI,IAEL,CACC,IAAMkmF,EAAYllF,KAAKs4F,OAAOt5F,GAC9B,GAAIkmF,IAAc4P,SAAqB33F,IAAd+nF,GAA2BA,IAAc2V,EAE9D,MAAO,CAAC/J,KAAM,EAAwBtzF,MADtCA,GAASwC,KAAKy6F,mBAAmBz7F,IAIrC,GAAIkmF,IAAcmN,GAEd,OADAryF,KAAKs4F,OAAOsC,OAAO,EAAG57F,GACf44F,GAGX,GAAI1S,IAAcqN,GAAiB,CAC/B,IAAMjmF,EAAOtM,KAAKs4F,OAAOt5F,EAAI,GACzBsN,IAASwoF,SAAgB33F,IAATmP,IACZA,IAAS+lF,IACT70F,GAASwC,KAAKy6F,mBAAmBz7F,GACjCA,GAAK,EACLgB,KAAKs4F,OAAOyB,SACL9D,GAAc/Q,EAAW54E,KAChC9O,GAASwC,KAAKy6F,mBAAmBz7F,GACjCxB,GAASmsF,EAAc3pF,KAAKw6F,2BAC5Bx7F,GAAK,IAKjBA,MAIAq5F,EAAA75F,UAAAs8F,cAAR,WACI,IAAMC,EAAO,GACTjK,EAAOqB,GACP+D,EAAKl2F,KAAK+4F,cAAc,GAK5B,IAJI7C,IAAO/B,IAAa+B,IAAO/C,IAC3B4H,EAAKnrF,KAAK5P,KAAK64F,oBAGZvD,GAAQt1F,KAAK+4F,cAAc,KAC9BgC,EAAKnrF,KAAK5P,KAAK64F,oBAEnB3C,EAAKl2F,KAAK+4F,cAAc,GACxB,IAAI5C,EAAKn2F,KAAK+4F,cAAc,GAC5B,GAAI7C,IAAO3B,IAAae,GAAQa,GAG5B,IAFA4E,EAAKnrF,KAAK5P,KAAK64F,mBAAoB74F,KAAK64F,oBACxC/H,EAAOsB,GACAkD,GAAQt1F,KAAK+4F,cAAc,KAC9BgC,EAAKnrF,KAAK5P,KAAK64F,oBAIvB3C,EAAKl2F,KAAK+4F,cAAc,GACxB5C,EAAKn2F,KAAK+4F,cAAc,GACxB,IAAM1C,EAAKr2F,KAAK+4F,cAAc,GAC9B,IAAK7C,IAAOhB,IAAKgB,IAAO1gF,OAAS2gF,IAAOhC,IAAagC,IAAOhD,KAAiBmC,GAAQe,IAAQf,GAAQa,IAGjG,IAFA4E,EAAKnrF,KAAK5P,KAAK64F,mBAAoB74F,KAAK64F,oBACxC/H,EAAOsB,GACAkD,GAAQt1F,KAAK+4F,cAAc,KAC9BgC,EAAKnrF,KAAK5P,KAAK64F,oBAIvB,MAAO,CAACtC,GAAewE,GAAOjK,IAG1BuH,EAAA75F,UAAA26F,oBAAR,WACU,IAAA3H,EAAkBxxF,KAAK86F,gBAAtBE,EAAMxJ,EAAA,GAAEwH,EAAKxH,EAAA,GACd0E,EAAKl2F,KAAK+4F,cAAc,GACxB5C,EAAKn2F,KAAK+4F,cAAc,GACxB1C,EAAKr2F,KAAK+4F,cAAc,GAE9B,OAAI3C,GAAkBF,EAAIC,EAAIE,GAEnB,CAACvF,KAAM,GAA2BkK,OAAMA,EAAEhC,MAAKA,EAAEiC,KAD3Cj7F,KAAKi5F,eAIlB/C,IAAOpD,IACP9yF,KAAK64F,mBACE,CAAC/H,KAAM,GAA4BkK,OAAMA,EAAEhC,MAAKA,IAGpD,CAAClI,KAAM,GAAwBkK,OAAMA,EAAEhC,MAAKA,IAG/CX,EAAA75F,UAAAg8F,wBAAR,WACI,IAAMtV,EAAYllF,KAAK64F,mBAEvB,GAAIrD,GAAMtQ,GAAY,CAElB,IADA,IAAIF,EAAM2E,EAAczE,GACjBsQ,GAAMx1F,KAAK+4F,cAAc,KAAO/T,EAAI/lF,OAAS,GAChD+lF,GAAO2E,EAAc3pF,KAAK64F,oBAG1BhD,GAAa71F,KAAK+4F,cAAc,KAChC/4F,KAAK64F,mBAGT,IAAMqC,EAAeve,SAASqI,EAAK,IAEnC,OAAqB,IAAjBkW,GAAsB3F,GAAqB2F,IAAiBA,EAAe,QACpEjH,GAGJiH,EAGX,OAAIhW,IAAc4P,GACPb,GAGJ/O,GAGHmT,EAAA75F,UAAAy6F,YAAR,WAEI,IADA,IAAI7R,EAAS,KACA,CACT,IAAMlC,EAAYllF,KAAK64F,mBACvB,GAAI9C,GAAgB7Q,GAChBkC,GAAUuC,EAAczE,OACrB,KAAI+Q,GAAc/Q,EAAWllF,KAAK+4F,cAAc,IAInD,OADA/4F,KAAKk5F,mBAAmBhU,GACjBkC,EAHPA,GAAUuC,EAAc3pF,KAAKw6F,8BAO7CnC,CAAA,CA7eA,GC1RA8C,GAAA,WAGI,SAAAA,EAAYzC,GACR14F,KAAKo7F,QAAU1C,EA6GvB,OA1GWyC,EAAA7U,OAAP,SAAc9oF,GACV,IAAM69F,EAAY,IAAIhD,GAEtB,OADAgD,EAAU9C,MAAM/6F,GACT,IAAI29F,EAAOE,EAAU5C,SAGzB0C,EAAAG,WAAP,SAAkB99F,GACd,OAAO29F,EAAO7U,OAAO9oF,GAAO+9F,uBAGzBJ,EAAAK,YAAP,SAAmBh+F,GACf,OAAO29F,EAAO7U,OAAO9oF,GAAOi+F,wBAGhCN,EAAA38F,UAAA+8F,oBAAA,WAEI,IADA,IAAI5C,EAAQ34F,KAAK44F,eACK,KAAfD,EAAM7H,MACT6H,EAAQ34F,KAAK44F,eAGjB,GAAmB,KAAfD,EAAM7H,KACN,MAAM,IAAI4K,YAAY,qDAG1B17F,KAAK27F,eAAehD,GACpB,IAAMn7F,EAAQwC,KAAK47F,wBAEnB,GACIjD,EAAQ34F,KAAK44F,qBACO,KAAfD,EAAM7H,MAEf,GAAmB,KAAf6H,EAAM7H,KACN,OAAOtzF,EAGX,MAAM,IAAIk+F,YAAY,qFAG1BP,EAAA38F,UAAAi9F,qBAAA,WAEI,IADA,IAAMI,EAAS,KACF,CACT,IAAMr+F,EAAQwC,KAAK47F,wBACnB,GAAmB,KAAfp+F,EAAMszF,KACN,OAAO+K,EAEXA,EAAOjsF,KAAKpS,GACZq+F,EAAOjsF,SAIPurF,EAAA38F,UAAAo9F,sBAAR,WACI,IAAMjD,EAAQ34F,KAAK44F,eAEnB,OAAQD,EAAM7H,MACV,KAAK,GACL,KAAK,GACL,KAAK,EACD,OAAO9wF,KAAK87F,mBAAmBnD,EAAM7H,MACzC,KAAK,GACD,OAAO9wF,KAAK+7F,gBAAgBpD,GAGpC,OAAOA,GAGHwC,EAAA38F,UAAAs9F,mBAAR,SAA2BhL,GAIvB,IAHA,IAAM9yE,EAAkB,CAAC8yE,KAAIA,EAAE+K,OAAQ,IAEnClD,EAAQ34F,KAAK44F,iBACJ,CACT,GAAmB,KAAfD,EAAM7H,MAAgCkL,GAAiBrD,EAAO7H,GAC9D,OAAO9yE,EAGXhe,KAAK27F,eAAehD,GACpB36E,EAAM69E,OAAOjsF,KAAK5P,KAAK47F,yBACvBjD,EAAQ34F,KAAK44F,iBAIbuC,EAAA38F,UAAAu9F,gBAAR,SAAwBE,GAOpB,IANA,IAAMC,EAA2B,CAC7B92F,KAAM62F,EAAcz+F,MACpBq+F,OAAQ,GACR/K,KAAM,MAGG,CACT,IAAM6H,EAAQ34F,KAAK44F,eACnB,GAAmB,KAAfD,EAAM7H,MAA+C,IAAf6H,EAAM7H,KAC5C,OAAOoL,EAGXl8F,KAAK27F,eAAehD,GACpBuD,EAAYL,OAAOjsF,KAAK5P,KAAK47F,2BAI7BT,EAAA38F,UAAAo6F,aAAR,WACI,IAAMD,EAAQ34F,KAAKo7F,QAAQrB,QAC3B,MAAwB,qBAAVpB,EAAwBP,GAAYO,GAG9CwC,EAAA38F,UAAAm9F,eAAR,SAAuBhD,GACnB34F,KAAKo7F,QAAQpB,QAAQrB,IAE7BwC,CAAA,CAjHA,GAmHagB,GAAmB,SAACxD,GAA6C,OAAe,KAAfA,EAAM7H,IAAI,EAC3EsL,GAAgB,SAACzD,GAA+C,OAAe,KAAfA,EAAM7H,IAAI,EAC1EuL,GAAe,SAAC1D,GAA+C,OAAe,KAAfA,EAAM7H,IAAI,EACzEwL,GAAgB,SAAC3D,GAA+C,OAAe,IAAfA,EAAM7H,IAAI,EAC1EyL,GAAmB,SAAC5D,EAAiBn7F,GAC9C,OAAA6+F,GAAa1D,IAAUA,EAAMn7F,QAAUA,CAAvC,EAESg/F,GAAgB,SAAC7D,GAA6B,OAAe,KAAfA,EAAM7H,IAAI,EACxD2L,GAA0B,SAAC9D,GACpC,OAAe,KAAfA,EAAM7H,MAAsD,IAAf6H,EAAM7H,IAAnD,EAES4L,GAAoB,SAAChE,GAC9B,IAAMiE,EAAqB,GACvBC,EAAkB,GAmBtB,OAlBAlE,EAAOtZ,SAAQ,SAACuZ,GACZ,GAAmB,IAAfA,EAAM7H,KAAgC,CACtC,GAAmB,IAAf8L,EAAI39F,OACJ,MAAM,IAAIyK,MAAM,oDAIpB,OAFAizF,EAAK/sF,KAAKgtF,QACVA,EAAM,IAIS,KAAfjE,EAAM7H,MACN8L,EAAIhtF,KAAK+oF,MAGbiE,EAAI39F,QACJ09F,EAAK/sF,KAAKgtF,GAGPD,CACX,EAEMX,GAAmB,SAACrD,EAAiB7H,GACvC,OAAa,KAATA,GAA8D,KAAf6H,EAAM7H,MAG5C,KAATA,GAA+D,KAAf6H,EAAM7H,MAI1C,IAATA,GAA4D,IAAf6H,EAAM7H,IAC9D,ECtLa+L,GAAW,SAAClE,GACrB,OAAe,KAAfA,EAAM7H,MAAkD,KAAf6H,EAAM7H,IAA/C,ECASgM,GAAqB,SAACnE,GAC/B,OAAe,KAAfA,EAAM7H,MAAuC+L,GAASlE,EAAtD,EACSoE,GAA6B,SAACrE,GACvC,OAAAA,EAAOz5F,OAAS,EAAI,CAACy5F,EAAO,GAAIA,EAAO,IAAM,CAACA,EAAO,GAArD,EACSsE,GAAgC,CACzClM,KAAM,GACNkK,OAAQ,EACRhC,MAAO7G,IAGE8K,GAAkC,CAC3CnM,KAAM,GACNkK,OAAQ,GACRhC,MAAO7G,IAGE+K,GAAoC,CAC7CpM,KAAM,GACNkK,OAAQ,IACRhC,MAAO7G,IAGEgL,GAA2B,SACpCC,EACA/U,EACAC,GAEO,IAAA/J,EAAQ6e,EAAK,GAAVhf,EAAKgf,EAAK,GACpB,MAAO,CAACC,GAAiB9e,EAAG8J,GAAQgV,GAA8B,qBAANjf,EAAoBA,EAAIG,EAAG+J,GAC3F,EACa+U,GAAmB,SAAC1E,EAAyBzrF,GACtD,GAAmB,KAAfyrF,EAAM7H,KACN,OAAQ6H,EAAMqC,OAAS,IAAO9tF,EAGlC,GAAIivF,GAAiBxD,GACjB,OAAQA,EAAMsC,MACV,IAAK,MACL,IAAK,KACD,OAAO,GAAKtC,EAAMqC,OAEtB,QACI,OAAOrC,EAAMqC,OAIzB,OAAOrC,EAAMqC,MACjB,EC9CMsC,GAAM,MACNC,GAAO,OACPC,GAAM,MACNC,GAAO,OAEAzlF,GAAiC,CAC1C5S,KAAM,QACNzC,MAAO,SAAC+6F,EAAmBlgG,GACvB,GAAmB,KAAfA,EAAMszF,KACN,OAAQtzF,EAAMy9F,MACV,KAAKqC,GACD,OAAQ7f,KAAKkgB,GAAKngG,EAAMw9F,OAAU,IACtC,KAAKuC,GACD,OAAQ9f,KAAKkgB,GAAK,IAAOngG,EAAMw9F,OACnC,KAAKwC,GACD,OAAOhgG,EAAMw9F,OACjB,KAAKyC,GACD,OAAiB,EAAVhgB,KAAKkgB,GAASngG,EAAMw9F,OAIvC,MAAM,IAAItxF,MAAM,4BAIXk0F,GAAU,SAACpgG,GACpB,OAAmB,KAAfA,EAAMszF,OACFtzF,EAAMy9F,OAASqC,IAAO9/F,EAAMy9F,OAASsC,IAAQ//F,EAAMy9F,OAASuC,IAAOhgG,EAAMy9F,OAASwC,GAK9F,EAEaI,GAAiB,SAACnF,GAM3B,OALqBA,EAChB/xF,OAAO01F,IACPjqF,KAAI,SAAC0rF,GAAU,OAAAA,EAAMtgG,KAAK,IAC1BgS,KAAK,MAGN,IAAK,kBACL,IAAK,kBACL,IAAK,WACL,IAAK,WACD,MAAO,CAACwtF,GAAaA,IACzB,IAAK,SACL,IAAK,SACD,OAAOnxE,GAAI,GACf,IAAK,iBACL,IAAK,iBACL,IAAK,YACL,IAAK,YACD,MAAO,CAACmxE,GAAaE,IACzB,IAAK,WACL,IAAK,OACD,OAAOrxE,GAAI,IACf,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,eACD,MAAO,CAACqxE,GAAiBA,IAC7B,IAAK,YACL,IAAK,MACD,OAAOrxE,GAAI,KACf,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,cACD,MAAO,CAACqxE,GAAiBF,IAC7B,IAAK,UACL,IAAK,QACD,OAAOnxE,GAAI,KAGnB,OAAO,CACX,EAEaA,GAAM,SAACA,GAAwB,OAAC4xD,KAAKkgB,GAAK9xE,EAAO,GAAG,EC7EpDkyE,GAAgC,CACzC34F,KAAM,QACNzC,MAAO,SAAC6lF,EAAkBhrF,GACtB,GAAmB,KAAfA,EAAMszF,KAA6B,CACnC,IAAMkN,EAAgBC,GAA0BzgG,EAAM4H,MACtD,GAA6B,qBAAlB44F,EACP,MAAM,IAAIt0F,MAAM,sDAAsDlM,EAAM4H,KAAI,KAEpF,OAAO44F,EAAcxV,EAAShrF,EAAMq+F,QAGxC,GAAmB,IAAfr+F,EAAMszF,KAA+B,CACrC,GAA2B,IAAvBtzF,EAAMA,MAAMyB,OAAc,CAC1B,IAAMohF,EAAI7iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BwrE,EAAI5iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BupE,EAAI3gF,EAAMA,MAAMoX,UAAU,EAAG,GACnC,OAAOszE,GAAKvL,SAAS0D,EAAIA,EAAG,IAAK1D,SAASyD,EAAIA,EAAG,IAAKzD,SAASwB,EAAIA,EAAG,IAAK,GAG/E,GAA2B,IAAvB3gF,EAAMA,MAAMyB,OAAc,CACpBohF,EAAI7iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BwrE,EAAI5iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BupE,EAAI3gF,EAAMA,MAAMoX,UAAU,EAAG,GAFnC,IAGMsmE,EAAI19E,EAAMA,MAAMoX,UAAU,EAAG,GACnC,OAAOszE,GAAKvL,SAAS0D,EAAIA,EAAG,IAAK1D,SAASyD,EAAIA,EAAG,IAAKzD,SAASwB,EAAIA,EAAG,IAAKxB,SAASzB,EAAIA,EAAG,IAAM,KAGrG,GAA2B,IAAvB19E,EAAMA,MAAMyB,OAIZ,OAHMohF,EAAI7iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BwrE,EAAI5iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BupE,EAAI3gF,EAAMA,MAAMoX,UAAU,EAAG,GAC5BszE,GAAKvL,SAAS0D,EAAG,IAAK1D,SAASyD,EAAG,IAAKzD,SAASwB,EAAG,IAAK,GAGnE,GAA2B,IAAvB3gF,EAAMA,MAAMyB,OAKZ,OAJMohF,EAAI7iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BwrE,EAAI5iF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BupE,EAAI3gF,EAAMA,MAAMoX,UAAU,EAAG,GAC7BsmE,EAAI19E,EAAMA,MAAMoX,UAAU,EAAG,GAC5BszE,GAAKvL,SAAS0D,EAAG,IAAK1D,SAASyD,EAAG,IAAKzD,SAASwB,EAAG,IAAKxB,SAASzB,EAAG,IAAM,KAIzF,GAAmB,KAAf19E,EAAMszF,KAAgC,CACtC,IAAMoN,EAAaC,GAAO3gG,EAAMA,MAAMuoF,eACtC,GAA0B,qBAAfmY,EACP,OAAOA,EAIf,OAAOC,GAAOC,cAITC,GAAgB,SAACC,GAA0B,OAAmB,KAAlB,IAAOA,EAAY,EAE/DC,GAAW,SAACD,GACrB,IAAMnnF,EAAQ,IAAOmnF,EACfE,EAAO,IAAQF,GAAS,EACxBG,EAAQ,IAAQH,GAAS,GACzBI,EAAM,IAAQJ,GAAS,GAC7B,OAAOnnF,EAAQ,IAAM,QAAQunF,EAAG,IAAID,EAAK,IAAID,EAAI,IAAIrnF,EAAQ,IAAG,IAAM,OAAOunF,EAAG,IAAID,EAAK,IAAID,EAAI,GACrG,EAEatW,GAAO,SAAC7H,EAAWD,EAAWjC,EAAWjD,GAClD,OAAEmF,GAAK,GAAOD,GAAK,GAAOjC,GAAK,EAAMV,KAAKkhB,MAAU,IAAJzjB,MAAoB,CAApE,EAEE0jB,GAAqB,SAACjG,EAAiB35F,GACzC,GAAmB,KAAf25F,EAAM7H,KACN,OAAO6H,EAAMqC,OAGjB,GAAmB,KAAfrC,EAAM7H,KAAqC,CAC3C,IAAMpT,EAAY,IAAN1+E,EAAU,EAAI,IAC1B,OAAa,IAANA,EAAW25F,EAAMqC,OAAS,IAAOtd,EAAMD,KAAKkhB,MAAOhG,EAAMqC,OAAS,IAAOtd,GAGpF,OAAO,CACX,EAEMmhB,GAAM,SAACnB,EAAmBf,GAC5B,IAAMjE,EAASiE,EAAKh2F,OAAO81F,IAE3B,GAAsB,IAAlB/D,EAAOz5F,OAAc,CACf,IAAAuyF,EAAYkH,EAAOtmF,IAAIwsF,IAAtBve,EAACmR,EAAA,GAAEpR,EAACoR,EAAA,GAAErT,EAACqT,EAAA,GACd,OAAOtJ,GAAK7H,EAAGD,EAAGjC,EAAG,GAGzB,GAAsB,IAAlBua,EAAOz5F,OAAc,CACf,IAAA6/F,EAAepG,EAAOtmF,IAAIwsF,IAAhB1jB,GAATmF,EAACye,EAAA,GAAE1e,EAAC0e,EAAA,GAAE3gB,EAAC2gB,EAAA,GAAGA,EAAA,IACjB,OAAO5W,GAAK7H,EAAGD,EAAGjC,EAAGjD,GAGzB,OAAO,CACX,EAEA,SAAS6jB,GAAQC,EAAYC,EAAYC,GAQrC,OAPIA,EAAM,IACNA,GAAO,GAEPA,GAAO,IACPA,GAAO,GAGPA,EAAM,EAAI,GACFD,EAAKD,GAAME,EAAM,EAAIF,EACtBE,EAAM,GACND,EACAC,EAAM,EAAI,EACE,GAAXD,EAAKD,IAAW,EAAI,EAAIE,GAAOF,EAEhCA,CAEf,CAEA,IAAMG,GAAM,SAAC3W,EAAkBmU,GAC3B,IAAMjE,EAASiE,EAAKh2F,OAAO81F,IACpByC,EAAqCxG,EAAM,GAAtC0G,EAAgC1G,EAAM,GAA1B2G,EAAoB3G,EAAM,GAAfvhF,EAASuhF,EAAM,GAE5Cra,GAAkB,KAAb6gB,EAAIpO,KAAkCjlE,GAAIqzE,EAAIlE,QAAUhjF,GAAMrV,MAAM6lF,EAAS0W,KAAmB,EAAVzhB,KAAKkgB,IAChG/iB,EAAIkiB,GAAmBsC,GAAcA,EAAWpE,OAAS,IAAM,EAC/Dv6F,EAAIq8F,GAAmBuC,GAAaA,EAAUrE,OAAS,IAAM,EAC7D9f,EAAqB,qBAAV/jE,GAAyB2lF,GAAmB3lF,GAASkmF,GAAiBlmF,EAAO,GAAK,EAEnG,GAAU,IAANyjE,EACA,OAAOsN,GAAS,IAAJznF,EAAa,IAAJA,EAAa,IAAJA,EAAS,GAG3C,IAAMw+F,EAAKx+F,GAAK,GAAMA,GAAKm6E,EAAI,GAAKn6E,EAAIm6E,EAAIn6E,EAAIm6E,EAE1CokB,EAAS,EAAJv+F,EAAQw+F,EACb5e,EAAI0e,GAAQC,EAAIC,EAAI5gB,EAAI,EAAI,GAC5B+B,EAAI2e,GAAQC,EAAIC,EAAI5gB,GACpBF,EAAI4gB,GAAQC,EAAIC,EAAI5gB,EAAI,EAAI,GAClC,OAAO6J,GAAS,IAAJ7H,EAAa,IAAJD,EAAa,IAAJjC,EAASjD,EAC3C,EAEM+iB,GAEF,CACAkB,IAAKA,GACLG,KAAMH,GACNN,IAAKA,GACLU,KAAMV,IAGGW,GAAa,SAAChX,EAAkBhrF,GACzC,OAAAugG,GAAMp7F,MAAM6lF,EAAS2S,GAAO7U,OAAO9oF,GAAO+9F,sBAA1C,EAES4C,GAAiC,CAC1CsB,UAAW,WACXC,aAAc,WACdC,KAAM,SACNC,WAAY,WACZC,MAAO,WACPC,MAAO,WACPC,OAAQ,WACRC,MAAO,IACPC,eAAgB,WAChBC,KAAM,MACNC,WAAY,WACZC,MAAO,WACPC,UAAW,WACXC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,MAAO,WACPC,eAAgB,WAChBC,SAAU,WACVC,QAAS,WACTC,KAAM,SACNC,SAAU,MACVC,SAAU,QACVC,cAAe,WACfC,SAAU,WACVC,UAAW,QACXC,SAAU,WACVC,UAAW,WACXC,YAAa,WACbC,eAAgB,WAChBC,WAAY,WACZC,WAAY,WACZC,QAAS,WACTC,WAAY,WACZC,aAAc,WACdC,cAAe,WACfC,cAAe,UACfC,cAAe,UACfC,cAAe,SACfC,WAAY,WACZC,SAAU,WACVC,YAAa,SACbC,QAAS,WACTC,QAAS,WACTC,WAAY,UACZC,UAAW,WACXC,YAAa,WACbC,YAAa,UACbC,QAAS,WACTC,UAAW,WACXC,WAAY,WACZC,KAAM,WACNC,UAAW,WACXC,KAAM,WACNC,MAAO,QACPC,YAAa,WACbC,KAAM,WACNC,SAAU,WACVC,QAAS,WACTC,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,SAAU,WACVC,cAAe,WACfC,UAAW,WACXC,aAAc,WACdC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,qBAAsB,WACtBC,UAAW,WACXC,WAAY,WACZC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,cAAe,UACfC,aAAc,WACdC,eAAgB,WAChBC,eAAgB,WAChBC,eAAgB,WAChBC,YAAa,WACbC,KAAM,SACNC,UAAW,UACXC,MAAO,WACPC,QAAS,WACTC,OAAQ,WACRC,iBAAkB,WAClBC,WAAY,MACZC,aAAc,WACdC,aAAc,WACdC,eAAgB,WAChBC,gBAAiB,WACjBC,kBAAmB,SACnBC,gBAAiB,WACjBC,gBAAiB,WACjBC,aAAc,UACdC,UAAW,WACXC,UAAW,WACXC,SAAU,WACVC,YAAa,WACbC,KAAM,MACNC,QAAS,WACTC,MAAO,WACPC,UAAW,WACXC,OAAQ,WACRC,UAAW,WACXC,OAAQ,WACRC,cAAe,WACfC,UAAW,WACXC,cAAe,WACfC,cAAe,WACfC,WAAY,WACZC,UAAW,WACXC,KAAM,WACNC,KAAM,WACNC,KAAM,WACNC,WAAY,WACZC,OAAQ,WACRC,cAAe,WACfC,IAAK,WACLC,UAAW,WACXC,UAAW,WACXC,YAAa,WACbC,OAAQ,WACRC,WAAY,WACZC,SAAU,UACVC,SAAU,WACVC,OAAQ,WACRC,OAAQ,WACRC,QAAS,WACTC,UAAW,WACXC,UAAW,WACXC,UAAW,WACXC,KAAM,WACNC,YAAa,SACbC,UAAW,WACXC,IAAK,WACLC,KAAM,QACNC,QAAS,WACTC,OAAQ,WACRjK,YAAa,EACbkK,UAAW,WACXC,OAAQ,WACRC,MAAO,WACPC,MAAO,WACPC,WAAY,WACZC,OAAQ,WACRC,YAAa,YCvSJC,GAA0D,CACnEzjG,KAAM,kBACNgnF,aAAc,aACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EAAOtmF,KAAI,SAACumF,GACf,GAAI0D,GAAa1D,GACb,OAAQA,EAAMn7F,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OCxBNsrG,GAAgD,CACzD1jG,KAAM,mBACNgnF,aAAc,cACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,SCMCC,GAAiB,SAACxgB,EAAkBmU,GAC7C,IAAM2B,EAAQP,GAAUp7F,MAAM6lF,EAASmU,EAAK,IACtCsM,EAAOtM,EAAK,GAClB,OAAOsM,GAAQnM,GAAmBmM,GAAQ,CAAC3K,MAAKA,EAAE2K,KAAIA,GAAI,CAAC3K,MAAKA,EAAE2K,KAAM,KAC5E,EAEaC,GAAoB,SAACC,EAAuCC,GACrE,IAAMC,EAAQF,EAAM,GACdG,EAAOH,EAAMA,EAAMlqG,OAAS,GACf,OAAfoqG,EAAMJ,OACNI,EAAMJ,KAAOjM,IAGC,OAAdsM,EAAKL,OACLK,EAAKL,KAAO/L,IAKhB,IAFA,IAAMqM,EAAkC,GACpCn9F,EAAW,EACNpN,EAAI,EAAGA,EAAImqG,EAAMlqG,OAAQD,IAAK,CACnC,IAAMwqG,EAAOL,EAAMnqG,GAAGiqG,KACtB,GAAa,OAATO,EAAe,CACf,IAAMC,EAAgBpM,GAAiBmM,EAAMJ,GACzCK,EAAgBr9F,EAChBm9F,EAAa35F,KAAK65F,GAElBF,EAAa35F,KAAKxD,GAEtBA,EAAWq9F,OAEXF,EAAa35F,KAAK,MAI1B,IAAI85F,EAAW,KACf,IAAS1qG,EAAI,EAAGA,EAAIuqG,EAAatqG,OAAQD,IAAK,CAC1C,IAAM2qG,EAAOJ,EAAavqG,GAC1B,GAAa,OAAT2qG,EACiB,OAAbD,IACAA,EAAW1qG,QAEZ,GAAiB,OAAb0qG,EAAmB,CAI1B,IAHA,IAAME,EAAY5qG,EAAI0qG,EAEhBG,GAAYF,EADAJ,EAAaG,EAAW,KACHE,EAAY,GAC1CxpB,EAAI,EAAGA,GAAKwpB,EAAWxpB,IAC5BmpB,EAAaG,EAAWtpB,EAAI,GAAKypB,EAAWzpB,EAEhDspB,EAAW,MAInB,OAAOP,EAAM/2F,KAAI,SAACo/E,EAASxyF,GACvB,MAAO,CAACs/F,MADY9M,EAAA8M,MACL2K,KAAMxrB,KAAKC,IAAID,KAAKyD,IAAI,EAAIqoB,EAAavqG,GAAgBoqG,GAAa,MAE7F,EAEMU,GAAqB,SAACC,EAAwB1hB,EAAeC,GAC/D,IAAM0hB,EAAU3hB,EAAQ,EAClB4hB,EAAU3hB,EAAS,EACnB/J,EAAI8e,GAAiB0M,EAAO,GAAI1hB,GAAS2hB,EACzC5rB,EAAI6rB,EAAU5M,GAAiB0M,EAAO,GAAIzhB,GAEhD,OAAQ7K,KAAKysB,MAAM9rB,EAAGG,GAAe,EAAVd,KAAKkgB,KAAqB,EAAVlgB,KAAKkgB,GACpD,EAEawM,GAA6B,SACtCnyF,EACAqwE,EACAC,GAEA,IAAM8hB,EAA0B,kBAAVpyF,EAAqBA,EAAQ8xF,GAAmB9xF,EAAOqwE,EAAOC,GAE9E8gB,EAAa3rB,KAAK4sB,IAAIhiB,EAAQ5K,KAAK6sB,IAAIF,IAAW3sB,KAAK4sB,IAAI/hB,EAAS7K,KAAK8sB,IAAIH,IAE7EI,EAAYniB,EAAQ,EACpBoiB,EAAaniB,EAAS,EACtBoiB,EAAiBtB,EAAa,EAE9BuB,EAAQltB,KAAK6sB,IAAIF,EAAS3sB,KAAKkgB,GAAK,GAAK+M,EACzCE,EAAQntB,KAAK8sB,IAAIH,EAAS3sB,KAAKkgB,GAAK,GAAK+M,EAE/C,MAAO,CAACtB,EAAYoB,EAAYI,EAAOJ,EAAYI,EAAOH,EAAaE,EAAOF,EAAaE,EAC/F,EAEME,GAAW,SAAC3vB,EAAWiD,GAAsB,OAAAV,KAAKqtB,KAAK5vB,EAAIA,EAAIiD,EAAIA,EAAE,EAErE4sB,GAAa,SAAC1iB,EAAeC,EAAgB/J,EAAWH,EAAW4sB,GAQrE,MAPgB,CACZ,CAAC,EAAG,GACJ,CAAC,EAAG1iB,GACJ,CAACD,EAAO,GACR,CAACA,EAAOC,IAGGxhF,QACX,SAACmkG,EAAMlB,GACI,IAAAmB,EAAUnB,EAAM,GAAZoB,EAAMpB,EAAM,GACjB7rB,EAAI2sB,GAAStsB,EAAI2sB,EAAI9sB,EAAI+sB,GAC/B,OAAIH,EAAU9sB,EAAI+sB,EAAKG,gBAAkBltB,EAAI+sB,EAAKG,iBACvC,CACHC,cAAetB,EACfqB,gBAAiBltB,GAIlB+sB,IAEX,CACIG,gBAAiBJ,EAAUM,KAAW,IACtCD,cAAe,OAErBA,aACN,EAEaE,GAAkB,SAC3BC,EACAjtB,EACAH,EACAiK,EACAC,GAEA,IAAI5tB,EAAK,EACL+wC,EAAK,EAET,OAAQD,EAASE,MACb,KAAK,EAGsB,IAAnBF,EAASG,MACTjxC,EAAK+wC,EAAKhuB,KAAKyD,IAAIzD,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,GAAQ5K,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,IACrD,IAAnBkjB,EAASG,QAChBjxC,EAAK+iB,KAAKyD,IAAIzD,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,IACxCojB,EAAKhuB,KAAKyD,IAAIzD,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,KAE5C,MAEJ,KAAK,EAGD,GAAuB,IAAnBkjB,EAASG,MACTjxC,EAAK+wC,EAAKhuB,KAAKyD,IACX2pB,GAAStsB,EAAGH,GACZysB,GAAStsB,EAAGH,EAAIkK,GAChBuiB,GAAStsB,EAAI8J,EAAOjK,GACpBysB,GAAStsB,EAAI8J,EAAOjK,EAAIkK,SAEzB,GAAuB,IAAnBkjB,EAASG,MAAkC,CAElD,IAAMrgG,EAAImyE,KAAKyD,IAAIzD,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,IAAW7K,KAAKyD,IAAIzD,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,IACrFmJ,EAAWuZ,GAAW1iB,EAAOC,EAAQ/J,EAAGH,GAAG,GAA1C8sB,EAAE1Z,EAAA,GAAE2Z,EAAE3Z,EAAA,GAEbia,EAAKngG,GADLovD,EAAKmwC,GAASK,EAAK3sB,GAAI4sB,EAAK/sB,GAAK9yE,IAGrC,MAEJ,KAAK,EAEsB,IAAnBkgG,EAASG,MACTjxC,EAAK+wC,EAAKhuB,KAAKC,IAAID,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,GAAQ5K,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,IACrD,IAAnBkjB,EAASG,QAChBjxC,EAAK+iB,KAAKC,IAAID,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,IACxCojB,EAAKhuB,KAAKC,IAAID,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,KAE5C,MAEJ,KAAK,EAGD,GAAuB,IAAnBkjB,EAASG,MACTjxC,EAAK+wC,EAAKhuB,KAAKC,IACXmtB,GAAStsB,EAAGH,GACZysB,GAAStsB,EAAGH,EAAIkK,GAChBuiB,GAAStsB,EAAI8J,EAAOjK,GACpBysB,GAAStsB,EAAI8J,EAAOjK,EAAIkK,SAEzB,GAAuB,IAAnBkjB,EAASG,MAAkC,CAE5CrgG,EAAImyE,KAAKC,IAAID,KAAK4sB,IAAIjsB,GAAIX,KAAK4sB,IAAIjsB,EAAIkK,IAAW7K,KAAKC,IAAID,KAAK4sB,IAAI9rB,GAAId,KAAK4sB,IAAI9rB,EAAI8J,IAA3F,IACMyW,EAAWiM,GAAW1iB,EAAOC,EAAQ/J,EAAGH,GAAG,GAA1C8sB,EAAEpM,EAAA,GAAEqM,EAAErM,EAAA,GAEb2M,EAAKngG,GADLovD,EAAKmwC,GAASK,EAAK3sB,GAAI4sB,EAAK/sB,GAAK9yE,KAW7C,OALIvM,MAAM8rF,QAAQ2gB,EAASE,QACvBhxC,EAAK2iC,GAAiBmO,EAASE,KAAK,GAAIrjB,GACxCojB,EAA8B,IAAzBD,EAASE,KAAKzsG,OAAeo+F,GAAiBmO,EAASE,KAAK,GAAIpjB,GAAU5tB,GAG5E,CAACA,EAAI+wC,EAChB,ECtMaG,GAAuB,SAACpjB,EAAkBkQ,GACnD,IAAImT,EAAiChgF,GAAI,KACnCs9E,EAAwC,GAoB9C,OAlBAzM,GAAkBhE,GAAQtZ,SAAQ,SAACwd,EAAK59F,GACpC,GAAU,IAANA,EAAS,CACT,IAAM8sG,EAAalP,EAAI,GACvB,GACwB,KAApBkP,EAAWhb,OACuD,IAAlE,CAAC,MAAO,OAAQ,QAAS,UAAU/jF,QAAQ++F,EAAWtuG,OAGtD,YADAquG,EAAQhO,GAAejB,IAEpB,GAAIgB,GAAQkO,GAEf,YADAD,GAAS7zF,GAAUrV,MAAM6lF,EAASsjB,GAAcjgF,GAAI,MAAQA,GAAI,MAIxE,IAAMkgF,EAAY/C,GAAexgB,EAASoU,GAC1CuM,EAAMv5F,KAAKm8F,MAGR,CACH/zF,MAAK6zF,EACL1C,MAAKA,EACLrY,KAAM,EAEd,ECrBakb,GAAe,eACfC,GAAgB,gBAChBC,GAAiB,iBACjBC,GAAkB,kBAClBC,GAAS,SACTC,GAAU,UACVC,GAAQ,QACRC,GAAU,UCIVC,GAAuB,SAAChkB,EAAkBkQ,GACnD,IAAIiT,EAAK,EACLD,EAAI,EACFvC,EAAwC,GACxC/oG,EAA+B,GAsErC,OApEAs8F,GAAkBhE,GAAQtZ,SAAQ,SAACwd,EAAK59F,GACpC,IAAIytG,GAAc,EA6DlB,GA5DU,IAANztG,EACAytG,EAAc7P,EAAI91F,QAAO,SAAC4lG,EAAK/T,GAC3B,GAAI0D,GAAa1D,GACb,OAAQA,EAAMn7F,OACV,IAAK,SAED,OADA4C,EAASwP,KAAKqtF,KACP,EACX,IAAK,MACL,IAAK,OAED,OADA78F,EAASwP,KAAKotF,KACP,EACX,IAAK,QACL,IAAK,SAED,OADA58F,EAASwP,KAAKstF,KACP,OAEZ,GAAIJ,GAAmBnE,IAAUkE,GAASlE,GAE7C,OADAv4F,EAASwP,KAAK+oF,IACP,EAGX,OAAO+T,IACRD,GACU,IAANztG,IACPytG,EAAc7P,EAAI91F,QAAO,SAAC4lG,EAAK/T,GAC3B,GAAI0D,GAAa1D,GACb,OAAQA,EAAMn7F,OACV,KAAK4uG,GAED,OADAT,EAAQ,GACD,EACX,KAAKU,GAED,OADAV,EAAQ,GACD,EACX,KAAKY,GACL,KAAKP,GAED,OADAN,EAAO,GACA,EACX,KAAKO,GAED,OADAP,EAAO,GACA,EACX,KAAKQ,GAED,OADAR,EAAO,GACA,EACX,KAAKY,GACL,KAAKH,GAED,OADAT,EAAO,GACA,OAEZ,GAAI7O,GAASlE,IAAUmE,GAAmBnE,GAK7C,OAJK55F,MAAM8rF,QAAQ6gB,KACfA,EAAO,IAEXA,EAAK97F,KAAK+oF,IACH,EAGX,OAAO+T,IACRD,IAGHA,EAAa,CACb,IAAMV,EAAY/C,GAAexgB,EAASoU,GAC1CuM,EAAMv5F,KAAKm8F,OAIZ,CAACL,KAAIA,EAAEC,MAAKA,EAAExC,MAAKA,EAAE/oG,SAAQA,EAAE0wF,KAAM,EAChD,ECjFa6b,GAAmB,SAACC,GAC7B,OAA2B,IAApBA,EAAW9b,IACtB,EAEa+b,GAAmB,SAACD,GAC7B,OAA2B,IAApBA,EAAW9b,IACtB,EAuDa9tD,GAAoC,CAC7C59B,KAAM,QACNzC,MAAO,SAAC6lF,EAAkBhrF,GACtB,GAAmB,KAAfA,EAAMszF,KAA8B,CACpC,IAAMgc,EAAqB,CAACC,IAAKvvG,EAAMA,MAAOszF,KAAM,GAEpD,OADAtI,EAAQwkB,MAAMC,SAASzvG,EAAMA,OACtBsvG,EAGX,GAAmB,KAAftvG,EAAMszF,KAA6B,CACnC,IAAMoc,EAAgBC,GAA0B3vG,EAAM4H,MACtD,GAA6B,qBAAlB8nG,EACP,MAAM,IAAIxjG,MAAM,sDAAsDlM,EAAM4H,KAAI,KAEpF,OAAO8nG,EAAc1kB,EAAShrF,EAAMq+F,QAGxC,MAAM,IAAInyF,MAAM,0BAA0BlM,EAAMszF,iBAIxCsc,GAAiB5vG,GAC7B,QACqB,KAAfA,EAAMszF,MAAkD,SAAhBtzF,EAAMA,SAChC,KAAfA,EAAMszF,QAAiCqc,GAA0B3vG,EAAM4H,MAEhF,CAEA,ICrGYioG,GDqGNF,GAA+F,CACjG,kBErG0B,SAAC3kB,EAAkBkQ,GAC7C,IAAImT,EAAiChgF,GAAI,KACnCs9E,EAAwC,GAiB9C,OAfAzM,GAAkBhE,GAAQtZ,SAAQ,SAACwd,EAAK59F,GACpC,GAAU,IAANA,EAAS,CACT,IAAM8sG,EAAalP,EAAI,GACvB,GAAwB,KAApBkP,EAAWhb,MAAuD,OAArBgb,EAAWtuG,MAExD,YADAquG,EAAQhO,GAAejB,IAEpB,GAAIgB,GAAQkO,GAEf,YADAD,EAAQ7zF,GAAUrV,MAAM6lF,EAASsjB,IAIzC,IAAMC,EAAY/C,GAAexgB,EAASoU,GAC1CuM,EAAMv5F,KAAKm8F,MAGR,CAAC/zF,MAAK6zF,EAAE1C,MAAKA,EAAErY,KAAM,EAChC,EFkFI,uBAAwB8a,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,kBF3F0B,SAACpjB,EAAkBkQ,GAC7C,IAAIiT,EAAK,EACLD,EAAI,EACFvC,EAAwC,GACxC/oG,EAA+B,GAmErC,OAlEAs8F,GAAkBhE,GAAQtZ,SAAQ,SAACwd,EAAK59F,GACpC,IAAIytG,GAAc,EAClB,GAAU,IAANztG,EAAS,CACT,IAAIsuG,GAAe,EACnBb,EAAc7P,EAAI91F,QAAO,SAAC4lG,EAAK/T,GAC3B,GAAI2U,EACA,GAAIjR,GAAa1D,GACb,OAAQA,EAAMn7F,OACV,IAAK,SAED,OADA4C,EAASwP,KAAKqtF,IACPyP,EACX,IAAK,MACL,IAAK,OAED,OADAtsG,EAASwP,KAAKotF,IACP0P,EACX,IAAK,QACL,IAAK,SAED,OADAtsG,EAASwP,KAAKstF,IACPwP,OAER5P,GAAmBnE,IAAUkE,GAASlE,KAC7Cv4F,EAASwP,KAAK+oF,QAEf,GAAI0D,GAAa1D,GACpB,OAAQA,EAAMn7F,OACV,KAAK4uG,GAED,OADAT,EAAQ,GACD,EACX,KAAKU,GAED,OADAV,EAAQ,GACD,EACX,IAAK,KAED,OADA2B,GAAe,GACR,EACX,KAAKtB,GAED,OADAN,EAAO,GACA,EACX,KAAKY,GACL,KAAKL,GAED,OADAP,EAAO,GACA,EACX,KAAKa,GACL,KAAKL,GAED,OADAR,EAAO,GACA,EACX,KAAKS,GAED,OADAT,EAAO,GACA,OAEZ,GAAI7O,GAASlE,IAAUmE,GAAmBnE,GAK7C,OAJK55F,MAAM8rF,QAAQ6gB,KACfA,EAAO,IAEXA,EAAK97F,KAAK+oF,IACH,EAEX,OAAO+T,IACRD,GAGP,GAAIA,EAAa,CACb,IAAMV,EAAY/C,GAAexgB,EAASoU,GAC1CuM,EAAMv5F,KAAKm8F,OAIZ,CAACL,KAAIA,EAAEC,MAAKA,EAAExC,MAAKA,EAAE/oG,SAAQA,EAAE0wF,KAAM,EAChD,EEoBI,uBAAwB0b,GACxB,sBAAuBA,GACvB,qBAAsBA,GACtB,0BAA2BA,GAC3B,mBGtG0B,SAC1BhkB,EACAkQ,GAEA,IAAM1gF,EAAQ6T,GAAI,KACZs9E,EAAwC,GAC1CrY,EAAO,EACL6a,EAAK,EACLD,EAAI,EACJtrG,EAA+B,GAoCrC,OAnCAs8F,GAAkBhE,GAAQtZ,SAAQ,SAACwd,EAAK59F,GACpC,IAAM8sG,EAAalP,EAAI,GACvB,GAAU,IAAN59F,EAAS,CACT,GAAIq9F,GAAayP,IAAoC,WAArBA,EAAWtuG,MAEvC,YADAszF,EAAO,GAEJ,GAAIuL,GAAayP,IAAoC,WAArBA,EAAWtuG,MAE9C,YADAszF,EAAO,GAKf,GAAwB,KAApBgb,EAAWhb,KACX,GAAwB,SAApBgb,EAAW1mG,KAAiB,CAC5B,IAAMk5F,EAAQP,GAAUp7F,MAAM6lF,EAASsjB,EAAWjQ,OAAO,IACzDsN,EAAMv5F,KAAK,CAACq5F,KAAMjM,GAAasB,MAAKA,SACjC,GAAwB,OAApBwN,EAAW1mG,KACZk5F,EAAQP,GAAUp7F,MAAM6lF,EAASsjB,EAAWjQ,OAAO,IACzDsN,EAAMv5F,KAAK,CAACq5F,KAAM/L,GAAiBoB,MAAKA,SACrC,GAAwB,eAApBwN,EAAW1mG,KAAuB,CACzC,IAAMy2F,EAASiQ,EAAWjQ,OAAOl1F,OAAO81F,IACxC,GAAsB,IAAlBZ,EAAO58F,OAAc,CACfq/F,EAAQP,GAAUp7F,MAAM6lF,EAASqT,EAAO,IAA9C,IACM2N,EAAO3N,EAAO,GAChBO,GAAcoN,IACdL,EAAMv5F,KAAK,CACPq5F,KAAM,CAACnY,KAAM,GAA4BkK,OAAsB,IAAdwO,EAAKxO,OAAchC,MAAOwQ,EAAKxQ,OAChFsF,MAAKA,SAQb,IAATxN,EACD,CACI94E,OAAQA,EAAQ6T,GAAI,MAAQA,GAAI,KAChCs9E,MAAKA,EACLrY,KAAIA,GAER,CAAC4a,KAAIA,EAAEC,MAAKA,EAAExC,MAAKA,EAAE/oG,SAAQA,EAAE0wF,KAAIA,EAC7C,GC9Dayc,GAAwD,CACjEnoG,KAAM,mBACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC6lF,EAAkBkQ,GACtB,GAAsB,IAAlBA,EAAOz5F,OACP,MAAO,GAGX,IAAMoqG,EAAQ3Q,EAAO,GAErB,OAAmB,KAAf2Q,EAAMvY,MAAkD,SAAhBuY,EAAM7rG,MACvC,GAGJk7F,EACF/xF,QAAO,SAACnJ,GAAU,OAAAi/F,GAAwBj/F,IAAU4vG,GAAiB5vG,EAAM,IAC3E4U,KAAI,SAAC5U,GAAU,OAAAwlC,GAAMrgC,MAAM6lF,EAAShrF,EAAM,MCZ1CgwG,GAA8D,CACvEpoG,KAAM,oBACNgnF,aAAc,aACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EAAOtmF,KAAI,SAACumF,GACf,GAAI0D,GAAa1D,GACb,OAAQA,EAAMn7F,OACV,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EAGnB,OAAO,OCnBNiwG,GAAkE,CAC3EroG,KAAM,sBACNgnF,aAAc,QACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOgE,GAAkBhE,GACpBtmF,KAAI,SAACypF,GAAuB,OAAAA,EAAOl1F,OAAOm2F,GAAmB,IAC7D1qF,IAAI2qF,MCJJ2Q,GAA8D,CACvEtoG,KAAM,oBACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOgE,GAAkBhE,GACpBtmF,KAAI,SAACypF,GACF,OAAAA,EACKl1F,OAAO01F,IACPjqF,KAAI,SAACumF,GAAU,OAAAA,EAAMn7F,KAAK,IAC1BgS,KAAK,QAEb4C,IAAIu7F,MAIXA,GAAwB,SAACnwG,GAC3B,OAAQA,GACJ,IAAK,YACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EACX,IAAK,WACL,IAAK,mBACD,OAAO,EAEX,QACI,OAAO,EAEnB,GNrCA,SAAY6vG,GACRA,EAAA,YACAA,EAAA,kBACAA,EAAA,aACH,CAJD,CAAYA,KAAAA,GAAe,KASpB,IObKO,GPaCC,GAA0D,CACnEzoG,KAAM,kBACNgnF,aAAc,IACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOgE,GAAkBhE,GAAQtmF,KAAI,SAACypF,GAAW,OAAAA,EAAOl1F,OAAOmnG,GAA0B,MAI3FA,GAA4B,SAACtwG,GAC/B,OAAA6+F,GAAa7+F,IAAUs/F,GAAmBt/F,EAA1C,EQzBEuwG,GAAqB,SAACC,GAA+C,MAAC,CACxE5oG,KAAM,UAAU4oG,EAAI,SACpB5hB,aAAc,cACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,QACX,EAEYkF,GAA+CF,GAAmB,OAClEG,GAAiDH,GAAmB,SACpEI,GAAkDJ,GAAmB,UACrEK,GAAgDL,GAAmB,QCN1EM,GAAsB,SAACL,GAAwD,MAAC,CAClF5oG,KAAM,iBAAiB4oG,EACvB5hB,aAAc,MACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAAqE,GAA2BrE,EAAO/xF,OAAOm2F,MAChD,EAEYwR,GAA6DD,GAAoB,YACjFE,GAA8DF,GAAoB,aAClFG,GAAiEH,GAAoB,gBACrFI,GAAgEJ,GAAoB,eCR3FK,GAAqB,SAACV,GAA8D,MAAC,CACvF5oG,KAAM,UAAU4oG,EAAI,SACpB5hB,aAAc,QACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBiR,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EAEf,OAAO,GAEd,EAEYC,GAA8DF,GAAmB,OACjFG,GAAgEH,GAAmB,SACnFI,GAAiEJ,GAAmB,UACpFK,GAA+DL,GAAmB,QC9BzFM,GAAqB,SAAChB,GAAmD,MAAC,CAC5E5oG,KAAM,UAAU4oG,EAAI,SACpB5hB,aAAc,IACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmB/E,GACvB,OAAIwD,GAAiBxD,GACVA,EAAMqC,OAEV,GAEd,EAEYiU,GAAmDD,GAAmB,OACtEE,GAAqDF,GAAmB,SACxEG,GAAsDH,GAAmB,UACzEI,GAAoDJ,GAAmB,QCjBvE1Q,GAAsC,CAC/Cl5F,KAAM,QACNgnF,aAAc,cACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,SCCCsG,GAAsD,CAC/DjqG,KAAM,YACNgnF,aAAc,MACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB2R,GACvB,MACS,QADDA,EAEO,EAGA,ICmBVC,GAA4C,CACrDlqG,KAAM,UACNgnF,aAAc,eACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EAAO/xF,OAAO01F,IAAcv1F,QAAO,SAACyoG,EAAK5W,GAC5C,OAAO4W,EAAMC,GAAkB7W,EAAMn7F,SACtC,KAILgyG,GAAoB,SAACF,GACvB,OAAQA,GACJ,IAAK,QACL,IAAK,cACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,OACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,OACL,IAAK,eACD,OAAO,IACX,IAAK,OACL,IAAK,WACD,OAAO,IACX,IAAK,OACD,OAAO,IACX,IAAK,UACD,OAAO,KACX,IAAK,YACD,OAAO,KACX,IAAK,kBACD,OAAO,KACX,IAAK,qBACD,OAAO,KACX,IAAK,qBACD,OAAO,MACX,IAAK,YACD,OAAO,MACX,IAAK,aACD,OAAO,MACX,IAAK,qBACD,OAAO,OACX,IAAK,eACD,OAAO,OACX,IAAK,gBACD,OAAO,OACX,IAAK,YACD,OAAO,QACX,IAAK,YACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,sBACD,OAAO,QACX,IAAK,WACD,OAAO,SACX,IAAK,eACD,OAAO,SACX,IAAK,mBACD,OAAO,SACX,IAAK,eACD,OAAO,UACX,IAAK,cACD,OAAO,UACX,IAAK,cACD,OAAO,UAGf,OAAO,CACX,EC1GaG,GAA8C,CACvDrqG,KAAM,QACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB+R,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,IAAK,aACD,OAAO,EAEf,OAAO,ICtBFC,GAAkD,CAC3DtqG,KAAM,iBACNgnF,aAAc,IACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB/E,GACvB,OAAmB,KAAfA,EAAM7H,MAAkD,WAAhB6H,EAAMn7F,MACvC,EAGQ,KAAfm7F,EAAM7H,MAIS,KAAf6H,EAAM7H,KAHC6H,EAAMqC,OAOV,KTpBf,SAAY4S,GACRA,EAAA,gBACAA,EAAA,eACH,CAHD,CAAYA,KAAAA,GAAU,KAKf,IULK+B,GVKCvf,GAAuD,CAChEhrF,KAAM,aACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBtN,GACvB,MACS,WADDA,EAEOwd,GAAWgC,OAGXhC,GAAWiC,SWdrBC,GAA4C,CACrD1qG,KAAM,cACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,GAGGif,GAAoB,SAACpX,EAAiBqX,GAC/C,OAAI3T,GAAa1D,IAA0B,WAAhBA,EAAMn7F,MACtB,IAAMwyG,EACS,KAAfrX,EAAM7H,KACNkf,EAAWrX,EAAMqC,OACjB8B,GAAmBnE,GACnB0E,GAAiB1E,EAAOqX,GAG5BA,CACX,ECfaC,GAA6D,CACtE7qG,KAAM,mBACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC6lF,EAAkBmQ,GACtB,OAAmB,KAAfA,EAAM7H,MAAkD,SAAhB6H,EAAMn7F,MACvC,KAGJwlC,GAAMrgC,MAAM6lF,EAASmQ,KCTvBuX,GAAwE,CACjF9qG,KAAM,sBACNgnF,aAAc,UACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBt9F,GACvB,MACS,WADDA,EAEO,EAGA,ICyCV+vG,GAAgE,CACzE/qG,KAAM,kBACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB5M,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WAEL,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GAEX,QACI,YC5KVsf,GAAgB,SAACpC,GAAgD,MAAC,CACpE5oG,KAAM,UAAU4oG,EAChB5hB,aAAc,IACd/nF,QAAQ,EACRysF,KAAM,EACT,EAEYuf,GAA2CD,GAAc,OACzDE,GAA6CF,GAAc,SAC3DG,GAA8CH,GAAc,UAC5DI,GAA4CJ,GAAc,QCD1DK,GAAgD,CACzDrrG,KAAM,WACNgnF,aAAc,UACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EAAO/xF,OAAO01F,IAAcjqF,KAAI,SAACq+F,GACpC,OAAQA,EAASjzG,OACb,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,OACD,OAAO,EACX,IAAK,OACD,OAAO,EAEX,QACI,OAAO,QCtBdkzG,GAA6D,CACtEtrG,KAAM,gBACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB+S,GACvB,MACS,eADDA,EAEO,aAGA,WChBjBE,GAAiB,SAAC3C,GAA+C,MAAC,CACpE5oG,KAAM,WAAW4oG,EACjB5hB,aAAc,IACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,oBACX,EAEY6H,GAA2CD,GAAe,OAC1DE,GAA6CF,GAAe,SAC5DG,GAA8CH,GAAe,UAC7DI,GAA4CJ,GAAe,QCL3DK,GAAuD,CAChE5rG,KAAM,aACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBsT,GACvB,OAAQA,GACJ,IAAK,QACD,OAAO,EACX,IAAK,SACL,IAAK,UACD,OAAO,EAEX,QACI,OAAO,KCZV5wG,GAAoD,CAC7DgF,KAAM,WACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBt9F,GACvB,OAAQA,GACJ,IAAK,WACD,OAAO,EACX,IAAK,WACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,SACD,OAAO,EAGf,OAAO,ICZF6wG,GAAkD,CAC3D7rG,KAAM,cACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC6lF,EAAkBkQ,GACtB,OAAsB,IAAlBA,EAAOz5F,QAAgBs9F,GAAiB7D,EAAO,GAAI,QAC5C,GAGJgE,GAAkBhE,GAAQtmF,KAAI,SAACypF,GAQlC,IAPA,IAAMqV,EAAyB,CAC3B5S,MAAOH,GAAOC,YACd+S,QAASnU,GACToU,QAASpU,GACTqU,KAAMrU,IAEN1xF,EAAI,EACCtM,EAAI,EAAGA,EAAI68F,EAAO58F,OAAQD,IAAK,CACpC,IAAM25F,EAAQkD,EAAO78F,GACjB69F,GAASlE,IACC,IAANrtF,EACA4lG,EAAOC,QAAUxY,EACJ,IAANrtF,EACP4lG,EAAOE,QAAUzY,EAEjBuY,EAAOG,KAAO1Y,EAElBrtF,KAEA4lG,EAAO5S,MAAQP,GAAMp7F,MAAM6lF,EAASmQ,GAG5C,OAAOuY,OCvCNI,GAA+D,CACxElsG,KAAM,iBACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB4T,GACvB,OAAQA,GACJ,IAAK,YACD,OAAO,EACX,IAAK,YACD,OAAO,EACX,IAAK,aACD,OAAO,EAGf,OAAO,ICjBFC,GAAiD,CAC1DnsG,KAAM,YACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB/E,GACvB,GAAmB,KAAfA,EAAM7H,MAAkD,SAAhB6H,EAAMn7F,MAC9C,OAAO,KAGX,GAAmB,KAAfm7F,EAAM7H,KAA6B,CACnC,IAAM0gB,EAAoBC,GAA8B9Y,EAAMvzF,MAC9D,GAAiC,qBAAtBosG,EACP,MAAM,IAAI9nG,MAAM,0DAA0DivF,EAAMvzF,KAAI,KAExF,OAAOosG,EAAkB7Y,EAAMkD,QAGnC,OAAO,OAmBT4V,GAEF,CACAC,OAlBW,SAAC/U,GACZ,IAAMd,EAASc,EAAKh2F,QAAO,SAACi2F,GAAQ,OAAa,KAAbA,EAAI9L,IAAI,IAA6B1+E,KAAI,SAACwqF,GAA0B,OAAAA,EAAI5B,MAAM,IAElH,OAAyB,IAAlBa,EAAO58F,OAAgB48F,EAAoB,IACtD,EAeI8V,SAZa,SAAChV,GACd,IAAMd,EAASc,EAAKh2F,QAAO,SAACi2F,GAAQ,OAAa,KAAbA,EAAI9L,IAAI,IAA6B1+E,KAAI,SAACwqF,GAA0B,OAAAA,EAAI5B,MAAM,IAE3GxB,EAAkEqC,EAAM,GAApE+V,EAA8D/V,EAAM,GAANA,EAAM,GAANA,EAAM,GAA1D,IAAEpC,EAAkDoC,EAAM,GAApDgW,EAA8ChW,EAAM,GAANA,EAAM,GAANA,EAAM,GAANA,EAAM,GAANA,EAAM,GAANA,EAAM,IAANA,EAAM,IAA1B,IAAEiW,EAAkBjW,EAAM,IAApBkW,EAAclW,EAAM,IAE/E,OAFyEA,EAAM,IAANA,EAAM,IAEtD,KAAlBA,EAAO58F,OAAgB,CAACu6F,EAAIoY,EAAInY,EAAIoY,EAAIC,EAAIC,GAAM,IAC7D,GCnCMC,GAAkC,CACpClhB,KAAM,GACNkK,OAAQ,GACRhC,MAAO7G,IAEL8f,GAA2B,CAACD,GAAeA,IAEpCE,GAA4D,CACrE9sG,KAAM,mBACNgnF,aAAc,UACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,IAAMyZ,EAA8BzZ,EAAO/xF,OAAOm2F,IAElD,OAAuB,IAAnBqV,EAAQlzG,OACDgzG,GAGJ,CAACE,EAAQ,GAAIA,EAAQ,MClBvBC,GAAwD,CACjEhtG,KAAM,UACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB0U,GACvB,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,WACD,OAAO,EAEX,QACI,OAAO,MfnBvB,SAAYzC,GACRA,EAAA,gBACAA,EAAA,sBACAA,EAAA,mBACH,CAJD,CAAYA,KAAAA,GAAU,KgBEtB,IhBIO,IAAMpe,GAAuD,CAChEnsF,KAAM,aACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBnM,GACvB,OAAQA,GACJ,IAAK,YACD,OAAOoe,GAAW0C,UACtB,IAAK,WACD,OAAO1C,GAAW2C,SAEtB,QACI,OAAO3C,GAAWE,UiBXrB0C,GAA2C,CACpDntG,KAAM,UACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB/E,GACvB,GAAmB,KAAfA,EAAM7H,KACN,MAAO,CAAC0hB,MAAM,EAAM1oD,MAAO,GAG/B,GAAIsyC,GAAczD,GACd,MAAO,CAAC6Z,MAAM,EAAO1oD,MAAO6uC,EAAMqC,QAGtC,MAAM,IAAItxF,MAAM,mCCnBX+oG,GAAgC,CACzCrtG,KAAM,OACNzC,MAAO,SAAC+6F,EAAmBlgG,GACvB,GAAmB,KAAfA,EAAMszF,KACN,OAAQtzF,EAAMy9F,KAAK1d,eACf,IAAK,IACD,OAAO,IAAO//E,EAAMw9F,OACxB,IAAK,KACD,OAAOx9F,EAAMw9F,OAIzB,MAAM,IAAItxF,MAAM,2BCdXgpG,GAA4C,CACrDttG,KAAM,UACNgnF,aAAc,IACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmB/E,GACvB,OAAIyD,GAAczD,GACPA,EAAMqC,OAEV,ICVF2X,GAAoD,CAC7DvtG,KAAM,wBACNgnF,aAAc,cACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,SCOC6J,GAAkE,CAC3ExtG,KAAM,uBACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EACF/xF,OAAO01F,IACPjqF,KAAI,SAACumF,GACF,OAAQA,EAAMn7F,OACV,IAAK,YACD,OAAO,EACX,IAAK,WACD,OAAO,EACX,IAAK,eACD,OAAO,EACX,IAAK,OACD,OAAO,EAEf,OAAO,KAEVmJ,QAAO,SAACksG,GAAS,OAAS,IAATA,CAAI,MC1BrBC,GAAkD,CAC3D1tG,KAAM,cACNgnF,aAAc,GACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,IAAMqa,EAAwB,GACxBC,EAAoB,GAmB1B,OAlBAta,EAAOtZ,SAAQ,SAACuZ,GACZ,OAAQA,EAAM7H,MACV,KAAK,GACL,KAAK,EACDiiB,EAAYnjG,KAAK+oF,EAAMn7F,OACvB,MACJ,KAAK,GACDu1G,EAAYnjG,KAAK+oF,EAAMqC,OAAO/pF,YAC9B,MACJ,KAAK,EACD+hG,EAAQpjG,KAAKmjG,EAAYvjG,KAAK,MAC9BujG,EAAY9zG,OAAS,MAI7B8zG,EAAY9zG,QACZ+zG,EAAQpjG,KAAKmjG,EAAYvjG,KAAK,MAE3BwjG,EAAQ5gG,KAAI,SAACg1E,GAAW,OAA0B,IAAzBA,EAAOr6E,QAAQ,KAAcq6E,EAAS,IAAIA,EAAM,GAAG,MCjC9E4oB,GAAyC,CAClD5qG,KAAM,YACNgnF,aAAc,IACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,UCJCkK,GAA+C,CACxD7tG,KAAM,cACNgnF,aAAc,SACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmB/E,GACvB,OAAIyD,GAAczD,GACPA,EAAMqC,OAGbqB,GAAa1D,IAEJ,SADDA,EAAMn7F,MAEC,IAOZ,MCpBF01G,GAAiD,CAC1D9tG,KAAM,eACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmBhF,GACvB,OAAOA,EAAO/xF,OAAO01F,IAAcjqF,KAAI,SAACumF,GAAU,OAAAA,EAAMn7F,KAAK,MCDxD21G,GAAuD,CAChE/tG,KAAM,aACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmB+S,GACvB,OAAQA,GACJ,IAAK,UACD,MAAO,UACX,IAAK,SACD,MAAO,SAEX,QACI,MAAO,YCrBV2C,GAAW,SAAC7D,EAAa/xG,GAA2B,OAAkB,KAAjB+xG,EAAM/xG,EAAY,ECOvE61G,GAA4C,CACrDjuG,KAAM,UACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmBhF,GACvB,GAAsB,IAAlBA,EAAOz5F,OACP,MAAO,GAGX,IAAMoqG,EAAQ3Q,EAAO,GAErB,OAAmB,KAAf2Q,EAAMvY,MAAkD,SAAhBuY,EAAM7rG,MACvC,GAGJk7F,ICXF4a,GAA8D,CACvEluG,KAAM,oBACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,GAAsB,IAAlBA,EAAOz5F,OACP,OAAO,KAGX,IAAMoqG,EAAQ3Q,EAAO,GAErB,GAAmB,KAAf2Q,EAAMvY,MAAkD,SAAhBuY,EAAM7rG,MAC9C,OAAO,KAMX,IAHA,IAAM+1G,EAAa,GACbC,EAAW9a,EAAO/xF,OAAO61F,IAEtBx9F,EAAI,EAAGA,EAAIw0G,EAASv0G,OAAQD,IAAK,CACtC,IAAMy0G,EAAUD,EAASx0G,GACnBsN,EAAOknG,EAASx0G,EAAI,GAC1B,GAAqB,KAAjBy0G,EAAQ3iB,KAAgC,CACxC,IAAM4iB,EAAYpnG,GAAQ8vF,GAAc9vF,GAAQA,EAAK0uF,OAAS,EAC9DuY,EAAW3jG,KAAK,CAAC6jG,QAASA,EAAQj2G,MAAOk2G,UAASA,KAI1D,OAAOH,IC7BFI,GAAsD,CAC/DvuG,KAAM,gBACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,GAAsB,IAAlBA,EAAOz5F,OACP,MAAO,GAMX,IAHA,IAAM20G,EAAS,GACTJ,EAAW9a,EAAO/xF,OAAO61F,IAEtBx9F,EAAI,EAAGA,EAAIw0G,EAASv0G,OAAQD,IAAK,CACtC,IAAMy0G,EAAUD,EAASx0G,GACnBsN,EAAOknG,EAASx0G,EAAI,GAC1B,GAAIq9F,GAAaoX,IAA8B,SAAlBA,EAAQj2G,MAAkB,CACnD,IAAMq2G,EAAQvnG,GAAQ8vF,GAAc9vF,GAAQA,EAAK0uF,OAAS,EAC1D4Y,EAAOhkG,KAAK,CAAC6jG,QAASA,EAAQj2G,MAAOq2G,MAAKA,KAIlD,OAAOD,IC5BFl1B,GAA8C,CACvDt5E,KAAM,WACNgnF,aAAc,KACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC6lF,EAAkBkQ,GACtB,OAAOA,EAAO/xF,OAAOw1F,IAAkB/pF,KAAI,SAACumF,GAAU,OAAA8Z,GAAK9vG,MAAM6lF,EAASmQ,EAAM,MCC3Emb,GAA0C,CACnD1uG,KAAM,SACNgnF,aAAc,OACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,GAAsB,IAAlBA,EAAOz5F,OACP,OAAO,KAGX,IAAMoqG,EAAQ3Q,EAAO,GAErB,GAAmB,KAAf2Q,EAAMvY,MAAkD,SAAhBuY,EAAM7rG,MAC9C,OAAO,KAGX,IAAMs2G,EAAS,GACTN,EAAW9a,EAAO/xF,OAAO21F,IAE/B,GAAIkX,EAASv0G,OAAS,IAAM,EACxB,OAAO,KAGX,IAAK,IAAID,EAAI,EAAGA,EAAIw0G,EAASv0G,OAAQD,GAAK,EAAG,CACzC,IAAM+0G,EAAOP,EAASx0G,GAAGxB,MACnBw2G,EAAQR,EAASx0G,EAAI,GAAGxB,MAC9Bs2G,EAAOlkG,KAAK,CAACqkG,KAAIF,EAAEG,MAAKF,IAG5B,OAAOF,IAIFK,GAAW,SAACL,EAAgBM,EAAeH,GACpD,IAAKH,EACD,MAAO,GAGX,IAAMO,EAAQP,EAAOr2B,KAAKyD,IAAIkzB,EAAON,EAAO70G,OAAS,IACrD,OAAKo1G,EAIEJ,EAAOI,EAAMJ,KAAOI,EAAMH,MAHtB,EAIf,ECvCaI,GAAgD,CACzDlvG,KAAM,aACNgnF,aAAc,OACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC6lF,EAAkBkQ,GACtB,OAAsB,IAAlBA,EAAOz5F,QAAgBs9F,GAAiB7D,EAAO,GAAI,QAC5C,GAGJgE,GAAkBhE,GAAQtmF,KAAI,SAACypF,GAUlC,IATA,IAAMqV,EAAwB,CAC1B5S,MAAO,IACP6S,QAASnU,GACToU,QAASpU,GACTqU,KAAMrU,GACNuX,OAAQvX,GACRwX,OAAO,GAEPlpG,EAAI,EACCtM,EAAI,EAAGA,EAAI68F,EAAO58F,OAAQD,IAAK,CACpC,IAAM25F,EAAQkD,EAAO78F,GACjBu9F,GAAiB5D,EAAO,SACxBuY,EAAOsD,OAAQ,EACR3X,GAASlE,IACN,IAANrtF,EACA4lG,EAAOC,QAAUxY,EACJ,IAANrtF,EACP4lG,EAAOE,QAAUzY,EACJ,IAANrtF,EACP4lG,EAAOG,KAAO1Y,EAEduY,EAAOqD,OAAS5b,EAEpBrtF,KAEA4lG,EAAO5S,MAAQP,GAAMp7F,MAAM6lF,EAASmQ,GAG5C,OAAOuY,OC7CNuD,GAAkD,CAC3DrvG,KAAM,cACNgnF,aAAc,SACd/nF,QAAQ,EACRysF,KAAM,EACNnuF,MAAO,SAAC+6F,EAAmBhF,GACvB,IAAMsZ,EAAgB,CAAC,EAAD,KAChB0C,EAAqB,GAqB3B,OAnBAhc,EAAO/xF,OAAO01F,IAAcjd,SAAQ,SAACuZ,GACjC,OAAQA,EAAMn7F,OACV,IAAK,SACDk3G,EAAO9kG,KAAK,GACZ,MACJ,IAAK,OACD8kG,EAAO9kG,KAAK,GACZ,MACJ,IAAK,UACD8kG,EAAO9kG,KAAK,OAIxBoiG,EAAc5yB,SAAQ,SAAC5hF,IACY,IAA3Bk3G,EAAO3nG,QAAQvP,IACfk3G,EAAO9kG,KAAKpS,MAIbk3G,ICtCFC,GAAsD,CAC/DvvG,KAAM,4BACNgnF,aAAc,eACd/nF,QAAQ,EACRysF,KAAM,EACNiY,OAAQ,SCHC6L,GAA0D,CACnExvG,KAAM,4BACNgnF,aAAc,IACd0E,KAAM,EACNzsF,QAAQ,EACR1B,MAAO,SAAC+6F,EAAmB/E,GACvB,OAAIwD,GAAiBxD,GACVA,EAAMqC,OAEV,ICuEf6Z,GAAA,WAoEI,SAAAA,EAAYrsB,EAAkBssB,WAC1B90G,KAAK+0G,kBAAoBpyG,GAAM6lF,EAAS9J,GAAUo2B,EAAYC,mBAC9D/0G,KAAK6oG,eAAiBlmG,GAAM6lF,EAASqgB,GAAgBiM,EAAYjM,gBACjE7oG,KAAK8oG,gBAAkBnmG,GAAM6lF,EAASsgB,GAAiBgM,EAAYhM,iBACnE9oG,KAAKutG,gBAAkB5qG,GAAM6lF,EAAS+kB,GAAiBuH,EAAYvH,iBACnEvtG,KAAKwtG,iBAAmB7qG,GAAM6lF,EAASglB,GAAkBsH,EAAYtH,kBACrExtG,KAAKytG,mBAAqB9qG,GAAM6lF,EAASilB,GAAoBqH,EAAYrH,oBACzEztG,KAAK0tG,iBAAmB/qG,GAAM6lF,EAASklB,GAAkBoH,EAAYpH,kBACrE1tG,KAAK6tG,eAAiBlrG,GAAM6lF,EAASqlB,GAAgBiH,EAAYjH,gBACjE7tG,KAAKiuG,eAAiBtrG,GAAM6lF,EAASylB,GAAgB6G,EAAY7G,gBACjEjuG,KAAKkuG,iBAAmBvrG,GAAM6lF,EAAS0lB,GAAkB4G,EAAY5G,kBACrEluG,KAAKmuG,kBAAoBxrG,GAAM6lF,EAAS2lB,GAAmB2G,EAAY3G,mBACvEnuG,KAAKouG,gBAAkBzrG,GAAM6lF,EAAS4lB,GAAiB0G,EAAY1G,iBACnEpuG,KAAKsuG,oBAAsB3rG,GAAM6lF,EAAS8lB,GAAqBwG,EAAYxG,qBAC3EtuG,KAAKuuG,qBAAuB5rG,GAAM6lF,EAAS+lB,GAAsBuG,EAAYvG,sBAC7EvuG,KAAKwuG,wBAA0B7rG,GAAM6lF,EAASgmB,GAAyBsG,EAAYtG,yBACnFxuG,KAAKyuG,uBAAyB9rG,GAAM6lF,EAASimB,GAAwBqG,EAAYrG,wBACjFzuG,KAAK4uG,eAAiBjsG,GAAM6lF,EAASomB,GAAgBkG,EAAYlG,gBACjE5uG,KAAK6uG,iBAAmBlsG,GAAM6lF,EAASqmB,GAAkBiG,EAAYjG,kBACrE7uG,KAAK8uG,kBAAoBnsG,GAAM6lF,EAASsmB,GAAmBgG,EAAYhG,mBACvE9uG,KAAK+uG,gBAAkBpsG,GAAM6lF,EAASumB,GAAiB+F,EAAY/F,iBACnE/uG,KAAKivG,eAAiBtsG,GAAM6lF,EAASymB,GAAgB6F,EAAY7F,gBACjEjvG,KAAKkvG,iBAAmBvsG,GAAM6lF,EAAS0mB,GAAkB4F,EAAY5F,kBACrElvG,KAAKmvG,kBAAoBxsG,GAAM6lF,EAAS2mB,GAAmB2F,EAAY3F,mBACvEnvG,KAAKovG,gBAAkBzsG,GAAM6lF,EAAS4mB,GAAiB0F,EAAY1F,iBACnEpvG,KAAKs0G,UAAY3xG,GAAM6lF,EAAS8rB,GAAWQ,EAAYR,WACvDt0G,KAAKs+F,MAAQ37F,GAAM6lF,EAAS8V,GAAOwW,EAAYxW,OAC/Ct+F,KAAKqvG,UAAY1sG,GAAM6lF,EAAS6mB,GAAWyF,EAAYzF,WACvDrvG,KAAKsvG,QAAU3sG,GAAM6lF,EAAS8mB,GAASwF,EAAYxF,SACnDtvG,KAAKyvG,MAAQ9sG,GAAM6lF,EAASinB,GAAOqF,EAAYE,UAC/Ch1G,KAAK8yG,WAAanwG,GAAM6lF,EAASsqB,GAAYgC,EAAYhC,YACzD9yG,KAAKgwG,SAAWrtG,GAAM6lF,EAASwnB,GAAU8E,EAAY9E,UACrDhwG,KAAKmzG,UAAYxwG,GAAM6lF,EAAS2qB,GAAW2B,EAAY3B,WACvDnzG,KAAKkzG,YAAcvwG,GAAM6lF,EAAS0qB,GAAa4B,EAAY5B,aAC3DlzG,KAAKizG,WAAatwG,GAAM6lF,EAASyqB,GAAY6B,EAAY7B,YACzDjzG,KAAK0vG,cAAgB/sG,GAAM6lF,EAASknB,GAAeoF,EAAYpF,eAC/D1vG,KAAKowF,UAAYztF,GAAM6lF,EAAS4H,GAAW0kB,EAAY1kB,WACvDpwF,KAAK8vG,WAAantG,GAAM6lF,EAASsnB,GAAYgF,EAAYhF,YACzD9vG,KAAKiwG,eAAiBttG,GAAM6lF,EAASynB,GAAgB6E,EAAY7E,gBACjEjwG,KAAKkwG,kBAAoBvtG,GAAM6lF,EAAS0nB,GAAmB4E,EAAY5E,mBACvElwG,KAAKmwG,cAAgBxtG,GAAM6lF,EAAS2nB,GAAe2E,EAAY3E,eAC/DnwG,KAAKqwG,UAAY1tG,GAAM6lF,EAAS6nB,GAAWyE,EAAYzE,WACvDrwG,KAAKswG,YAAc3tG,GAAM6lF,EAAS8nB,GAAawE,EAAYxE,aAC3DtwG,KAAKuwG,aAAe5tG,GAAM6lF,EAAS+nB,GAAcuE,EAAYvE,cAC7DvwG,KAAKwwG,WAAa7tG,GAAM6lF,EAASgoB,GAAYsE,EAAYtE,YACzDxwG,KAAK0yG,QAAU/vG,GAAM6lF,EAASkqB,GAASoC,EAAYpC,SACnD,IAAMuC,EAAgBtyG,GAAM6lF,EAASioB,GAAUqE,EAAYrE,UAC3DzwG,KAAKk1G,UAAYD,EAAc,GAC/Bj1G,KAAKm1G,UAAYF,EAAcA,EAAch2G,OAAS,EAAI,EAAI,GAC9De,KAAK0wG,aAAe/tG,GAAM6lF,EAASkoB,GAAcoE,EAAYpE,cAC7D1wG,KAAK4wG,WAAajuG,GAAM6lF,EAASooB,GAAYkE,EAAYlE,YACzD5wG,KAAK6wG,aAAeluG,GAAM6lF,EAASqoB,GAAciE,EAAYjE,cAC7D7wG,KAAK8wG,cAAgBnuG,GAAM6lF,EAASsoB,GAAegE,EAAYhE,eAC/D9wG,KAAK+wG,YAAcpuG,GAAM6lF,EAASuoB,GAAa+D,EAAY/D,aAC3D/wG,KAAKy0G,WAAa9xG,GAAM6lF,EAASisB,GAAYK,EAAYL,YACzDz0G,KAAKI,SAAWuC,GAAM6lF,EAASpoF,GAAU00G,EAAY10G,UACrDJ,KAAKgxG,UAAYruG,GAAM6lF,EAASwoB,GAAW8D,EAAY9D,WACvDhxG,KAAK2yG,oBAAsBhwG,GACvB6lF,EACAmqB,GAC+B,QAA/BnhB,EAAAsjB,EAAYnC,2BAAmB,IAAAnhB,EAAAA,EAAIsjB,EAAYxW,OAEnDt+F,KAAK4yG,mBAAqBjwG,GACtB6lF,EACAoqB,GAC8B,QAA9B9T,EAAAgW,EAAYlC,0BAAkB,IAAA9T,EAAAA,EAAIgW,EAAYM,gBAElDp1G,KAAKixG,WAAatuG,GAAM6lF,EAASyoB,GAAY6D,EAAY7D,YACzDjxG,KAAKsxG,cAAgB3uG,GAAM6lF,EAAS8oB,GAAewD,EAAYxD,eAC/DtxG,KAAKq1G,UAAY1yG,GAAM6lF,EAAS+oB,GAAWuD,EAAYO,WACvDr1G,KAAKkyG,gBAAkBvvG,GAAM6lF,EAAS0pB,GAAiB4C,EAAY5C,iBACnElyG,KAAKoyG,WAAazvG,GAAM6lF,EAAS4pB,GAAY0C,EAAY1C,YACzDpyG,KAAK20G,sBAAwBhyG,GAAM6lF,EAASmsB,GAAuBG,EAAYH,uBAC/E30G,KAAK40G,sBAAwBjyG,GAAM6lF,EAASosB,GAAuBE,EAAYF,uBAC/E50G,KAAKuxF,UAAY5uF,GAAM6lF,EAAS+I,GAAWujB,EAAYvjB,WACvDvxF,KAAKuyG,OAAS5vG,GAAM6lF,EAAS+pB,GAAQuC,EAAYvC,QAqCzD,OAlCIsC,EAAAr2G,UAAA82G,UAAA,WACI,OAAOt1G,KAAKsvG,QAAU,GAAKtvG,KAAK0yG,QAAU,GAAyB,IAApB1yG,KAAKoyG,YAGxDyC,EAAAr2G,UAAA6/F,cAAA,WACI,OAAOA,GAAcr+F,KAAK8oG,kBAG9B+L,EAAAr2G,UAAA+2G,cAAA,WACI,OAA0B,OAAnBv1G,KAAKq1G,WAGhBR,EAAAr2G,UAAAg3G,aAAA,WACI,OAAyB,IAAlBx1G,KAAKI,UAGhBy0G,EAAAr2G,UAAAi3G,uBAAA,WACI,OAAOz1G,KAAKw1G,iBAAmBx1G,KAAKuyG,OAAOC,MAG/CqC,EAAAr2G,UAAAk3G,WAAA,WACI,OAAsB,IAAf11G,KAAKyvG,OAGhBoF,EAAAr2G,UAAAm3G,cAAA,WACI,OACIvC,GAASpzG,KAAKsvG,QAAS,IACvB8D,GAASpzG,KAAKsvG,QAAS,WACvB8D,GAASpzG,KAAKsvG,QAAS,YACvB8D,GAASpzG,KAAKsvG,QAAS,YACvB8D,GAASpzG,KAAKsvG,QAAS,WACvB8D,GAASpzG,KAAKsvG,QAAS,YAGnCuF,CAAA,CApLA,GAsLAe,GAAA,WAII,SAAAA,EAAYptB,EAAkBssB,GAC1B90G,KAAKqzG,QAAU1wG,GAAM6lF,EAAS6qB,GAASyB,EAAYzB,SACnDrzG,KAAK8zG,OAASnxG,GAAM6lF,EAASsrB,GAAQgB,EAAYhB,QAEzD,OAAA8B,CAAA,CARA,GAUAC,GAAA,WAII,SAAAA,EAAYrtB,EAAkBssB,GAC1B90G,KAAKszG,iBAAmB3wG,GAAM6lF,EAAS8qB,GAAkBwB,EAAYxB,kBACrEtzG,KAAK2zG,aAAehxG,GAAM6lF,EAASmrB,GAAcmB,EAAYnB,cAErE,OAAAkC,CAAA,CARA,GAWMlzG,GAAQ,SAAC6lF,EAAkBstB,EAAwCnH,GACrE,IAAMtT,EAAY,IAAIhD,GAChB76F,EAAkB,OAAVmxG,GAAmC,qBAAVA,EAAwBA,EAAM19F,WAAa6kG,EAAW1pB,aAC7FiP,EAAU9C,MAAM/6F,GAChB,IAAMu4G,EAAS,IAAI5a,GAAOE,EAAU5C,QACpC,OAAQqd,EAAWhlB,MACf,KAAK,EACD,IAAM6H,EAAQod,EAAOxa,sBACrB,OAAOua,EAAWnzG,MAAM6lF,EAAS6T,GAAa1D,GAASA,EAAMn7F,MAAQs4G,EAAW1pB,cACpF,KAAK,EACD,OAAO0pB,EAAWnzG,MAAM6lF,EAASutB,EAAOxa,uBAC5C,KAAK,EACD,OAAOua,EAAWnzG,MAAM6lF,EAASutB,EAAOta,wBAC5C,KAAK,EACD,OAAOsa,EAAOxa,sBAClB,KAAK,EACD,OAAQua,EAAW/M,QACf,IAAK,QACD,OAAO/wF,GAAMrV,MAAM6lF,EAASutB,EAAOxa,uBACvC,IAAK,QACD,OAAOwC,GAAUp7F,MAAM6lF,EAASutB,EAAOxa,uBAC3C,IAAK,QACD,OAAOv4D,GAAMrgC,MAAM6lF,EAASutB,EAAOxa,uBACvC,IAAK,SACD,IAAMya,EAASD,EAAOxa,sBACtB,OAAOsB,GAASmZ,GAAUA,EAAShZ,GACvC,IAAK,oBACD,IAAMiZ,EAAQF,EAAOxa,sBACrB,OAAOuB,GAAmBmZ,GAASA,EAAQjZ,GAC/C,IAAK,OACD,OAAOyV,GAAK9vG,MAAM6lF,EAASutB,EAAOxa,wBAItD,EChUM2a,GAA2B,yBAS3BC,GAAsB,SAAC3vG,GAEzB,OADkBA,EAAQmM,aAAaujG,KAEnC,IAAK,MACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,QACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,QACI,OAAO,EAEnB,EAEaE,GAAc,SAAC5vG,EAAkBsqF,GAC1C,IAAMulB,EAAcF,GAAoB3vG,GACxC,OAAuB,IAAhB6vG,GAAoCvlB,IAASulB,CACxD,ECdAC,GAAA,WAOI,SAAAA,EAA+B9tB,EAAkBhiF,GAAlB,KAAAgiF,QAAAA,EALtB,KAAA+tB,UAA6B,GAC7B,KAAAC,SAA+B,GAExC,KAAAxd,MAAQ,EAGAod,GAAY5vG,EAAS,GAIzBxG,KAAKy2G,OAAS,IAAI5B,GAAqBrsB,EAAS7I,OAAO+2B,iBAAiBlwG,EAAS,OAE7EmwG,GAAkBnwG,KACdxG,KAAKy2G,OAAO1B,kBAAkB6B,MAAK,SAACl4B,GAAa,OAAAA,EAAW,CAAC,MAC7Dl4E,EAAQmoG,MAAMoG,kBAAoB,MAGR,OAA1B/0G,KAAKy2G,OAAOpB,YAEZ7uG,EAAQmoG,MAAM0G,UAAY,SAIlCr1G,KAAK62G,OAAS9tB,EAAY/oF,KAAKwoF,QAAShiF,GAEpC4vG,GAAY5vG,EAAS,KACrBxG,KAAKg5F,OAAS,IAG1B,OAAAsd,CAAA,CA/BA,GCdalsB,GACT,+izBxBDE0sB,GAAQ,mEAGRC,GAA+B,qBAAfnyB,WAA6B,GAAK,IAAIA,WAAW,KAC9DoyB,GAAI,EAAGA,GAAIF,GAAM73G,OAAQ+3G,KAC9BD,GAAOD,GAAMvrG,WAAWyrG,KAAMA,GyBDlC,IzBIO,IAAMC,GAAS,SAAC7sB,GACnB,IAEIprF,EAEAqrF,EACAC,EACAC,EACAC,EAPAC,EAA+B,IAAhBL,EAAOnrF,OACtBsE,EAAM6mF,EAAOnrF,OAEbiI,EAAI,EAM0B,MAA9BkjF,EAAOA,EAAOnrF,OAAS,KACvBwrF,IACkC,MAA9BL,EAAOA,EAAOnrF,OAAS,IACvBwrF,KAIR,IAAMC,EACqB,qBAAhBC,aACe,qBAAf/F,YAC+B,qBAA/BA,WAAWpmF,UAAU2R,MACtB,IAAIw6E,YAAYF,GAChB,IAAI1rF,MAAM0rF,GACdG,EAAQ7rF,MAAM8rF,QAAQH,GAAUA,EAAS,IAAI9F,WAAW8F,GAE9D,IAAK1rF,EAAI,EAAGA,EAAIuE,EAAKvE,GAAK,EACtBqrF,EAAW0sB,GAAO3sB,EAAO7+E,WAAWvM,IACpCsrF,EAAWysB,GAAO3sB,EAAO7+E,WAAWvM,EAAI,IACxCurF,EAAWwsB,GAAO3sB,EAAO7+E,WAAWvM,EAAI,IACxCwrF,EAAWusB,GAAO3sB,EAAO7+E,WAAWvM,EAAI,IAExC4rF,EAAM1jF,KAAQmjF,GAAY,EAAMC,GAAY,EAC5CM,EAAM1jF,MAAoB,GAAXojF,IAAkB,EAAMC,GAAY,EACnDK,EAAM1jF,MAAoB,EAAXqjF,IAAiB,EAAiB,GAAXC,EAG1C,OAAOE,CACX,EAEawsB,GAAkB,SAACxsB,GAG5B,IAFA,IAAMzrF,EAASyrF,EAAOzrF,OAChB2rF,EAAQ,GACL5rF,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAC7B4rF,EAAMh7E,KAAM86E,EAAO1rF,EAAI,IAAM,EAAK0rF,EAAO1rF,IAE7C,OAAO4rF,CACX,EAEausB,GAAkB,SAACzsB,GAG5B,IAFA,IAAMzrF,EAASyrF,EAAOzrF,OAChB2rF,EAAQ,GACL5rF,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAC7B4rF,EAAMh7E,KAAM86E,EAAO1rF,EAAI,IAAM,GAAO0rF,EAAO1rF,EAAI,IAAM,GAAO0rF,EAAO1rF,EAAI,IAAM,EAAK0rF,EAAO1rF,IAE7F,OAAO4rF,CACX,E0B1DawsB,GAAiB,EAGjBC,GAAiB,GAQjBC,GAAqB,EAcrBC,GAA6B,OAAWH,GAKxCI,IAF2B,GAAKJ,IAEc,EAuB9CK,GAnB4BF,IAFC,MAASH,IAQN,GAmBhCM,GAAoC,OAAWL,GAK/CM,IAF8B,GA7CXN,GAAiBD,IA+CgB,EAE3DQ,GAAU,SAACnsB,EAA8B5qF,EAAei7E,GAC1D,OAAI2P,EAAKt7E,MACEs7E,EAAKt7E,MAAMtP,EAAOi7E,GAGtB,IAAI4P,YAAY3sF,MAAMP,UAAU2R,MAAMzR,KAAK+sF,EAAM5qF,EAAOi7E,GACnE,EAEM+7B,GAAU,SAACpsB,EAA8B5qF,EAAei7E,GAC1D,OAAI2P,EAAKt7E,MACEs7E,EAAKt7E,MAAMtP,EAAOi7E,GAGtB,IAAI8P,YAAY7sF,MAAMP,UAAU2R,MAAMzR,KAAK+sF,EAAM5qF,EAAOi7E,GACnE,EAEag8B,GAAuB,SAAC1tB,EAAgBnG,GACjD,IAAMyG,EAASusB,GAAO7sB,GAChB0B,EAAS/sF,MAAM8rF,QAAQH,GAAUysB,GAAgBzsB,GAAU,IAAIkB,YAAYlB,GAC3EqB,EAAShtF,MAAM8rF,QAAQH,GAAUwsB,GAAgBxsB,GAAU,IAAIgB,YAAYhB,GAC3EsB,EAAe,GAEfh7E,EAAQ4mG,GAAQ7rB,EAAQC,EAAe,EAAGF,EAAO,GAAK,GACtDtnF,EACY,IAAdsnF,EAAO,GACD8rB,GAAQ7rB,GAASC,EAAeF,EAAO,IAAM,GAC7C+rB,GAAQ/rB,EAAQrO,KAAKwO,MAAMD,EAAeF,EAAO,IAAM,IAEjE,OAAO,IAAIK,GAAKL,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI96E,EAAOxM,EACvE,gBAUI,SAAA2nF,EACIC,EACAC,EACAC,EACAC,EACAv7E,EACAxM,GAEAxE,KAAKosF,aAAeA,EACpBpsF,KAAKqsF,WAAaA,EAClBrsF,KAAKssF,UAAYA,EACjBtsF,KAAKusF,eAAiBA,EACtBvsF,KAAKgR,MAAQA,EACbhR,KAAKwE,KAAOA,EAkDpB,OAzCI2nF,EAAA3tF,UAAA8W,IAAA,SAAI4vE,GACA,IAAIsH,EACJ,GAAItH,GAAa,EAAG,CAChB,GAAIA,EAAY,OAAYA,EAAY,OAAWA,GAAa,MAM5D,OADAsH,IADAA,EAAKxsF,KAAKgR,MAAMk0E,GAAakyB,MACjBE,KAAuBpyB,EAAYsyB,IACxCx3G,KAAKwE,KAAKgoF,GAGrB,GAAItH,GAAa,MASb,OADAsH,IADAA,EAAKxsF,KAAKgR,MAAMumG,IAA+BryB,EAAY,OAAWkyB,OAC1DE,KAAuBpyB,EAAYsyB,IACxCx3G,KAAKwE,KAAKgoF,GAGrB,GAAItH,EAAYllF,KAAKssF,UAOjB,OALAE,EAAKirB,GAAwBC,IAAqCxyB,GAAamyB,IAC/E7qB,EAAKxsF,KAAKgR,MAAMw7E,GAChBA,GAAOtH,GAAakyB,GAAkBO,GAEtCnrB,IADAA,EAAKxsF,KAAKgR,MAAMw7E,KACJ8qB,KAAuBpyB,EAAYsyB,IACxCx3G,KAAKwE,KAAKgoF,GAErB,GAAItH,GAAa,QACb,OAAOllF,KAAKwE,KAAKxE,KAAKusF,gBAK9B,OAAOvsF,KAAKqsF,YAEpBF,CAAA,ID7KMvrF,GAAQ,mEAGR+jF,GAA+B,qBAAfC,WAA6B,GAAK,IAAIA,WAAW,KAC9D5lF,GAAI,EAAGA,GAAI4B,GAAM3B,OAAQD,KAC9B2lF,GAAO/jF,GAAM2K,WAAWvM,KAAMA,GEDlC,ICqeK+4G,GDreCC,GAAU,EACVC,GAAK,EACLC,GAAK,EACLC,GAAU,EACVC,GAAS,EAETC,GAAc,EACdC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJC,GAAK,GACLC,GAAM,GACNC,GAAM,GACNC,GAAwB,GACxBC,GAAK,GAqBEC,GAAe,SAACtvB,GAIzB,IAHA,IAAMC,EAAa,GACfzqF,EAAI,EACFC,EAASuqF,EAAIvqF,OACZD,EAAIC,GAAQ,CACf,IAAMzB,EAAQgsF,EAAIj+E,WAAWvM,KAC7B,GAAIxB,GAAS,OAAUA,GAAS,OAAUwB,EAAIC,EAAQ,CAClD,IAAMyqF,EAAQF,EAAIj+E,WAAWvM,KACJ,SAAZ,MAAR0qF,GACDD,EAAW75E,OAAe,KAARpS,IAAkB,KAAe,KAARksF,GAAiB,QAE5DD,EAAW75E,KAAKpS,GAChBwB,UAGJyqF,EAAW75E,KAAKpS,GAGxB,OAAOisF,CACX,EAEapE,GAAgB,eAAC,IAAAoE,EAAA,GAAAhE,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAgE,EAAAhE,GAAA1gF,UAAA0gF,GAC1B,GAAIxkF,OAAOokF,cACP,OAAOpkF,OAAOokF,cAAavgF,MAApB7D,OAAwBwoF,GAGnC,IAAMxqF,EAASwqF,EAAWxqF,OAC1B,IAAKA,EACD,MAAO,GAOX,IAJA,IAAM2qF,EAAY,GAEd54E,GAAS,EACTo2E,EAAS,KACJp2E,EAAQ/R,GAAQ,CACrB,IAAIimF,EAAYuE,EAAWz4E,GACvBk0E,GAAa,MACb0E,EAAUh6E,KAAKs1E,IAEfA,GAAa,MACb0E,EAAUh6E,KAAyB,OAAnBs1E,GAAa,IAAeA,EAAY,KAAS,SAEjEl0E,EAAQ,IAAM/R,GAAU2qF,EAAU3qF,OAAS,SAC3CmoF,GAAUnmF,OAAOw7E,aAAY33E,MAAnB7D,OAAuB2oF,GACjCA,EAAU3qF,OAAS,GAG3B,OAAOmoF,CACX,EAEa2xB,GAAcjB,GAAqB1tB,IAEnC4uB,GAAoB,OACpBC,GAAgB,OAIhBC,GAAmB,SAACh0B,GAA8B,OAAA6zB,GAAYzjG,IAAI4vE,EAAU,EAEnFi0B,GAAwB,SAACC,EAAuBxoB,EAAsB5/E,GACxE,IAAIqgF,EAAYrgF,EAAQ,EACpBy/E,EAAOG,EAAWS,GAChBptF,EAAU2sF,EAAW5/E,EAAQ,GAC7B1E,EAAOskF,EAAW5/E,GAExB,GAAI/M,IAAYg0G,IAAM3rG,IAAS4rG,GAC3B,OAAOc,GAIX,GAAI/0G,IAAYg0G,IAAMh0G,IAAYi0G,IAAMj0G,IAAYk0G,GAChD,OAAOc,GAIX,GAAI3sG,IAAS2rG,IAAM3rG,IAAS4rG,IAAM5rG,IAAS6rG,GACvC,OAAOc,GAKX,GAAIh1G,IAAYq0G,KAAwC,IAAnC,CAACA,GAAGC,GAAGE,GAAIC,IAAK3rG,QAAQT,GACzC,OAAO0sG,GAIX,IAAK/0G,IAAYw0G,IAAMx0G,IAAYs0G,MAAOjsG,IAASisG,IAAKjsG,IAASksG,IAC7D,OAAOQ,GAIX,IAAK/0G,IAAYy0G,IAAOz0G,IAAYu0G,KAAMlsG,IAASksG,GAC/C,OAAOQ,GAIX,GAAI1sG,IAASqsG,IAAOrsG,IAAS8rG,GACzB,OAAOY,GAIX,GAAI1sG,IAAS+rG,GACT,OAAOW,GAIX,GAAI/0G,IAAY+zG,GACZ,OAAOgB,GAIX,GAAI/0G,IAAY00G,IAAOrsG,IAASssG,GAAuB,CACnD,KAAOnoB,IAAS2nB,IACZ3nB,EAAOG,IAAaS,GAExB,GAAIZ,IAASmoB,GACT,OAAOI,GAOf,GAAI/0G,IAAY40G,IAAMvsG,IAASusG,GAAI,CAE/B,IADA,IAAIQ,EAAU,EACP5oB,IAASooB,IACZQ,IACA5oB,EAAOG,IAAaS,GAExB,GAAIgoB,EAAU,IAAM,EAChB,OAAOL,GAIf,OAAOC,EACX,EAiBaK,GAAkB,SAAC9vB,GAC5B,IAAMC,EAAaqvB,GAAatvB,GAC1BvqF,EAASwqF,EAAWxqF,OACtB+R,EAAQ,EACR+gF,EAAU,EACRnB,EAAanH,EAAWr3E,IAAI8mG,IAElC,MAAO,CACH5sG,KAAM,WACF,GAAI0E,GAAS/R,EACT,MAAO,CAACooF,MAAM,EAAM7pF,MAAO,MAI/B,IADA,IAAI+7G,EAAgBP,GAEhBhoG,EAAQ/R,IACPs6G,EAAgBJ,GAAsB1vB,EAAYmH,IAAc5/E,MAAYgoG,KAGjF,GAAIO,IAAkBP,IAAqBhoG,IAAU/R,EAAQ,CACzD,IAAMzB,EAAQ6nF,GAAcvgF,MAAM,KAAM2kF,EAAWt5E,MAAM4hF,EAAS/gF,IAElE,OADA+gF,EAAU/gF,EACH,CAACxT,MAAKA,EAAE6pF,MAAM,GAGzB,MAAO,CAACA,MAAM,EAAM7pF,MAAO,OAMvC,EAEag8G,GAAiB,SAAChwB,GAM3B,IALA,IAGIiwB,EAHEC,EAAUJ,GAAgB9vB,GAE1BmwB,EAAY,KAGTF,EAAKC,EAAQptG,QAAQ+6E,MACtBoyB,EAAGj8G,OACHm8G,EAAU/pG,KAAK6pG,EAAGj8G,MAAM2S,SAIhC,OAAOwpG,CACX,EE5OMC,GAAkB,SAACn6B,GACrB,IAAMo6B,EAAc,IAEpB,GAAIp6B,EAASq6B,YAAa,CACtB,IAAM5nD,EAAQutB,EAASq6B,cACvB,GAAI5nD,EAAM82B,sBAAuB,CAC7B,IAAM+wB,EAAct6B,EAASrsE,cAAc,aAC3C2mG,EAAYpL,MAAMrmB,OAAYuxB,EAAW,KACzCE,EAAYpL,MAAMW,QAAU,QAC5B7vB,EAAS+H,KAAKnmF,YAAY04G,GAE1B7nD,EAAM8nD,WAAWD,GACjB,IAAME,EAAc/nD,EAAM82B,wBACpBkxB,EAAcz8B,KAAKkhB,MAAMsb,EAAY3xB,QAE3C,GADA7I,EAAS+H,KAAK35E,YAAYksG,GACtBG,IAAgBL,EAChB,OAAO,GAKnB,OAAO,CACX,EAEMM,GAAmB,SAAC16B,GACtB,IAAMs6B,EAAct6B,EAASrsE,cAAc,aAC3C2mG,EAAYpL,MAAMtmB,MAAQ,OAC1B0xB,EAAYpL,MAAMW,QAAU,QAC5ByK,EAAYpL,MAAMqB,SAAW,OAC7B+J,EAAYpL,MAAMe,cAAgB,MAClCqK,EAAYpL,MAAMyL,YAAc,MAChC36B,EAAS+H,KAAKnmF,YAAY04G,GAC1B,IAAM7nD,EAAQutB,EAASq6B,cAEvBC,EAAYM,UAAiC,mBAAd,GAAGC,OAAwB,YAAYA,OAAO,IAAM,GAEnF,IAAMj6G,EAAO05G,EAAYruG,WAEnB6uG,EAAWhxB,EAAalpF,EAAKmE,MAAM4N,KAAI,SAACpT,GAAM,OAAA2qF,EAAc3qF,EAAE,IAChE0V,EAAS,EACT+7E,EAAgB,CAAC,EAGf+pB,EAAWD,EAASpnG,OAAM,SAAC0B,EAAM7V,GACnCkzD,EAAMuoD,SAASp6G,EAAMqU,GACrBw9C,EAAMwoD,OAAOr6G,EAAMqU,EAASG,EAAK5V,QACjC,IAAMk2D,EAAOjD,EAAM82B,wBAEnBt0E,GAAUG,EAAK5V,OACf,IAAM07G,EAAaxlD,EAAKopB,EAAIkS,EAAKlS,GAAKppB,EAAKipB,EAAIqS,EAAKrS,EAGpD,OADAqS,EAAOt7B,EACG,IAANn2D,GAIG27G,KAIX,OADAl7B,EAAS+H,KAAK35E,YAAYksG,GACnBS,CACX,EAEMI,GAAW,WAAe,MAAmC,qBAA5B,IAAIC,OAAQC,WAA2B,EAExEC,GAAmB,WAAe,MAA6C,kBAAtC,IAAIC,gBAAiBC,YAAyB,EAEvFC,GAAU,SAACz7B,GACb,IAAM07B,EAAM,IAAIN,MACVO,EAAS37B,EAASrsE,cAAc,UAChCioG,EAAMD,EAAOE,WAAW,MAC9B,IAAKD,EACD,OAAO,EAGXF,EAAIn0G,IAAM,oEAEV,IACIq0G,EAAIE,UAAUJ,EAAK,EAAG,GACtBC,EAAOI,YACT,MAAOhmG,IACL,OAAO,EAEX,OAAO,CACX,EAEMimG,GAAe,SAACj3G,GAClB,OAAY,IAAZA,EAAK,IAAwB,MAAZA,EAAK,IAA0B,IAAZA,EAAK,IAAwB,MAAZA,EAAK,EAA1D,EAEEk3G,GAAoB,SAACj8B,GACvB,IAAM27B,EAAS37B,EAASrsE,cAAc,UAChCs4F,EAAO,IACb0P,EAAO/yB,MAAQqjB,EACf0P,EAAO9yB,OAASojB,EAChB,IAAM2P,EAAMD,EAAOE,WAAW,MAC9B,IAAKD,EACD,OAAOt0B,QAAQC,QAAO,GAE1Bq0B,EAAIM,UAAY,iBAChBN,EAAIO,SAAS,EAAG,EAAGlQ,EAAMA,GAEzB,IAAMyP,EAAM,IAAIN,MACVgB,EAAgBT,EAAOI,YAC7BL,EAAIn0G,IAAM60G,EACV,IAAMC,EAAMC,GAAuBrQ,EAAMA,EAAM,EAAG,EAAGyP,GAIrD,OAHAE,EAAIM,UAAY,MAChBN,EAAIO,SAAS,EAAG,EAAGlQ,EAAMA,GAElBsQ,GAAkBF,GACpBx0B,MAAK,SAAC6zB,GACHE,EAAIE,UAAUJ,EAAK,EAAG,GACtB,IAAM32G,EAAO62G,EAAIY,aAAa,EAAG,EAAGvQ,EAAMA,GAAMlnG,KAChD62G,EAAIM,UAAY,MAChBN,EAAIO,SAAS,EAAG,EAAGlQ,EAAMA,GAEzB,IAAMrrG,EAAOo/E,EAASrsE,cAAc,OAIpC,OAHA/S,EAAKsuG,MAAMpB,gBAAkB,OAAOsO,EAAa,IACjDx7G,EAAKsuG,MAAMrmB,OAAYojB,EAAI,KAEpB+P,GAAaj3G,GACdw3G,GAAkBD,GAAuBrQ,EAAMA,EAAM,EAAG,EAAGrrG,IAC3D0mF,QAAQC,QAAO,MAExBM,MAAK,SAAC6zB,GAGH,OAFAE,EAAIE,UAAUJ,EAAK,EAAG,GAEfM,GAAaJ,EAAIY,aAAa,EAAG,EAAGvQ,EAAMA,GAAMlnG,SAE1D03G,OAAM,WAAM,QAAK,GAC1B,EAEaH,GAAyB,SAClC1zB,EACAC,EACA/J,EACAH,EACA/9E,GAEA,IAAMuB,EAAQ,6BACRk6G,EAAMr8B,SAASn8E,gBAAgB1B,EAAO,OACtCu6G,EAAgB18B,SAASn8E,gBAAgB1B,EAAO,iBAatD,OAZAk6G,EAAIxnG,eAAe,KAAM,QAAS+zE,EAAMp3E,YACxC6qG,EAAIxnG,eAAe,KAAM,SAAUg0E,EAAOr3E,YAE1CkrG,EAAc7nG,eAAe,KAAM,QAAS,QAC5C6nG,EAAc7nG,eAAe,KAAM,SAAU,QAC7C6nG,EAAc7nG,eAAe,KAAM,IAAKiqE,EAAEttE,YAC1CkrG,EAAc7nG,eAAe,KAAM,IAAK8pE,EAAEntE,YAC1CkrG,EAAc7nG,eAAe,KAAM,4BAA6B,QAChEwnG,EAAIz6G,YAAY86G,GAEhBA,EAAc96G,YAAYhB,GAEnBy7G,CACX,EAEaE,GAAoB,SAACF,GAC9B,OAAO,IAAI/0B,SAAQ,SAACD,EAASE,GACzB,IAAMm0B,EAAM,IAAIN,MAChBM,EAAIiB,OAAS,WAAM,OAAAt1B,EAAQq0B,EAAI,EAC/BA,EAAIkB,QAAUr1B,EAEdm0B,EAAIn0G,IAAM,oCAAoCs1G,oBAAmB,IAAIztG,eAAgBU,kBAAkBusG,MAE/G,EAEaS,GAAW,CACpB,wBAAIC,GAEA,IAAMh/G,EAAQo8G,GAAgBn6B,UAE9B,OADAriF,OAAOgY,eAAemnG,GAAU,uBAAwB,CAAC/+G,MAAKA,IACvDA,GAEX,yBAAIi/G,GAEA,IAAMj/G,EAAQ++G,GAASC,sBAAwBrC,GAAiB16B,UAEhE,OADAriF,OAAOgY,eAAemnG,GAAU,wBAAyB,CAAC/+G,MAAKA,IACxDA,GAEX,uBAAIk/G,GAEA,IAAMl/G,EAAQ09G,GAAQz7B,UAEtB,OADAriF,OAAOgY,eAAemnG,GAAU,sBAAuB,CAAC/+G,MAAKA,IACtDA,GAEX,iCAAIm/G,GAEA,IAAMn/G,EACoB,oBAAfuB,MAAMkpF,MAA+C,oBAAjBtI,OAAOi9B,MAC5ClB,GAAkBj8B,UAClBsH,QAAQD,SAAQ,GAE1B,OADA1pF,OAAOgY,eAAemnG,GAAU,gCAAiC,CAAC/+G,MAAKA,IAChEA,GAEX,uBAAIq/G,GAEA,IAAMr/G,EAAQo9G,KAEd,OADAx9G,OAAOgY,eAAemnG,GAAU,sBAAuB,CAAC/+G,MAAKA,IACtDA,GAEX,yBAAIs/G,GAEA,IAAMt/G,EAAQu9G,KAEd,OADA39G,OAAOgY,eAAemnG,GAAU,wBAAyB,CAAC/+G,MAAKA,IACxDA,GAEX,oBAAIu/G,GAEA,IAAMv/G,EAAQ,oBAAqB,IAAIw9G,eAEvC,OADA59G,OAAOgY,eAAemnG,GAAU,mBAAoB,CAAC/+G,MAAKA,IACnDA,GAEX,oCAAIw/G,GAGA,IAAMx/G,IAA2B,qBAATy/G,OAAyBA,KAAaC,WAE9D,OADA9/G,OAAOgY,eAAemnG,GAAU,mCAAoC,CAAC/+G,MAAKA,IACnEA,ICnNf2/G,GAAA,WAII,SAAAA,EAAYtoG,EAAcgiG,GACtB72G,KAAK6U,KAAOA,EACZ7U,KAAK62G,OAASA,EAEtB,OAAAsG,CAAA,CARA,GAUaC,GAAkB,SAC3B50B,EACAhrF,EACAi5G,EACAp2G,GAEA,IAAMk6G,EAAW8C,GAAU7/G,EAAOi5G,GAC5B6G,EAA2B,GAC7B5oG,EAAS,EAkCb,OAjCA6lG,EAASn7B,SAAQ,SAACvqE,GACd,GAAI4hG,EAAO7D,mBAAmB3zG,QAAU4V,EAAK0oG,OAAOt+G,OAAS,EACzD,GAAIs9G,GAASC,qBAAsB,CAC/B,IAAMgB,EAAc1D,GAAYz5G,EAAMqU,EAAQG,EAAK5V,QAAQw+G,iBAC3D,GAAID,EAAYv+G,OAAS,EAAG,CACxB,IAAMy+G,EAAcC,GAAiB9oG,GACjC+oG,EAAY,EAChBF,EAAYt+B,SAAQ,SAACy+B,GACjBP,EAAW1tG,KACP,IAAIutG,GACAU,EACAz1B,EAAOO,gBACHH,EACAsxB,GAAYz5G,EAAMu9G,EAAYlpG,EAAQmpG,EAAW5+G,QAAQw+G,oBAIrEG,GAAaC,EAAW5+G,eAG5Bq+G,EAAW1tG,KAAK,IAAIutG,GAAWtoG,EAAMuzE,EAAOO,gBAAgBH,EAASg1B,SAEtE,CACH,IAAMM,EAAkBz9G,EAAK4U,UAAUJ,EAAK5V,QAC5Cq+G,EAAW1tG,KAAK,IAAIutG,GAAWtoG,EAAMkpG,GAAiBv1B,EAASnoF,KAC/DA,EAAOy9G,OAEHvB,GAASC,uBACjBn8G,EAAOA,EAAK4U,UAAUJ,EAAK5V,SAE/ByV,GAAUG,EAAK5V,UAGZq+G,CACX,EAEMS,GAAmB,SAACv1B,EAAkBnoF,GACxC,IAAM+J,EAAgB/J,EAAK+J,cAC3B,GAAIA,EAAe,CACf,IAAM4zG,EAAU5zG,EAAcgJ,cAAc,sBAC5C4qG,EAAQ38G,YAAYhB,EAAKsQ,WAAU,IACnC,IAAMxM,EAAa9D,EAAK8D,WACxB,GAAIA,EAAY,CACZA,EAAW2N,aAAaksG,EAAS39G,GACjC,IAAMw2G,EAAS9tB,EAAYP,EAASw1B,GAIpC,OAHIA,EAAQtyG,YACRvH,EAAW2N,aAAaksG,EAAQtyG,WAAYsyG,GAEzCnH,GAIf,OAAOzuB,EAAOU,KAClB,EAEMgxB,GAAc,SAACz5G,EAAYqU,EAAgBzV,GAC7C,IAAMmL,EAAgB/J,EAAK+J,cAC3B,IAAKA,EACD,MAAM,IAAIV,MAAM,8BAEpB,IAAMwoD,EAAQ9nD,EAAc0vG,cAG5B,OAFA5nD,EAAMuoD,SAASp6G,EAAMqU,GACrBw9C,EAAMwoD,OAAOr6G,EAAMqU,EAASzV,GACrBizD,CACX,EAEayrD,GAAmB,SAACngH,GAC7B,GAAI++G,GAASS,iCAAkC,CAE3C,IAAMiB,EAAY,IAAKhB,KAAaC,eAAU,EAAQ,CAACgB,YAAa,aAEpE,OAAOn/G,MAAMkpF,KAAKg2B,EAAUE,QAAQ3gH,IAAQ4U,KAAI,SAAC+rG,GAAiB,OAAAA,EAAQA,OAAO,IAGrF,OAAO3E,GAAeh8G,EAC1B,EAEM4gH,GAAe,SAAC5gH,EAAei5G,GACjC,GAAI8F,GAASS,iCAAkC,CAE3C,IAAMiB,EAAY,IAAKhB,KAAaC,eAAU,EAAQ,CAClDgB,YAAa,SAGjB,OAAOn/G,MAAMkpF,KAAKg2B,EAAUE,QAAQ3gH,IAAQ4U,KAAI,SAAC+rG,GAAiB,OAAAA,EAAQA,OAAO,IAGrF,OAAOE,GAAW7gH,EAAOi5G,EAC7B,EAEM4G,GAAY,SAAC7/G,EAAei5G,GAC9B,OAAgC,IAAzBA,EAAO/G,cAAsBiO,GAAiBngH,GAAS4gH,GAAa5gH,EAAOi5G,EACtF,EAGM6H,GAAiB,CAAC,GAAQ,IAAQ,KAAQ,MAAS,MAAS,KAAQ,MAEpED,GAAa,SAAC70B,EAAaitB,GAS7B,IARA,IAMIgD,EANEC,EAAU5nB,GAAYtI,EAAK,CAC7B4G,UAAWqmB,EAAOrmB,UAClBmB,UAAmC,eAAxBklB,EAAO/F,aAA4C,aAAe+F,EAAOllB,YAGlFgtB,EAAQ,gBAIV,GAAI9E,EAAGj8G,MAAO,CACV,IAAMA,EAAQi8G,EAAGj8G,MAAM2S,QACjBs5E,EAAaF,EAAa/rF,GAC5BghH,EAAO,GACX/0B,EAAWrK,SAAQ,SAAC8F,IAC2B,IAAvCo5B,GAAevxG,QAAQm4E,GACvBs5B,GAAQ70B,EAAczE,IAElBs5B,EAAKv/G,QACLs/G,EAAM3uG,KAAK4uG,GAEfD,EAAM3uG,KAAK+5E,EAAczE,IACzBs5B,EAAO,OAIXA,EAAKv/G,QACLs/G,EAAM3uG,KAAK4uG,OAlBd/E,EAAKC,EAAQptG,QAAQ+6E,UAuB9B,OAAOk3B,CACX,ECxJAE,GAAA,WAII,SAAAA,EAAYj2B,EAAkBnoF,EAAYo2G,GACtCz2G,KAAK6U,KAAOwgG,GAAUh1G,EAAKmE,KAAMiyG,EAAOnF,eACxCtxG,KAAKs9G,WAAaF,GAAgB50B,EAASxoF,KAAK6U,KAAM4hG,EAAQp2G,GAEtE,OAAAo+G,CAAA,CARA,GAUMpJ,GAAY,SAACxgG,EAAcwgG,GAC7B,OAAQA,GACJ,KAAK,EACD,OAAOxgG,EAAK0oE,cAChB,KAAK,EACD,OAAO1oE,EAAKhV,QAAQ6+G,GAAYC,IACpC,KAAK,EACD,OAAO9pG,EAAKkxE,cAChB,QACI,OAAOlxE,EAEnB,EAEM6pG,GAAa,2BAEbC,GAAa,SAAC7hC,EAAW8hC,EAAYC,GACvC,OAAI/hC,EAAE79E,OAAS,EACJ2/G,EAAKC,EAAG94B,cAGZjJ,CACX,ECjCAgiC,GAAA,SAAAC,GAKI,SAAAD,EAAYt2B,EAAkB2yB,GAA9B,IAAA6D,EACID,EAAArgH,KAAA,KAAM8pF,EAAS2yB,IAAI,YACnB6D,EAAKh4G,IAAMm0G,EAAI8D,YAAc9D,EAAIn0G,IACjCg4G,EAAKE,eAAiB/D,EAAIgE,aAC1BH,EAAKI,gBAAkBjE,EAAIkE,cAC3BL,EAAKx2B,QAAQwkB,MAAMC,SAAS+R,EAAKh4G,OAEzC,OAZ2Co/E,EAAA04B,EAAAC,GAY3CD,CAAA,CAZA,CAA2CxI,ICA3CgJ,GAAA,SAAAP,GAKI,SAAAO,EAAY92B,EAAkB4yB,GAA9B,IAAA4D,EACID,EAAArgH,KAAA,KAAM8pF,EAAS4yB,IAAO,YACtB4D,EAAK5D,OAASA,EACd4D,EAAKE,eAAiB9D,EAAO/yB,MAC7B22B,EAAKI,gBAAkBhE,EAAO9yB,SAEtC,OAX4ClC,EAAAk5B,EAAAP,GAW5CO,CAAA,CAXA,CAA4ChJ,ICC5CiJ,GAAA,SAAAR,GAKI,SAAAQ,EAAY/2B,EAAkB2yB,GAA9B,IAAA6D,EACID,EAAArgH,KAAA,KAAM8pF,EAAS2yB,IAAI,KACbvgC,EAAI,IAAI/rE,cACRgoG,EAAS9tB,EAAYP,EAAS2yB,UACpCA,EAAIvnG,aAAa,QAAYijG,EAAOxuB,MAAK,MACzC8yB,EAAIvnG,aAAa,SAAaijG,EAAOvuB,OAAM,MAE3C02B,EAAKlD,IAAM,sBAAsBQ,mBAAmB1hC,EAAErrE,kBAAkB4rG,IACxE6D,EAAKE,eAAiB/D,EAAI9yB,MAAMm3B,QAAQhiH,MACxCwhH,EAAKI,gBAAkBjE,EAAI7yB,OAAOk3B,QAAQhiH,MAE1CwhH,EAAKx2B,QAAQwkB,MAAMC,SAAS+R,EAAKlD,OAEzC,OAlByC11B,EAAAm5B,EAAAR,GAkBzCQ,CAAA,CAlBA,CAAyCjJ,ICFzCmJ,GAAA,SAAAV,GAGI,SAAAU,EAAYj3B,EAAkBhiF,GAA9B,IAAAw4G,EACID,EAAArgH,KAAA,KAAM8pF,EAAShiF,IAAQ,YACvBw4G,EAAKxhH,MAAQgJ,EAAQhJ,QAE7B,OAPwC4oF,EAAAq5B,EAAAV,GAOxCU,CAAA,CAPA,CAAwCnJ,ICAxCoJ,GAAA,SAAAX,GAII,SAAAW,EAAYl3B,EAAkBhiF,GAA9B,IAAAw4G,EACID,EAAArgH,KAAA,KAAM8pF,EAAShiF,IAAQ,YACvBw4G,EAAKn+G,MAAQ2F,EAAQ3F,MACrBm+G,EAAKW,SAAuC,mBAArBn5G,EAAQm5G,WAA+C,IAArBn5G,EAAQm5G,WAEzE,OATwCv5B,EAAAs5B,EAAAX,GASxCW,CAAA,CATA,CAAwCpJ,ICOlCsJ,GAAgD,CAClD,CACI9uB,KAAM,GACNkI,MAAO,EACPiC,KAAM,KACND,OAAQ,IAIV6kB,GAA6C,CAC/C,CACI/uB,KAAM,GACNkI,MAAO,EACPgC,OAAQ,KAIV8kB,GAAsB,SAACjJ,GACzB,OAAIA,EAAOxuB,MAAQwuB,EAAOvuB,OACf,IAAIF,EAAOyuB,EAAOvzB,MAAQuzB,EAAOxuB,MAAQwuB,EAAOvuB,QAAU,EAAGuuB,EAAO1tC,IAAK0tC,EAAOvuB,OAAQuuB,EAAOvuB,QAC/FuuB,EAAOxuB,MAAQwuB,EAAOvuB,OACtB,IAAIF,EAAOyuB,EAAOvzB,KAAMuzB,EAAO1tC,KAAO0tC,EAAOvuB,OAASuuB,EAAOxuB,OAAS,EAAGwuB,EAAOxuB,MAAOwuB,EAAOxuB,OAElGwuB,CACX,EAEMkJ,GAAgB,SAAC1/G,GACnB,IAAM7C,EAAQ6C,EAAKywF,OAASkvB,GAAW,IAAIjhH,MAAMsB,EAAK7C,MAAMyB,OAAS,GAAGuQ,KAAK,UAAYnP,EAAK7C,MAE9F,OAAwB,IAAjBA,EAAMyB,OAAeoB,EAAK4/G,aAAe,GAAKziH,CACzD,EAEa0iH,GAAW,WACXC,GAAQ,QACRH,GAAW,WACXI,GAAc,UAE3BC,GAAA,SAAAtB,GAKI,SAAAsB,EAAY73B,EAAkB5oF,GAA9B,IAAAo/G,EACID,EAAArgH,KAAA,KAAM8pF,EAAS5oF,IAAM,KA2BrB,OA1BAo/G,EAAKluB,KAAOlxF,EAAMkxF,KAAKvT,cACvByhC,EAAKsB,QAAU1gH,EAAM0gH,QACrBtB,EAAKxhH,MAAQuiH,GAAcngH,GAEvBo/G,EAAKluB,OAASovB,IAAYlB,EAAKluB,OAASqvB,KACxCnB,EAAKvI,OAAO3N,gBAAkB,WAC9BkW,EAAKvI,OAAOxI,eACR+Q,EAAKvI,OAAOvI,iBACZ8Q,EAAKvI,OAAOtI,kBACZ6Q,EAAKvI,OAAOrI,gBACR,WACR4Q,EAAKvI,OAAOxH,eACR+P,EAAKvI,OAAOvH,iBACZ8P,EAAKvI,OAAOtH,kBACZ6P,EAAKvI,OAAOrH,gBACR,EACR4P,EAAKvI,OAAO7H,eACRoQ,EAAKvI,OAAO5H,iBACZmQ,EAAKvI,OAAO3H,kBACZkQ,EAAKvI,OAAO1H,gBAAe,EAE/BiQ,EAAKvI,OAAO5N,eAAiB,CAAC,GAC9BmW,EAAKvI,OAAOjJ,iBAAmB,CAAC,GAChCwR,EAAKnI,OAASiJ,GAAoBd,EAAKnI,SAGnCmI,EAAKluB,MACT,KAAKovB,GACDlB,EAAKvI,OAAOlI,qBACRyQ,EAAKvI,OAAOnI,oBACZ0Q,EAAKvI,OAAOjI,wBACZwQ,EAAKvI,OAAOhI,uBACRmR,GACR,MACJ,KAAKO,GACDnB,EAAKvI,OAAOlI,qBACRyQ,EAAKvI,OAAOnI,oBACZ0Q,EAAKvI,OAAOjI,wBACZwQ,EAAKvI,OAAOhI,uBACRoR,YAIxB,OAlD2Cz5B,EAAAi6B,EAAAtB,GAkD3CsB,CAAA,CAlDA,CAA2C/J,IC5C3CiK,GAAA,SAAAxB,GAEI,SAAAwB,EAAY/3B,EAAkBhiF,GAA9B,IAAAw4G,EACID,EAAArgH,KAAA,KAAM8pF,EAAShiF,IAAQ,KACjBg6G,EAASh6G,EAAQzG,QAAQyG,EAAQi6G,eAAiB,UACxDzB,EAAKxhH,MAAQgjH,GAASA,EAAO3rG,MAAa,KAElD,OAP4CuxE,EAAAm6B,EAAAxB,GAO5CwB,CAAA,CAPA,CAA4CjK,ICA5CoK,GAAA,SAAA3B,GAEI,SAAA2B,EAAYl4B,EAAkBhiF,GAA9B,IAAAw4G,EACID,EAAArgH,KAAA,KAAM8pF,EAAShiF,IAAQ,YACvBw4G,EAAKxhH,MAAQgJ,EAAQhJ,QAE7B,OAN8C4oF,EAAAs6B,EAAA3B,GAM9C2B,CAAA,CANA,CAA8CpK,ICG9CqK,GAAA,SAAA5B,GAOI,SAAA4B,EAAYn4B,EAAkBo4B,GAA9B,IAAA5B,EACID,EAAArgH,KAAA,KAAM8pF,EAASo4B,IAAO,KACtB5B,EAAKh4G,IAAM45G,EAAO55G,IAClBg4G,EAAK32B,MAAQ1L,SAASikC,EAAOv4B,MAAO,KAAO,EAC3C22B,EAAK12B,OAAS3L,SAASikC,EAAOt4B,OAAQ,KAAO,EAC7C02B,EAAKlW,gBAAkBkW,EAAKvI,OAAO3N,gBACnC,IACI,GACI8X,EAAOC,eACPD,EAAOC,cAAcphC,UACrBmhC,EAAOC,cAAcphC,SAAStwE,gBAChC,CACE6vG,EAAK8B,KAAOC,GAAUv4B,EAASo4B,EAAOC,cAAcphC,SAAStwE,iBAG7D,IAAM6xG,EAA0BJ,EAAOC,cAAcphC,SAAStwE,gBACxDqwF,GACIhX,EACAkuB,iBAAiBkK,EAAOC,cAAcphC,SAAStwE,iBAAiB25F,iBAEpE3K,GAAOC,YACP6iB,EAAsBL,EAAOC,cAAcphC,SAAS+H,KACpDgY,GACIhX,EACAkuB,iBAAiBkK,EAAOC,cAAcphC,SAAS+H,MAAMshB,iBAEzD3K,GAAOC,YAEb4gB,EAAKlW,gBAAkBzK,GAAc2iB,GAC/B3iB,GAAc4iB,GACVjC,EAAKvI,OAAO3N,gBACZmY,EACJD,GAEZ,MAAOxrG,IAAI,UAErB,OA3C4C4wE,EAAAu6B,EAAA5B,GA2C5C4B,CAAA,CA3CA,CAA4CrK,ICStC4K,GAAc,CAAC,KAAM,KAAM,QAE3BC,GAAgB,SAAC34B,EAAkBnoF,EAAY6M,EAA0ByE,GAC3E,IAAK,IAAIyvG,EAAY/gH,EAAKqL,WAAY21G,OAAQ,EAAED,EAAWA,EAAYC,EAGnE,GAFAA,EAAWD,EAAUz1G,YAEjBgB,GAAWy0G,IAAcA,EAAU58G,KAAK+4G,OAAOt+G,OAAS,EACxDiO,EAAOqpG,UAAU3mG,KAAK,IAAI6uG,GAAcj2B,EAAS44B,EAAWl0G,EAAOupG,cAChE,GAAI/pG,GAAc00G,GACrB,GAAIE,GAAcF,IAAcA,EAAUG,cACtCH,EAAUG,gBAAgBniC,SAAQ,SAACgiC,GAAc,OAAAD,GAAc34B,EAAS44B,EAAWl0G,EAAQyE,EAAK,QAC7F,CACH,IAAM6vG,EAAYC,GAAgBj5B,EAAS44B,GACvCI,EAAU/K,OAAOnB,cACboM,GAA2BN,EAAWI,EAAW7vG,GACjD6vG,EAAUxoB,OAAS,EACZ2oB,GAAuBH,EAAU/K,UACxC+K,EAAUxoB,OAAS,IAGyB,IAA5CkoB,GAAYn0G,QAAQq0G,EAAUl9G,WAC9Bs9G,EAAUxoB,OAAS,GAGvB9rF,EAAOspG,SAAS5mG,KAAK4xG,GACrBJ,EAAUQ,KACNR,EAAUS,WACVV,GAAc34B,EAAS44B,EAAUS,WAAYL,EAAW7vG,GAEvDmwG,GAAkBV,IAClBW,GAAaX,IACbY,GAAgBZ,IAEjBD,GAAc34B,EAAS44B,EAAWI,EAAW7vG,IAMrE,EAEM8vG,GAAkB,SAACj5B,EAAkBhiF,GACvC,OAAIy7G,GAAez7G,GACR,IAAIs4G,GAAsBt2B,EAAShiF,GAG1C07G,GAAgB17G,GACT,IAAI84G,GAAuB92B,EAAShiF,GAG3Cu7G,GAAav7G,GACN,IAAI+4G,GAAoB/2B,EAAShiF,GAGxC27G,GAAY37G,GACL,IAAIi5G,GAAmBj3B,EAAShiF,GAGvC47G,GAAY57G,GACL,IAAIk5G,GAAmBl3B,EAAShiF,GAGvC67G,GAAe77G,GACR,IAAI65G,GAAsB73B,EAAShiF,GAG1Cw7G,GAAgBx7G,GACT,IAAI+5G,GAAuB/3B,EAAShiF,GAG3Cs7G,GAAkBt7G,GACX,IAAIk6G,GAAyBl4B,EAAShiF,GAG7C87G,GAAgB97G,GACT,IAAIm6G,GAAuBn4B,EAAShiF,GAGxC,IAAI8vG,GAAiB9tB,EAAShiF,EACzC,EAEau6G,GAAY,SAACv4B,EAAkBhiF,GACxC,IAAMg7G,EAAYC,GAAgBj5B,EAAShiF,GAG3C,OAFAg7G,EAAUxoB,OAAS,EACnBmoB,GAAc34B,EAAShiF,EAASg7G,EAAWA,GACpCA,CACX,EAEME,GAA6B,SAACrhH,EAAemhH,EAA6B7vG,GAC5E,OACI6vG,EAAU/K,OAAOhB,0BACjB+L,EAAU/K,OAAO/D,QAAU,GAC3B8O,EAAU/K,OAAOlB,iBAChBgN,GAAcliH,IAASsR,EAAK8kG,OAAOpY,eAE5C,EAEMsjB,GAAyB,SAAClL,GAA0C,OAAAA,EAAOjB,gBAAkBiB,EAAOf,YAAY,EAEzG/oG,GAAa,SAACtM,GAA6B,OAAAA,EAAKoM,WAAarB,KAAKxD,SAAS,EAC3E8E,GAAgB,SAACrM,GAAgC,OAAAA,EAAKoM,WAAarB,KAAK1D,YAAY,EACpFivG,GAAoB,SAACt2G,GAC9B,OAAAqM,GAAcrM,IAAgD,qBAA/BA,EAAqBsuG,QAA0B6T,GAAiBniH,EAA/F,EACSmiH,GAAmB,SAACh8G,GAC7B,MAA6C,kBAArCA,EAAuBi8G,SAA/B,EACSN,GAAc,SAAC9hH,GAAyC,MAAiB,OAAjBA,EAAK6D,OAAgB,EAC7Ek+G,GAAc,SAAC/hH,GAA4C,MAAiB,OAAjBA,EAAK6D,OAAgB,EAChFm+G,GAAiB,SAAChiH,GAA4C,MAAiB,UAAjBA,EAAK6D,OAAmB,EACtFw+G,GAAgB,SAACriH,GAA2C,MAAiB,SAAjBA,EAAK6D,OAAkB,EACnF69G,GAAe,SAAC1hH,GAAyC,MAAiB,QAAjBA,EAAK6D,OAAiB,EAC/Eq+G,GAAgB,SAACliH,GAA2C,MAAiB,SAAjBA,EAAK6D,OAAkB,EACnFg+G,GAAkB,SAAC7hH,GAA6C,MAAiB,WAAjBA,EAAK6D,OAAoB,EACzFy+G,GAAiB,SAACtiH,GAA4C,MAAiB,UAAjBA,EAAK6D,OAAmB,EACtF+9G,GAAiB,SAAC5hH,GAA4C,MAAiB,QAAjBA,EAAK6D,OAAiB,EACpFo+G,GAAkB,SAACjiH,GAA6C,MAAiB,WAAjBA,EAAK6D,OAAoB,EACzF0+G,GAAiB,SAACviH,GAA4C,MAAiB,UAAjBA,EAAK6D,OAAmB,EACtF2+G,GAAkB,SAACxiH,GAA6C,MAAiB,WAAjBA,EAAK6D,OAAoB,EACzF49G,GAAoB,SAACzhH,GAA+C,MAAiB,aAAjBA,EAAK6D,OAAsB,EAC/F89G,GAAkB,SAAC3hH,GAA6C,MAAiB,WAAjBA,EAAK6D,OAAoB,EACzFo9G,GAAgB,SAACjhH,GAA2C,MAAiB,SAAjBA,EAAK6D,OAAkB,EAEnF4+G,GAAkB,SAACziH,GAAuC,OAAAA,EAAK6D,QAAQ6I,QAAQ,KAAO,CAAC,EClIpGg2G,GAAA,oBAAAA,IACqB,KAAAC,SAAsC,CAAC,EAoD5D,OAlDID,EAAAvkH,UAAAykH,gBAAA,SAAgB79G,GACZ,IAAMquG,EAAUzzG,KAAKgjH,SAAS59G,GAE9B,OAAIquG,GAAWA,EAAQx0G,OACZw0G,EAAQA,EAAQx0G,OAAS,GAE7B,GAGX8jH,EAAAvkH,UAAA0kH,iBAAA,SAAiB99G,GACb,IAAMquG,EAAUzzG,KAAKgjH,SAAS59G,GAC9B,OAAOquG,GAAoB,IAG/BsP,EAAAvkH,UAAA6+E,IAAA,SAAI2lC,GAAJ,IAAAhE,EAAA,KACIgE,EAAS5jC,SAAQ,SAACq0B,GAAY,OAAAuL,EAAKgE,SAASvP,GAASp2B,KAAK,KAG9D0lC,EAAAvkH,UAAAmE,MAAA,SAAMgsG,GAAN,IAAAqQ,EAAA,KACU1L,EAAmB3E,EAAM2E,iBACzBK,EAAehF,EAAMgF,aACvBwP,GAAW,EAEU,OAArB7P,GACAA,EAAiBl0B,SAAQ,SAACgkC,GACtB,IAAM3P,EAAUuL,EAAKgE,SAASI,EAAM3P,SAChCA,GAA+B,IAApB2P,EAAM1P,YACjByP,GAAW,EACN1P,EAAQx0G,QACTw0G,EAAQ7jG,KAAK,GAEjB6jG,EAAQh2B,KAAKC,IAAI,EAAG+1B,EAAQx0G,OAAS,KAAOmkH,EAAM1P,cAK9D,IAAM2P,EAAyB,GAY/B,OAXIF,GACAxP,EAAav0B,SAAQ,SAACgkC,GAClB,IAAI3P,EAAUuL,EAAKgE,SAASI,EAAM3P,SAClC4P,EAAazzG,KAAKwzG,EAAM3P,SACnBA,IACDA,EAAUuL,EAAKgE,SAASI,EAAM3P,SAAW,IAE7CA,EAAQ7jG,KAAKwzG,EAAMvP,UAIpBwP,GAEfN,CAAA,CArDA,GA4DMO,GAA8B,CAChCt/E,SAAU,CAAC,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAC9D63D,OAAQ,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,MAGzE0nB,GAA2B,CAC7Bv/E,SAAU,CACN,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAC3G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD63D,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF2nB,GAAyB,CAC3Bx/E,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEpD63D,OAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF4nB,GAA2B,CAC7Bz/E,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5D63D,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIF6nB,GAAwB,SAC1BlmH,EACA0jF,EACAxD,EACAimC,EACAC,EACAC,GAEA,OAAIrmH,EAAQ0jF,GAAO1jF,EAAQkgF,EAChBomC,GAAkBtmH,EAAOomH,EAAUC,EAAO5kH,OAAS,GAI1D0kH,EAAQ3/E,SAASl9B,QAAO,SAACg/E,EAAQi+B,EAAS/yG,GACtC,KAAOxT,GAASumH,GACZvmH,GAASumH,EACTj+B,GAAU69B,EAAQ9nB,OAAO7qF,GAE7B,OAAO80E,IACR,IAAM+9B,CAEjB,EAEMG,GAAuC,SACzCxmH,EACAymH,EACAC,EACAC,GAEA,IAAIr+B,EAAS,GAEb,GACSo+B,GACD1mH,IAEJsoF,EAASq+B,EAAS3mH,GAASsoF,EAC3BtoF,GAASymH,QACJzmH,EAAQymH,GAAwBA,GAEzC,OAAOn+B,CACX,EAEMs+B,GAA8B,SAChC5mH,EACA6mH,EACAC,EACAJ,EACAL,GAEA,IAAMI,EAAuBK,EAAoBD,EAAsB,EAEvE,OACK7mH,EAAQ,EAAI,IAAM,KAClBwmH,GAAqCvmC,KAAK4sB,IAAI7sG,GAAQymH,EAAsBC,GAAW,SAACh/B,GACrF,OAAAyE,EAAclM,KAAK8H,MAAML,EAAY++B,GAAwBI,MAE7DR,EAEZ,EAEMU,GAAgC,SAAC/mH,EAAemmH,EAAiBE,QAAA,IAAAA,IAAAA,EAAA,MACnE,IAAMI,EAAuBN,EAAQ1kH,OACrC,OACI+kH,GACIvmC,KAAK4sB,IAAI7sG,GACTymH,GACA,GACA,SAAC/+B,GAAc,OAAAy+B,EAAQlmC,KAAK8H,MAAML,EAAY++B,GAAsB,IACpEJ,CAEZ,EAEMW,GAAY,EACZC,GAAuB,EACvBC,GAA4B,EAC5BC,GAA2B,EAE3BC,GAAmB,SACrBpnH,EACAqnH,EACAC,EACAC,EACAlB,EACA7qB,GAEA,GAAIx7F,GAAS,MAAQA,EAAQ,KACzB,OAAOsmH,GAAkBtmH,EAAO,EAA6BqmH,EAAO5kH,OAAS,GAEjF,IAAI6kF,EAAMrG,KAAK4sB,IAAI7sG,GACfsoF,EAAS+9B,EAEb,GAAY,IAAR//B,EACA,OAAO+gC,EAAQ,GAAK/+B,EAGxB,IAAK,IAAIqU,EAAQ,EAAGrW,EAAM,GAAKqW,GAAS,EAAGA,IAAS,CAChD,IAAM6qB,EAAclhC,EAAM,GAEN,IAAhBkhC,GAAqB5R,GAASpa,EAAOwrB,KAAyB,KAAX1+B,EACnDA,EAAS++B,EAAQG,GAAel/B,EAEhCk/B,EAAc,GACG,IAAhBA,GAA+B,IAAV7qB,GACL,IAAhB6qB,GAA+B,IAAV7qB,GAAeiZ,GAASpa,EAAOyrB,KACpC,IAAhBO,GAA+B,IAAV7qB,GAAeiZ,GAASpa,EAAO0rB,KAA8BlnH,EAAQ,KAC1E,IAAhBwnH,GAAqB7qB,EAAQ,GAAKiZ,GAASpa,EAAO2rB,IAEnD7+B,EAAS++B,EAAQG,IAAgB7qB,EAAQ,EAAI2qB,EAAY3qB,EAAQ,GAAK,IAAMrU,EACrD,IAAhBk/B,GAAqB7qB,EAAQ,IACpCrU,EAASg/B,EAAY3qB,EAAQ,GAAKrU,GAEtChC,EAAMrG,KAAK8H,MAAMzB,EAAM,IAG3B,OAAQtmF,EAAQ,EAAIunH,EAAe,IAAMj/B,CAC7C,EAEMm/B,GAA+B,2BAC/BC,GAA6B,2BAC7BC,GAAoB,2BACpBC,GAAkB,2BAEXtB,GAAoB,SAACtmH,EAAeszF,EAAuBu0B,GACpE,IAAMC,EAAgBD,EAAe,KAAO,GACtCE,EAAYF,EAAe,SAAM,GACjCG,EAAeH,EAAe,KAAO,GACrCI,EAAcJ,EAAe,IAAM,GACzC,OAAQv0B,GACJ,KAAK,EACD,MAAO,SAAM20B,EACjB,KAAK,EACD,MAAO,SAAMA,EACjB,KAAK,EACD,MAAO,SAAMA,EACjB,KAAK,EACD,IAAM3/B,EAASs+B,GAA4B5mH,EAAO,GAAI,IAAI,EAAM8nH,GAChE,OAAOx/B,EAAO7mF,OAAS,EAAI,IAAI6mF,EAAWA,EAC9C,KAAK,EACD,OAAOy+B,GAA8B/mH,EAAO,+DAAc+nH,GAC9D,KAAK,EACD,OAAO7B,GACHlmH,EACA,EACA,KACA8lH,GAAW,EAEXgC,GACF/nC,cACN,KAAK,EACD,OAAOmmC,GAAsBlmH,EAAO,EAAG,KAAM8lH,GAAa,EAAyBgC,GACvF,KAAK,EACD,OAAOlB,GAA4B5mH,EAAO,IAAK,KAAK,EAAO8nH,GAC/D,KAAK,EACD,OAAOlB,GAA4B5mH,EAAO,GAAI,KAAK,EAAO8nH,GAC9D,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,GAAI,IAAI,EAAO8nH,GAC7D,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAM,MAAM,EAAM8nH,GAChE,KAAK,GACL,KAAK,GACD,OAAO5B,GAAsBlmH,EAAO,EAAG,KAAM+lH,GAAU,EAAyB+B,GACpF,KAAK,GACD,OAAO5B,GACHlmH,EACA,EACA,KACA+lH,GAAQ,EAER+B,GACF/nC,cACN,KAAK,GACD,OAAO6mC,GAA4B5mH,EAAO,KAAM,MAAM,EAAM8nH,GAChE,KAAK,GACL,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAM,MAAM,EAAM8nH,GAChE,KAAK,GACD,OAAOf,GAA8B/mH,EAAO,2EAAgB+nH,GAChE,KAAK,GACD,OAAOhB,GAA8B/mH,EAAO,+DAAc+nH,GAC9D,KAAK,GACL,KAAK,GACD,OAAOX,GACHpnH,EACA,+DACAynH,GACA,SACAM,EACAd,GAAuBC,GAA4BC,IAE3D,KAAK,GACD,OAAOC,GACHpnH,EACA,+DACA0nH,GACA,SACAK,EACAf,GAAYC,GAAuBC,GAA4BC,IAEvE,KAAK,GACD,OAAOC,GACHpnH,EACA,+DACAynH,GACA,SACAM,EACAd,GAAuBC,GAA4BC,IAE3D,KAAK,GACD,OAAOC,GACHpnH,EACA,+DACA0nH,GACA,SACAK,EACAf,GAAYC,GAAuBC,GAA4BC,IAEvE,KAAK,GACD,OAAOC,GAAiBpnH,EAAO,+DAAc,2BAAQ2nH,GAAmBI,EAAW,GACvF,KAAK,GACD,OAAOX,GACHpnH,EACA,+DACA,2BACA2nH,GACAI,EACAf,GAAYC,GAAuBC,IAE3C,KAAK,GACD,OAAOE,GACHpnH,EACA,+DACA,2BACA4nH,GACAI,EACAhB,GAAYC,GAAuBC,IAE3C,KAAK,GACD,OAAOE,GAAiBpnH,EAAO,+DAAc,2BAAQ4nH,GAAiBI,EAAc,GACxF,KAAK,GACD,OAAOZ,GACHpnH,EACA,+DACA,qBACA4nH,GACAI,EACAhB,GAAYC,GAAuBC,IAE3C,KAAK,GACD,OAAON,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAO5B,GAAsBlmH,EAAO,EAAG,MAAOimH,GAAU,EAAyB6B,GACrF,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAO5B,GAAsBlmH,EAAO,EAAG,MAAOgmH,GAAQ,EAAyB8B,GACnF,KAAK,GACD,OAAOf,GACH/mH,EACA,oSAER,KAAK,GACD,OAAO+mH,GACH/mH,EACA,8RAER,KAAK,GACD,OAAO4mH,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOf,GACH/mH,EACA,mSACA+nH,GAER,KAAK,GACD,OAAOhB,GACH/mH,EACA,6RACA+nH,GAER,KAAK,GACD,OAAOnB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAQ,MAAQ,EAAM8nH,GACpE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAQ,MAAQ,EAAM8nH,GACpE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAClE,KAAK,GACD,OAAOlB,GAA4B5mH,EAAO,KAAO,MAAO,EAAM8nH,GAElE,QACI,OAAOlB,GAA4B5mH,EAAO,GAAI,IAAI,EAAM8nH,GAEpE,EdjdMI,GAAmB,0BAEzBC,GAAA,WAQI,SAAAA,EACqBn9B,EACjBhiF,EACiBzG,GAMjB,GARiB,KAAAyoF,QAAAA,EAEA,KAAAzoF,QAAAA,EAEjBC,KAAK4lH,iBAAmB,GACxB5lH,KAAK6lH,iBAAmBr/G,EACxBxG,KAAKgjH,SAAW,IAAID,GACpB/iH,KAAK8lH,WAAa,GACbt/G,EAAQ4D,cACT,MAAM,IAAIV,MAAM,kDAGpB1J,KAAKmP,gBAAkBnP,KAAK2Q,UAAUnK,EAAQ4D,cAAc+E,iBAAiB,GAmarF,OAhaIw2G,EAAAnnH,UAAAunH,SAAA,SAAS37G,EAAyB47G,GAAlC,IAAAhH,EAAA,KACU4B,EAA4BqF,GAAsB77G,EAAe47G,GAEvE,IAAKpF,EAAOC,cACR,OAAO95B,QAAQC,OAAO,gCAG1B,IAAMk/B,EAAW97G,EAAc+7G,YAAuBC,YAChDC,EAAWj8G,EAAc+7G,YAAuBzjC,YAEhD4jC,EAAc1F,EAAOC,cACrB0F,EAA0BD,EAAY7mC,SAMtC+mC,EAAaC,GAAa7F,GAAQt5B,MAAK,kBAAAd,EAAAw4B,OAAA,+EAsBzC,OArBAh/G,KAAK4lH,iBAAiBxmC,QAAQsnC,IAC1BJ,IACAA,EAAYK,SAASX,EAAW1iC,KAAM0iC,EAAW78C,MAE7C,sBAAsBtnE,KAAKogF,UAAUC,YACpCokC,EAAYD,UAAYL,EAAW78C,KAAOm9C,EAAYJ,UAAYF,EAAW1iC,OAE9EtjF,KAAKwoF,QAAQo+B,OAAOxgH,KAAK,yDACzBpG,KAAKwoF,QAAQE,aAAe1oF,KAAKwoF,QAAQE,aAAajG,IAClD6jC,EAAYJ,QAAUF,EAAW1iC,KACjCgjC,EAAYD,QAAUL,EAAW78C,IACjC,EACA,KAKN09C,EAAU7mH,KAAKD,QAAQ8mH,QAIG,qBAF1BhB,EAAmB7lH,KAAK8mH,wBAGnB,CAAP,EAAO//B,QAAQC,OAAO,qBAAqBhnF,KAAK6lH,iBAAiB/1G,SAAQ,4BAGzEy2G,EAAcQ,OAASR,EAAcQ,MAAM9mC,MAC3C,GAAMsmC,EAAcQ,MAAM9mC,OAD1B,aACAuR,EAAA9J,8BAGA,iBAAiB7lF,KAAKogF,UAAUC,WAChC,GAAM8kC,GAAYT,IADlB,aACA/0B,EAAA9J,wBAGJ,MAAuB,oBAAZm/B,EACA,CAAP,EAAO9/B,QAAQD,UACVQ,MAAK,WAAM,OAAAu/B,EAAQN,EAAeV,EAAiB,IACnDv+B,MAAK,WAAM,OAAAs5B,CAAM,KAGnB,CAAP,EAAOA,aAUX,OAPA2F,EAActS,OACdsS,EAAchuB,MAAS0uB,GAAiBxnC,SAASx5E,SAAQ,iBAEzDihH,GAAmBlnH,KAAK6lH,iBAAiBz7G,cAAe87G,EAASG,GACjEE,EAAcz0G,aAAay0G,EAAcY,UAAUnnH,KAAKmP,iBAAkBo3G,EAAcp3G,iBACxFo3G,EAAcrS,QAEPsS,GAGXb,EAAAnnH,UAAA4oH,mBAAA,SAAuD/mH,GAInD,GAHI+1G,GAAY/1G,EAAM,GAGlB6hH,GAAgB7hH,GAChB,OAAOL,KAAKqnH,kBAAkBhnH,GAElC,GAAIsiH,GAAetiH,GACf,OAAOL,KAAKsnH,iBAAiBjnH,GAEjC,GAAIuiH,GAAeviH,GACf,OAAOL,KAAKunH,iBAAiBlnH,GAGjC,IAAMmnH,EAAQnnH,EAAKsQ,WAAU,GAY7B,OAXIsxG,GAAeuF,KACXvF,GAAe5hH,IAASA,EAAK4+G,YAAc5+G,EAAK4+G,aAAe5+G,EAAK2G,MACpEwgH,EAAMxgH,IAAM3G,EAAK4+G,WACjBuI,EAAMC,OAAS,IAGG,SAAlBD,EAAME,UACNF,EAAME,QAAU,UAIpB5E,GAAgB0E,GACTxnH,KAAK2nH,yBAAyBH,GAGlCA,GAGX7B,EAAAnnH,UAAAmpH,yBAAA,SAAyBtnH,GACrB,IAAMmnH,EAAQ/nC,SAASrsE,cAAc,4BAGrC,OAFAw0G,GAAcvnH,EAAKsuG,MAAO6Y,GAEnBA,GAGX7B,EAAAnnH,UAAA+oH,iBAAA,SAAiBlnH,GACb,IACI,IAAMwnH,EAAQxnH,EAAKwnH,MACnB,GAAIA,GAASA,EAAMC,SAAU,CACzB,IAAMC,EAAc,GAAG53G,MAAMzR,KAAKmpH,EAAMC,SAAU,GAAGhhH,QAAO,SAACihH,EAAaC,GACtE,OAAIA,GAAgC,kBAAjBA,EAAKC,QACbF,EAAMC,EAAKC,QAEfF,IACR,IACGpZ,EAAQtuG,EAAKsQ,WAAU,GAE7B,OADAg+F,EAAMuZ,YAAcH,EACbpZ,GAEb,MAAOn5F,IAGL,GADAxV,KAAKwoF,QAAQo+B,OAAOhkH,MAAM,qCAAsC4S,IACjD,kBAAXA,GAAEpQ,KACF,MAAMoQ,GAGd,OAAOnV,EAAKsQ,WAAU,IAG1Bg1G,EAAAnnH,UAAA6oH,kBAAA,SAAkBjM,SACd,GAAIp7G,KAAKD,QAAQooH,cAAgB/M,EAAOhxG,cAAe,CACnD,IAAM+wG,EAAMC,EAAOhxG,cAAcgJ,cAAc,OAC/C,IAEI,OADA+nG,EAAIn0G,IAAMo0G,EAAOI,YACVL,EACT,MAAO3lG,IACLxV,KAAKwoF,QAAQo+B,OAAO/mC,KAAK,sDAAuDu7B,IAIxF,IAAMgN,EAAehN,EAAOzqG,WAAU,GAEtC,IACIy3G,EAAa//B,MAAQ+yB,EAAO/yB,MAC5B+/B,EAAa9/B,OAAS8yB,EAAO9yB,OAC7B,IAAM+yB,EAAMD,EAAOE,WAAW,MACxB+M,EAAYD,EAAa9M,WAAW,MAC1C,GAAI+M,EACA,IAAKroH,KAAKD,QAAQuoH,YAAcjN,EAC5BgN,EAAUE,aAAalN,EAAIY,aAAa,EAAG,EAAGb,EAAO/yB,MAAO+yB,EAAO9yB,QAAS,EAAG,OAC5E,CACH,IAAMlsD,EAAgC,QAA3Bo1D,EAAA4pB,EAAOE,WAAW,iBAAS,IAAA9pB,EAAAA,EAAI4pB,EAAOE,WAAW,SAC5D,GAAIl/E,EAAI,CACJ,IAAMosF,EAAUpsF,EAAGqsF,wBACoB,KAA5B,OAAPD,QAAO,IAAPA,OAAO,EAAPA,EAASE,wBACT1oH,KAAKwoF,QAAQo+B,OAAOxgH,KAChB,sEACAg1G,GAKZiN,EAAU9M,UAAUH,EAAQ,EAAG,GAGvC,OAAOgN,EACT,MAAO5yG,IACLxV,KAAKwoF,QAAQo+B,OAAO/mC,KAAK,0CAA2Cu7B,GAGxE,OAAOgN,GAGXzC,EAAAnnH,UAAA8oH,iBAAA,SAAiBqB,GACb,IAAMvN,EAASuN,EAAMv+G,cAAcgJ,cAAc,UAEjDgoG,EAAO/yB,MAAQsgC,EAAMx/B,YACrBiyB,EAAO9yB,OAASqgC,EAAM3lC,aACtB,IAAMq4B,EAAMD,EAAOE,WAAW,MAE9B,IAOI,OANID,IACAA,EAAIE,UAAUoN,EAAO,EAAG,EAAGvN,EAAO/yB,MAAO+yB,EAAO9yB,QAC3CtoF,KAAKD,QAAQuoH,YACdjN,EAAIY,aAAa,EAAG,EAAGb,EAAO/yB,MAAO+yB,EAAO9yB,SAG7C8yB,EACT,MAAO5lG,IACLxV,KAAKwoF,QAAQo+B,OAAO/mC,KAAK,yCAA0C8oC,GAGvE,IAAMC,EAAcD,EAAMv+G,cAAcgJ,cAAc,UAItD,OAFAw1G,EAAYvgC,MAAQsgC,EAAMx/B,YAC1By/B,EAAYtgC,OAASqgC,EAAM3lC,aACpB4lC,GAGXjD,EAAAnnH,UAAAqqH,gBAAA,SAAgBrB,EAAiCt7G,EAAa48G,GAErDp8G,GAAcR,KACb22G,GAAgB32G,IACbA,EAAMwH,aAAagyG,KACoB,oBAAhC1lH,KAAKD,QAAQgpH,gBAAkC/oH,KAAKD,QAAQgpH,eAAe78G,KAElFlM,KAAKD,QAAQ+oH,YAAep8G,GAAcR,IAAW02G,GAAe12G,IACrEs7G,EAAMnmH,YAAYrB,KAAK2Q,UAAUzE,EAAO48G,KAKpDnD,EAAAnnH,UAAAwqH,gBAAA,SAAgB3oH,EAAemnH,EAAiCsB,GAC5D,IADJ,IAAA9J,EAAA,KAEY9yG,EAAQ7L,EAAKwhH,WAAaxhH,EAAKwhH,WAAWn2G,WAAarL,EAAKqL,WAChEQ,EACAA,EAAQA,EAAMP,YAEd,GAAIe,GAAcR,IAAUo1G,GAAcp1G,IAAyC,oBAAxBA,EAAMq1G,cAA8B,CAC3F,IAAMA,EAAgBr1G,EAAMq1G,gBACxBA,EAActiH,QACdsiH,EAAcniC,SAAQ,SAAC6pC,GAAiB,OAAAjK,EAAK6J,gBAAgBrB,EAAOyB,EAAcH,EAAW,SAGjG9oH,KAAK6oH,gBAAgBrB,EAAOt7G,EAAO48G,IAK/CnD,EAAAnnH,UAAAmS,UAAA,SAAUtQ,EAAYyoH,GAClB,GAAIn8G,GAAWtM,GACX,OAAOo/E,SAASv6E,eAAe7E,EAAKmE,MAGxC,IAAKnE,EAAK+J,cACN,OAAO/J,EAAKsQ,WAAU,GAG1B,IAAMgvE,EAASt/E,EAAK+J,cAAc+7G,YAElC,GAAIxmC,GAAUjzE,GAAcrM,KAAUs2G,GAAkBt2G,IAASmiH,GAAiBniH,IAAQ,CACtF,IAAMmnH,EAAQxnH,KAAKonH,mBAAmB/mH,GACtCmnH,EAAM7Y,MAAMua,mBAAqB,OAEjC,IAAMva,EAAQhvB,EAAO+2B,iBAAiBr2G,GAChC8oH,EAAcxpC,EAAO+2B,iBAAiBr2G,EAAM,WAC5C+oH,EAAazpC,EAAO+2B,iBAAiBr2G,EAAM,UAE7CL,KAAK6lH,mBAAqBxlH,GAAQs2G,GAAkB6Q,KACpDxnH,KAAK8mH,uBAAyBU,GAE9BjF,GAAciF,IACd6B,GAAuB7B,GAG3B,IAAMxE,EAAWhjH,KAAKgjH,SAASrgH,MAAM,IAAIkzG,GAA4B71G,KAAKwoF,QAASmmB,IAC7Evd,EAASpxF,KAAKspH,qBAAqBjpH,EAAMmnH,EAAO2B,EAAapR,GAAkBwR,QAEjFzG,GAAgBziH,KAChByoH,GAAa,GAGZnG,GAAetiH,IAChBL,KAAKgpH,gBAAgB3oH,EAAMmnH,EAAOsB,GAGlC13B,GACAo2B,EAAM51G,aAAaw/E,EAAQo2B,EAAM97G,YAGrC,IAAM89G,EAAQxpH,KAAKspH,qBAAqBjpH,EAAMmnH,EAAO4B,EAAYrR,GAAkB0R,OAyBnF,OAxBID,GACAhC,EAAMnmH,YAAYmoH,GAGtBxpH,KAAKgjH,SAAS3lC,IAAI2lC,IAGbrU,IAAU3uG,KAAKD,QAAQ+oH,YAActG,GAAiBniH,MAAWiiH,GAAgBjiH,IAClFyoH,IAEAlB,GAAcjZ,EAAO6Y,GAGF,IAAnBnnH,EAAK+iF,WAAuC,IAApB/iF,EAAK8iF,YAC7BnjF,KAAK4lH,iBAAiBh2G,KAAK,CAAC43G,EAAOnnH,EAAK8iF,WAAY9iF,EAAK+iF,aAIxD0+B,GAAkBzhH,IAAS2hH,GAAgB3hH,MAC3CyhH,GAAkB0F,IAAUxF,GAAgBwF,MAE7CA,EAAMhqH,MAAQ6C,EAAK7C,OAGhBgqH,EAGX,OAAOnnH,EAAKsQ,WAAU,IAG1Bg1G,EAAAnnH,UAAA8qH,qBAAA,SACIjpH,EACAmnH,EACA7Y,EACA+a,GAJJ,IAAA1K,EAAA,KAMI,GAAKrQ,EAAL,CAIA,IAAMnxG,EAAQmxG,EAAM0E,QACd5zB,EAAW+nC,EAAMp9G,cACvB,GAAKq1E,GAAajiF,GAAmB,SAAVA,GAA8B,qBAAVA,GAAkD,SAAlBmxG,EAAMW,QAArF,CAIAtvG,KAAKgjH,SAASrgH,MAAM,IAAIkzG,GAA4B71G,KAAKwoF,QAASmmB,IAClE,IAAMmG,EAAc,IAAIc,GAA2B51G,KAAKwoF,QAASmmB,GAE3Dgb,EAA2BlqC,EAASrsE,cAAc,4BACxDw0G,GAAcjZ,EAAOgb,GAErB7U,EAAYzB,QAAQj0B,SAAQ,SAACuZ,GACzB,GAAmB,IAAfA,EAAM7H,KACN64B,EAAyBtoH,YAAYo+E,EAASv6E,eAAeyzF,EAAMn7F,aAChE,GAAmB,KAAfm7F,EAAM7H,KAA8B,CAC3C,IAAMqqB,EAAM17B,EAASrsE,cAAc,OACnC+nG,EAAIn0G,IAAM2xF,EAAMn7F,MAChB29G,EAAIxM,MAAM+D,QAAU,IACpBiX,EAAyBtoH,YAAY85G,QAClC,GAAmB,KAAfxiB,EAAM7H,MACb,GAAmB,SAAf6H,EAAMvzF,KAAiB,CACvB,IAAM1B,EAAOi1F,EAAMkD,OAAOl1F,OAAO01F,IAC7B34F,EAAKzE,QACL0qH,EAAyBtoH,YACrBo+E,EAASv6E,eAAe7E,EAAKsS,aAAajP,EAAK,GAAGlG,QAAU,UAGjE,GAAmB,YAAfm7F,EAAMvzF,KAAoB,CAC3B,IAAAosF,EAA0BmH,EAAMkD,OAAOl1F,OAAO81F,IAA7CgX,EAAOjiB,EAAA,GAAEo4B,EAAYp4B,EAAA,GAC5B,GAAIiiB,GAAWpX,GAAaoX,GAAU,CAClC,IAAMoW,EAAe7K,EAAKgE,SAASC,gBAAgBxP,EAAQj2G,OACrDssH,EACFF,GAAgBvtB,GAAautB,GACvBzZ,GAAcxtG,MAAMq8G,EAAKx2B,QAASohC,EAAapsH,OAAM,EAG/DmsH,EAAyBtoH,YACrBo+E,EAASv6E,eAAe4+G,GAAkB+F,EAAcC,GAAa,WAG1E,GAAmB,aAAfnxB,EAAMvzF,KAAqB,CAC5B,IAAA05F,EAAiCnG,EAAMkD,OAAOl1F,OAAO81F,IAA3CstB,GAATtW,EAAO3U,EAAA,GAAOA,EAAA,IACrB,GADuB8qB,EAAY9qB,EAAA,GAC/B2U,GAAWpX,GAAaoX,GAAU,CAClC,IAAMuW,EAAgBhL,EAAKgE,SAASE,iBAAiBzP,EAAQj2G,OACvDysH,EACFL,GAAgBvtB,GAAautB,GACvBzZ,GAAcxtG,MAAMq8G,EAAKx2B,QAASohC,EAAapsH,OAAM,EAEzD0sH,EAAYH,GAAwB,IAAfA,EAAMj5B,KAAkCi5B,EAAMvsH,MAAQ,GAC3EqX,EAAOm1G,EACR53G,KAAI,SAAC5U,GAAU,OAAAsmH,GAAkBtmH,EAAOysH,GAAa,EAAM,IAC3Dz6G,KAAK06G,GAEVP,EAAyBtoH,YAAYo+E,EAASv6E,eAAe2P,WAKlE,GAAmB,KAAf8jF,EAAM7H,KACb,OAAQ6H,EAAMn7F,OACV,IAAK,aACDmsH,EAAyBtoH,YACrBo+E,EAASv6E,eAAeivG,GAASW,EAAYhB,OAAQkL,EAAK8G,cAAc,KAE5E,MACJ,IAAK,cACD6D,EAAyBtoH,YACrBo+E,EAASv6E,eAAeivG,GAASW,EAAYhB,SAAUkL,EAAK8G,YAAY,KAE5E,MACJ,QAEI6D,EAAyBtoH,YAAYo+E,EAASv6E,eAAeyzF,EAAMn7F,YAKnFmsH,EAAyBlH,UAAe0H,GAAgC,IAAIC,GAC5E,IAAMC,EACFX,IAAc3R,GAAkBwR,OAC1B,IAAIY,GACJ,IAAIC,GAQd,OANI5H,GAAiBgF,GACjBA,EAAM/E,UAAU6H,WAAaD,EAE7B7C,EAAM/E,WAAa4H,EAGhBV,KAGJhE,EAAA4E,QAAP,SAAe/I,GACX,QAAIA,EAAUr9G,aACVq9G,EAAUr9G,WAAW0J,YAAY2zG,IAC1B,IAInBmE,CAAA,CAxbA,IA0bA,SAAK5N,GACDA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,gBACH,CAHD,CAAKA,KAAAA,GAAiB,KAKtB,Ie9KKyS,Gf8KCvE,GAAwB,SAAC77G,EAAyBysG,GACpD,IAAM4T,EAAuBrgH,EAAcgJ,cAAc,UAczD,OAZAq3G,EAAqBhI,UAAY,wBACjCgI,EAAqB9b,MAAMyD,WAAa,SACxCqY,EAAqB9b,MAAMvuG,SAAW,QACtCqqH,EAAqB9b,MAAMrrB,KAAO,WAClCmnC,EAAqB9b,MAAMxlC,IAAM,MACjCshD,EAAqB9b,MAAM+b,OAAS,IACpCD,EAAqBpiC,MAAQwuB,EAAOxuB,MAAMp3E,WAC1Cw5G,EAAqBniC,OAASuuB,EAAOvuB,OAAOr3E,WAC5Cw5G,EAAqBE,UAAY,KACjCF,EAAqB72G,aAAa8xG,GAAkB,QACpDt7G,EAAco9E,KAAKnmF,YAAYopH,GAExBA,CACX,EAEMG,GAAa,SAACzP,GAChB,OAAO,IAAIp0B,SAAQ,SAACD,GACZq0B,EAAI0P,SACJ/jC,IAGCq0B,EAAIn0G,KAITm0G,EAAIiB,OAASt1B,EACbq0B,EAAIkB,QAAUv1B,GAJVA,MAMZ,EAEMkgC,GAAc,SAACvnC,GACjB,OAAOsH,QAAQrH,IAAI,GAAGvvE,MAAMzR,KAAK+gF,EAASqrC,OAAQ,GAAG14G,IAAIw4G,IAC7D,EAEMnE,GAAe,SAAC7F,GAClB,OAAO,IAAI75B,SAAQ,SAACD,EAASE,GACzB,IAAMs/B,EAAc1F,EAAOC,cAE3B,IAAKyF,EACD,OAAOt/B,EAAO,iCAGlB,IAAMu/B,EAAgBD,EAAY7mC,SAElC6mC,EAAYlK,OAASwE,EAAOxE,OAAS,WACjCkK,EAAYlK,OAASwE,EAAOxE,OAAS,KACrC,IAAM2O,EAAWC,aAAY,WACrBzE,EAAc/+B,KAAKv7E,WAAWhN,OAAS,GAAkC,aAA7BsnH,EAAcxmC,aAC1DkrC,cAAcF,GACdjkC,EAAQ85B,MAEb,OAGf,EAEMsK,GAAyB,CAC3B,MACA,IACA,WAGStD,GAAgB,SAAqCjZ,EAA4BvwG,GAE1F,IAAK,IAAIY,EAAI2vG,EAAM1vG,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACxC,IAAMmsH,EAAWxc,EAAMzvG,KAAKF,IACsB,IAA9CksH,GAAuBn+G,QAAQo+G,IAC/B/sH,EAAOuwG,MAAMyc,YAAYD,EAAUxc,EAAM0c,iBAAiBF,IAGlE,OAAO/sH,CACX,EAEM6oH,GAAmB,SAAChhH,GACtB,IAAIujF,EAAM,GAsBV,OArBIvjF,IACAujF,GAAO,aACHvjF,EAAQb,OACRokF,GAAOvjF,EAAQb,MAGfa,EAAQsK,iBACRi5E,GAAOvjF,EAAQsK,gBAGftK,EAAQL,WACR4jF,GAAO,IAAIvjF,EAAQL,SAAQ,KAG3BK,EAAQvF,WACR8oF,GAAO,IAAIvjF,EAAQvF,SAAQ,KAG/B8oF,GAAO,KAGJA,CACX,EAEM09B,GAAqB,SAAC98G,EAAgCm0E,EAAWH,GAE/Dh0E,GACAA,EAAc+7G,cACb5nC,IAAMn0E,EAAc+7G,YAAYC,aAAehoC,IAAMh0E,EAAc+7G,YAAYzjC,cAEhFt4E,EAAc+7G,YAAYQ,SAASpoC,EAAGH,EAE9C,EAEMsoC,GAAoB,SAACl1B,OAAChrF,EAAOgrF,EAAA,GAAEjT,EAACiT,EAAA,GAAEpT,EAACoT,EAAA,GACrChrF,EAAQ28E,WAAa5E,EACrB/3E,EAAQ48E,UAAYhF,CACxB,EAEMktC,GAAgB,UAChBC,GAAe,SACfpB,GAAmC,wCACnCC,GAAkC,uCAElCoB,GAA4B,mEAK5BnC,GAAyB,SAAC7hC,GAC5BikC,GACIjkC,EACA,IAAI2iC,GAAmCmB,GAAgBE,GAAyB,eAC5EpB,GAAkCmB,GAAeC,GAE7D,EAEMC,GAAe,SAACjkC,EAAmBivB,GACrC,IAAMh3B,EAAW+H,EAAKp9E,cACtB,GAAIq1E,EAAU,CACV,IAAMkvB,EAAQlvB,EAASrsE,cAAc,SACrCu7F,EAAMuZ,YAAczR,EACpBjvB,EAAKnmF,YAAYstG,GAEzB,EgBznBA+c,GAAA,oBAAAA,IAAA,CAuBA,OAnBWA,EAAAC,UAAP,SAAiB5e,GACb,IAAM6e,EAAOF,EAAaG,MAC1B,OAAKD,GAILA,EAAKE,KAAO/e,EACZ6e,EAAKE,KAAOF,EAAKE,KACVF,EAAKG,SAAWH,EAAKI,SAAWJ,EAAKK,MALjC,eAQRP,EAAAQ,aAAP,SAAoBllH,GAChB,OAAO0kH,EAAaC,UAAU3kH,KAAS0kH,EAAaS,SAGjDT,EAAAU,WAAP,SAAkBzsC,GACd+rC,EAAaG,MAAQlsC,EAAOF,SAASrsE,cAAc,KACnDs4G,EAAaS,QAAUT,EAAaC,UAAUhsC,EAAO0sC,SAASP,OAnBnDJ,EAAAS,QAAU,cAqB7BT,EAvBA,GAgCAY,GAAA,WAII,SAAAA,EAA6B9jC,EAAmC+jC,GAAnC,KAAA/jC,QAAAA,EAAmC,KAAA+jC,SAAAA,EAF/C,KAAAC,OAAwC,CAAC,EAgI9D,OA5HIF,EAAA9tH,UAAAyuG,SAAA,SAASjmG,GACL,IAAMogF,EAASL,QAAQD,UACvB,OAAI9mF,KAAKysH,IAAIzlH,GACFogF,EAGPslC,GAAY1lH,IAAQ2lH,GAAa3lH,KAChChH,KAAKwsH,OAAOxlH,GAAOhH,KAAK4sH,UAAU5lH,IAAMk1G,OAAM,eAGxC90B,GAGJA,GAIXklC,EAAA9tH,UAAAw8E,MAAA,SAAMh0E,GACF,OAAOhH,KAAKwsH,OAAOxlH,IAGTslH,EAAA9tH,UAAAouH,UAAd,SAAwBruH,gHAWpB,OAVM2tH,EAAeR,GAAaQ,aAAa3tH,GACzCsuH,GACDC,GAAcvuH,KAAkC,IAA1ByB,KAAKusH,SAASM,SAAoBtQ,GAASM,sBAAwBqP,EACxFa,GACDD,GAAcvuH,KACd2tH,IACAQ,GAAYnuH,IACkB,kBAAxByB,KAAKusH,SAASS,OACrBzQ,GAASQ,mBACR8P,EAEAX,IAC4B,IAA7BlsH,KAAKusH,SAASjE,YACbwE,GAAcvuH,IACdmuH,GAAYnuH,IACZwuH,GACAF,GAKD7lH,EAAMzI,EACNwuH,EACM,GAAM/sH,KAAKgtH,MAAMhmH,IADvB,OAJA,WAKAA,EAAMwqF,EAAA9J,wBAKH,OAFP1nF,KAAKwoF,QAAQo+B,OAAOqG,MAAM,eAAe1uH,EAAIqW,UAAU,EAAG,MAEnD,GAAM,IAAImyE,SAAQ,SAACD,EAASE,GAC/B,IAAMm0B,EAAM,IAAIN,MAChBM,EAAIiB,OAAS,WAAM,OAAAt1B,EAAQq0B,EAAI,EAC/BA,EAAIkB,QAAUr1B,GAEVkmC,GAAoBlmH,IAAQ6lH,KAC5B1R,EAAIL,YAAc,aAEtBK,EAAIn0G,IAAMA,GACW,IAAjBm0G,EAAI0P,UAEJvqC,YAAW,WAAM,OAAAwG,EAAQq0B,EAAI,GAAE,KAE/B6D,EAAKuN,SAASY,aAAe,GAC7B7sC,YACI,WAAM,OAAA0G,EAAO,cAAcg4B,EAAKuN,SAASY,aAAY,oBAAoB,GACzEnO,EAAKuN,SAASY,yBAhB1B,MAAO,CAAP,EAAO37B,EAAA9J,gBAsBH4kC,EAAA9tH,UAAAiuH,IAAR,SAAYluH,GACR,MAAmC,qBAArByB,KAAKwsH,OAAOjuH,IAG9B+tH,EAAA9tH,UAAAqI,KAAA,WACI,OAAOkgF,QAAQD,QAAQ1pF,OAAOyJ,KAAK7G,KAAKwsH,UAGpCF,EAAA9tH,UAAAwuH,MAAR,SAAchmH,GAAd,IAAAg4G,EAAA,KACUgO,EAAQhtH,KAAKusH,SAASS,MAE5B,IAAKA,EACD,MAAM,IAAItjH,MAAM,oBAGpB,IAAMnL,EAAMyI,EAAI4N,UAAU,EAAG,KAE7B,OAAO,IAAImyE,SAAQ,SAACD,EAASE,GACzB,IAAMi0B,EAAesB,GAASO,sBAAwB,OAAS,OACzDsQ,EAAM,IAAIpS,eAChBoS,EAAIhR,OAAS,WACT,GAAmB,MAAfgR,EAAIC,OACJ,GAAqB,SAAjBpS,EACAn0B,EAAQsmC,EAAIE,cACT,CACH,IAAMC,EAAS,IAAIC,WACnBD,EAAOvtC,iBAAiB,QAAQ,WAAM,OAAA8G,EAAQymC,EAAOnmC,OAAiB,IAAE,GACxEmmC,EAAOvtC,iBAAiB,SAAS,SAACxqE,GAAM,OAAAwxE,EAAOxxE,EAAE,IAAE,GACnD+3G,EAAOE,cAAcL,EAAIE,eAG7BtmC,EAAO,4BAA4BzoF,EAAG,qBAAqB6uH,EAAIC,SAIvED,EAAI/Q,QAAUr1B,EACd,IAAM0mC,EAAcV,EAAMjgH,QAAQ,MAAQ,EAAI,IAAM,IAOpD,GANAqgH,EAAInZ,KAAK,MAAO,GAAG+Y,EAAQU,EAAW,OAAOpR,mBAAmBt1G,GAAI,iBAAiBi0G,GAEhE,SAAjBA,GAA2BmS,aAAepS,iBAC1CoS,EAAInS,aAAeA,GAGnB+D,EAAKuN,SAASY,aAAc,CAC5B,IAAMQ,EAAU3O,EAAKuN,SAASY,aAC9BC,EAAIQ,QAAUD,EACdP,EAAIS,UAAY,WAAM,OAAA7mC,EAAO,cAAc2mC,EAAO,gBAAgBpvH,EAAM,EAG5E6uH,EAAIU,WAGhBxB,CAAA,CAlIA,GAoIMyB,GAAa,yBACbC,GAAgB,2BAChBC,GAAa,mBAEbtB,GAAe,SAAC3lH,GAAyB,OAAAu1G,GAASG,sBAAwBwR,GAAMlnH,EAAI,EACpF8lH,GAAgB,SAAC9lH,GAAyB,OAAAinH,GAAWpsH,KAAKmF,EAAI,EAC9DkmH,GAAsB,SAAClmH,GAAyB,OAAAgnH,GAAcnsH,KAAKmF,EAAI,EACvE0lH,GAAc,SAAC1lH,GAAyB,MAAqB,SAArBA,EAAIlG,OAAO,EAAG,EAAa,EAEnEotH,GAAQ,SAAClnH,GAAyB,MAAiC,QAAjCA,EAAIlG,QAAQ,GAAGy8E,eAA2BwwC,GAAWlsH,KAAKmF,EAAI,EC9KtGmnH,GAAA,WAKI,SAAAA,EAAY5vC,EAAWH,GACnBp+E,KAAK8wF,KAAO,EACZ9wF,KAAKu+E,EAAIA,EACTv+E,KAAKo+E,EAAIA,EAMjB,OAHI+vC,EAAA3vH,UAAAikF,IAAA,SAAI2rC,EAAgBC,GAChB,OAAO,IAAIF,EAAOnuH,KAAKu+E,EAAI6vC,EAAQpuH,KAAKo+E,EAAIiwC,IAEpDF,CAAA,CAdA,GCCMG,GAAO,SAACpzC,EAAWiD,EAAW52E,GAChC,OAAO,IAAI4mH,GAAOjzC,EAAEqD,GAAKJ,EAAEI,EAAIrD,EAAEqD,GAAKh3E,EAAG2zE,EAAEkD,GAAKD,EAAEC,EAAIlD,EAAEkD,GAAK72E,EACjE,EAEAgnH,GAAA,WAOI,SAAAA,EAAY1tH,EAAe2tH,EAAsBC,EAAoB3yC,GACjE97E,KAAK8wF,KAAO,EACZ9wF,KAAKa,MAAQA,EACbb,KAAKwuH,aAAeA,EACpBxuH,KAAKyuH,WAAaA,EAClBzuH,KAAK87E,IAAMA,EAyBnB,OAtBIyyC,EAAA/vH,UAAAkwH,UAAA,SAAUnnH,EAAWonH,GACjB,IAAMC,EAAKN,GAAKtuH,KAAKa,MAAOb,KAAKwuH,aAAcjnH,GACzCsnH,EAAKP,GAAKtuH,KAAKwuH,aAAcxuH,KAAKyuH,WAAYlnH,GAC9CunH,EAAKR,GAAKtuH,KAAKyuH,WAAYzuH,KAAK87E,IAAKv0E,GACrCwnH,EAAOT,GAAKM,EAAIC,EAAItnH,GACpBynH,EAAOV,GAAKO,EAAIC,EAAIvnH,GACpBN,EAAOqnH,GAAKS,EAAMC,EAAMznH,GAC9B,OAAOonH,EAAY,IAAIJ,EAAYvuH,KAAKa,MAAO+tH,EAAIG,EAAM9nH,GAAQ,IAAIsnH,EAAYtnH,EAAM+nH,EAAMF,EAAI9uH,KAAK87E,MAG1GyyC,EAAA/vH,UAAAikF,IAAA,SAAI2rC,EAAgBC,GAChB,OAAO,IAAIE,EACPvuH,KAAKa,MAAM4hF,IAAI2rC,EAAQC,GACvBruH,KAAKwuH,aAAa/rC,IAAI2rC,EAAQC,GAC9BruH,KAAKyuH,WAAWhsC,IAAI2rC,EAAQC,GAC5BruH,KAAK87E,IAAI2G,IAAI2rC,EAAQC,KAI7BE,EAAA/vH,UAAAywH,QAAA,WACI,OAAO,IAAIV,EAAYvuH,KAAK87E,IAAK97E,KAAKyuH,WAAYzuH,KAAKwuH,aAAcxuH,KAAKa,QAElF0tH,CAAA,CArCA,GAuCaW,GAAgB,SAACC,GAAoC,OAAc,IAAdA,EAAKr+B,IAAI,EHxC3Es+B,GAAA,WA0BI,SAAAA,EAAY5oH,GACR,IAAMiwG,EAASjwG,EAAQiwG,OACjBI,EAASrwG,EAAQqwG,OAEnBrlB,EAAa2L,GAAyBsZ,EAAOnI,oBAAqBuI,EAAOxuB,MAAOwuB,EAAOvuB,QAAtF+mC,EAAG79B,EAAA,GAAE89B,EAAG99B,EAAA,GACTsN,EAAa3B,GAAyBsZ,EAAOlI,qBAAsBsI,EAAOxuB,MAAOwuB,EAAOvuB,QAAvFinC,EAAGzwB,EAAA,GAAE0wB,EAAG1wB,EAAA,GACT2wB,EAAatyB,GAAyBsZ,EAAOjI,wBAAyBqI,EAAOxuB,MAAOwuB,EAAOvuB,QAA1FonC,EAAGD,EAAA,GAAEE,EAAGF,EAAA,GACTG,EAAazyB,GAAyBsZ,EAAOhI,uBAAwBoI,EAAOxuB,MAAOwuB,EAAOvuB,QAAzFunC,EAAGD,EAAA,GAAEE,EAAGF,EAAA,GAEPG,EAAU,GAChBA,EAAQngH,MAAMy/G,EAAME,GAAO1Y,EAAOxuB,OAClC0nC,EAAQngH,MAAMigH,EAAMH,GAAO7Y,EAAOxuB,OAClC0nC,EAAQngH,MAAM0/G,EAAMQ,GAAOjZ,EAAOvuB,QAClCynC,EAAQngH,MAAM4/G,EAAMG,GAAO9Y,EAAOvuB,QAClC,IAAM0nC,EAAYvyC,KAAKC,IAAG54E,MAAR24E,KAAYsyC,GAE1BC,EAAY,IACZX,GAAOW,EACPV,GAAOU,EACPT,GAAOS,EACPR,GAAOQ,EACPN,GAAOM,EACPL,GAAOK,EACPH,GAAOG,EACPF,GAAOE,GAGX,IAAMC,EAAWpZ,EAAOxuB,MAAQknC,EAC1BW,EAAcrZ,EAAOvuB,OAASqnC,EAC9BQ,EAActZ,EAAOxuB,MAAQqnC,EAC7BU,EAAavZ,EAAOvuB,OAASwnC,EAE7B7gB,EAAiBwH,EAAOxH,eACxBC,EAAmBuH,EAAOvH,iBAC1BC,EAAoBsH,EAAOtH,kBAC3BC,EAAkBqH,EAAOrH,gBAEzBwB,EAAavT,GAAiBoZ,EAAO7F,WAAYpqG,EAAQqwG,OAAOxuB,OAChEwoB,EAAexT,GAAiBoZ,EAAO5F,aAAcrqG,EAAQqwG,OAAOxuB,OACpEyoB,EAAgBzT,GAAiBoZ,EAAO3F,cAAetqG,EAAQqwG,OAAOxuB,OACtE0oB,EAAc1T,GAAiBoZ,EAAO1F,YAAavqG,EAAQqwG,OAAOxuB,OAExEroF,KAAKqwH,4BACDhB,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO8rB,EAAkB,EAChCyH,EAAO1tC,IAAM8lC,EAAiB,EAC9BogB,EAAMjgB,EAAkB,EACxBkgB,EAAMrgB,EAAiB,EACvBub,GAAO+F,UAEX,IAAIpC,GAAOtX,EAAOvzB,KAAO8rB,EAAkB,EAAGyH,EAAO1tC,IAAM8lC,EAAiB,GACtFjvG,KAAKwwH,6BACDnB,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO2sC,EACdpZ,EAAO1tC,IAAM8lC,EAAiB,EAC9BsgB,EAAMrgB,EAAmB,EACzBsgB,EAAMvgB,EAAiB,EACvBub,GAAOiG,WAEX,IAAItC,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAAmB,EAAG2H,EAAO1tC,IAAM8lC,EAAiB,GACtGjvG,KAAK0wH,gCACDhB,EAAM,GAAKC,EAAM,EACXW,GACIzZ,EAAOvzB,KAAO6sC,EACdtZ,EAAO1tC,IAAM+mD,EACbR,EAAMxgB,EAAmB,EACzBygB,EAAMxgB,EAAoB,EAC1Bqb,GAAOmG,cAEX,IAAIxC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAAmB,EAChD2H,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,EAAoB,GAE/DnvG,KAAK4wH,+BACDf,EAAM,GAAKC,EAAM,EACXQ,GACIzZ,EAAOvzB,KAAO8rB,EAAkB,EAChCyH,EAAO1tC,IAAMinD,EACbP,EAAMzgB,EAAkB,EACxB0gB,EAAM3gB,EAAoB,EAC1Bqb,GAAOqG,aAEX,IAAI1C,GAAOtX,EAAOvzB,KAAO8rB,EAAkB,EAAGyH,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,EAAoB,GACzGnvG,KAAK8wH,4BACDzB,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAA0B,EAAlB8rB,EAAuB,EACtCyH,EAAO1tC,IAAwB,EAAjB8lC,EAAsB,EACpCogB,EAAyB,EAAlBjgB,EAAuB,EAC9BkgB,EAAwB,EAAjBrgB,EAAsB,EAC7Bub,GAAO+F,UAEX,IAAIpC,GAAOtX,EAAOvzB,KAA0B,EAAlB8rB,EAAuB,EAAGyH,EAAO1tC,IAAwB,EAAjB8lC,EAAsB,GAClGjvG,KAAK+wH,6BACD1B,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO2sC,EACdpZ,EAAO1tC,IAAwB,EAAjB8lC,EAAsB,EACpCsgB,EAA0B,EAAnBrgB,EAAwB,EAC/BsgB,EAAwB,EAAjBvgB,EAAsB,EAC7Bub,GAAOiG,WAEX,IAAItC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,MAA4B,EAAnB6mB,EAAwB,EACtD2H,EAAO1tC,IAAwB,EAAjB8lC,EAAsB,GAElDjvG,KAAKgxH,gCACDtB,EAAM,GAAKC,EAAM,EACXW,GACIzZ,EAAOvzB,KAAO6sC,EACdtZ,EAAO1tC,IAAM+mD,EACbR,EAA0B,EAAnBxgB,EAAwB,EAC/BygB,EAA2B,EAApBxgB,EAAyB,EAChCqb,GAAOmG,cAEX,IAAIxC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,MAA4B,EAAnB6mB,EAAwB,EACtD2H,EAAO1tC,IAAM0tC,EAAOvuB,OAA8B,EAApB6mB,EAAyB,GAErEnvG,KAAKixH,+BACDpB,EAAM,GAAKC,EAAM,EACXQ,GACIzZ,EAAOvzB,KAA0B,EAAlB8rB,EAAuB,EACtCyH,EAAO1tC,IAAMinD,EACbP,EAAyB,EAAlBzgB,EAAuB,EAC9B0gB,EAA2B,EAApB3gB,EAAyB,EAChCqb,GAAOqG,aAEX,IAAI1C,GACAtX,EAAOvzB,KAA0B,EAAlB8rB,EAAuB,EACtCyH,EAAO1tC,IAAM0tC,EAAOvuB,OAA8B,EAApB6mB,EAAyB,GAErEnvG,KAAKkxH,oBACD7B,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO8rB,EAAkB,EAChCyH,EAAO1tC,IAAM8lC,EAAiB,EAC9BogB,EAAMjgB,EAAkB,EACxBkgB,EAAMrgB,EAAiB,EACvBub,GAAO+F,UAEX,IAAIpC,GAAOtX,EAAOvzB,KAAO8rB,EAAkB,EAAGyH,EAAO1tC,IAAM8lC,EAAiB,GACtFjvG,KAAKmxH,qBACD9B,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO2sC,EACdpZ,EAAO1tC,IAAM8lC,EAAiB,EAC9BsgB,EAAMrgB,EAAmB,EACzBsgB,EAAMvgB,EAAiB,EACvBub,GAAOiG,WAEX,IAAItC,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAAmB,EAAG2H,EAAO1tC,IAAM8lC,EAAiB,GACtGjvG,KAAKoxH,wBACD1B,EAAM,GAAKC,EAAM,EACXW,GACIzZ,EAAOvzB,KAAO6sC,EACdtZ,EAAO1tC,IAAM+mD,EACbR,EAAMxgB,EAAmB,EACzBygB,EAAMxgB,EAAoB,EAC1Bqb,GAAOmG,cAEX,IAAIxC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAAmB,EAChD2H,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,EAAoB,GAE/DnvG,KAAKqxH,uBACDxB,EAAM,GAAKC,EAAM,EACXQ,GACIzZ,EAAOvzB,KAAO8rB,EAAkB,EAChCyH,EAAO1tC,IAAMinD,EACbP,EAAMzgB,EAAkB,EACxB0gB,EAAM3gB,EAAoB,EAC1Bqb,GAAOqG,aAEX,IAAI1C,GAAOtX,EAAOvzB,KAAO8rB,EAAkB,EAAGyH,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,EAAoB,GACzGnvG,KAAKsxH,iBACDjC,EAAM,GAAKC,EAAM,EACXgB,GAAezZ,EAAOvzB,KAAMuzB,EAAO1tC,IAAKkmD,EAAKC,EAAK9E,GAAO+F,UACzD,IAAIpC,GAAOtX,EAAOvzB,KAAMuzB,EAAO1tC,KACzCnpE,KAAKuxH,kBACDhC,EAAM,GAAKC,EAAM,EACXc,GAAezZ,EAAOvzB,KAAO2sC,EAAUpZ,EAAO1tC,IAAKomD,EAAKC,EAAKhF,GAAOiG,WACpE,IAAItC,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAOwuB,EAAO1tC,KACxDnpE,KAAKwxH,qBACD9B,EAAM,GAAKC,EAAM,EACXW,GAAezZ,EAAOvzB,KAAO6sC,EAAatZ,EAAO1tC,IAAM+mD,EAAaR,EAAKC,EAAKnF,GAAOmG,cACrF,IAAIxC,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAOwuB,EAAO1tC,IAAM0tC,EAAOvuB,QACrEtoF,KAAKyxH,oBACD5B,EAAM,GAAKC,EAAM,EACXQ,GAAezZ,EAAOvzB,KAAMuzB,EAAO1tC,IAAMinD,EAAYP,EAAKC,EAAKtF,GAAOqG,aACtE,IAAI1C,GAAOtX,EAAOvzB,KAAMuzB,EAAO1tC,IAAM0tC,EAAOvuB,QACtDtoF,KAAK0xH,kBACDrC,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO8rB,EACdyH,EAAO1tC,IAAM8lC,EACbxxB,KAAKC,IAAI,EAAG2xC,EAAMjgB,GAClB3xB,KAAKC,IAAI,EAAG4xC,EAAMrgB,GAClBub,GAAO+F,UAEX,IAAIpC,GAAOtX,EAAOvzB,KAAO8rB,EAAiByH,EAAO1tC,IAAM8lC,GACjEjvG,KAAK2xH,mBACDpC,EAAM,GAAKC,EAAM,EACXc,GACIzZ,EAAOvzB,KAAO7F,KAAKyD,IAAI+uC,EAAUpZ,EAAOxuB,MAAQ6mB,GAChD2H,EAAO1tC,IAAM8lC,EACbghB,EAAWpZ,EAAOxuB,MAAQ6mB,EAAmB,EAAIzxB,KAAKC,IAAI,EAAG6xC,EAAMrgB,GACnEzxB,KAAKC,IAAI,EAAG8xC,EAAMvgB,GAClBub,GAAOiG,WAEX,IAAItC,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAAkB2H,EAAO1tC,IAAM8lC,GACjFjvG,KAAK4xH,sBACDlC,EAAM,GAAKC,EAAM,EACXW,GACIzZ,EAAOvzB,KAAO7F,KAAKyD,IAAIivC,EAAatZ,EAAOxuB,MAAQ+mB,GACnDyH,EAAO1tC,IAAMsU,KAAKyD,IAAIgvC,EAAarZ,EAAOvuB,OAAS6mB,GACnD1xB,KAAKC,IAAI,EAAGgyC,EAAMxgB,GAClBzxB,KAAKC,IAAI,EAAGiyC,EAAMxgB,GAClBqb,GAAOmG,cAEX,IAAIxC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAQ6mB,EAC7B2H,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,GAE3CnvG,KAAK6xH,qBACDhC,EAAM,GAAKC,EAAM,EACXQ,GACIzZ,EAAOvzB,KAAO8rB,EACdyH,EAAO1tC,IAAMsU,KAAKyD,IAAIkvC,EAAYvZ,EAAOvuB,OAAS6mB,GAClD1xB,KAAKC,IAAI,EAAGmyC,EAAMzgB,GAClB3xB,KAAKC,IAAI,EAAGoyC,EAAM3gB,GAClBqb,GAAOqG,aAEX,IAAI1C,GAAOtX,EAAOvzB,KAAO8rB,EAAiByH,EAAO1tC,IAAM0tC,EAAOvuB,OAAS6mB,GACjFnvG,KAAK8xH,kBACDzC,EAAM,GAAKC,EAAM,EACXgB,GACIzZ,EAAOvzB,KAAO8rB,EAAkB2B,EAChC8F,EAAO1tC,IAAM8lC,EAAiB2B,EAC9BnzB,KAAKC,IAAI,EAAG2xC,GAAOjgB,EAAkB2B,IACrCtzB,KAAKC,IAAI,EAAG4xC,GAAOrgB,EAAiB2B,IACpC4Z,GAAO+F,UAEX,IAAIpC,GAAOtX,EAAOvzB,KAAO8rB,EAAkB2B,EAAa8F,EAAO1tC,IAAM8lC,EAAiB2B,GAChG5wG,KAAK+xH,mBACDxC,EAAM,GAAKC,EAAM,EACXc,GACIzZ,EAAOvzB,KAAO7F,KAAKyD,IAAI+uC,EAAUpZ,EAAOxuB,MAAQ+mB,EAAkB2B,GAClE8F,EAAO1tC,IAAM8lC,EAAiB2B,EAC9Bqf,EAAWpZ,EAAOxuB,MAAQ+mB,EAAkB2B,EAAc,EAAIwe,EAAMngB,EAAkB2B,EACtFye,GAAOvgB,EAAiB2B,GACxB4Z,GAAOiG,WAEX,IAAItC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,OAAS6mB,EAAmB2B,GACjDgG,EAAO1tC,IAAM8lC,EAAiB2B,GAE5C5wG,KAAKgyH,sBACDtC,EAAM,GAAKC,EAAM,EACXW,GACIzZ,EAAOvzB,KAAO7F,KAAKyD,IAAIivC,EAAatZ,EAAOxuB,OAAS+mB,EAAkB2B,IACtE8F,EAAO1tC,IAAMsU,KAAKyD,IAAIgvC,EAAarZ,EAAOvuB,OAAS2mB,EAAiB2B,GACpEnzB,KAAKC,IAAI,EAAGgyC,GAAOxgB,EAAmB2B,IACtC8e,GAAOxgB,EAAoB2B,GAC3B0Z,GAAOmG,cAEX,IAAIxC,GACAtX,EAAOvzB,KAAOuzB,EAAOxuB,OAAS6mB,EAAmB2B,GACjDgG,EAAO1tC,IAAM0tC,EAAOvuB,QAAU6mB,EAAoB2B,IAEhE9wG,KAAKiyH,qBACDpC,EAAM,GAAKC,EAAM,EACXQ,GACIzZ,EAAOvzB,KAAO8rB,EAAkB2B,EAChC8F,EAAO1tC,IAAMinD,EACb3yC,KAAKC,IAAI,EAAGmyC,GAAOzgB,EAAkB2B,IACrC+e,GAAO3gB,EAAoB2B,GAC3B0Z,GAAOqG,aAEX,IAAI1C,GACAtX,EAAOvzB,KAAO8rB,EAAkB2B,EAChC8F,EAAO1tC,IAAM0tC,EAAOvuB,QAAU6mB,EAAoB2B,IAGxE,OAAAse,CAAA,CAxTA,IA0TA,SAAK5E,GACDA,EAAAA,EAAA,uBACAA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,4BACH,CALD,CAAKA,KAAAA,GAAM,KAOX,IAAM8F,GAAiB,SAAC/xC,EAAWH,EAAW8zC,EAAYC,EAAY/xH,GAClE,IAAM6mC,GAAcw2C,KAAKqtB,KAAK,GAAK,GAAK,EAA1B,EACRsnB,EAAKF,EAAKjrF,EACVorF,EAAKF,EAAKlrF,EACVqrF,EAAK/zC,EAAI2zC,EACTK,EAAKn0C,EAAI+zC,EAEf,OAAQ/xH,GACJ,KAAKoqH,GAAO+F,SACR,OAAO,IAAIhC,GACP,IAAIJ,GAAO5vC,EAAGg0C,GACd,IAAIpE,GAAO5vC,EAAGg0C,EAAKF,GACnB,IAAIlE,GAAOmE,EAAKF,EAAIh0C,GACpB,IAAI+vC,GAAOmE,EAAIl0C,IAEvB,KAAKosC,GAAOiG,UACR,OAAO,IAAIlC,GACP,IAAIJ,GAAO5vC,EAAGH,GACd,IAAI+vC,GAAO5vC,EAAI6zC,EAAIh0C,GACnB,IAAI+vC,GAAOmE,EAAIC,EAAKF,GACpB,IAAIlE,GAAOmE,EAAIC,IAEvB,KAAK/H,GAAOmG,aACR,OAAO,IAAIpC,GACP,IAAIJ,GAAOmE,EAAIl0C,GACf,IAAI+vC,GAAOmE,EAAIl0C,EAAIi0C,GACnB,IAAIlE,GAAO5vC,EAAI6zC,EAAIG,GACnB,IAAIpE,GAAO5vC,EAAGg0C,IAEtB,KAAK/H,GAAOqG,YACZ,QACI,OAAO,IAAItC,GACP,IAAIJ,GAAOmE,EAAIC,GACf,IAAIpE,GAAOmE,EAAKF,EAAIG,GACpB,IAAIpE,GAAO5vC,EAAGH,EAAIi0C,GAClB,IAAIlE,GAAO5vC,EAAGH,IAG9B,EAEao0C,GAAyB,SAACC,GACnC,MAAO,CAACA,EAAOnB,iBAAkBmB,EAAOlB,kBAAmBkB,EAAOjB,qBAAsBiB,EAAOhB,oBACnG,EAEaiB,GAA0B,SAACD,GACpC,MAAO,CACHA,EAAOX,kBACPW,EAAOV,mBACPU,EAAOT,sBACPS,EAAOR,qBAEf,EAEaU,GAA0B,SAACF,GACpC,MAAO,CACHA,EAAOf,kBACPe,EAAOd,mBACPc,EAAOb,sBACPa,EAAOZ,qBAEf,EIhXAe,GAAA,WAII,SAAAA,EAAqBzhB,EAA0BC,EAA0BM,GAApD,KAAAP,QAAAA,EAA0B,KAAAC,QAAAA,EAA0B,KAAAM,OAAAA,EAHhE,KAAA5gB,KAAI,EACJ,KAAA1yF,OAAiB,EAG9B,OAAAw0H,CAAA,CALA,GAOAC,GAAA,WAGI,SAAAA,EAAqB1D,EAAuB/wH,GAAvB,KAAA+wH,KAAAA,EAAuB,KAAA/wH,OAAAA,EAFnC,KAAA0yF,KAAI,EAGjB,OAAA+hC,CAAA,CAJA,GAMAC,GAAA,WAII,SAAAA,EAAqBpgB,GAAA,KAAAA,QAAAA,EAHZ,KAAA5hB,KAAI,EACJ,KAAA1yF,OAAiB,EAG9B,OAAA00H,CAAA,CALA,GAOaC,GAAoB,SAACC,GAC9B,OAAgB,IAAhBA,EAAOliC,IAAP,EACSmiC,GAAe,SAACD,GAAiD,OAAgB,IAAhBA,EAAOliC,IAAI,EAC5EoiC,GAAkB,SAACF,GAAoD,OAAgB,IAAhBA,EAAOliC,IAAI,EC9BlFqiC,GAAY,SAACj4C,EAAWiD,GACjC,OAAIjD,EAAEj8E,SAAWk/E,EAAEl/E,QACRi8E,EAAE07B,MAAK,SAAC/lG,EAAG7R,GAAM,OAAA6R,IAAMstE,EAAEn/E,EAAE,GAI1C,EAEao0H,GAAgB,SAACjE,EAAcf,EAAgBC,EAAgBgF,EAAgBC,GACxF,OAAOnE,EAAK/8G,KAAI,SAACmhH,EAAOviH,GACpB,OAAQA,GACJ,KAAK,EACD,OAAOuiH,EAAM9wC,IAAI2rC,EAAQC,GAC7B,KAAK,EACD,OAAOkF,EAAM9wC,IAAI2rC,EAASiF,EAAQhF,GACtC,KAAK,EACD,OAAOkF,EAAM9wC,IAAI2rC,EAASiF,EAAQhF,EAASiF,GAC/C,KAAK,EACD,OAAOC,EAAM9wC,IAAI2rC,EAAQC,EAASiF,GAE1C,OAAOC,IAEf,ECtBAC,GAAA,WAUI,SAAAA,EAAYhS,GACRxhH,KAAKwG,QAAUg7G,EACfxhH,KAAKyzH,YAAc,GACnBzzH,KAAK0zH,eAAiB,GACtB1zH,KAAK2zH,eAAiB,GACtB3zH,KAAK4zH,uCAAyC,GAC9C5zH,KAAK6zH,eAAiB,GACtB7zH,KAAK8zH,oBAAsB,GAC3B9zH,KAAK+zH,yBAA2B,GAExC,OAAAP,CAAA,CApBA,GAsBAQ,GAAA,WAKI,SAAAA,EAAqBxS,EAAsCt0G,GAMvD,GANiB,KAAAs0G,UAAAA,EAAsC,KAAAt0G,OAAAA,EAJlD,KAAA+mH,QAA4B,GAKjCj0H,KAAKyyH,OAAS,IAAIrD,GAAYpvH,KAAKwhH,WAC/BxhH,KAAKwhH,UAAU/K,OAAO/D,QAAU,GAChC1yG,KAAKi0H,QAAQrkH,KAAK,IAAIkjH,GAAc9yH,KAAKwhH,UAAU/K,OAAO/D,UAGtB,OAApC1yG,KAAKwhH,UAAU/K,OAAOpB,UAAoB,CAC1C,IAAMlE,EAAUnxG,KAAKwhH,UAAU3K,OAAOvzB,KAAOtjF,KAAKwhH,UAAU/K,OAAOvE,gBAAgB,GAAGlX,OAChFoW,EAAUpxG,KAAKwhH,UAAU3K,OAAO1tC,IAAMnpE,KAAKwhH,UAAU/K,OAAOvE,gBAAgB,GAAGlX,OAC/E0W,EAAS1xG,KAAKwhH,UAAU/K,OAAOpB,UACrCr1G,KAAKi0H,QAAQrkH,KAAK,IAAIgjH,GAAgBzhB,EAASC,EAASM,IAG5D,GAAwC,IAApC1xG,KAAKwhH,UAAU/K,OAAOvB,UAAgC,CACtD,IAAMgf,EAAY1B,GAAuBxyH,KAAKyyH,QACxC0B,EAAaxB,GAAwB3yH,KAAKyyH,QAE5CU,GAAUe,EAAWC,GACrBn0H,KAAKi0H,QAAQrkH,KAAK,IAAIijH,GAAWqB,EAAW,KAE5Cl0H,KAAKi0H,QAAQrkH,KAAK,IAAIijH,GAAWqB,EAAW,IAC5Cl0H,KAAKi0H,QAAQrkH,KAAK,IAAIijH,GAAWsB,EAAY,MAgC7D,OA3BIH,EAAAx1H,UAAA41H,WAAA,SAAWh2H,GAIP,IAHA,IAAIi2H,GAA0F,IAAjF,CAAC,EAAD,GAAoCtnH,QAAQ/M,KAAKwhH,UAAU/K,OAAOr2G,UAC3E8M,EAASlN,KAAKkN,OACZ+mH,EAAUj0H,KAAKi0H,QAAQ9jH,MAAM,GAC5BjD,GAAQ,CACX,IAAMonH,EAAkBpnH,EAAO+mH,QAAQttH,QAAO,SAACqsH,GAAW,OAACC,GAAaD,EAAO,IAC/E,GAAIqB,GAA+C,IAArCnnH,EAAOs0G,UAAU/K,OAAOr2G,WAAiC8M,EAAOA,QAG1E,GAFA+mH,EAAQj6B,QAAOl1F,MAAfmvH,EAAmBK,GACnBD,GAA4F,IAAnF,CAAC,EAAD,GAAoCtnH,QAAQG,EAAOs0G,UAAU/K,OAAOr2G,UACnC,IAAtC8M,EAAOs0G,UAAU/K,OAAOvB,UAAgC,CACxD,IAAMgf,EAAY1B,GAAuBtlH,EAAOulH,QAC1C0B,EAAaxB,GAAwBzlH,EAAOulH,QAC7CU,GAAUe,EAAWC,IACtBF,EAAQj6B,QACJ,IAAI64B,GAAWsB,EAAY,UAKvCF,EAAQj6B,QAAOl1F,MAAfmvH,EAAmBK,GAGvBpnH,EAASA,EAAOA,OAGpB,OAAO+mH,EAAQttH,QAAO,SAACqsH,GAAW,OAAA5f,GAAS4f,EAAO50H,OAAQA,EAAO,KAEzE41H,CAAA,CA1DA,GA4DMO,GAAiB,SACnBrnH,EACAsnH,EACAC,EACAC,GAEAxnH,EAAOs0G,UAAUhL,SAASp3B,SAAQ,SAAClzE,GAC/B,IAAMyoH,EAA6BvhB,GAASlnG,EAAM8sF,MAAO,GACnD2oB,EAAyBvO,GAASlnG,EAAM8sF,MAAO,GAC/C47B,EAAiB,IAAIZ,GAAa9nH,EAAOgB,GAC3CkmG,GAASlnG,EAAMuqG,OAAOnH,QAAS,OAC/BolB,EAAU9kH,KAAKglH,GAGnB,IAAMC,EAAiBzhB,GAASlnG,EAAM8sF,MAAO,GAAuB,GAAK07B,EAEzE,GAAIC,GAA8BhT,EAAwB,CACtD,IAAMmT,EACFH,GAA8BzoH,EAAMuqG,OAAOjB,eAAiBif,EAAsBD,EAEhFO,EAAQ,IAAIvB,GAAgBoB,GAElC,GAAI1oH,EAAMuqG,OAAOjB,gBAAkBtpG,EAAMuqG,OAAO/D,QAAU,GAAKxmG,EAAMuqG,OAAOlB,gBAAiB,CACzF,IAAMyf,EAAQ9oH,EAAMuqG,OAAOlE,OAAOzoD,MAClC,GAAIkrE,EAAQ,EAAG,CACX,IAAIC,EAAQ,EAEZH,EAAYnB,eAAe/c,MAAK,SAAC3yG,EAASjF,GACtC,OAAIg2H,EAAQ/wH,EAAQuC,QAAQg7G,UAAU/K,OAAOlE,OAAOzoD,OAChDmrE,EAAQj2H,GACD,GACAi2H,EAAQ,KAMvBH,EAAYnB,eAAe/4B,OAAOq6B,EAAO,EAAGF,QACzC,GAAIC,EAAQ,EAAG,CAClB,IAAIE,EAAQ,EACZJ,EAAYjB,eAAejd,MAAK,SAAC3yG,EAASjF,GACtC,OAAIg2H,GAAS/wH,EAAQuC,QAAQg7G,UAAU/K,OAAOlE,OAAOzoD,OACjDorE,EAAQl2H,EAAI,GACL,GACAk2H,EAAQ,KAMvBJ,EAAYjB,eAAej5B,OAAOs6B,EAAO,EAAGH,QAE5CD,EAAYlB,uCAAuChkH,KAAKmlH,QAGxD7oH,EAAMuqG,OAAOf,aACbof,EAAYhB,oBAAoBlkH,KAAKmlH,GAErCD,EAAYf,yBAAyBnkH,KAAKmlH,GAIlDR,GACIK,EACAG,EACAJ,EAA6BI,EAAQN,EACrCI,QAGA3oH,EAAMuqG,OAAOd,gBACb6e,EAAgBf,YAAY7jH,KAAKglH,GAEjCJ,EAAgBd,eAAe9jH,KAAKglH,GAGxCL,GAAeK,EAAgBJ,EAAiBC,EAAqBI,GAGrEzhB,GAASlnG,EAAM8sF,MAAO,IACtBm8B,GAAiBjpH,EAAO2oH,KAGpC,EAEMM,GAAmB,SAACC,EAAyB5e,GAG/C,IAFA,IAAI6e,EAAYD,aAAiB1V,GAAqB0V,EAAMv0H,MAAQ,EAC9D8+G,EAAWyV,aAAiB1V,IAAqB0V,EAAMzV,SACpD3gH,EAAI,EAAGA,EAAIw3G,EAASv3G,OAAQD,IAAK,CACtC,IAAME,EAAOs3G,EAASx3G,GAElBE,EAAKsiH,qBAAqB/B,IACM,kBAAzBvgH,EAAKsiH,UAAUhkH,OACG,IAAzB0B,EAAKsiH,UAAUhkH,QAEf63H,EAAYn2H,EAAKsiH,UAAUhkH,OAG/B0B,EAAKo2H,UAAYxR,GAAkBuR,EAAWn2H,EAAKsiH,UAAU/K,OAAOtG,eAAe,GAEnFklB,GAAa1V,GAAY,EAAI,EAErC,EAEa4V,GAAwB,SAAC/T,GAClC,IAAMoT,EAAiB,IAAIZ,GAAaxS,EAAW,MAC7C7vG,EAAO,IAAI6hH,GAAgBoB,GAC3BF,EAA4B,GAGlC,OAFAH,GAAeK,EAAgBjjH,EAAMA,EAAM+iH,GAC3CS,GAAiBP,EAAepT,UAAWkT,GACpC/iH,CACX,ECxMa6jH,GAAqB,SAAC/C,EAAqBgD,GACpD,OAAQA,GACJ,KAAK,EACD,OAAOC,GACHjD,EAAOnB,iBACPmB,EAAOf,kBACPe,EAAOlB,kBACPkB,EAAOd,oBAEf,KAAK,EACD,OAAO+D,GACHjD,EAAOlB,kBACPkB,EAAOd,mBACPc,EAAOjB,qBACPiB,EAAOb,uBAEf,KAAK,EACD,OAAO8D,GACHjD,EAAOjB,qBACPiB,EAAOb,sBACPa,EAAOhB,oBACPgB,EAAOZ,sBAGf,QACI,OAAO6D,GACHjD,EAAOhB,oBACPgB,EAAOZ,qBACPY,EAAOnB,iBACPmB,EAAOf,mBAGvB,EAEaiE,GAAgC,SAAClD,EAAqBgD,GAC/D,OAAQA,GACJ,KAAK,EACD,OAAOC,GACHjD,EAAOnB,iBACPmB,EAAOpC,4BACPoC,EAAOlB,kBACPkB,EAAOjC,8BAEf,KAAK,EACD,OAAOkF,GACHjD,EAAOlB,kBACPkB,EAAOjC,6BACPiC,EAAOjB,qBACPiB,EAAO/B,iCAEf,KAAK,EACD,OAAOgF,GACHjD,EAAOjB,qBACPiB,EAAO/B,gCACP+B,EAAOhB,oBACPgB,EAAO7B,gCAGf,QACI,OAAO8E,GACHjD,EAAOhB,oBACPgB,EAAO7B,+BACP6B,EAAOnB,iBACPmB,EAAOpC,6BAGvB,EAEauF,GAAgC,SAACnD,EAAqBgD,GAC/D,OAAQA,GACJ,KAAK,EACD,OAAOC,GACHjD,EAAO3B,4BACP2B,EAAOf,kBACPe,EAAO1B,6BACP0B,EAAOd,oBAEf,KAAK,EACD,OAAO+D,GACHjD,EAAO1B,6BACP0B,EAAOd,mBACPc,EAAOzB,gCACPyB,EAAOb,uBAEf,KAAK,EACD,OAAO8D,GACHjD,EAAOzB,gCACPyB,EAAOb,sBACPa,EAAOxB,+BACPwB,EAAOZ,sBAGf,QACI,OAAO6D,GACHjD,EAAOxB,+BACPwB,EAAOZ,qBACPY,EAAO3B,4BACP2B,EAAOf,mBAGvB,EAEamE,GAA2B,SAACpD,EAAqBgD,GAC1D,OAAQA,GACJ,KAAK,EACD,OAAOK,GAA2BrD,EAAOvB,oBAAqBuB,EAAOtB,sBACzE,KAAK,EACD,OAAO2E,GAA2BrD,EAAOtB,qBAAsBsB,EAAOrB,yBAC1E,KAAK,EACD,OAAO0E,GAA2BrD,EAAOrB,wBAAyBqB,EAAOpB,wBAE7E,QACI,OAAOyE,GAA2BrD,EAAOpB,uBAAwBoB,EAAOvB,qBAEpF,EAEM4E,GAA6B,SAACC,EAAcC,GAC9C,IAAM7G,EAAO,GAab,OAZID,GAAc6G,GACd5G,EAAKv/G,KAAKmmH,EAAOrH,UAAU,IAAK,IAEhCS,EAAKv/G,KAAKmmH,GAGV7G,GAAc8G,GACd7G,EAAKv/G,KAAKomH,EAAOtH,UAAU,IAAK,IAEhCS,EAAKv/G,KAAKomH,GAGP7G,CACX,EAEMuG,GAAuB,SAACK,EAAcE,EAAcD,EAAcE,GACpE,IAAM/G,EAAO,GAyBb,OAxBID,GAAc6G,GACd5G,EAAKv/G,KAAKmmH,EAAOrH,UAAU,IAAK,IAEhCS,EAAKv/G,KAAKmmH,GAGV7G,GAAc8G,GACd7G,EAAKv/G,KAAKomH,EAAOtH,UAAU,IAAK,IAEhCS,EAAKv/G,KAAKomH,GAGV9G,GAAcgH,GACd/G,EAAKv/G,KAAKsmH,EAAOxH,UAAU,IAAK,GAAMO,WAEtCE,EAAKv/G,KAAKsmH,GAGVhH,GAAc+G,GACd9G,EAAKv/G,KAAKqmH,EAAOvH,UAAU,IAAK,GAAOO,WAEvCE,EAAKv/G,KAAKqmH,GAGP9G,CACX,EChKagF,GAAa,SAAC3tH,GACvB,IAAMqwG,EAASrwG,EAAQqwG,OACjBJ,EAASjwG,EAAQiwG,OACvB,OAAOI,EAAOp0B,IACVg0B,EAAOrH,gBACPqH,EAAOxH,iBACLwH,EAAOvH,iBAAmBuH,EAAOrH,mBACjCqH,EAAOxH,eAAiBwH,EAAOtH,mBAEzC,EAEagnB,GAAa,SAAC3vH,GACvB,IAAMiwG,EAASjwG,EAAQiwG,OACjBI,EAASrwG,EAAQqwG,OAEjB9F,EAAc1T,GAAiBoZ,EAAO1F,YAAa8F,EAAOxuB,OAC1DwoB,EAAexT,GAAiBoZ,EAAO5F,aAAcgG,EAAOxuB,OAC5DuoB,EAAavT,GAAiBoZ,EAAO7F,WAAYiG,EAAOxuB,OACxDyoB,EAAgBzT,GAAiBoZ,EAAO3F,cAAe+F,EAAOxuB,OAEpE,OAAOwuB,EAAOp0B,IACVsuB,EAAc0F,EAAOrH,gBACrBwB,EAAa6F,EAAOxH,iBAClBwH,EAAOvH,iBAAmBuH,EAAOrH,gBAAkB2B,EAAcF,KACjE4F,EAAOxH,eAAiBwH,EAAOtH,kBAAoByB,EAAaE,GAE1E,EClBaslB,GAAqC,SAC9C5oB,EACAhnG,GAEA,OAAyB,IAArBgnG,EACOhnG,EAAQqwG,OAGM,IAArBrJ,EACO2oB,GAAW3vH,GAGf2tH,GAAW3tH,EACtB,EAEa6vH,GAAkC,SAACxtB,EAAiCriG,GAC7E,OAAuB,IAAnBqiG,EACOriG,EAAQqwG,OAGI,IAAnBhO,EACOstB,GAAW3vH,GAGf2tH,GAAW3tH,EACtB,EAEa8vH,GAA+B,SACxC9U,EACAxwG,EACAulH,GAEA,IAAMC,EAA4BJ,GAC9BK,GAA2BjV,EAAU/K,OAAOjJ,iBAAkBx8F,GAC9DwwG,GAGEkV,EAAyBL,GAC3BI,GAA2BjV,EAAU/K,OAAO5N,eAAgB73F,GAC5DwwG,GAGEmV,EAAsBC,GACxBH,GAA2BjV,EAAU/K,OAAO5I,eAAgB78F,GAC5DulH,EACAC,GAGGK,EAAyBF,EAAmB,GAAjCG,EAAcH,EAAmB,GAE7Cv2H,EAAW+8F,GACbs5B,GAA2BjV,EAAU/K,OAAOhJ,mBAAoBz8F,GAChEwlH,EAA0BnuC,MAAQwuC,EAClCL,EAA0BluC,OAASwuC,GAcvC,MAAO,CAXMC,GACTN,GAA2BjV,EAAU/K,OAAO/I,iBAAkB18F,GAC9D5Q,EACAu2H,EACAH,EACAE,GAGYj5C,KAAKkhB,MAAM63B,EAA0BlzC,KAAOljF,EAAS,IACrDq9E,KAAKkhB,MAAM63B,EAA0BrtD,IAAM/oE,EAAS,IAEpCy2H,EAAWC,EAC/C,EAEaE,GAAS,SAACr+B,GAA6B,OAAA0D,GAAa1D,IAAUA,EAAMn7F,QAAU6vG,GAAgB4pB,IAAI,EAEzGC,GAAoB,SAAC15H,GAA0C,MAAiB,kBAAVA,CAAkB,EAEjFo5H,GAA0B,SACnClrB,EACAla,EACAqlB,OADCqI,EAAc1tB,EAAA,GAAE4tB,EAAe5tB,EAAA,GAAE2lC,EAAmB3lC,EAAA,GAG9C6X,EAAiBqC,EAAI,GAAd0rB,EAAU1rB,EAAI,GAE5B,IAAKrC,EACD,MAAO,CAAC,EAAG,GAGf,GAAIvM,GAAmBuM,IAAU+tB,GAAUt6B,GAAmBs6B,GAC1D,MAAO,CAAC/5B,GAAiBgM,EAAOwN,EAAOxuB,OAAQgV,GAAiB+5B,EAAQvgB,EAAOvuB,SAGnF,IAAM+uC,EAAyBH,GAAkBC,GAEjD,GAAI96B,GAAagN,KAAWA,EAAM7rG,QAAU6vG,GAAgBd,SAAWlD,EAAM7rG,QAAU6vG,GAAgBf,OACnG,OAAI4qB,GAAkBC,GACEtgB,EAAOxuB,MAAQwuB,EAAOvuB,OAErB6uC,KAAyB9tB,EAAM7rG,QAAU6vG,GAAgBf,OACxE,CAACuK,EAAOxuB,MAAOwuB,EAAOxuB,MAAQ8uC,GAC9B,CAACtgB,EAAOvuB,OAAS6uC,EAAqBtgB,EAAOvuB,QAGhD,CAACuuB,EAAOxuB,MAAOwuB,EAAOvuB,QAGjC,IAAMgvC,EAAoBJ,GAAkBhY,GACtCqY,EAAqBL,GAAkB9X,GACvCoY,EAAyBF,GAAqBC,EAGpD,GAAIP,GAAO3tB,MAAY+tB,GAAUJ,GAAOI,IAEpC,OAAIE,GAAqBC,EACd,CAACrY,EAA0BE,GAMjCiY,GAA2BG,EAQ5BA,GAA0BH,EAOnB,CANOC,EACPpY,EACAE,EAA8B+X,EACtBI,EACRnY,EACAF,EAA6BiY,GAQjC,CAFOG,EAAqBpY,EAA4BrI,EAAOxuB,MACvDkvC,EAAsBnY,EAA6BvI,EAAOvuB,QApB9D,CAACuuB,EAAOxuB,MAAOwuB,EAAOvuB,QA0BrC,GAAI+uC,EAAwB,CACxB,IAAII,EAAQ,EACRC,EAAS,EAab,OAZI56B,GAAmBuM,GACnBouB,EAAQp6B,GAAiBgM,EAAOwN,EAAOxuB,OAChCyU,GAAmBs6B,KAC1BM,EAASr6B,GAAiB+5B,EAAQvgB,EAAOvuB,SAGzC0uC,GAAO3tB,GACPouB,EAAQC,EAAUP,EACVC,IAAUJ,GAAOI,KACzBM,EAASD,EAASN,GAGf,CAACM,EAAOC,GAQnB,IAAIrvC,EAAQ,KACRC,EAAS,KAsBb,GApBIwU,GAAmBuM,GACnBhhB,EAAQgV,GAAiBgM,EAAOwN,EAAOxuB,OAChC+uC,GAAUt6B,GAAmBs6B,KACpC9uC,EAAS+U,GAAiB+5B,EAAQvgB,EAAOvuB,SAG/B,OAAVD,GAAoB+uC,IAAUJ,GAAOI,KACrC9uC,EACIgvC,GAAqBC,EACdlvC,EAAS62B,EAA8BE,EACxCvI,EAAOvuB,QAGN,OAAXA,GAAmB0uC,GAAO3tB,KAC1BhhB,EACIivC,GAAqBC,EACdjvC,EAAU82B,EAA+BF,EAC1CrI,EAAOxuB,OAGP,OAAVA,GAA6B,OAAXC,EAClB,MAAO,CAACD,EAAOC,GAGnB,MAAM,IAAI5+E,MAAM,kDACpB,EAEa+sH,GAA6B,SAAI56B,EAAa7qF,GACvD,IAAMxT,EAAQq+F,EAAO7qF,GACrB,MAAqB,qBAAVxT,EACAq+F,EAAO,GAGXr+F,CACX,EAEau5H,GAAgC,SACzCzc,EACA9oB,EACAsN,EACA03B,EACAE,OAHCn4C,EAACiT,EAAA,GAAEpT,EAACoT,EAAA,GACJnJ,EAAKyW,EAAA,GAAExW,EAAMwW,EAAA,GAId,OAAQwb,GACJ,KAAK,EACD,MAAO,CACH,IAAI6T,GAAO1wC,KAAKkhB,MAAM63B,EAA0BlzC,MAAO7F,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,IAClG,IAAI+vC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAOkzC,EAA0BnuC,OACtE5K,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,IAE/C,IAAI+vC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAOkzC,EAA0BnuC,OACtE5K,KAAKkhB,MAAMrW,EAASkuC,EAA0BrtD,IAAMiV,IAExD,IAAI+vC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,MACrC7F,KAAKkhB,MAAMrW,EAASkuC,EAA0BrtD,IAAMiV,KAGhE,KAAK,EACD,MAAO,CACH,IAAI+vC,GAAO1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,GAAId,KAAKkhB,MAAM63B,EAA0BrtD,MAChG,IAAIglD,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,EAAI8J,GAChD5K,KAAKkhB,MAAM63B,EAA0BrtD,MAEzC,IAAIglD,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,EAAI8J,GAChD5K,KAAKkhB,MAAM63B,EAA0BluC,OAASkuC,EAA0BrtD,MAE5E,IAAIglD,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,GAC5Cd,KAAKkhB,MAAM63B,EAA0BluC,OAASkuC,EAA0BrtD,OAGpF,KAAK,EACD,MAAO,CACH,IAAIglD,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,GAC5Cd,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,IAE/C,IAAI+vC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,EAAI8J,GAChD5K,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,IAE/C,IAAI+vC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,EAAI8J,GAChD5K,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,EAAIkK,IAEnD,IAAI6lC,GACA1wC,KAAKkhB,MAAM63B,EAA0BlzC,KAAO/E,GAC5Cd,KAAKkhB,MAAM63B,EAA0BrtD,IAAMiV,EAAIkK,KAG3D,QACI,MAAO,CACH,IAAI6lC,GAAO1wC,KAAKkhB,MAAM+3B,EAAuBpzC,MAAO7F,KAAKkhB,MAAM+3B,EAAuBvtD,MACtF,IAAIglD,GACA1wC,KAAKkhB,MAAM+3B,EAAuBpzC,KAAOozC,EAAuBruC,OAChE5K,KAAKkhB,MAAM+3B,EAAuBvtD,MAEtC,IAAIglD,GACA1wC,KAAKkhB,MAAM+3B,EAAuBpzC,KAAOozC,EAAuBruC,OAChE5K,KAAKkhB,MAAM+3B,EAAuBpuC,OAASouC,EAAuBvtD,MAEtE,IAAIglD,GACA1wC,KAAKkhB,MAAM+3B,EAAuBpzC,MAClC7F,KAAKkhB,MAAM+3B,EAAuBpuC,OAASouC,EAAuBvtD,OAItF,ECtSawuD,GAAc,iFCMrBC,GAAc,cAEpBC,GAAA,WAII,SAAAA,EAAYp4C,GACRz/E,KAAK83H,MAAQ,CAAC,EACd93H,KAAK+3H,UAAYt4C,EAyDzB,OAtDYo4C,EAAAr5H,UAAAw5H,aAAR,SAAqBllB,EAAoB9C,GACrC,IAAMwR,EAAYxhH,KAAK+3H,UAAU3kH,cAAc,OACzC+nG,EAAMn7G,KAAK+3H,UAAU3kH,cAAc,OACnC6kH,EAAOj4H,KAAK+3H,UAAU3kH,cAAc,QAEpCo0E,EAAOxnF,KAAK+3H,UAAUvwC,KAE5Bg6B,EAAU7S,MAAMyD,WAAa,SAC7BoP,EAAU7S,MAAMmE,WAAaA,EAC7B0O,EAAU7S,MAAMqB,SAAWA,EAC3BwR,EAAU7S,MAAMupB,OAAS,IACzB1W,EAAU7S,MAAMwpB,QAAU,IAC1B3W,EAAU7S,MAAMypB,WAAa,SAE7B5wC,EAAKnmF,YAAYmgH,GAEjBrG,EAAIn0G,IAAM2wH,GACVxc,EAAI9yB,MAAQ,EACZ8yB,EAAI7yB,OAAS,EAEb6yB,EAAIxM,MAAMupB,OAAS,IACnB/c,EAAIxM,MAAMwpB,QAAU,IACpBhd,EAAIxM,MAAM0pB,cAAgB,WAE1BJ,EAAKtpB,MAAMmE,WAAaA,EACxBmlB,EAAKtpB,MAAMqB,SAAWA,EACtBioB,EAAKtpB,MAAMupB,OAAS,IACpBD,EAAKtpB,MAAMwpB,QAAU,IAErBF,EAAK52H,YAAYrB,KAAK+3H,UAAU7yH,eAAe0yH,KAC/CpW,EAAUngH,YAAY42H,GACtBzW,EAAUngH,YAAY85G,GACtB,IAAMmd,EAAWnd,EAAIj4B,UAAY+0C,EAAK/0C,UAAY,EAElDs+B,EAAU3zG,YAAYoqH,GACtBzW,EAAUngH,YAAYrB,KAAK+3H,UAAU7yH,eAAe0yH,KAEpDpW,EAAU7S,MAAMmB,WAAa,SAC7BqL,EAAIxM,MAAM0pB,cAAgB,QAE1B,IAAME,EAASpd,EAAIj4B,UAAYs+B,EAAUt+B,UAAY,EAIrD,OAFAsE,EAAK35E,YAAY2zG,GAEV,CAAC8W,SAAQA,EAAEC,OAAMA,IAE5BV,EAAAr5H,UAAAg6H,WAAA,SAAW1lB,EAAoB9C,GAC3B,IAAMzxG,EAASu0G,EAAU,IAAI9C,EAK7B,MAJ+B,qBAApBhwG,KAAK83H,MAAMv5H,KAClByB,KAAK83H,MAAMv5H,GAAOyB,KAAKg4H,aAAallB,EAAY9C,IAG7ChwG,KAAK83H,MAAMv5H,IAE1Bs5H,CAAA,CA/DA,GCLAY,GAAA,WACI,SAAAA,EAA+BjwC,EAAqCzoF,GAArC,KAAAyoF,QAAAA,EAAqC,KAAAzoF,QAAAA,EACxE,OAAA04H,CAAA,CAFA,GCyDMC,GAAc,IAEpBC,GAAA,SAAA5Z,GAMI,SAAA4Z,EAAYnwC,EAAkBzoF,GAA9B,IAAAi/G,EACID,EAAArgH,KAAA,KAAM8pF,EAASzoF,IAAQ,YAJVi/G,EAAA4Z,eAAmC,GAKhD5Z,EAAK5D,OAASr7G,EAAQq7G,OAASr7G,EAAQq7G,OAAS37B,SAASrsE,cAAc,UACvE4rG,EAAK3D,IAAM2D,EAAK5D,OAAOE,WAAW,MAC7Bv7G,EAAQq7G,SACT4D,EAAK5D,OAAO/yB,MAAQ5K,KAAK8H,MAAMxlF,EAAQsoF,MAAQtoF,EAAQ84H,OACvD7Z,EAAK5D,OAAO9yB,OAAS7K,KAAK8H,MAAMxlF,EAAQuoF,OAASvoF,EAAQ84H,OACzD7Z,EAAK5D,OAAOzM,MAAMtmB,MAAWtoF,EAAQsoF,MAAK,KAC1C22B,EAAK5D,OAAOzM,MAAMrmB,OAAYvoF,EAAQuoF,OAAM,MAEhD02B,EAAK8Z,YAAc,IAAIjB,GAAYp4C,UACnCu/B,EAAK3D,IAAIwd,MAAM7Z,EAAKj/G,QAAQ84H,MAAO7Z,EAAKj/G,QAAQ84H,OAChD7Z,EAAK3D,IAAI0d,WAAWh5H,EAAQw+E,GAAIx+E,EAAQq+E,GACxC4gC,EAAK3D,IAAI2d,aAAe,SACxBha,EAAK4Z,eAAiB,GACtB5Z,EAAKx2B,QAAQo+B,OAAOqG,MAChB,gCAAgCltH,EAAQsoF,MAAK,IAAItoF,EAAQuoF,OAAM,gBAAgBvoF,EAAQ84H,SA0zBnG,OAh1BoCzyC,EAAAuyC,EAAA5Z,GA0BhC4Z,EAAAn6H,UAAAy6H,aAAA,SAAahF,GACT,IADJ,IAAAjV,EAAA,KACWh/G,KAAK44H,eAAe35H,QACvBe,KAAKk5H,YAGTjF,EAAQ70C,SAAQ,SAAC4zC,GAAW,OAAAhU,EAAKma,YAAYnG,EAAO,KAGxD2F,EAAAn6H,UAAA26H,YAAA,SAAYnG,GACRhzH,KAAKq7G,IAAI+d,OACLlG,GAAgBF,KAChBhzH,KAAKq7G,IAAIge,YAAcrG,EAAOtgB,SAG9BqgB,GAAkBC,KAClBhzH,KAAKq7G,IAAI0d,UAAU/F,EAAO7hB,QAAS6hB,EAAO5hB,SAC1CpxG,KAAKq7G,IAAIhG,UACL2d,EAAOthB,OAAO,GACdshB,EAAOthB,OAAO,GACdshB,EAAOthB,OAAO,GACdshB,EAAOthB,OAAO,GACdshB,EAAOthB,OAAO,GACdshB,EAAOthB,OAAO,IAElB1xG,KAAKq7G,IAAI0d,WAAW/F,EAAO7hB,SAAU6hB,EAAO5hB,UAG5C6hB,GAAaD,KACbhzH,KAAKmvH,KAAK6D,EAAO7D,MACjBnvH,KAAKq7G,IAAIie,QAGbt5H,KAAK44H,eAAehpH,KAAKojH,IAG7B2F,EAAAn6H,UAAA06H,UAAA,WACIl5H,KAAK44H,eAAev7C,MACpBr9E,KAAKq7G,IAAIke,WAGPZ,EAAAn6H,UAAAg7H,YAAN,SAAkBzE,oGACCA,EAAMvuH,QAAQg7G,UAAU/K,OAC5BnB,YACP,GAAMt1G,KAAKy5H,mBAAmB1E,IAD9B,aACAvjC,EAAA9J,0CAIFixC,EAAAn6H,UAAAk7H,WAAN,SAAiBC,oGACTvmB,GAASumB,EAAMnY,UAAUxoB,MAAO,IAIhC2gC,EAAMnY,UAAU/K,OAAOnB,YACvB,GAAMt1G,KAAK45H,+BAA+BD,IAD1C,aAEA,OADAnoC,EAAA9J,OACA,GAAM1nF,KAAK65H,kBAAkBF,WAA7BnoC,EAAA9J,0CAIRixC,EAAAn6H,UAAAs7H,4BAAA,SAA4BjlH,EAAkB66F,EAAuB4oB,GAArE,IAAAtZ,EAAA,KAC0B,IAAlBtP,EACA1vG,KAAKq7G,IAAI0e,SAASllH,EAAKA,KAAMA,EAAKgiG,OAAOvzB,KAAMzuE,EAAKgiG,OAAO1tC,IAAMmvD,GAEjD3a,GAAiB9oG,EAAKA,MAC9B/N,QAAO,SAACw8E,EAAM02C,GAGlB,OAFAhb,EAAK3D,IAAI0e,SAASC,EAAQ12C,EAAMzuE,EAAKgiG,OAAO1tC,IAAMmvD,GAE3Ch1C,EAAO07B,EAAK3D,IAAI4e,YAAYD,GAAQ3xC,QAC5CxzE,EAAKgiG,OAAOvzB,OAIfq1C,EAAAn6H,UAAA07H,gBAAR,SAAwBzjB,GACpB,IAAMvD,EAAcuD,EAAOvD,YACtBvsG,QAAO,SAACwzH,GAAY,MAAY,WAAZA,GAAoC,eAAZA,CAAwB,IACpE3qH,KAAK,IACJsjG,EAAasnB,GAAkB3jB,EAAO3D,YAAYtjG,KAAK,MACvDwgG,EAAW7T,GAAiBsa,EAAOzG,UACnC,GAAGyG,EAAOzG,SAAShV,OAASyb,EAAOzG,SAAS/U,KACzCwb,EAAOzG,SAAShV,OAAM,KAE/B,MAAO,CACH,CAACyb,EAAOtD,UAAWD,EAAauD,EAAOxD,WAAYjD,EAAU8C,GAAYtjG,KAAK,KAC9EsjG,EACA9C,IAIF2oB,EAAAn6H,UAAA67H,eAAN,SAAqBxlH,EAAqB4hG,wGAChCjlB,EAA+BxxF,KAAKk6H,gBAAgBzjB,GAAnD6jB,EAAI9oC,EAAA,GAAEshB,EAAUthB,EAAA,GAAEwe,EAAQxe,EAAA,GAEjCxxF,KAAKq7G,IAAIif,KAAOA,EAEhBt6H,KAAKq7G,IAAIhM,UAAiC,IAArBoH,EAAOpH,UAA8B,MAAQ,MAClErvG,KAAKq7G,IAAIrK,UAAY,OACrBhxG,KAAKq7G,IAAI2d,aAAe,aAClBl6B,EAAqB9+F,KAAK84H,YAAYN,WAAW1lB,EAAY9C,GAA5DsoB,EAAQx5B,EAAAw5B,SAAEC,EAAMz5B,EAAAy5B,OACjB9jB,EAAagC,EAAOhC,WAE1B5/F,EAAKyoG,WAAWl+B,SAAQ,SAACvqE,GACrB4/F,EAAWr1B,SAAQ,SAACm7C,GAChB,OAAQA,GACJ,KAAK,EACDvb,EAAK3D,IAAIM,UAAYpd,GAASkY,EAAOnY,OACrC0gB,EAAK8a,4BAA4BjlH,EAAM4hG,EAAO/G,cAAe4oB,GAC7D,IAAMkC,EAA0B/jB,EAAOxF,WAEnCupB,EAAYv7H,QAAU4V,EAAKA,KAAK0oG,OAAOt+G,SACvCu7H,EACKrqH,MAAM,GACN8+G,UACA7vC,SAAQ,SAAC6xB,GACN+N,EAAK3D,IAAIof,YAAcl8B,GAAS0S,EAAW3S,OAC3C0gB,EAAK3D,IAAIqf,cAAgBzpB,EAAWE,QAAQnW,OAASgkB,EAAKj/G,QAAQ84H,MAClE7Z,EAAK3D,IAAIsf,cAAgB1pB,EAAWG,QAAQpW,OAASgkB,EAAKj/G,QAAQ84H,MAClE7Z,EAAK3D,IAAIuf,WAAa3pB,EAAWI,KAAKrW,OAEtCgkB,EAAK8a,4BAA4BjlH,EAAM4hG,EAAO/G,cAAe4oB,MAGrEtZ,EAAK3D,IAAIof,YAAc,GACvBzb,EAAK3D,IAAIqf,cAAgB,EACzB1b,EAAK3D,IAAIsf,cAAgB,EACzB3b,EAAK3D,IAAIuf,WAAa,GAGtBnkB,EAAO7D,mBAAmB3zG,SAC1B+/G,EAAK3D,IAAIM,UAAYpd,GAASkY,EAAO9D,qBAAuB8D,EAAOnY,OACnEmY,EAAO7D,mBAAmBxzB,SAAQ,SAACwzB,GAC/B,OAAQA,GACJ,KAAK,EAIDoM,EAAK3D,IAAIO,SACL/mG,EAAKgiG,OAAOvzB,KACZ7F,KAAKkhB,MAAM9pF,EAAKgiG,OAAO1tC,IAAMmvD,GAC7BzjH,EAAKgiG,OAAOxuB,MACZ,GAGJ,MACJ,KAAK,EACD22B,EAAK3D,IAAIO,SACL/mG,EAAKgiG,OAAOvzB,KACZ7F,KAAKkhB,MAAM9pF,EAAKgiG,OAAO1tC,KACvBt0D,EAAKgiG,OAAOxuB,MACZ,GAEJ,MACJ,KAAK,EAED22B,EAAK3D,IAAIO,SACL/mG,EAAKgiG,OAAOvzB,KACZ7F,KAAKwO,KAAKp3E,EAAKgiG,OAAO1tC,IAAMovD,GAC5B1jH,EAAKgiG,OAAOxuB,MACZ,QAMpB,MACJ,KAAK,EACGouB,EAAO7B,uBAAyB//F,EAAKA,KAAK0oG,OAAOt+G,SACjD+/G,EAAK3D,IAAIwf,YAAct8B,GAASkY,EAAO9B,uBACvCqK,EAAK3D,IAAIyf,UAAYrkB,EAAO7B,sBAE5BoK,EAAK3D,IAAI0f,SAAcp7C,OAAeq7C,OAAS,QAAU,QACzDhc,EAAK3D,IAAI4f,WAAWpmH,EAAKA,KAAMA,EAAKgiG,OAAOvzB,KAAMzuE,EAAKgiG,OAAO1tC,IAAMmvD,IAEvEtZ,EAAK3D,IAAIwf,YAAc,GACvB7b,EAAK3D,IAAIyf,UAAY,EACrB9b,EAAK3D,IAAI0f,SAAW,0BAOxCpC,EAAAn6H,UAAA08H,sBAAA,SACI1Z,EACAiR,EACAzvF,GAEA,GAAIA,GAASw+E,EAAUtC,eAAiB,GAAKsC,EAAUpC,gBAAkB,EAAG,CACxE,IAAM+b,EAAMhF,GAAW3U,GACjB2N,EAAOwD,GAAwBF,GACrCzyH,KAAKmvH,KAAKA,GACVnvH,KAAKq7G,IAAI+d,OACTp5H,KAAKq7G,IAAIie,OACTt5H,KAAKq7G,IAAIE,UACLv4E,EACA,EACA,EACAw+E,EAAUtC,eACVsC,EAAUpC,gBACV+b,EAAI73C,KACJ63C,EAAIhyD,IACJgyD,EAAI9yC,MACJ8yC,EAAI7yC,QAERtoF,KAAKq7G,IAAIke,YAIXZ,EAAAn6H,UAAAq7H,kBAAN,SAAwBF,qIACpB35H,KAAKi5H,aAAaU,EAAMvF,WAAW,IAC7B5S,EAAYmY,EAAMnY,UAClBiR,EAASkH,EAAMlH,OACfhc,EAAS+K,EAAU/K,WACLjlB,EAAAgwB,EAAUjL,kCAAV9wB,EAAA+L,EAAAvyF,QAATiN,EAAKslF,EAAA/L,GACZ,GAAMzlF,KAAKq6H,eAAenuH,EAAOuqG,KADE,aACnCgZ,EAAA/nC,+BADgBjC,sBAIhB+7B,aAAqB1C,IAArB,6BAEkB,gCAAM9+G,KAAKwoF,QAAQwkB,MAAMhyB,MAAMwmC,EAAUx6G,oBAAjDg8B,EAAQysF,EAAA/nC,OACd1nF,KAAKk7H,sBAAsB1Z,EAAWiR,EAAQzvF,gCAE9ChjC,KAAKwoF,QAAQo+B,OAAOhkH,MAAM,uBAAuB4+G,EAAUx6G,qBAI/Dw6G,aAAqBlC,IACrBt/G,KAAKk7H,sBAAsB1Z,EAAWiR,EAAQjR,EAAUpG,UAGxDoG,aAAqBjC,IAArB,8BAEkB,kCAAMv/G,KAAKwoF,QAAQwkB,MAAMhyB,MAAMwmC,EAAU1F,qBAAjD94E,EAAQysF,EAAA/nC,OACd1nF,KAAKk7H,sBAAsB1Z,EAAWiR,EAAQzvF,kCAE9ChjC,KAAKwoF,QAAQo+B,OAAOhkH,MAAM,qBAAqB4+G,EAAU1F,IAAIlnG,UAAU,EAAG,4BAI9E4sG,aAAqBb,IAA0Ba,EAAUV,KAU1C,GATQ,IAAI6X,EAAe34H,KAAKwoF,QAAS,CACpDqwC,MAAO74H,KAAKD,QAAQ84H,MACpB/vB,gBAAiB0Y,EAAU1Y,gBAC3BvqB,EAAG,EACHH,EAAG,EACHiK,MAAOm5B,EAAUn5B,MACjBC,OAAQk5B,EAAUl5B,SAGc8yC,OAAO5Z,EAAUV,OAVrD,eAUM1F,EAASqU,EAAA/nC,OACX85B,EAAUn5B,OAASm5B,EAAUl5B,QAC7BtoF,KAAKq7G,IAAIE,UACLH,EACA,EACA,EACAoG,EAAUn5B,MACVm5B,EAAUl5B,OACVk5B,EAAU3K,OAAOvzB,KACjBk+B,EAAU3K,OAAO1tC,IACjBq4C,EAAU3K,OAAOxuB,MACjBm5B,EAAU3K,OAAOvuB,2BA4C7B,GAvCIk5B,aAAqBnB,KACf3U,EAAOjuB,KAAKyD,IAAIsgC,EAAU3K,OAAOxuB,MAAOm5B,EAAU3K,OAAOvuB,QAE3Dk5B,EAAU1wB,OAASovB,GACfsB,EAAUlB,UACVtgH,KAAKq7G,IAAI+d,OACTp5H,KAAKmvH,KAAK,CACN,IAAIhB,GAAO3M,EAAU3K,OAAOvzB,KAAc,OAAPooB,EAAgB8V,EAAU3K,OAAO1tC,IAAa,IAAPuiC,GAC1E,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,IAAPooB,EAAa8V,EAAU3K,OAAO1tC,IAAa,MAAPuiC,GACvE,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,OAAPooB,EAAgB8V,EAAU3K,OAAO1tC,IAAa,OAAPuiC,GAC1E,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,OAAPooB,EAAgB8V,EAAU3K,OAAO1tC,IAAa,MAAPuiC,GAC1E,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,OAAPooB,EAAgB8V,EAAU3K,OAAO1tC,IAAa,IAAPuiC,GAC1E,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,IAAPooB,EAAa8V,EAAU3K,OAAO1tC,IAAa,OAAPuiC,GACvE,IAAIyiB,GAAO3M,EAAU3K,OAAOvzB,KAAc,OAAPooB,EAAgB8V,EAAU3K,OAAO1tC,IAAa,IAAPuiC,KAG9E1rG,KAAKq7G,IAAIM,UAAYpd,GAAS6hB,IAC9BpgH,KAAKq7G,IAAIggB,OACTr7H,KAAKq7G,IAAIke,WAEN/X,EAAU1wB,OAASqvB,IACtBqB,EAAUlB,UACVtgH,KAAKq7G,IAAI+d,OACTp5H,KAAKq7G,IAAIigB,YACTt7H,KAAKq7G,IAAIkgB,IACL/Z,EAAU3K,OAAOvzB,KAAOooB,EAAO,EAC/B8V,EAAU3K,OAAO1tC,IAAMuiC,EAAO,EAC9BA,EAAO,EACP,EACU,EAAVjuB,KAAKkgB,IACL,GAEJ39F,KAAKq7G,IAAIM,UAAYpd,GAAS6hB,IAC9BpgH,KAAKq7G,IAAIggB,OACTr7H,KAAKq7G,IAAIke,YAKjBiC,GAAmBha,IAAcA,EAAUhkH,MAAMyB,OAAQ,CAczD,OAbM6/F,EAAyB9+F,KAAKk6H,gBAAgBzjB,GAA7C3D,EAAUhU,EAAA,GAAEkR,EAAQlR,EAAA,GACpBw5B,EAAYt4H,KAAK84H,YAAYN,WAAW1lB,EAAY9C,GAASsoB,SAEpEt4H,KAAKq7G,IAAIif,KAAOxnB,EAChB9yG,KAAKq7G,IAAIM,UAAYpd,GAASkY,EAAOnY,OAErCt+F,KAAKq7G,IAAI2d,aAAe,aACxBh5H,KAAKq7G,IAAIrK,UAAYyqB,GAAgBja,EAAU/K,OAAOzF,WAEhD6F,EAASsf,GAAW3U,GAEtBjjC,EAAI,EAEAijC,EAAU/K,OAAOzF,WACrB,KAAK,EACDzyB,GAAKs4B,EAAOxuB,MAAQ,EACpB,MACJ,KAAK,EACD9J,GAAKs4B,EAAOxuB,MAIdi1B,EAAazG,EAAOp0B,IAAIlE,EAAG,EAAG,GAAIs4B,EAAOvuB,OAAS,EAAI,GAE5DtoF,KAAKq7G,IAAI+d,OACTp5H,KAAKmvH,KAAK,CACN,IAAIhB,GAAOtX,EAAOvzB,KAAMuzB,EAAO1tC,KAC/B,IAAIglD,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAOwuB,EAAO1tC,KAC9C,IAAIglD,GAAOtX,EAAOvzB,KAAOuzB,EAAOxuB,MAAOwuB,EAAO1tC,IAAM0tC,EAAOvuB,QAC3D,IAAI6lC,GAAOtX,EAAOvzB,KAAMuzB,EAAO1tC,IAAM0tC,EAAOvuB,UAGhDtoF,KAAKq7G,IAAIie,OACTt5H,KAAK85H,4BACD,IAAI3c,GAAWqE,EAAUhkH,MAAO8/G,GAChC7G,EAAO/G,cACP4oB,GAEJt4H,KAAKq7G,IAAIke,UACTv5H,KAAKq7G,IAAI2d,aAAe,aACxBh5H,KAAKq7G,IAAIrK,UAAY,WAGrBoC,GAASoO,EAAU/K,OAAOnH,QAAS,MAAnC,gBACwC,OAApCkS,EAAU/K,OAAOxG,eAAjB,gBAEiB,KADXkL,EAAMqG,EAAU/K,OAAOxG,gBACrBnf,KAAJ,aACI9tD,OAAK,EACH+pE,EAAOoO,EAAoBpO,uBAErB,mCAAM/sG,KAAKwoF,QAAQwkB,MAAMhyB,MAAM+xB,mBAAvC/pE,EAAQysF,EAAA/nC,OACR1nF,KAAKq7G,IAAIE,UAAUv4E,EAAOw+E,EAAU3K,OAAOvzB,MAAQtgD,EAAMqlD,MAAQ,IAAKm5B,EAAU3K,OAAO1tC,oCAEvFnpE,KAAKwoF,QAAQo+B,OAAOhkH,MAAM,kCAAkCmqG,uCAG7D4sB,EAAMrE,YAA2C,IAA9B9T,EAAU/K,OAAOtG,gBACpC2C,EAAc9yG,KAAKk6H,gBAAgBzjB,GAAO,GAEjDz2G,KAAKq7G,IAAIif,KAAOxnB,EAChB9yG,KAAKq7G,IAAIM,UAAYpd,GAASkY,EAAOnY,OAErCt+F,KAAKq7G,IAAI2d,aAAe,SACxBh5H,KAAKq7G,IAAIrK,UAAY,QACf6F,EAAS,IAAIzuB,EACfo5B,EAAU3K,OAAOvzB,KACjBk+B,EAAU3K,OAAO1tC,IAAMk0B,GAAiBmkB,EAAU/K,OAAO7F,WAAY4Q,EAAU3K,OAAOxuB,OACtFm5B,EAAU3K,OAAOxuB,MACjB0nB,GAAkB0G,EAAO3G,WAAY2G,EAAOzG,SAAShV,QAAU,EAAI,GAGvEh7F,KAAK85H,4BACD,IAAI3c,GAAWwc,EAAMrE,UAAWze,GAChCJ,EAAO/G,cACPK,GAAkB0G,EAAO3G,WAAY2G,EAAOzG,SAAShV,QAAU,EAAI,GAEvEh7F,KAAKq7G,IAAI2d,aAAe,SACxBh5H,KAAKq7G,IAAIrK,UAAY,6CAK3B2nB,EAAAn6H,UAAAi7H,mBAAN,SAAyB1E,+HAMrB,OALI3hB,GAAS2hB,EAAMvuH,QAAQg7G,UAAUxoB,MAAO,IAK5C,GAAMh5F,KAAK45H,+BAA+B7E,EAAMvuH,iBAAhDk1H,EAAAh0C,WAEoB8J,EAAAujC,EAAMpB,uCAANluC,EAAA+L,EAAAvyF,QAATiN,EAAKslF,EAAA/L,GACZ,GAAMzlF,KAAKw5H,YAAYttH,KADa,aACpCwvH,EAAAh0C,+BADgBjC,iBAIpB,SAAMzlF,KAAK65H,kBAAkB9E,EAAMvuH,iBAAnCk1H,EAAAh0C,WAEoB+nC,EAAAsF,EAAMrB,uCAAN50B,EAAA2wB,EAAAxwH,QAATiN,EAAKujH,EAAA3wB,GACZ,GAAM9+F,KAAK05H,WAAWxtH,KADc,cACpCwvH,EAAAh0C,+BADgBoX,sBAOA68B,EAAA5G,EAAMjB,8CAANlE,EAAA+L,EAAA18H,QAATiN,EAAKyvH,EAAA/L,GACZ,GAAM5vH,KAAKw5H,YAAYttH,KADkB,eACzCwvH,EAAAh0C,iCADgBkoC,uBAIAgM,EAAA7G,EAAMhB,mDAAN8H,EAAAD,EAAA38H,QAATiN,EAAK0vH,EAAAC,GACZ,GAAM77H,KAAKw5H,YAAYttH,KADuB,eAC9CwvH,EAAAh0C,iCADgBm0C,uBAGAC,EAAA/G,EAAMtB,sCAANsI,EAAAD,EAAA78H,QAATiN,EAAK4vH,EAAAC,GACZ,GAAM/7H,KAAK05H,WAAWxtH,KADW,eACjCwvH,EAAAh0C,iCADgBq0C,uBAaAC,EAAAjH,EAAMnB,iEAANqI,EAAAD,EAAA/8H,QAATiN,EAAK8vH,EAAAC,GACZ,GAAMj8H,KAAKw5H,YAAYttH,KADqC,eAC5DwvH,EAAAh0C,iCADgBu0C,uBAKAC,EAAAnH,EAAMlB,yCAANsI,EAAAD,EAAAj9H,QAATiN,EAAKgwH,EAAAC,GACZ,GAAMn8H,KAAKw5H,YAAYttH,KADa,eACpCwvH,EAAAh0C,iCADgBy0C,qCAKxBxD,EAAAn6H,UAAA49H,KAAA,SAAKC,GACDr8H,KAAKq7G,IAAIigB,YACTt7H,KAAKq7G,IAAIihB,OAAO,EAAG,GACnBt8H,KAAKq7G,IAAIkhB,OAAOv8H,KAAKo7G,OAAO/yB,MAAO,GACnCroF,KAAKq7G,IAAIkhB,OAAOv8H,KAAKo7G,OAAO/yB,MAAOroF,KAAKo7G,OAAO9yB,QAC/CtoF,KAAKq7G,IAAIkhB,OAAO,EAAGv8H,KAAKo7G,OAAO9yB,QAC/BtoF,KAAKq7G,IAAIkhB,OAAO,EAAG,GACnBv8H,KAAKw8H,WAAWH,EAAMlsH,MAAM,GAAG8+G,WAC/BjvH,KAAKq7G,IAAIohB,aAGb9D,EAAAn6H,UAAA2wH,KAAA,SAAKkN,GACDr8H,KAAKq7G,IAAIigB,YACTt7H,KAAKw8H,WAAWH,GAChBr8H,KAAKq7G,IAAIohB,aAGb9D,EAAAn6H,UAAAg+H,WAAA,SAAWH,GAAX,IAAArd,EAAA,KACIqd,EAAMj9C,SAAQ,SAACm0C,EAAOviH,GAClB,IAAMnQ,EAAgBquH,GAAcqE,GAASA,EAAM1yH,MAAQ0yH,EAC7C,IAAVviH,EACAguG,EAAK3D,IAAIihB,OAAOz7H,EAAM09E,EAAG19E,EAAMu9E,GAE/B4gC,EAAK3D,IAAIkhB,OAAO17H,EAAM09E,EAAG19E,EAAMu9E,GAG/B8wC,GAAcqE,IACdvU,EAAK3D,IAAIqhB,cACLnJ,EAAM/E,aAAajwC,EACnBg1C,EAAM/E,aAAapwC,EACnBm1C,EAAM9E,WAAWlwC,EACjBg1C,EAAM9E,WAAWrwC,EACjBm1C,EAAMz3C,IAAIyC,EACVg1C,EAAMz3C,IAAIsC,OAM1Bu6C,EAAAn6H,UAAAm+H,aAAA,SAAaxN,EAAcyN,EAAyCzrB,EAAiBC,GACjFpxG,KAAKmvH,KAAKA,GACVnvH,KAAKq7G,IAAIM,UAAYihB,EACrB58H,KAAKq7G,IAAI0d,UAAU5nB,EAASC,GAC5BpxG,KAAKq7G,IAAIggB,OACTr7H,KAAKq7G,IAAI0d,WAAW5nB,GAAUC,IAGlCunB,EAAAn6H,UAAAq+H,YAAA,SAAY75F,EAAyBqlD,EAAeC,SAChD,GAAItlD,EAAMqlD,QAAUA,GAASrlD,EAAMslD,SAAWA,EAC1C,OAAOtlD,EAGX,IACMo4E,GADyC,QAAzB5pB,EAAAxxF,KAAKo7G,OAAOhxG,qBAAa,IAAAonF,EAAAA,EAAI/R,UACtBrsE,cAAc,UAK3C,OAJAgoG,EAAO/yB,MAAQ5K,KAAKC,IAAI,EAAG2K,GAC3B+yB,EAAO9yB,OAAS7K,KAAKC,IAAI,EAAG4K,GAChB8yB,EAAOE,WAAW,MAC1BC,UAAUv4E,EAAO,EAAG,EAAGA,EAAMqlD,MAAOrlD,EAAMslD,OAAQ,EAAG,EAAGD,EAAOC,GAC5D8yB,GAGLud,EAAAn6H,UAAAs+H,sBAAN,SAA4Btb,6GACpBxwG,EAAQwwG,EAAU/K,OAAOlJ,gBAAgBtuG,OAAS,aAC3CsuG,0HACsB,IAAzBA,EAAgBzc,KAAhB,YACI9tD,OAAK,EACH+pE,EAAOQ,EAAgCR,qBAEjC,gCAAMgwB,EAAKv0C,QAAQwkB,MAAMhyB,MAAM+xB,kBAAvC/pE,EAAQ+4F,EAAAr0C,oCAERq1C,EAAKv0C,QAAQo+B,OAAOhkH,MAAM,kCAAkCmqG,uBAG5D/pE,IACMysF,EAA8B6G,GAA6B9U,EAAWxwG,EAAO,CAC/EgyB,EAAMqlD,MACNrlD,EAAMslD,OACNtlD,EAAMqlD,MAAQrlD,EAAMslD,SAHjB6mC,EAAIM,EAAA,GAAElxC,EAACkxC,EAAA,GAAErxC,EAACqxC,EAAA,GAAEpnC,EAAKonC,EAAA,GAAEnnC,EAAMmnC,EAAA,GAK1BmN,EAAUG,EAAK1hB,IAAI2hB,cACrBD,EAAKF,YAAY75F,EAAOqlD,EAAOC,GAC/B,UAEJy0C,EAAKJ,aAAaxN,EAAMyN,EAASr+C,EAAGH,iBAEjCuuB,GAAiBY,IAClBqiB,EAA8B0G,GAA6B9U,EAAWxwG,EAAO,CAAC,KAAM,KAAM,OAAzFm+G,EAAIS,EAAA,GAAErxC,EAACqxC,EAAA,GAAExxC,EAACwxC,EAAA,GAAEvnC,EAAKunC,EAAA,GAAEtnC,EAAMsnC,EAAA,GAC1B+L,EAA+BxxB,GAA2BoD,EAAgBv1F,MAAOqwE,EAAOC,GAAvF8gB,EAAUuyB,EAAA,GAAEsB,EAAEtB,EAAA,GAAEuB,EAAEvB,EAAA,GAAEwB,EAAExB,EAAA,GAAEyB,EAAEzB,EAAA,IAE3BvgB,EAAS37B,SAASrsE,cAAc,WAC/Bi1E,MAAQA,EACf+yB,EAAO9yB,OAASA,EACV+yB,EAAMD,EAAOE,WAAW,MACxB+hB,EAAWhiB,EAAIiiB,qBAAqBL,EAAIE,EAAID,EAAIE,GAEtDl0B,GAAkBqE,EAAgBpE,MAAOC,GAAYhqB,SAAQ,SAAC2sB,GAC1D,OAAAsxB,EAASE,aAAaxxB,EAAU9C,KAAM1K,GAASwN,EAAUzN,WAG7D+c,EAAIM,UAAY0hB,EAChBhiB,EAAIO,SAAS,EAAG,EAAGvzB,EAAOC,GACtBD,EAAQ,GAAKC,EAAS,IAChBs0C,EAAUG,EAAK1hB,IAAI2hB,cAAc5hB,EAAQ,UAC/C2hB,EAAKJ,aAAaxN,EAAMyN,EAASr+C,EAAGH,KAEjCyuB,GAAiBU,KAClBsuB,EAAmCvF,GAA6B9U,EAAWxwG,EAAO,CACpF,KACA,KACA,OAHGm+G,EAAI0M,EAAA,GAAEv4C,EAAIu4C,EAAA,GAAE2B,EAAA3B,EAAA,GAAKxzC,EAAKwzC,EAAA,GAAEvzC,EAAMuzC,EAAA,GAK/Bz7H,EAA+C,IAApCmtG,EAAgBntG,SAASnB,OAAe,CAACg+F,IAAiBsQ,EAAgBntG,SACrFm+E,EAAI8e,GAAiBj9F,EAAS,GAAIioF,GAClCjK,EAAIif,GAAiBj9F,EAASA,EAASnB,OAAS,GAAIqpF,GAEpDszC,EAAWrwB,GAAgBgC,EAAiBhvB,EAAGH,EAAGiK,EAAOC,GAAxD5tB,EAAEkhE,EAAA,GAAEnwB,EAAEmwB,EAAA,GACTlhE,EAAK,GAAK+wC,EAAK,IACTgyB,EAAiBV,EAAK1hB,IAAIqiB,qBAAqBp6C,EAAO/E,EAAGi/C,EAAMp/C,EAAG,EAAGkF,EAAO/E,EAAGi/C,EAAMp/C,EAAG1jB,GAE9FwuC,GAAkBqE,EAAgBpE,MAAY,EAALzuC,GAAQ0kB,SAAQ,SAAC2sB,GACtD,OAAA0xB,EAAeF,aAAaxxB,EAAU9C,KAAM1K,GAASwN,EAAUzN,WAGnEy+B,EAAK5N,KAAKA,GACV4N,EAAK1hB,IAAIM,UAAY8hB,EACjB/iE,IAAO+wC,GAEDkyB,EAAOnc,EAAU3K,OAAOvzB,KAAO,GAAMk+B,EAAU3K,OAAOxuB,MACtDu1C,EAAOpc,EAAU3K,OAAO1tC,IAAM,GAAMq4C,EAAU3K,OAAOvuB,OAErDu1C,EAAO,GADP3jD,EAAIuxB,EAAK/wC,GAGfqiE,EAAK1hB,IAAI+d,OACT2D,EAAK1hB,IAAI0d,UAAU4E,EAAMC,GACzBb,EAAK1hB,IAAIhG,UAAU,EAAG,EAAG,EAAGn7B,EAAG,EAAG,GAClC6iD,EAAK1hB,IAAI0d,WAAW4E,GAAOC,GAE3Bb,EAAK1hB,IAAIO,SAASt4B,EAAMu6C,GAAQL,EAAMI,GAAQA,EAAMv1C,EAAOC,EAASu1C,GACpEd,EAAK1hB,IAAIke,WAETwD,EAAK1hB,IAAIggB,iCAIrBrqH,wBAjF0BwgF,EAAAgwB,EAAU/K,OAAOlJ,gBAAgBp9F,MAAM,GAAG8+G,kCAA1CxpC,EAAA+L,EAAAvyF,QAAnBsuG,EAAe/b,EAAA/L,QAAf8nB,KAAsE,8CAAnD9nB,mCAqF5BkzC,EAAAn6H,UAAAs/H,kBAAN,SAAwBx/B,EAAc0P,EAAc+vB,6EAChD/9H,KAAKmvH,KAAKqG,GAAmBuI,EAAa/vB,IAC1ChuG,KAAKq7G,IAAIM,UAAYpd,GAASD,GAC9Bt+F,KAAKq7G,IAAIggB,kBAGP1C,EAAAn6H,UAAAw/H,mBAAN,SAAyB1/B,EAAcjW,EAAe2lB,EAAc+vB,4GAC5D11C,EAAQ,EACR,GAAMroF,KAAK89H,kBAAkBx/B,EAAO0P,EAAM+vB,IAD1C,aAEA,OADAvsC,EAAA9J,OACA,kBAGEu2C,EAAatI,GAA8BoI,EAAa/vB,GAC9DhuG,KAAKmvH,KAAK8O,GACVj+H,KAAKq7G,IAAIM,UAAYpd,GAASD,GAC9Bt+F,KAAKq7G,IAAIggB,OACH6C,EAAatI,GAA8BmI,EAAa/vB,GAC9DhuG,KAAKmvH,KAAK+O,GACVl+H,KAAKq7G,IAAIggB,mBAGP1C,EAAAn6H,UAAAo7H,+BAAN,SAAqCD,+HACjC35H,KAAKi5H,aAAaU,EAAMvF,WAAW,IAC7B3d,EAASkjB,EAAMnY,UAAU/K,OACzB0nB,GAAiB9/B,GAAcoY,EAAO3N,kBAAoB2N,EAAOlJ,gBAAgBtuG,OAEjFm/H,EAAU,CACZ,CAACzvB,MAAO8H,EAAO7H,eAAgBtQ,MAAOmY,EAAOxI,eAAgB5lB,MAAOouB,EAAOxH,gBAC3E,CAACN,MAAO8H,EAAO5H,iBAAkBvQ,MAAOmY,EAAOvI,iBAAkB7lB,MAAOouB,EAAOvH,kBAC/E,CAACP,MAAO8H,EAAO3H,kBAAmBxQ,MAAOmY,EAAOtI,kBAAmB9lB,MAAOouB,EAAOtH,mBACjF,CAACR,MAAO8H,EAAO1H,gBAAiBzQ,MAAOmY,EAAOrI,gBAAiB/lB,MAAOouB,EAAOrH,kBAG3EsnB,EAAyB2H,GAC3B5H,GAA2BhgB,EAAO5N,eAAgB,GAClD8wB,EAAMlH,QAGN0L,GAAiB1nB,EAAOnC,UAAUr1G,QAClCe,KAAKq7G,IAAI+d,OACTp5H,KAAKmvH,KAAKuH,GACV12H,KAAKq7G,IAAIie,OAEJj7B,GAAcoY,EAAO3N,mBACtB9oG,KAAKq7G,IAAIM,UAAYpd,GAASkY,EAAO3N,iBACrC9oG,KAAKq7G,IAAIggB,QAGb,GAAMr7H,KAAK88H,sBAAsBnD,EAAMnY,aAVvC,aAUAhwB,EAAA9J,OAEA1nF,KAAKq7G,IAAIke,UAET9iB,EAAOnC,UACFnkG,MAAM,GACN8+G,UACA7vC,SAAQ,SAAC8xB,GACN8N,EAAK3D,IAAI+d,OACT,IAAMkF,EAAgB9L,GAAuBmH,EAAMlH,QAC7C8L,EAAartB,EAAOsD,MAAQ,EAAIkkB,GAChC8F,EAAqBpL,GACvBkL,GACCC,GAAcrtB,EAAOsD,MAAQ,GAAK,GAAKtD,EAAOqD,OAAOvZ,QACrDkW,EAAOsD,MAAQ,GAAK,GAAKtD,EAAOqD,OAAOvZ,OACxCkW,EAAOqD,OAAOvZ,QAAUkW,EAAOsD,OAAS,EAAI,GAC5CtD,EAAOqD,OAAOvZ,QAAUkW,EAAOsD,OAAS,EAAI,IAG5CtD,EAAOsD,OACPwK,EAAKmQ,KAAKmP,GACVtf,EAAK3D,IAAIie,OACTta,EAAKod,KAAKoC,KAEVxf,EAAKod,KAAKkC,GACVtf,EAAK3D,IAAIie,OACTta,EAAKmQ,KAAKqP,IAGdxf,EAAK3D,IAAIqf,cAAgBxpB,EAAOC,QAAQnW,OAASujC,EACjDvf,EAAK3D,IAAIsf,cAAgBzpB,EAAOE,QAAQpW,OACxCgkB,EAAK3D,IAAIof,YAAcl8B,GAAS2S,EAAO5S,OACvC0gB,EAAK3D,IAAIuf,WAAa1pB,EAAOG,KAAKrW,OAClCgkB,EAAK3D,IAAIM,UAAYzK,EAAOsD,MAAQjW,GAAS2S,EAAO5S,OAAS,gBAE7D0gB,EAAK3D,IAAIggB,OACTrc,EAAK3D,IAAIke,8BAIjBvrB,EAAO,MACUywB,EAAAL,0BAAA34C,EAAAg5C,EAAAx/H,OACI,KADdyrH,EAAM+T,EAAAh5C,IACFkpB,QAAgCtQ,GAAcqsB,EAAOpsB,QAAUosB,EAAOriC,MAAQ,EAChE,IAAjBqiC,EAAO/b,MAAP,MACA,GAAM3uG,KAAK0+H,yBACPhU,EAAOpsB,MACPosB,EAAOriC,MACP2lB,EACA2rB,EAAMlH,OAAM,IANpB,OADoB,qBAGhBjhC,EAAA9J,4BAOwB,IAAjBgjC,EAAO/b,MAAP,MACP,GAAM3uG,KAAK0+H,yBACPhU,EAAOpsB,MACPosB,EAAOriC,MACP2lB,EACA2rB,EAAMlH,OAAM,kBAJhBjhC,EAAA9J,4BAOwB,IAAjBgjC,EAAO/b,MAAP,MACP,GAAM3uG,KAAKg+H,mBAAmBtT,EAAOpsB,MAAOosB,EAAOriC,MAAO2lB,EAAM2rB,EAAMlH,uBAAtEjhC,EAAA9J,qBAEA,SAAM1nF,KAAK89H,kBAAkBpT,EAAOpsB,MAAO0P,EAAM2rB,EAAMlH,iBAAvDjhC,EAAA9J,0BAGRsmB,8BAxBiBvoB,oCA4BnBkzC,EAAAn6H,UAAAkgI,yBAAN,SACIpgC,EACAjW,EACA2lB,EACA+vB,EACApvB,iHAEA3uG,KAAKq7G,IAAI+d,OAEHuF,EAAc9I,GAAyBkI,EAAa/vB,GACpD4wB,EAAWpJ,GAAmBuI,EAAa/vB,GAEnC,IAAVW,IACA3uG,KAAKmvH,KAAKyP,GACV5+H,KAAKq7G,IAAIie,QAITpK,GAAc0P,EAAS,KACvBC,EAAUD,EAAS,GAAmB/9H,MAAM09E,EAC5CugD,EAAUF,EAAS,GAAmB/9H,MAAMu9E,IAE5CygD,EAAUD,EAAS,GAAcrgD,EACjCugD,EAAUF,EAAS,GAAcxgD,GAEjC8wC,GAAc0P,EAAS,KACvBG,EAAQH,EAAS,GAAmB9iD,IAAIyC,EACxCygD,EAAQJ,EAAS,GAAmB9iD,IAAIsC,IAExC2gD,EAAQH,EAAS,GAAcrgD,EAC/BygD,EAAQJ,EAAS,GAAcxgD,GAK/Bn/E,EADS,IAAT+uG,GAAuB,IAATA,EACLvwB,KAAK4sB,IAAIw0B,EAASE,GAElBthD,KAAK4sB,IAAIy0B,EAASE,GAG/Bh/H,KAAKq7G,IAAIigB,YACK,IAAV3sB,EACA3uG,KAAKw8H,WAAWmC,GAEhB3+H,KAAKw8H,WAAWoC,EAASzuH,MAAM,EAAG,IAGlC8uH,EAAa52C,EAAQ,EAAY,EAARA,EAAoB,EAARA,EACrC62C,EAAc72C,EAAQ,EAAY,EAARA,EAAYA,EAC5B,IAAVsmB,IACAswB,EAAa52C,EACb62C,EAAc72C,GAGd82C,GAAc,EACdlgI,GAAuB,EAAbggI,EACVE,GAAc,EACPlgI,GAAuB,EAAbggI,EAAiBC,GAElCD,GADMG,EAAangI,GAAU,EAAIggI,EAAaC,GAE9CA,GAAeE,IAETC,EAAiB5hD,KAAK8H,OAAOtmF,EAASigI,IAAgBD,EAAaC,IACnEI,GAAYrgI,EAASogI,EAAiBJ,IAAeI,EAAiB,GAE5EH,GADMK,GAAYtgI,GAAUogI,EAAiB,GAAKJ,GAAcI,IAEhD,GAAK5hD,KAAK4sB,IAAI60B,EAAcI,GAAY7hD,KAAK4sB,IAAI60B,EAAcK,GACrED,EACAC,GAGVJ,IACc,IAAVxwB,EACA3uG,KAAKq7G,IAAImkB,YAAY,CAAC,EAAGP,EAAaC,IAEtCl/H,KAAKq7G,IAAImkB,YAAY,CAACP,EAAYC,KAI5B,IAAVvwB,GACA3uG,KAAKq7G,IAAIokB,QAAU,QACnBz/H,KAAKq7G,IAAIyf,UAAYzyC,GAErBroF,KAAKq7G,IAAIyf,UAAoB,EAARzyC,EAAY,IAErCroF,KAAKq7G,IAAIwf,YAAct8B,GAASD,GAChCt+F,KAAKq7G,IAAIqkB,SACT1/H,KAAKq7G,IAAImkB,YAAY,IAGP,IAAV7wB,IACIugB,GAAc0P,EAAS,MACjBe,EAAQf,EAAS,GACjBgB,EAAQhB,EAAS,GACvB5+H,KAAKq7G,IAAIigB,YACTt7H,KAAKw8H,WAAW,CAAC,IAAIrO,GAAOwR,EAAM7jD,IAAIyC,EAAGohD,EAAM7jD,IAAIsC,GAAI,IAAI+vC,GAAOyR,EAAM/+H,MAAM09E,EAAGqhD,EAAM/+H,MAAMu9E,KAC7Fp+E,KAAKq7G,IAAIqkB,UAETxQ,GAAc0P,EAAS,MACjBe,EAAQf,EAAS,GACjBgB,EAAQhB,EAAS,GACvB5+H,KAAKq7G,IAAIigB,YACTt7H,KAAKw8H,WAAW,CAAC,IAAIrO,GAAOwR,EAAM7jD,IAAIyC,EAAGohD,EAAM7jD,IAAIsC,GAAI,IAAI+vC,GAAOyR,EAAM/+H,MAAM09E,EAAGqhD,EAAM/+H,MAAMu9E,KAC7Fp+E,KAAKq7G,IAAIqkB,WAIjB1/H,KAAKq7G,IAAIke,qBAGPZ,EAAAn6H,UAAA48H,OAAN,SAAa50H,mGAQT,OAPIxG,KAAKD,QAAQ+oG,kBACb9oG,KAAKq7G,IAAIM,UAAYpd,GAASv+F,KAAKD,QAAQ+oG,iBAC3C9oG,KAAKq7G,IAAIO,SAAS57G,KAAKD,QAAQw+E,EAAGv+E,KAAKD,QAAQq+E,EAAGp+E,KAAKD,QAAQsoF,MAAOroF,KAAKD,QAAQuoF,SAGjFysC,EAAQQ,GAAsB/uH,GAEpC,GAAMxG,KAAKw5H,YAAYzE,WAEvB,OAFAvjC,EAAA9J,OACA1nF,KAAKi5H,aAAa,IACX,CAAP,EAAOj5H,KAAKo7G,gBAEpBud,CAAA,CAh1BA,CAAoCF,IAk1B9B+C,GAAqB,SACvBha,GAEA,OAAIA,aAAqBd,IAEdc,aAAqBjB,IAErBiB,aAAqBnB,IAAyBmB,EAAU1wB,OAASqvB,IAASqB,EAAU1wB,OAASovB,EAI5G,EAEMme,GAAwC,SAAC/E,EAAuB7G,GAClE,OAAQ6G,GACJ,KAAK,EACD,OAAO9G,GAAuBC,GAClC,KAAK,EACD,OAAOC,GAAwBD,GAEnC,QACI,OAAOE,GAAwBF,GAE3C,EAEMgJ,GAAkB,SAACzqB,GACrB,OAAQA,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,QAEX,QACI,MAAO,OAEnB,EAGM6uB,GAAiB,CAAC,gBAAiB,aAEnCzF,GAAoB,SAAC0F,GACvB,MAAO,qBAAqBj+H,KAAK89E,OAAOsC,UAAUC,WAC5C49C,EAAan5H,QAAO,SAACmsG,GAAe,OAAwC,IAAxC+sB,GAAe9yH,QAAQ+lG,EAAkB,IAC7EgtB,CACV,ECt7BAC,GAAA,SAAAhhB,GAKI,SAAAghB,EAAYv3C,EAAkBzoF,GAA9B,IAAAi/G,EACID,EAAArgH,KAAA,KAAM8pF,EAASzoF,IAAQ,YACvBi/G,EAAK5D,OAASr7G,EAAQq7G,OAASr7G,EAAQq7G,OAAS37B,SAASrsE,cAAc,UACvE4rG,EAAK3D,IAAM2D,EAAK5D,OAAOE,WAAW,MAClC0D,EAAKj/G,QAAUA,EACfi/G,EAAK5D,OAAO/yB,MAAQ5K,KAAK8H,MAAMxlF,EAAQsoF,MAAQtoF,EAAQ84H,OACvD7Z,EAAK5D,OAAO9yB,OAAS7K,KAAK8H,MAAMxlF,EAAQuoF,OAASvoF,EAAQ84H,OACzD7Z,EAAK5D,OAAOzM,MAAMtmB,MAAWtoF,EAAQsoF,MAAK,KAC1C22B,EAAK5D,OAAOzM,MAAMrmB,OAAYvoF,EAAQuoF,OAAM,KAE5C02B,EAAK3D,IAAIwd,MAAM7Z,EAAKj/G,QAAQ84H,MAAO7Z,EAAKj/G,QAAQ84H,OAChD7Z,EAAK3D,IAAI0d,WAAWh5H,EAAQw+E,GAAIx+E,EAAQq+E,GACxC4gC,EAAKx2B,QAAQo+B,OAAOqG,MAChB,oDAAoDltH,EAAQsoF,MAAK,IAAItoF,EAAQuoF,OAAM,OAAOvoF,EAAQw+E,EAAC,IAAIx+E,EAAQq+E,EAAC,gBAAgBr+E,EAAQ84H,SAwBpJ,OA1C2CzyC,EAAA25C,EAAAhhB,GAsBjCghB,EAAAvhI,UAAA48H,OAAN,SAAa50H,qGASG,OARNs1G,EAAMC,GACR/7G,KAAKD,QAAQsoF,MAAQroF,KAAKD,QAAQ84H,MAClC74H,KAAKD,QAAQuoF,OAAStoF,KAAKD,QAAQ84H,MACnC74H,KAAKD,QAAQ84H,MACb74H,KAAKD,QAAQ84H,MACbryH,GAGQ,GAAMw5H,GAAkBlkB,WASpC,OATMX,EAAM3pB,EAAA9J,OAER1nF,KAAKD,QAAQ+oG,kBACb9oG,KAAKq7G,IAAIM,UAAYpd,GAASv+F,KAAKD,QAAQ+oG,iBAC3C9oG,KAAKq7G,IAAIO,SAAS,EAAG,EAAG57G,KAAKD,QAAQsoF,MAAQroF,KAAKD,QAAQ84H,MAAO74H,KAAKD,QAAQuoF,OAAStoF,KAAKD,QAAQ84H,QAGxG74H,KAAKq7G,IAAIE,UAAUJ,GAAMn7G,KAAKD,QAAQw+E,EAAIv+E,KAAKD,QAAQ84H,OAAQ74H,KAAKD,QAAQq+E,EAAIp+E,KAAKD,QAAQ84H,OAEtF,CAAP,EAAO74H,KAAKo7G,gBAEpB2kB,CAAA,CA1CA,CAA2CtH,IA4C9BuH,GAAoB,SAAClkB,GAC9B,WAAI/0B,SAAQ,SAACD,EAASE,GAClB,IAAMm0B,EAAM,IAAIN,MAChBM,EAAIiB,OAAS,WACTt1B,EAAQq0B,IAEZA,EAAIkB,QAAUr1B,EAEdm0B,EAAIn0G,IAAM,oCAAoCs1G,oBAAmB,IAAIztG,eAAgBU,kBAAkBusG,MAP3G,EC9CJmkB,GAAA,WAOI,SAAAA,EAAYzuC,OAAC/+E,EAAE++E,EAAA/+E,GAAEytH,EAAO1uC,EAAA0uC,QACpBlgI,KAAKyS,GAAKA,EACVzS,KAAKkgI,QAAUA,EACflgI,KAAKa,MAAQsgF,KAAKC,MAwD1B,OApDI6+C,EAAAzhI,UAAAyuH,MAAA,eAAM,IAAAtwB,EAAA,GAAAlX,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAkX,EAAAlX,GAAA1gF,UAAA0gF,GACEzlF,KAAKkgI,UAEiB,qBAAXvgD,QAA0BA,OAAOx5E,SAAoC,oBAAlBA,QAAQ8mH,MAElE9mH,QAAQ8mH,MAAKnoH,MAAbqB,QAAO4hF,EAAA,CAAO/nF,KAAKyS,GAAOzS,KAAKmgI,UAAS,MAASxjC,IAEjD38F,KAAK6/E,KAAI/6E,MAAT9E,KAAa28F,KAKzBsjC,EAAAzhI,UAAA2hI,QAAA,WACI,OAAOh/C,KAAKC,MAAQphF,KAAKa,OAI7Bo/H,EAAAzhI,UAAAqhF,KAAA,eAAK,IAAA8c,EAAA,GAAAlX,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAkX,EAAAlX,GAAA1gF,UAAA0gF,GACGzlF,KAAKkgI,SAEiB,qBAAXvgD,QAA0BA,OAAOx5E,SAAmC,oBAAjBA,QAAQ05E,MAElE15E,QAAQ05E,KAAI/6E,MAAZqB,QAAO4hF,EAAA,CAAM/nF,KAAKyS,GAAOzS,KAAKmgI,UAAS,MAASxjC,KAM5DsjC,EAAAzhI,UAAA4H,KAAA,eAAK,IAAAu2F,EAAA,GAAAlX,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAkX,EAAAlX,GAAA1gF,UAAA0gF,GACGzlF,KAAKkgI,UAEiB,qBAAXvgD,QAA0BA,OAAOx5E,SAAmC,oBAAjBA,QAAQC,KAElED,QAAQC,KAAItB,MAAZqB,QAAO4hF,EAAA,CAAM/nF,KAAKyS,GAAOzS,KAAKmgI,UAAS,MAASxjC,IAEhD38F,KAAK6/E,KAAI/6E,MAAT9E,KAAa28F,KAMzBsjC,EAAAzhI,UAAAoE,MAAA,eAAM,IAAA+5F,EAAA,GAAAlX,EAAA,EAAAA,EAAA1gF,UAAA9F,OAAAwmF,IAAAkX,EAAAlX,GAAA1gF,UAAA0gF,GACEzlF,KAAKkgI,UAEiB,qBAAXvgD,QAA0BA,OAAOx5E,SAAoC,oBAAlBA,QAAQvD,MAElEuD,QAAQvD,MAAKkC,MAAbqB,QAAO4hF,EAAA,CAAO/nF,KAAKyS,GAAOzS,KAAKmgI,UAAS,MAASxjC,IAEjD38F,KAAK6/E,KAAI/6E,MAAT9E,KAAa28F,KA7DlBsjC,EAAAG,UAAqC,CAAC,EAiEjDH,EAlEA,GCIAI,GAAA,WAOI,SAAAA,EAAYtgI,EAAgC2oF,SAAA,KAAAA,aAAAA,EAN3B,KAAA43C,aAAe,IAAID,EAAQE,gBAOxCvgI,KAAK4mH,OAAS,IAAIqZ,GAAO,CAACxtH,GAAIzS,KAAKsgI,aAAcJ,QAASngI,EAAQygI,UAClExgI,KAAKgtG,MAAqB,QAAbxb,EAAAzxF,EAAQitG,aAAK,IAAAxb,EAAAA,EAAI,IAAI86B,GAAMtsH,KAAMD,GAEtD,OANmBsgI,EAAAE,cAAgB,EAMnCF,EAXA,GCSMI,GAAc,SAACj6H,EAAsBzG,GACvC,YADuC,IAAAA,IAAAA,EAAA,IAChC2gI,GAAcl6H,EAASzG,EAClC,EAIsB,qBAAX4/E,QACP+rC,GAAaU,WAAWzsC,QAG5B,IAAM+gD,GAAgB,SAAOl6H,EAAsBm6H,GAAsB,OAAAn6C,OAAA,8JACrE,IAAKhgF,GAA8B,kBAAZA,EACnB,MAAO,CAAP,EAAOugF,QAAQC,OAAO,+CAI1B,KAFM58E,EAAgB5D,EAAQ4D,eAG1B,MAAM,IAAIV,MAAM,yCAKpB,KAFMy8G,EAAc/7G,EAAc+7G,aAG9B,MAAM,IAAIz8G,MAAM,wCAkDpB,OA/CMk3H,EAAkB,CACpBtY,WAA2B,QAAfxpB,EAAA6hC,EAAKrY,kBAAU,IAAAxpB,GAAAA,EAC3BquB,aAA+B,QAAjBsC,EAAAkR,EAAKxT,oBAAY,IAAAsC,EAAAA,EAAI,KACnCzC,MAAO2T,EAAK3T,MACZH,QAAqB,QAAZ+C,EAAA+Q,EAAK9T,eAAO,IAAA+C,GAAAA,GAGnBiR,EAAct6C,EAAA,CAChBi6C,QAAqB,QAAZ7E,EAAAgF,EAAKH,eAAO,IAAA7E,GAAAA,EACrB3uB,MAAO2zB,EAAK3zB,OACT4zB,GAGDE,EAAgB,CAClBC,YAA6B,QAAhBlF,EAAA8E,EAAKI,mBAAW,IAAAlF,EAAAA,EAAI1V,EAAY6a,WAC7CC,aAA+B,QAAjBrF,EAAA+E,EAAKM,oBAAY,IAAArF,EAAAA,EAAIzV,EAAYxjC,YAC/CujC,QAAqB,QAAZ6V,EAAA4E,EAAKza,eAAO,IAAA6V,EAAAA,EAAI5V,EAAYC,YACrCC,QAAqB,QAAZyV,EAAA6E,EAAKta,eAAO,IAAAyV,EAAAA,EAAI3V,EAAYzjC,aAGnCgG,EAAe,IAAIN,EACrB04C,EAAc5a,QACd4a,EAAcza,QACdya,EAAcC,YACdD,EAAcG,cAGZz4C,EAAU,IAAI63C,GAAQQ,EAAgBn4C,GAEtCw4C,EAAoD,QAA3BjF,EAAA0E,EAAKO,8BAAsB,IAAAjF,GAAAA,EAEpDkF,EAAoC,CACtC7Y,WAA2B,QAAf0T,EAAA2E,EAAKrY,kBAAU,IAAA0T,GAAAA,EAC3BnV,QAAS8Z,EAAK9Z,QACdkC,eAAgB4X,EAAK5X,eACrBZ,aAAc+Y,EACdpY,WAAYoY,GAGhB14C,EAAQo+B,OAAOqG,MACX,qCAAqCvkC,EAAaL,MAAK,IACnDK,EAAaJ,OAAM,iBACNI,EAAapF,KAAI,KAAKoF,EAAavf,KAGlDi4D,EAAiB,IAAIzb,GAAen9B,EAAShiF,EAAS26H,IACtDE,EAAgBD,EAAeta,wBAKnB,GAAMsa,EAAerb,SAAS37G,EAAes+E,IAHpD,CAAP,EAAO3B,QAAQC,OAAO,0DAGpBw6B,EAAY8f,EAAA55C,OAEZ8J,EACF+wB,GAAc8e,IAAkB3e,GAAc2e,GACxCp4C,EAAkBo4C,EAAcj3H,eAChC2+E,EAAYP,EAAS64C,GAHxBh5C,EAAKmJ,EAAAnJ,MAAEC,EAAMkJ,EAAAlJ,OAAEhF,EAAIkO,EAAAlO,KAAEna,EAAGqoB,EAAAroB,IAKzB2/B,EAAkBy4B,GAAqB/4C,EAAS64C,EAAeV,EAAK73B,iBAEpE04B,EAAsC,CACxCpmB,OAAQulB,EAAKvlB,OACbtS,gBAAeA,EACf+vB,MAAiD,QAA1CqD,EAAU,QAAVC,EAAAwE,EAAK9H,aAAK,IAAAsD,EAAAA,EAAIhW,EAAYsb,wBAAgB,IAAAvF,EAAAA,EAAI,EACrD39C,GAAU,QAANm9C,EAAAiF,EAAKpiD,SAAC,IAAAm9C,EAAAA,EAAI,GAAKp4C,EACnBlF,GAAU,QAANsjD,EAAAf,EAAKviD,SAAC,IAAAsjD,EAAAA,EAAI,GAAKv4D,EACnBkf,MAAiB,QAAVs5C,EAAAhB,EAAKt4C,aAAK,IAAAs5C,EAAAA,EAAIlkD,KAAKwO,KAAK5D,GAC/BC,OAAmB,QAAXs5C,EAAAjB,EAAKr4C,cAAM,IAAAs5C,EAAAA,EAAInkD,KAAKwO,KAAK3D,IAKjC44C,GACA14C,EAAQo+B,OAAOqG,MAAM,mDAEZ,GADQ,IAAI8S,GAAsBv3C,EAASg5C,GAC5BpG,OAAOiG,KAH/B,oBAGAjmB,EAASkmB,EAAA55C,oBAkBA,OAhBTc,EAAQo+B,OAAOqG,MACX,uCAAuC3pC,EAAI,IAAIna,EAAG,cAAckf,EAAK,IAAIC,EAAM,6BAGnFE,EAAQo+B,OAAOqG,MAAM,wBACft7G,EAAOovG,GAAUv4B,EAAS64C,GAE5Bv4B,IAAoBn3F,EAAK8kG,OAAO3N,kBAChCn3F,EAAK8kG,OAAO3N,gBAAkB3K,GAAOC,aAGzC5V,EAAQo+B,OAAOqG,MACX,oCAAoCuU,EAAcjjD,EAAC,IAAIijD,EAAcpjD,EAAC,cAAcojD,EAAcn5C,MAAK,IAAIm5C,EAAcl5C,QAIpH,GADQ,IAAIqwC,GAAenwC,EAASg5C,GACrBpG,OAAOzpH,WAA/BypG,EAASkmB,EAAA55C,wBAUb,OAPwB,QAApBm6C,EAAAlB,EAAKmB,uBAAe,IAAAD,GAAAA,KACflc,GAAe4E,QAAQ/I,IACxBh5B,EAAQo+B,OAAOhkH,MAAM,gEAI7B4lF,EAAQo+B,OAAOqG,MAAM,sBACd,CAAP,EAAO7R,WAGLmmB,GAAuB,SAAC/4C,EAAkBhiF,EAAsBu7H,GAClE,IAAM33H,EAAgB5D,EAAQ4D,cAExB42G,EAA0B52G,EAAc+E,gBACxCqwF,GAAWhX,EAASkuB,iBAAiBtsG,EAAc+E,iBAAiB25F,iBACpE3K,GAAOC,YACP6iB,EAAsB72G,EAAco9E,KACpCgY,GAAWhX,EAASkuB,iBAAiBtsG,EAAco9E,MAAMshB,iBACzD3K,GAAOC,YAEP4jC,EACiC,kBAA5BD,EACDviC,GAAWhX,EAASu5C,GACQ,OAA5BA,EACA5jC,GAAOC,YACP,WAEV,OAAO53F,IAAY4D,EAAc+E,gBAC3BkvF,GAAc2iB,GACV3iB,GAAc4iB,GACV+gB,EACA/gB,EACJD,EACJghB,CACV,6BCzKA,IAAiDC,EAS9ChhD,KAT8CghD,EASxC,SAASC,EAAmCC,GACrD,OAAiB,WACP,IAAIC,EAAuB,CAE/B,6BAA4B,SAIlBC,EAAyBC,EAAqBC,GAE9D,aACAA,EAAoBliD,EAAEiiD,GACkFC,EAA2E,kEAEzFA,EAA6D,oDAFlI,IAIIC,EAA0CD,EAAwC,mBAClFE,EAAyCF,EAAuC,kBAOrGG,EAAW,GACXC,EAAO,CACTC,YAAaJ,EAAwCxkD,QAAQx/E,UAAUokI,YACvEC,MAAOL,EAAwCxkD,QAAQx/E,UAAUqkI,OAGnEL,EAAwCxkD,QAAQx/E,UAAUokI,YAAc,WACtE,OAAOD,EAAKC,YAAYlkI,KAAKsB,MAAMsnF,MAAK,WAEtC,GAAItnF,KAAK8iI,IAAIC,YAAa,CAExB,IAAIvhB,EAAYxhH,KAAKiwD,KAAKuxD,UACtBwhB,EAAQxhB,EAAUz+B,iBAAiB,KACnCkgD,GAAgB,EAAGR,EAAuCS,aAAa1hB,EAAUx4B,wBAAyBhpF,KAAKiwD,KAAKkzE,SAASzmD,GACjIgmD,EAAW,GAEX3jI,MAAMP,UAAU4gF,QAAQ1gF,KAAKskI,GAAO,SAAUpX,GAI5C,IAFA,IAAIpO,EAAcoO,EAAKnO,iBAEdz+G,EAAI,EAAGA,EAAIw+G,EAAYv+G,OAAQD,IAAK,CAC3C,IAAIypF,GAAa,EAAGg6C,EAAuCS,aAAa1lB,EAAYx+G,GAAIgB,KAAKiwD,KAAKkzE,SAASzmD,GAC3G+L,EAAWnF,MAAQ2/C,EAAc3/C,KACjCmF,EAAWtf,KAAO85D,EAAc95D,IAChC,IAAIi6D,EAAO3lD,KAAK8H,MAAMkD,EAAWtf,IAAMnpE,KAAKiwD,KAAKkzE,SAASE,MAAM/6C,QAAU,EACtEnf,EAAMnpE,KAAK8iI,IAAI5K,OAAO,GAAKzvC,EAAWtf,IAAMnpE,KAAKiwD,KAAKkzE,SAASE,MAAM/6C,OACrEhF,EAAOtjF,KAAK8iI,IAAI5K,OAAO,GAAKzvC,EAAWnF,KAC3Co/C,EAAS9yH,KAAK,CACZwzH,KAAMA,EACNj6D,IAAKA,EACLma,KAAMA,EACNmF,WAAYA,EACZmjC,KAAMA,GAEV,CACF,GAAG5rH,KACL,CACF,GACF,EAEAwiI,EAAwCxkD,QAAQx/E,UAAUqkI,MAAQ,WAChE,OAAOF,EAAKE,MAAMnkI,KAAKsB,MAAMsnF,MAAK,WAEhC,GAAItnF,KAAK8iI,IAAIC,YAAa,CAExBL,EAAStjD,SAAQ,SAAU3+E,GACzBT,KAAKiwD,KAAKqzE,IAAIC,QAAQ9iI,EAAE2iI,MACxBpjI,KAAKiwD,KAAKqzE,IAAI1X,KAAKnrH,EAAE6iF,KAAM7iF,EAAE0oE,IAAK1oE,EAAEgoF,WAAWJ,MAAO5nF,EAAEgoF,WAAWH,OAAQ,CACzEykB,IAAKtsG,EAAEmrH,KAAKE,MAEhB,GAAG9rH,MAEH,IAAIwjI,EAASxjI,KAAKiwD,KAAKqzE,IAAIG,SAASC,mBACpC1jI,KAAKiwD,KAAKqzE,IAAIC,QAAQC,EACxB,CACF,GACF,CAEO,EAED,+BAA8B,SAIpBnB,EAAyBC,EAAqBC,GAE9D,aACAA,EAAoBliD,EAAEiiD,GAC+DC,EAAwD,+CAE5CA,EAAoE,2DAEtEA,EAAkE,yDAEnEA,EAAiE,wDAElEA,EAAgE,uDAE/DA,EAAiE,wDAEvDA,EAA2E,kEAZ9J,IAcIoB,EAAqCpB,EAAiC,SAU/F,SAASqB,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX9iD,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8iD,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/iD,QAAyB+iD,EAAIr8H,cAAgBs5E,QAAU+iD,IAAQ/iD,OAAOtiF,UAAY,gBAAkBqlI,CAAK,EAAYD,EAAQC,EAAM,CAKzXF,EAAmCG,MAAMC,YAAc,SAAUC,EAAa/oC,EAAM8N,GAElF,GAA6B,WAAzB66B,EAAQI,GAA2B,CACrC,IAAIjkI,EAAUikI,EACdA,EAAcjkI,EAAQikI,YACtB/oC,EAAOl7F,EAAQk7F,MAAQA,EACvB8N,EAAShpG,EAAQgpG,QAAUA,CAC7B,CAGA9N,EAAOA,GAAQ,KACf8N,EAASA,GAAU,KACnBi7B,GAAe,IAAMA,GAAe,MAAMzmD,cAC1C,IAAI0mD,GAAoB,GAAKl7B,GAAQxrB,cAEjC2mD,EAAc,CAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,OAAQ,SACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,MAAQ,QACf,GAAM,CAAC,OAAQ,OACf,IAAO,CAAC,KAAO,QACf,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,OAAQ,SACf,GAAM,CAAC,MAAQ,QACf,GAAM,CAAC,OAAQ,OACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,IAAO,CAAC,MAAO,QACf,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,QAAS,SAChB,GAAM,CAAC,OAAQ,SACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,GAAM,CAAC,OAAQ,QACf,IAAO,CAAC,MAAO,QACf,GAAM,CAAC,OAAQ,QACf,OAAU,CAAC,IAAK,KAChB,oBAAqB,CAAC,IAAK,KAC3B,MAAS,CAAC,IAAK,MACf,eAAgB,CAAC,IAAK,KACtB,OAAU,CAAC,KAAM,KACjB,QAAW,CAAC,IAAK,MACjB,cAAe,CAAC,IAAK,MAGvB,OAAQjpC,GACN,IAAK,KACH,IAAIve,EAAI,EACR,MAEF,IAAK,KACCA,EAAI,GAAK,KACb,MAEF,IAAK,KACCA,EAAI,GAAK,KACb,MAEF,IAAK,KACCA,EAAI,GACR,MAEF,IAAK,KACCA,EAAI,IACR,MAEF,IAAK,KAIL,IAAK,KACCA,EAAI,GACR,MAEF,IAAK,KACCA,EAAI,EACR,MAEF,QACE,KAAM,iBAAmBue,EAI7B,GAAIipC,EAAYzlI,eAAewlI,GAC7B,IAAIE,EAAaD,EAAYD,GAAkB,GAAKvnD,EAChD0nD,EAAYF,EAAYD,GAAkB,GAAKvnD,OAEnD,IACMynD,EAAap7B,EAAO,GACpBq7B,EAAYr7B,EAAO,EACzB,CAAE,MAAOs7B,GACP,MAAM,IAAI36H,MAAM,mBAAqBq/F,EACvC,CAIF,GAAoB,MAAhBi7B,GAAuC,aAAhBA,GAGzB,GAFAA,EAAc,IAEVI,EAAYD,EAAY,CAC1B,IAAIrgD,EAAMsgD,EACVA,EAAYD,EACZA,EAAargD,CACf,MACK,IAAoB,MAAhBkgD,GAAuC,cAAhBA,EAShC,KAAM,wBAA0BA,EARhCA,EAAc,IAEVG,EAAaC,IACXtgD,EAAMsgD,EACVA,EAAYD,EACZA,EAAargD,EAIjB,CASA,MANW,CACT,MAASsgD,EACT,OAAUD,EACV,KAAQlpC,EACR,EAAKve,EAGT,EAE6B4lD,EAA6B,QAAKqB,EAAmCG,KAE3F,EAED,6BAA4B,SAIlBzB,EAAyBC,EAAqBC,GAE9D,aACAA,EAAoBliD,EAAEiiD,GACqEC,EAA8D,qDAE/DA,EAA6D,oDAE9DA,EAA4D,mDAE7CA,EAA2E,kEAEzFA,EAA6D,oDARlI,IAUI+B,EAA0C/B,EAAwC,mBAClFgC,EAAyChC,EAAuC,kBA+BrGI,EAAO,CACTC,YAAa0B,EAAwCtmD,QAAQx/E,UAAUokI,aAGzE0B,EAAwCtmD,QAAQwmD,SAAS1B,IAAI2B,UAAY,CACvEC,KAAM,CAAC,MAAO,UACdtzC,OAAQ,GACRo4B,MAAO,GACPmb,MAAO,IAGTL,EAAwCtmD,QAAQx/E,UAAUokI,YAAc,WACtE,OAAOD,EAAKC,YAAYlkI,KAAKsB,MAAMsnF,MAAK,WAEtC,IAAI31E,EAAO3R,KAAKiwD,KAAKuxD,UACjBojB,EAAe5kI,KAAKiwD,KAAKkzE,SAASE,MAAMwB,GAAGv8C,OAE3Cw8C,EAAU,GAAG9iD,OAAOhiF,KAAK8iI,IAAI2B,UAAUC,MACvCA,EAAO,CACTK,UAA4C,IAAlCD,EAAQ/3H,QAAQ,aAC1Bg7G,KAAiC,IAA5B+c,EAAQ/3H,QAAQ,OACrBi4H,QAAuC,IAA/BF,EAAQ/3H,QAAQ,WAGtBk4H,EAAS,CAAC,EACVhkD,EAAOjhF,KACX,CAAC,SAAU,QAAS,SAASo/E,SAAQ,SAAU7gF,GAC7C,IAAImhF,EAAMglD,EAAKK,UAAoB,UAARxmI,EAC3B0mI,EAAO1mI,GAAOmhF,EAAM,GAAK,GAAGsC,OAAOf,EAAK6hD,IAAI2B,UAAUlmI,IAAQ,IAE1D0mI,EAAO1mI,GAAKU,OAAS,IACvBgmI,EAAO1mI,GAAOQ,MAAMP,UAAU2R,MAAMzR,KAAKiT,EAAKoxE,iBAAiBkiD,EAAO1mI,GAAKiR,KAAK,QAEpF,IAEA,IAAI01H,EAAYvzH,EAAKoxE,iBAAiB,yBACtCmiD,EAAYnmI,MAAMP,UAAU2R,MAAMzR,KAAKwmI,GAEvC,IAAI1xG,EAAM7hB,EAAKoxE,iBAAiB,KAChChkF,MAAMP,UAAU4gF,QAAQ1gF,KAAK80B,GAAK,SAAwBnwB,GAExD,IAAI8hI,EAAQ,CACV/zC,QAAQ,EACRo4B,MAAOkb,EAAKM,SAAqC,IAA3BE,EAAUn4H,QAAQ1J,GACxCshI,MAAOD,EAAKK,UAGd,GAAIL,EAAK3c,IAAK,CAEZ,IAAIpZ,EAAQhvB,OAAO+2B,iBAAiBrzG,GAGhC+hI,EAAW,CAAC,SAAU,OAAQ,OAAQ,SAE1CD,EAAQ,CACN/zC,OAAQ+zC,EAAM/zC,SAA4E,IAAlEg0C,EAASr4H,QAAQ4hG,EAAM02B,aAAe12B,EAAM22B,iBACpE9b,MAAO2b,EAAM3b,QAAyE,IAAhE4b,EAASr4H,QAAQ4hG,EAAM42B,YAAc52B,EAAM62B,gBACjEb,MAAOQ,EAAMR,QAA2E,IAJ3E,CAAC,QAAS,cAIQ53H,QAAQ4hG,EAAM82B,aAAe92B,EAAM+2B,iBAEtE,CAGAtoI,OAAOyJ,KAAKs+H,GAAO/lD,SAAQ,SAAU7gF,GACnC4mI,EAAM5mI,GAAO4mI,EAAM5mI,KAAqC,IAA7B0mI,EAAO1mI,GAAKwO,QAAQ1J,EACjD,IAGA,IAAIolF,EAAaplF,EAAG2lF,wBAEpB,GAAIm8C,EAAMR,QAAUQ,EAAM/zC,OAAQ,CAChC,IAAIu0C,EAAYloD,KAAK8H,MAAMkD,EAAWtf,IAAMy7D,GACxCgB,EAAUnoD,KAAK8H,MAAMkD,EAAWjqE,OAASomH,GACzCpB,EAAS/lD,KAAK4sB,IAAI5hB,EAAWjqE,OAASiqE,EAAWtf,KAAOy7D,EAExDgB,IAAYD,GAAanC,GAAU,IACrC2B,EAAM/zC,QAAS,EAEnB,CAGA,GAAI+zC,EAAM/zC,OAAQ,CAChB,IAAIy0C,GAAM,EAAGtB,EAAuCnxH,eAAe,MAAO,CACxEu7F,MAAO,CACLW,QAAS,QACThnB,OAAQs8C,EAAen8C,EAAWtf,IAAMy7D,EAAe,QAG3DvhI,EAAGc,WAAWyN,aAAai0H,EAAKxiI,EAClC,CAGI8hI,EAAM3b,QACJqc,GAAM,EAAGtB,EAAuCnxH,eAAe,MAAO,CACxEu7F,MAAO,CACLW,QAAS,QACThnB,OAAQs8C,EAAen8C,EAAWjqE,OAASomH,EAAe,QAG9DvhI,EAAGc,WAAWyN,aAAai0H,EAAKxiI,EAAGsI,aAEvC,GACF,GACF,CAEO,EAED,iBAAgB,SAIN02H,EAAyBC,EAAqBC,GAE9D,aAkCA,SAASqB,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX9iD,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8iD,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/iD,QAAyB+iD,EAAIr8H,cAAgBs5E,QAAU+iD,IAAQ/iD,OAAOtiF,UAAY,gBAAkBqlI,CAAK,EAAYD,EAAQC,EAAM,CAjCzXtB,EAAoBliD,EAAEiiD,GACDC,EAAoBrkD,EAAEokD,EAAqB,CACzC,QAAW,WAAa,OAAqBwD,CAAS,EACtD,cAAiB,WAAa,OAAqB1yH,CAAe,EAClE,UAAa,WAAa,OAAqBzC,CAAW,EAC1D,YAAe,WAAa,OAAqBuyH,CAAa,EAC9D,KAAQ,WAAa,OAAqB6C,CAAM,IAE0BxD,EAAoE,2DAEhFA,EAAwD,+CAE5CA,EAAoE,2DAEtEA,EAAkE,yDAEnEA,EAAiE,wDAElEA,EAAgE,uDAE/DA,EAAiE,wDAEvDA,EAA2E,kEAcnL,IAAIuD,EAAU,SAAiBjC,GAC7B,IAAI/yC,EAAO8yC,EAAQC,GAEnB,MAAa,cAAT/yC,EAA6B,YAA8B,WAATA,GAAqB+yC,aAAe5iI,OAAe,SAA2B,WAAT6vF,GAAqB+yC,aAAemC,OAAe,SAA2B,aAATl1C,GAAuB+yC,aAAezhI,SAAiB,WAAsByhI,GAAOA,EAAIr8H,cAAgBzI,MAAc,QAAiB8kI,GAAwB,IAAjBA,EAAIp3H,SAAuB,UAA4B,WAATqkF,EAA0B,SAAqB,SAC7a,EAEI19E,EAAgB,SAAuBlP,EAAS4+H,GAClD,IAAIz/H,EAAKo8E,SAASrsE,cAAclP,GAGhC,GAFI4+H,EAAIrgB,YAAWp/G,EAAGo/G,UAAYqgB,EAAIrgB,WAElCqgB,EAAIzoB,UAAW,CACjBh3G,EAAGg3G,UAAYyoB,EAAIzoB,UAGnB,IAFA,IAAI4rB,EAAU5iI,EAAGkR,qBAAqB,UAE7BvV,EAAIinI,EAAQhnI,OAAQD,KAAM,EAAG,KACpCinI,EAAQjnI,GAAGmF,WAAW0J,YAAYo4H,EAAQjnI,GAE9C,CAEA,IAAK,IAAIT,KAAOukI,EAAIn0B,MAClBtrG,EAAGsrG,MAAMpwG,GAAOukI,EAAIn0B,MAAMpwG,GAG5B,OAAO8E,CACT,EAEIsN,EAAY,SAASA,EAAUtQ,EAAM6lI,GAIvC,IAFA,IAAI1e,EAA0B,IAAlBnnH,EAAKoM,SAAiBgzE,SAASv6E,eAAe7E,EAAKyD,WAAazD,EAAKsQ,WAAU,GAElFzE,EAAQ7L,EAAKqL,WAAYQ,EAAOA,EAAQA,EAAMP,aAC3B,IAAtBu6H,GAAiD,IAAnBh6H,EAAMO,UAAqC,WAAnBP,EAAM4D,UAC9D03G,EAAMnmH,YAAYsP,EAAUzE,EAAOg6H,IAsBvC,OAlBsB,IAAlB7lI,EAAKoM,WAEe,WAAlBpM,EAAKyP,UACP03G,EAAMn/B,MAAQhoF,EAAKgoF,MACnBm/B,EAAMl/B,OAASjoF,EAAKioF,OACpBk/B,EAAMlM,WAAW,MAAMC,UAAUl7G,EAAM,EAAG,IACf,aAAlBA,EAAKyP,UAA6C,WAAlBzP,EAAKyP,WAC9C03G,EAAMhqH,MAAQ6C,EAAK7C,OAIrBgqH,EAAMxnC,iBAAiB,QAAQ,WAC7BwnC,EAAMpkC,UAAY/iF,EAAK+iF,UACvBokC,EAAMrkC,WAAa9iF,EAAK8iF,UAC1B,IAAG,IAIEqkC,CACT,EAEI0b,EAAc,SAAqBW,EAAKnnD,GAC1C,GAAqB,WAAjBopD,EAAQjC,GACV,OAAa,GAANA,EAAW,GAAKnnD,EAEvB,IAAIypD,EAAS,CAAC,EAEd,IAAK,IAAI5nI,KAAOslI,EACdsC,EAAO5nI,GAAkB,GAAXslI,EAAItlI,GAAY,GAAKm+E,EAGrC,OAAOypD,CAEX,EAEIJ,EAAO,SAAcK,EAAK1pD,GAC5B,OAAOe,KAAK8H,MAAM6gD,EAAM1pD,EAAI,GAAK,GACnC,CAEO,EAED,kBAAiB,SAIP2lD,EAAyBC,EAAqBC,GAE9D,aACAA,EAAoBliD,EAAEiiD,GACsEC,EAA+D,sDAEnEA,EAA2D,kDAEzDA,EAA6D,oDAE5DA,EAA8D,qDAE1DA,EAAkE,yDAElEA,EAAkE,yDAErEA,EAA+D,sDAEnDA,EAA2E,kEAd9J,IAgBI8D,EAAqC9D,EAAiC,SAEtE+D,EAA2C/D,EAAuC,eAElFgE,EAA0ChE,EAAsC,kBAChFiE,EAA4CjE,EAAuC,kDAcxGx7C,EAbsFw7C,EAAoB3xH,EAAE41H,EAajGC,GAAoD1/C,QAG/D2/C,EAAS,SAASA,EAAO5D,GAE3B,IAAInxH,EAAOvU,OAAOe,OAAOuoI,EAAOC,QAAQ5/C,EAAQD,WAAY8/C,KAAKjkI,MAAMikI,KAAKC,UAAUH,EAAOlC,YACzFvjD,EAAOylD,EAAOC,QAAQ5/C,EAAQD,UAAWn1E,GAI7C,OADAsvE,GADAA,EAAOA,EAAK6lD,YAAY,EAAGJ,EAAQ,EAAG,CAACA,KAC3BnxH,IAAIutH,EAElB,GAGA4D,EAAOloI,UAAYpB,OAAOkpF,OAAOS,EAAQvoF,YACxBgJ,YAAck/H,EAE/BA,EAAOC,QAAU,SAAiBI,EAASC,GAGzC,OADAD,EAAQ5gD,UAAY6gD,GAAWN,EAAOloI,UAC/BuoI,CACT,EAEAL,EAAOlC,SAAW,CAChBv0E,KAAM,CACJjpD,IAAK,KACLw6G,UAAW,KACXylB,QAAS,KACT7rB,OAAQ,KACRD,IAAK,KACLmoB,IAAK,KACLH,SAAU,MAEZ+D,SAAU,CACRd,IAAK,EACLe,MAAO,KACPv2H,EAAG,EACHmkH,MAAO,IAET+N,IAAK,CACHsE,SAAU,WACVlP,OAAQ,CAAC,EAAG,EAAG,EAAG,GAClBl1F,MAAO,CACL8tD,KAAM,OACNu2C,QAAS,KAEXtE,aAAa,EACbtC,YAAa,CAAC,EACdqD,MAAO,CAAC,IAKZ4C,EAAOloI,UAAUypF,KAAO,SAAcjhF,EAAK8pF,GAczC,OAAO9wF,KAAKsnF,MAAK,WAGf,OAFAwJ,EAAOA,GAdT,SAAiB9pF,GACf,QAAQ,EAAGu/H,EAAwCT,SAAS9+H,IAC1D,IAAK,SACH,MAAO,SAET,IAAK,UACH,OAAOA,EAAI8I,SAASytE,aAA8C,WAA/Bv2E,EAAI8I,SAASytE,cAA6B,SAAW,UAE1F,QACE,MAAO,UAEb,CAGiB+pD,CAAQtgI,GAEf8pF,GACN,IAAK,SACH,OAAO9wF,KAAKuV,IAAI,CACdvO,KAAK,EAAGu/H,EAAwCnzH,eAAe,MAAO,CACpEinG,UAAWrzG,MAIjB,IAAK,UACH,OAAOhH,KAAKuV,IAAI,CACdvO,IAAKA,IAGT,IAAK,SACH,OAAOhH,KAAKuV,IAAI,CACd6lG,OAAQp0G,IAGZ,IAAK,MACH,OAAOhH,KAAKuV,IAAI,CACd4lG,IAAKn0G,IAGT,QACE,OAAOhH,KAAK4C,MAAM,wBAExB,GACF,EAEA8jI,EAAOloI,UAAUwpF,GAAK,SAAY5pF,GAEhC,OAAQA,GACN,IAAK,YACH,OAAO4B,KAAK4iI,cAEd,IAAK,SACH,OAAO5iI,KAAKunI,WAEd,IAAK,MACH,OAAOvnI,KAAKwnI,QAEd,IAAK,MACH,OAAOxnI,KAAK6iI,QAEd,QACE,OAAO7iI,KAAK4C,MAAM,mBAExB,EAEA8jI,EAAOloI,UAAUokI,YAAc,WAO7B,OAAO5iI,KAAKynI,SALE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKjpD,KAAOhH,KAAK4C,MAAM,qCACrC,EAAG,WACD,OAAO5C,KAAKiwD,KAAKkzE,UAAYnjI,KAAK0nI,aACpC,IAC8BpgD,MAAK,WAEjC,IAAIqgD,EAAa,CACfvnI,SAAU,QACVqwG,SAAU,SACV8B,OAAQ,IACRjvB,KAAM,EACNskD,MAAO,EACPppH,OAAQ,EACR2qD,IAAK,EACL2/B,gBAAiB,mBAEf++B,EAAe,CACjBznI,SAAU,WACVioF,MAAOroF,KAAKiwD,KAAKkzE,SAASE,MAAMh7C,MAAQroF,KAAKiwD,KAAKkzE,SAASloC,KAC3D3X,KAAM,EACNskD,MAAO,EACPz+D,IAAK,EACLmf,OAAQ,OACR4vC,OAAQ,OACRpvB,gBAAiB,SAGnB6+B,EAAWj1B,QAAU,EAErB,IAAIr0G,GAAS,EAAGkoI,EAAwC51H,WAAW3Q,KAAKiwD,KAAKjpD,IAAKhH,KAAK8iI,IAAIrC,YAAYyF,mBACvGlmI,KAAKiwD,KAAKg3E,SAAU,EAAGV,EAAwCnzH,eAAe,MAAO,CACnFqvG,UAAW,oBACX9T,MAAOg5B,IAET3nI,KAAKiwD,KAAKuxD,WAAY,EAAG+kB,EAAwCnzH,eAAe,MAAO,CACrFqvG,UAAW,sBACX9T,MAAOk5B,IAET7nI,KAAKiwD,KAAKuxD,UAAUngH,YAAYhD,GAChC2B,KAAKiwD,KAAKg3E,QAAQ5lI,YAAYrB,KAAKiwD,KAAKuxD,WACxC/hC,SAAS+H,KAAKnmF,YAAYrB,KAAKiwD,KAAKg3E,QACtC,GACF,EAEAP,EAAOloI,UAAU+oI,SAAW,WAE1B,IAAIO,EAAU,CAAC,WACb,OAAOroD,SAAS+H,KAAK4rB,SAASpzG,KAAKiwD,KAAKuxD,YAAcxhH,KAAK4iI,aAC7D,GAEA,OAAO5iI,KAAKynI,SAASK,GAASxgD,MAAK,WAEjC,IAAIvnF,EAAU3C,OAAOe,OAAO,CAAC,EAAG6B,KAAK8iI,IAAIrC,aAEzC,cADO1gI,EAAQgoI,WACRzB,EAAyCtmI,KAAKiwD,KAAKuxD,UAAWzhH,EACvE,IAAGunF,MAAK,SAAuB8zB,IAEZp7G,KAAK8iI,IAAIrC,YAAYsH,YAAc,WAAa,GAEtD3sB,GACXp7G,KAAKiwD,KAAKmrD,OAASA,EACnB37B,SAAS+H,KAAK35E,YAAY7N,KAAKiwD,KAAKg3E,QACtC,GACF,EAEAP,EAAOloI,UAAUgpI,MAAQ,WAMvB,OAAOxnI,KAAKynI,SAJE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKmrD,QAAUp7G,KAAKunI,UAClC,IAE8BjgD,MAAK,WACjC,IAAI0gD,EAAUhoI,KAAKiwD,KAAKmrD,OAAOI,UAAU,SAAWx7G,KAAK8iI,IAAI9/F,MAAM8tD,KAAM9wF,KAAK8iI,IAAI9/F,MAAMqkG,SACxFrnI,KAAKiwD,KAAKkrD,IAAM17B,SAASrsE,cAAc,OACvCpT,KAAKiwD,KAAKkrD,IAAIn0G,IAAMghI,CACtB,GACF,EAEAtB,EAAOloI,UAAUqkI,MAAQ,WAQvB,OAAO7iI,KAAKynI,SANE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKmrD,QAAUp7G,KAAKunI,UAClC,EAAG,WACD,OAAOvnI,KAAKiwD,KAAKkzE,UAAYnjI,KAAK0nI,aACpC,IAE8BpgD,MAAK,WAEjC,IAAI8zB,EAASp7G,KAAKiwD,KAAKmrD,OACnB0nB,EAAM9iI,KAAK8iI,IAEXmF,EAAe7sB,EAAO9yB,OACtBs8C,EAAennD,KAAK8H,MAAM61B,EAAO/yB,MAAQroF,KAAKiwD,KAAKkzE,SAASE,MAAM/vE,OAClEkwE,EAAS/lD,KAAKwO,KAAKg8C,EAAerD,GAElCT,EAAankI,KAAKiwD,KAAKkzE,SAASE,MAAM/6C,OAEtC4/C,EAAazoD,SAASrsE,cAAc,UACpC+0H,EAAUD,EAAW5sB,WAAW,MACpC4sB,EAAW7/C,MAAQ+yB,EAAO/yB,MAC1B6/C,EAAW5/C,OAASs8C,EAEpB5kI,KAAKiwD,KAAKqzE,IAAMtjI,KAAKiwD,KAAKqzE,KAAO,IAAI+C,EAAmCvC,MAAMhB,EAAIgB,OAElF,IAAK,IAAIV,EAAO,EAAGA,EAAOI,EAAQJ,IAAQ,CAEpCA,IAASI,EAAS,GAAKyE,EAAerD,IAAiB,IACzDsD,EAAW5/C,OAAS2/C,EAAerD,EACnCT,EAAa+D,EAAW5/C,OAAStoF,KAAKiwD,KAAKkzE,SAASE,MAAMh7C,MAAQ6/C,EAAW7/C,OAI/E,IAAI/J,EAAI4pD,EAAW7/C,MACfhK,EAAI6pD,EAAW5/C,OACnB6/C,EAAQxsB,UAAY,QACpBwsB,EAAQvsB,SAAS,EAAG,EAAGt9B,EAAGD,GAC1B8pD,EAAQ5sB,UAAUH,EAAQ,EAAGgoB,EAAOwB,EAActmD,EAAGD,EAAG,EAAG,EAAGC,EAAGD,GAE7D+kD,GAAMpjI,KAAKiwD,KAAKqzE,IAAI8E,UACxB,IAAIJ,EAAUE,EAAW1sB,UAAU,SAAWsnB,EAAI9/F,MAAM8tD,KAAMgyC,EAAI9/F,MAAMqkG,SACxErnI,KAAKiwD,KAAKqzE,IAAIr2B,SAAS+6B,EAASlF,EAAI9/F,MAAM8tD,KAAMgyC,EAAI5K,OAAO,GAAI4K,EAAI5K,OAAO,GAAIl4H,KAAKiwD,KAAKkzE,SAASE,MAAMh7C,MAAO87C,EAChH,CACF,GACF,EAIAuC,EAAOloI,UAAUqmF,OAAS,SAAgBiM,EAAM/wF,EAASiH,GAIvD,MAA0B,SAF1BA,EAAMA,GAAO,OAELu2E,eAAiD,UAAtBv2E,EAAIu2E,cAC9Bv9E,KAAKqoI,UAAUv3C,EAAM/wF,GAErBC,KAAKsoI,UAAUx3C,EAAM/wF,EAEhC,EAEA2mI,EAAOloI,UAAU8pI,UAAY,SAAmBx3C,EAAM/wF,GAMpD,OAAOC,KAAKynI,SAJE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK6iI,OAC/B,IAE8Bv7C,MAAK,WAMjC,OAAOtnF,KAAKiwD,KAAKqzE,IAAIz+C,OAAOiM,EAAM/wF,EACpC,GACF,EAEA2mI,EAAOloI,UAAU6pI,UAAY,SAAmBv3C,EAAM/wF,GAMpD,OAAOC,KAAKynI,SAJE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKkrD,KAAOn7G,KAAKwnI,OAC/B,IAE8BlgD,MAAK,WACjC,OAAQwJ,GACN,UAAK3zF,EACL,IAAK,MACH,OAAO6C,KAAKiwD,KAAKkrD,IAEnB,IAAK,gBACL,IAAK,gBACH,OAAOn7G,KAAKiwD,KAAKkrD,IAAIn0G,IAEvB,IAAK,UACL,IAAK,UACH,OAAOy4E,SAAS4sC,SAASP,KAAO9rH,KAAKiwD,KAAKkrD,IAAIn0G,IAEhD,QACE,KAAM,sBAAwB8pF,EAAO,sBAE3C,GACF,EAEA41C,EAAOloI,UAAU46H,KAAO,SAAcgO,GAMpC,OAAOpnI,KAAKynI,SAJE,CAAC,WACb,OAAOznI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK6iI,OAC/B,IAE8BttH,IAAI6xH,EAAW,CAC3CA,SAAUA,GACR,MAAM9/C,MAAK,WACbtnF,KAAKiwD,KAAKqzE,IAAIlK,KAAKp5H,KAAK8iI,IAAIsE,SAC9B,GACF,EAIAV,EAAOloI,UAAU+W,IAAM,SAAautH,GAGlC,GAAiE,YAA7D,EAAGyD,EAAwCT,SAAShD,GACtD,OAAO9iI,KAIT,IAAIuoI,EAAMnrI,OAAOyJ,KAAKi8H,GAAO,CAAC,GAAG1wH,KAAI,SAAU7T,GAC7C,OAAQA,GACN,IAAK,SACH,OAAOyB,KAAKwoI,UAAUC,KAAKzoI,KAAM8iI,EAAI5K,QAEvC,IAAK,QACH,OAAO,WAEL,OADAl4H,KAAK8iI,IAAIgB,MAAQhB,EAAIgB,MACd9jI,KAAK0nI,aACd,EAEF,IAAK,WACH,OAAO1nI,KAAK0nI,YAAYe,KAAKzoI,KAAM8iI,EAAIK,UAEzC,QACE,OAAI5kI,KAAOmoI,EAAOlC,SAASv0E,KAElB,WACLjwD,KAAKiwD,KAAK1xD,GAAOukI,EAAIvkI,EACvB,EAGO,WACLyB,KAAK8iI,IAAIvkI,GAAOukI,EAAIvkI,EACtB,EAIR,GAAGyB,MAEH,OAAOA,KAAKsnF,MAAK,WACf,OAAOtnF,KAAKynI,SAASc,EACvB,GACF,EAEA7B,EAAOloI,UAAU8W,IAAM,SAAa/W,EAAKmqI,GACvC,OAAO1oI,KAAKsnF,MAAK,WAEf,IAAI8+C,EAAM7nI,KAAOmoI,EAAOlC,SAASv0E,KAAOjwD,KAAKiwD,KAAK1xD,GAAOyB,KAAK8iI,IAAIvkI,GAClE,OAAOmqI,EAAMA,EAAItC,GAAOA,CAC1B,GACF,EAEAM,EAAOloI,UAAUgqI,UAAY,SAAmBtQ,GAC9C,OAAOl4H,KAAKsnF,MAAK,WAEf,QAAQ,EAAGi/C,EAAwCT,SAAS5N,IAC1D,IAAK,SACHA,EAAS,CAACA,EAAQA,EAAQA,EAAQA,GAEpC,IAAK,QAKH,GAJsB,IAAlBA,EAAOj5H,SACTi5H,EAAS,CAACA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAG9B,IAAlBA,EAAOj5H,OACT,MAGJ,QACE,OAAOe,KAAK4C,MAAM,yBAItB5C,KAAK8iI,IAAI5K,OAASA,CACpB,IAAG5wC,KAAKtnF,KAAK0nI,YACf,EAEAhB,EAAOloI,UAAUkpI,YAAc,SAAqBvE,GAClD,OAAOnjI,KAAKsnF,MAAK,YAEf67C,EAAWA,GAAYkD,EAAmCvC,MAAMC,YAAY/jI,KAAK8iI,IAAIgB,QAEvErlI,eAAe,WAC3B0kI,EAASE,MAAQ,CACfh7C,MAAO86C,EAAS96C,MAAQroF,KAAK8iI,IAAI5K,OAAO,GAAKl4H,KAAK8iI,IAAI5K,OAAO,GAC7D5vC,OAAQ66C,EAAS76C,OAAStoF,KAAK8iI,IAAI5K,OAAO,GAAKl4H,KAAK8iI,IAAI5K,OAAO,IAEjEiL,EAASE,MAAMwB,GAAK,CAClBx8C,OAAO,EAAGk+C,EAAwCR,MAAM5C,EAASE,MAAMh7C,MAAO86C,EAASzmD,GACvF4L,QAAQ,EAAGi+C,EAAwCR,MAAM5C,EAASE,MAAM/6C,OAAQ66C,EAASzmD,IAE3FymD,EAASE,MAAM/vE,MAAQ6vE,EAASE,MAAM/6C,OAAS66C,EAASE,MAAMh7C,OAIhEroF,KAAKiwD,KAAKkzE,SAAWA,CACvB,GACF,EAEAuD,EAAOloI,UAAUsoI,YAAc,SAAqBV,EAAKe,EAAOv2H,EAAGmkH,GAQjE,OANW,MAAPqR,IAAapmI,KAAKknI,SAASd,IAAMA,GACxB,MAATe,IAAennI,KAAKknI,SAASC,MAAQA,GAChC,MAALv2H,IAAW5Q,KAAKknI,SAASt2H,EAAIA,GACpB,MAATmkH,IAAe/0H,KAAKknI,SAASnS,MAAQA,GACzC/0H,KAAKknI,SAAS5zE,MAAQtzD,KAAKknI,SAASd,IAAMpmI,KAAKknI,SAASC,MAEjDnnI,IACT,EAEA0mI,EAAOloI,UAAUmqI,eAAiB,SAAwBvC,EAAKe,EAAOv2H,EAAGmkH,GAEvE,OAAO/0H,KAAK8mI,YAAYV,EAAMpmI,KAAKknI,SAASd,IAAMA,EAAM,KAAMe,GAAgB,KAAMv2H,EAAI5Q,KAAKknI,SAASt2H,EAAIA,EAAI,KAAMmkH,EAAQ/0H,KAAKknI,SAASnS,MAAM/yC,OAAO+yC,GAAS,KAClK,EAIA2R,EAAOloI,UAAU8oF,KAAO,SAAcshD,EAAaC,GAEjD,IAAI5nD,EAAOjhF,KACX,OAAOA,KAAK8oI,SAASF,EAAaC,GAAY,SAAmBD,EAAaC,GAG5E,OADA5nD,EAAK0nD,eAAe,KAAM,KAAM,EAAG,CAACC,IAC7B7hD,EAAQvoF,UAAU8oF,KAAK5oF,KAAKsB,MAAM,SAAkBomI,GAEzD,OADAnlD,EAAK0nD,eAAe,KAAMC,GACnBxC,CACT,IAAG9+C,KAAKshD,EAAaC,GAAYvhD,MAAK,SAAmB8+C,GAEvD,OADAnlD,EAAK0nD,eAAe,GACbvC,CACT,GACF,GACF,EAEAM,EAAOloI,UAAUsqI,SAAW,SAAkBF,EAAaC,EAAYE,GAErEA,EAAWA,GAAYhiD,EAAQvoF,UAAU8oF,KAEzC,IAAIrG,EAAOjhF,KAEP4oI,IACFA,EAAcA,EAAYH,KAAKxnD,IAG7B4nD,IACFA,EAAaA,EAAWJ,KAAKxnD,IAI/B,IACI+nD,GAD4D,IAAjDjiD,EAAQ91E,WAAWlE,QAAQ,kBAA4C,YAAjBg6E,EAAQ3hF,KAChD67E,EAAOylD,EAAOC,QAAQvpI,OAAOe,OAAO,CAAC,EAAG8iF,GAAO8F,EAAQvoF,WAEhFyqI,EAAYF,EAASrqI,KAAKsqI,EAAaJ,EAAaC,GACxD,OAAOnC,EAAOC,QAAQsC,EAAWhoD,EAAKkF,UACxC,EAEAugD,EAAOloI,UAAU0qI,aAAe,SAAsBN,EAAaC,GAEjE,OAAO9hD,EAAQvoF,UAAU8oF,KAAK5oF,KAAKsB,KAAM4oI,EAAaC,EACxD,EAEAnC,EAAOloI,UAAUipI,SAAW,SAAkBc,GAE5C,IAAItnD,EAAOjhF,KAIX,OAHAuoI,EAAInpD,SAAQ,SAA0B98E,GACpC2+E,EAAOA,EAAK6nD,SAASxmI,EACvB,IACO2+E,CACT,EAEAylD,EAAOloI,UAAiB,MAAI,SAAUqqI,GAEhCA,IACFA,EAAaA,EAAWJ,KAAKzoI,OAG/B,IAAIipI,EAAYliD,EAAQvoF,UAAiB,MAAEE,KAAKsB,KAAM6oI,GACtD,OAAOnC,EAAOC,QAAQsC,EAAWjpI,KACnC,EAEA0mI,EAAOloI,UAAU2qI,cAAgB,SAAuBN,GAEtD,OAAO9hD,EAAQvoF,UAAiB,MAAEE,KAAKsB,KAAM6oI,EAC/C,EAEAnC,EAAOloI,UAAUoE,MAAQ,SAAeL,GAEtC,OAAOvC,KAAKsnF,MAAK,WACf,MAAM,IAAI59E,MAAMnH,EAClB,GACF,EAIAmkI,EAAOloI,UAAU4qI,MAAQ1C,EAAOloI,UAAU+W,IAC1CmxH,EAAOloI,UAAU6qI,OAAS3C,EAAOloI,UAAU46H,KAC3CsN,EAAOloI,UAAU8qI,OAAS5C,EAAOloI,UAAUqmF,OAC3C6hD,EAAOloI,UAAU+qI,IAAM7C,EAAOloI,UAAU8oF,KAIXg7C,EAA6B,QAAKoE,CAExD,EAED,iDAAgD,SAItC9oD,GAEhBA,EAAO1/E,QAAU,SAAUwnC,GACzB,GAAiB,mBAANA,EACT,MAAMpnC,UAAU2C,OAAOykC,GAAM,sBAC7B,OAAOA,CACX,CAGO,EAED,2DAA0D,SAIhDk4C,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAEjE3kD,EAAO1/E,QAAU,SAAUwnC,GACzB,IAAK+jG,EAAS/jG,IAAc,OAAPA,EACnB,MAAMpnC,UAAU,aAAe2C,OAAOykC,GAAM,mBAC5C,OAAOA,CACX,CAGO,EAED,yDAAwD,SAI9Ck4C,EAAQ4rD,EAA0BjH,GAElD,IAAImH,EAAkBnH,EAA0D,yDAC5Ej8C,EAASi8C,EAAsD,qDAC/DoH,EAAuBpH,EAA+D,8DAEtFqH,EAAcF,EAAgB,eAC9BG,EAAiB9qI,MAAMP,eAIQrB,GAA/B0sI,EAAeD,IACjBD,EAAqBzvD,EAAE2vD,EAAgBD,EAAa,CAClDtnD,cAAc,EACd9kF,MAAO8oF,EAAO,QAKlB1I,EAAO1/E,QAAU,SAAUK,GACzBsrI,EAAeD,GAAarrI,IAAO,CACrC,CAGO,EAED,gDAA+C,SAIrCq/E,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAEjE3kD,EAAO1/E,QAAU,SAAUwnC,GACzB,IAAK+jG,EAAS/jG,GACZ,MAAMpnC,UAAU2C,OAAOykC,GAAM,qBAC7B,OAAOA,CACX,CAGO,EAED,qDAAoD,SAI1Ck4C,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAIuH,EAAWvH,EAAwD,uDAAuDnjD,QAG1H2qD,EAFsBxH,EAA+D,6DAErEyH,CAAoB,WAIxCpsD,EAAO1/E,QAAW6rI,EAGd,GAAG3qD,QAH2B,SAAiB6qD,GACjD,OAAOH,EAAS9pI,KAAMiqI,EAAYllI,UAAU9F,OAAS,EAAI8F,UAAU,QAAK5H,EAE1E,CAGO,EAED,qDAAoD,SAI1CygF,EAAQ4rD,EAA0BjH,GAElD,IAAI2H,EAAkB3H,EAA0D,yDAC5E4H,EAAW5H,EAAkD,iDAC7D6H,EAAkB7H,EAA0D,yDAG5E8H,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOlnI,EAAImnI,GAC1B,IAGIhtI,EAHA0hF,EAAIgrD,EAAgBK,GACpBtrI,EAASkrI,EAASjrD,EAAEjgF,QACpB+R,EAAQo5H,EAAgBI,EAAWvrI,GAIvC,GAAIqrI,GAAejnI,GAAMA,GAAI,KAAOpE,EAAS+R,GAG3C,IAFAxT,EAAQ0hF,EAAEluE,OAEGxT,EAAO,OAAO,OAEtB,KAAMyB,EAAS+R,EAAOA,IAC3B,IAAKs5H,GAAet5H,KAASkuE,IAAMA,EAAEluE,KAAW3N,EAAI,OAAOinI,GAAet5H,GAAS,EACnF,OAAQs5H,IAAgB,CAC5B,CACF,EAEA1sD,EAAO1/E,QAAU,CAGfusI,SAAUJ,GAAa,GAGvBt9H,QAASs9H,GAAa,GAIjB,EAED,sDAAqD,SAI3CzsD,EAAQ4rD,EAA0BjH,GAElD,IAAIkG,EAAOlG,EAA8D,6DACrEmI,EAAgBnI,EAAuD,sDACvEoI,EAAWpI,EAAkD,iDAC7D4H,EAAW5H,EAAkD,iDAC7DqI,EAAqBrI,EAA6D,4DAElF3yH,EAAO,GAAGA,KAGVy6H,EAAe,SAAUQ,GAC3B,IAAIC,EAAiB,GAARD,EACTE,EAAoB,GAARF,EACZG,EAAkB,GAARH,EACVI,EAAmB,GAARJ,EACXK,EAAwB,GAARL,EAChBM,EAA2B,GAARN,EACnBO,EAAmB,GAARP,GAAaK,EAC5B,OAAO,SAAUX,EAAON,EAAYoB,EAAMC,GASxC,IARA,IAOI9tI,EAAO4pF,EAPPlI,EAAIyrD,EAASJ,GACbtpD,EAAOypD,EAAcxrD,GACrBqsD,EAAgB9C,EAAKwB,EAAYoB,EAAM,GACvCpsI,EAASkrI,EAASlpD,EAAKhiF,QACvB+R,EAAQ,EACRs1E,EAASglD,GAAkBV,EAC3BxsI,EAAS0sI,EAASxkD,EAAOikD,EAAOtrI,GAAU8rI,GAAaI,EAAmB7kD,EAAOikD,EAAO,QAAKptI,EAE3F8B,EAAS+R,EAAOA,IAAS,IAAIo6H,GAAYp6H,KAASiwE,KAEtDmG,EAASmkD,EADT/tI,EAAQyjF,EAAKjwE,GACiBA,EAAOkuE,GACjC2rD,GACF,GAAIC,EAAQ1sI,EAAO4S,GAASo2E,OACvB,GAAIA,EAAQ,OAAQyjD,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAOrtI,EACf,KAAK,EAAG,OAAOwT,EACf,KAAK,EAAGpB,EAAKlR,KAAKN,EAAQZ,QACrB,OAAQqtI,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAGj7H,EAAKlR,KAAKN,EAAQZ,GAIhC,OAAO0tI,GAAiB,EAAIF,GAAWC,EAAWA,EAAW7sI,CAC/D,CACF,EAEAw/E,EAAO1/E,QAAU,CAGfkhF,QAASirD,EAAa,GAGtBj4H,IAAKi4H,EAAa,GAGlB1jI,OAAQ0jI,EAAa,GAGrBzzB,KAAMyzB,EAAa,GAGnBl3H,MAAOk3H,EAAa,GAGpB1rI,KAAM0rI,EAAa,GAGnBmB,UAAWnB,EAAa,GAGxBoB,aAAcpB,EAAa,GAItB,EAED,uEAAsE,SAI5DzsD,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CACtDmH,EAAkBnH,EAA0D,yDAC5EoJ,EAAapJ,EAA0D,yDAEvEqJ,EAAUlC,EAAgB,WAE9B9rD,EAAO1/E,QAAU,SAAU2tI,GAIzB,OAAOF,GAAc,KAAOD,GAAM,WAChC,IAAII,EAAQ,GAKZ,OAJkBA,EAAMtkI,YAAc,CAAC,GAC3BokI,GAAW,WACrB,MAAO,CAAEG,IAAK,EAChB,EAC2C,IAApCD,EAAMD,GAAaG,SAASD,GACrC,GACF,CAGO,EAED,6DAA4D,SAIlDnuD,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAImJ,EAAQnJ,EAA8C,6CAE1D3kD,EAAO1/E,QAAU,SAAU2tI,EAAaI,GACtC,IAAIC,EAAS,GAAGL,GAChB,QAASK,GAAUR,GAAM,WAEvBQ,EAAOxtI,KAAK,KAAMutI,GAAY,WAAc,MAAM,CAAG,EAAG,EAC1D,GACF,CAGO,EAED,gEAA+D,SAIrDruD,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAC7D13C,EAAU03C,EAAiD,gDAG3DqJ,EAFkBrJ,EAA0D,wDAElEmH,CAAgB,WAI9B9rD,EAAO1/E,QAAU,SAAUiuI,GACzB,IAAIC,EASF,OAREvhD,EAAQshD,KAGM,mBAFhBC,EAAID,EAAc3kI,cAEa4kI,IAAMrtI,QAAS8rF,EAAQuhD,EAAE5tI,WAC/CirI,EAAS2C,IAEN,QADVA,EAAIA,EAAER,MACUQ,OAAIjvI,GAH+CivI,OAAIjvI,QAK5DA,IAANivI,EAAkBrtI,MAAQqtI,CACrC,CAGO,EAED,2DAA0D,SAIhDxuD,EAAQ4rD,EAA0BjH,GAElD,IAAI8J,EAA0B9J,EAAkE,iEAIhG3kD,EAAO1/E,QAAU,SAAUiuI,EAAeltI,GACxC,OAAO,IAAKotI,EAAwBF,GAA7B,CAAwD,IAAXltI,EAAe,EAAIA,EACzE,CAGO,EAED,kDAAiD,SAIvC2+E,GAEhB,IAAI3sE,EAAW,CAAC,EAAEA,SAElB2sE,EAAO1/E,QAAU,SAAUwnC,GACzB,OAAOz0B,EAASvS,KAAKgnC,GAAIv1B,MAAM,GAAI,EACrC,CAGO,EAED,8CAA6C,SAInCytE,EAAQ4rD,EAA0BjH,GAElD,IAAI+J,EAAwB/J,EAA8D,6DACtFgK,EAAahK,EAAoD,mDAGjEiK,EAFkBjK,EAA0D,wDAE5DmH,CAAgB,eAEhC+C,EAAuE,aAAnDF,EAAW,WAAc,OAAOxnI,SAAW,CAAhC,IAUnC64E,EAAO1/E,QAAUouI,EAAwBC,EAAa,SAAU7mG,GAC9D,IAAIw5C,EAAGwtD,EAAKtlD,EACZ,YAAcjqF,IAAPuoC,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDgnG,EAXD,SAAUhnG,EAAInnC,GACzB,IACE,OAAOmnC,EAAGnnC,EACZ,CAAE,MAAOqE,GAAoB,CAC/B,CAOoB+pI,CAAOztD,EAAI9hF,OAAOsoC,GAAK8mG,IAA8BE,EAEnED,EAAoBF,EAAWrtD,GAEH,WAA3BkI,EAASmlD,EAAWrtD,KAAsC,mBAAZA,EAAE0tD,OAAuB,YAAcxlD,CAC5F,CAGO,EAED,kEAAiE,SAIvDxJ,EAAQ4rD,EAA0BjH,GAElD,IAAI9V,EAAM8V,EAA4C,2CAClDsK,EAAUtK,EAAiD,gDAC3DuK,EAAiCvK,EAA2E,0EAC5GoH,EAAuBpH,EAA+D,8DAE1F3kD,EAAO1/E,QAAU,SAAUE,EAAQC,GAIjC,IAHA,IAAIwI,EAAOgmI,EAAQxuI,GACf+W,EAAiBu0H,EAAqBzvD,EACtC6yD,EAA2BD,EAA+B5yD,EACrDl7E,EAAI,EAAGA,EAAI6H,EAAK5H,OAAQD,IAAK,CACpC,IAAIT,EAAMsI,EAAK7H,GACVytH,EAAIruH,EAAQG,IAAM6W,EAAehX,EAAQG,EAAKwuI,EAAyB1uI,EAAQE,GACtF,CACF,CAGO,EAED,+DAA8D,SAIpDq/E,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CAE1D3kD,EAAO1/E,SAAWwtI,GAAM,WACtB,SAASv2C,IAAiB,CAG1B,OAFAA,EAAE32F,UAAUgJ,YAAc,KAEnBpK,OAAO4vI,eAAe,IAAI73C,KAASA,EAAE32F,SAC9C,GAGO,EAED,kDAAiD,SAIvCo/E,EAAQ4rD,EAA0BjH,GAElD,IAAI0K,EAAyB1K,EAAiE,gEAC1FtxH,EAAWsxH,EAAkD,iDAE7D1sH,EAAO,KAIX+nE,EAAO1/E,QAAU,SAAU4nF,EAAQ4mD,EAAKQ,EAAW1vI,GACjD,IAAI6hF,EAAIpuE,EAASg8H,EAAuBnnD,IACpC84B,EAAK,IAAM8tB,EAEf,MADkB,KAAdQ,IAAkBtuB,GAAM,IAAMsuB,EAAY,KAAOj8H,EAASzT,GAAOqC,QAAQgW,EAAM,UAAY,KACxF+oG,EAAK,IAAMv/B,EAAI,KAAOqtD,EAAM,GACrC,CAGO,EAED,kEAAiE,SAIvD9uD,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAI4K,EAAoB5K,EAAuD,sDAAsD4K,kBACjI7mD,EAASi8C,EAAsD,qDAC/D6K,EAA2B7K,EAAmE,kEAC9F8K,EAAiB9K,EAA0D,yDAC3E+K,EAAY/K,EAAkD,iDAE9DgL,EAAa,WAAc,OAAOvtI,IAAM,EAE5C49E,EAAO1/E,QAAU,SAAUsvI,EAAqBC,EAAMnhI,GACpD,IAAIkgI,EAAgBiB,EAAO,YAI3B,OAHAD,EAAoBhvI,UAAY8nF,EAAO6mD,EAAmB,CAAE7gI,KAAM8gI,EAAyB,EAAG9gI,KAC9F+gI,EAAeG,EAAqBhB,GAAe,GAAO,GAC1Dc,EAAUd,GAAiBe,EACpBC,CACT,CAGO,EAED,qEAAoE,SAI1D5vD,EAAQ4rD,EAA0BjH,GAElD,IAAImL,EAAcnL,EAAoD,mDAClEoH,EAAuBpH,EAA+D,8DACtF6K,EAA2B7K,EAAmE,kEAElG3kD,EAAO1/E,QAAUwvI,EAAc,SAAUzwI,EAAQsB,EAAKf,GACpD,OAAOmsI,EAAqBzvD,EAAEj9E,EAAQsB,EAAK6uI,EAAyB,EAAG5vI,GACzE,EAAI,SAAUP,EAAQsB,EAAKf,GAEzB,OADAP,EAAOsB,GAAOf,EACPP,CACT,CAGO,EAED,iEAAgE,SAItD2gF,GAEhBA,EAAO1/E,QAAU,SAAUyvI,EAAQnwI,GACjC,MAAO,CACL6kF,aAAuB,EAATsrD,GACdrrD,eAAyB,EAATqrD,GAChBprD,WAAqB,EAATorD,GACZnwI,MAAOA,EAEX,CAGO,EAED,sDAAqD,SAI3CogF,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAIqL,EAAgBrL,EAAwD,uDACxEoH,EAAuBpH,EAA+D,8DACtF6K,EAA2B7K,EAAmE,kEAElG3kD,EAAO1/E,QAAU,SAAUjB,EAAQsB,EAAKf,GACtC,IAAIqwI,EAAcD,EAAcrvI,GAC5BsvI,KAAe5wI,EAAQ0sI,EAAqBzvD,EAAEj9E,EAAQ4wI,EAAaT,EAAyB,EAAG5vI,IAC9FP,EAAO4wI,GAAerwI,CAC7B,CAGO,EAED,sDAAqD,SAI3CogF,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDwL,EAA4BxL,EAAoE,mEAChGyK,EAAiBzK,EAAgE,+DACjFr8C,EAAiBq8C,EAAgE,+DACjF8K,EAAiB9K,EAA0D,yDAC3EyL,EAA8BzL,EAAuE,sEACrG0L,EAAW1L,EAAiD,gDAC5DmH,EAAkBnH,EAA0D,yDAC5E2L,EAAU3L,EAAgD,+CAC1D+K,EAAY/K,EAAkD,iDAC9D4L,EAAgB5L,EAAuD,sDAEvE4K,EAAoBgB,EAAchB,kBAClCiB,EAAyBD,EAAcC,uBACvCC,EAAW3E,EAAgB,YAC3B4E,EAAO,OACPC,EAAS,SACTC,EAAU,UAEVjB,EAAa,WAAc,OAAOvtI,IAAM,EAE5C49E,EAAO1/E,QAAU,SAAUuwI,EAAUhB,EAAMD,EAAqBlhI,EAAM2lG,EAASy8B,EAAQC,GACrFZ,EAA0BP,EAAqBC,EAAMnhI,GAErD,IAkBIsiI,EAA0BC,EAASC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAAS/8B,GAAWg9B,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKV,EACL,KAAKC,EACL,KAAKC,EAAS,OAAO,WAAqB,OAAO,IAAIhB,EAAoBxtI,KAAMgvI,EAAO,EACtF,OAAO,WAAc,OAAO,IAAIxB,EAAoBxtI,KAAO,CAC/D,EAEIwsI,EAAgBiB,EAAO,YACvB0B,GAAwB,EACxBD,EAAoBT,EAASjwI,UAC7B4wI,EAAiBF,EAAkBb,IAClCa,EAAkB,eAClBj9B,GAAWi9B,EAAkBj9B,GAC9Bg9B,GAAmBb,GAA0BgB,GAAkBL,EAAmB98B,GAClFo9B,EAA4B,SAAR5B,GAAkByB,EAAkBI,SAA4BF,EAiCxF,GA7BIC,IACFT,EAA2B5B,EAAeqC,EAAkB3wI,KAAK,IAAI+vI,IACjEtB,IAAsB/vI,OAAOoB,WAAaowI,EAAyBtiI,OAChE4hI,GAAWlB,EAAe4B,KAA8BzB,IACvDjnD,EACFA,EAAe0oD,EAA0BzB,GACa,mBAAtCyB,EAAyBP,IACzCL,EAA4BY,EAA0BP,EAAUd,IAIpEF,EAAeuB,EAA0BpC,GAAe,GAAM,GAC1D0B,IAASZ,EAAUd,GAAiBe,KAKxCt7B,GAAWs8B,GAAUa,GAAkBA,EAAehqI,OAASmpI,IACjEY,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAe1wI,KAAKsB,KAAO,GAIpEkuI,IAAWS,GAAWO,EAAkBb,KAAcY,GAC1DjB,EAA4BkB,EAAmBb,EAAUY,GAE3D3B,EAAUG,GAAQwB,EAGdh9B,EAMF,GALA48B,EAAU,CACRhzC,OAAQkzC,EAAmBR,GAC3B1nI,KAAM6nI,EAASO,EAAkBF,EAAmBT,GACpDgB,QAASP,EAAmBP,IAE1BG,EAAQ,IAAKG,KAAOD,GAClBT,GAA0Be,KAA2BL,KAAOI,KAC9DjB,EAASiB,EAAmBJ,EAAKD,EAAQC,SAEtChB,EAAE,CAAE1vI,OAAQqvI,EAAM8B,OAAO,EAAMC,OAAQpB,GAA0Be,GAAyBN,GAGnG,OAAOA,CACT,CAGO,EAED,+DAA8D,SAIpDjxD,EAAQ4rD,EAA0BjH,GAElD,IAAIpT,EAAOoT,EAA6C,4CACpD9V,EAAM8V,EAA4C,2CAClDkN,EAA+BlN,EAAkE,iEACjGntH,EAAiBmtH,EAA+D,8DAA8DroD,EAElJ0D,EAAO1/E,QAAU,SAAUuvI,GACzB,IAAI3sD,EAASquC,EAAKruC,SAAWquC,EAAKruC,OAAS,CAAC,GACvC2rC,EAAI3rC,EAAQ2sD,IAAOr4H,EAAe0rE,EAAQ2sD,EAAM,CACnDjwI,MAAOiyI,EAA6Bv1D,EAAEuzD,IAE1C,CAGO,EAED,kDAAiD,SAIvC7vD,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CAG1D3kD,EAAO1/E,SAAWwtI,GAAM,WAEtB,OAA8E,GAAvEtuI,OAAOgY,eAAe,CAAC,EAAG,EAAG,CAAEE,IAAK,WAAc,OAAO,CAAG,IAAK,EAC1E,GAGO,EAED,8DAA6D,SAInDsoE,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxDkH,EAAWlH,EAAkD,iDAE7D9iD,EAAWiwD,EAAOjwD,SAElBkwD,EAASlG,EAAShqD,IAAagqD,EAAShqD,EAASrsE,eAErDwqE,EAAO1/E,QAAU,SAAUwnC,GACzB,OAAOiqG,EAASlwD,EAASrsE,cAAcsyB,GAAM,CAAC,CAChD,CAGO,EAED,oDAAmD,SAIzCk4C,GAIhBA,EAAO1/E,QAAU,CACf0xI,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACflmI,aAAc,EACdZ,SAAU,EACV+mI,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,EAIN,EAED,wDAAuD,SAI7C5zD,EAAQ4rD,EAA0BjH,GAElD,IAAIkP,EAAalP,EAAqD,oDAEtE3kD,EAAO1/E,QAAUuzI,EAAW,YAAa,cAAgB,EAGlD,EAED,wDAAuD,SAI7C7zD,EAAQ4rD,EAA0BjH,GAElD,IAOIvnD,EAAOtpE,EAPPg+H,EAASnN,EAA+C,8CACxDrgD,EAAYqgD,EAA0D,yDAEtEmP,EAAUhC,EAAOgC,QACjBC,EAAOjC,EAAOiC,KACdC,EAAWF,GAAWA,EAAQE,UAAYD,GAAQA,EAAKjgI,QACvDmgI,EAAKD,GAAYA,EAASC,GAG1BA,EAEFngI,GADAspE,EAAQ62D,EAAGnrI,MAAM,MACD,GAAK,EAAI,EAAIs0E,EAAM,GAAKA,EAAM,GACrCkH,MACTlH,EAAQkH,EAAUlH,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQkH,EAAUlH,MAAM,oBACbtpE,EAAUspE,EAAM,IAI/B4C,EAAO1/E,QAAUwT,IAAYA,CAGtB,EAED,oDAAmD,SAIzCksE,GAGhBA,EAAO1/E,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,UAIK,EAED,6CAA4C,SAIlC0/E,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxDwK,EAA2BxK,EAA2E,0EAA0EroD,EAChL8zD,EAA8BzL,EAAuE,sEACrG0L,EAAW1L,EAAiD,gDAC5DuP,EAAYvP,EAAmD,kDAC/DwP,EAA4BxP,EAAoE,mEAChGyP,EAAWzP,EAAkD,iDAgBjE3kD,EAAO1/E,QAAU,SAAU6B,EAAS1B,GAClC,IAGYD,EAAQG,EAAK0zI,EAAgBC,EAAgBp8B,EAHrDq8B,EAASpyI,EAAQ3B,OACjBg0I,EAASryI,EAAQ2vI,OACjB2C,EAAStyI,EAAQkrG,KASrB,GANE7sG,EADEg0I,EACO1C,EACA2C,EACA3C,EAAOyC,IAAWL,EAAUK,EAAQ,CAAC,IAEpCzC,EAAOyC,IAAW,CAAC,GAAG3zI,UAEtB,IAAKD,KAAOF,EAAQ,CAQ9B,GAPA6zI,EAAiB7zI,EAAOE,GAGtB0zI,EAFElyI,EAAQuyI,aACVx8B,EAAai3B,EAAyB3uI,EAAQG,KACfu3G,EAAWt4G,MACpBY,EAAOG,IACtByzI,EAASI,EAAS7zI,EAAM4zI,GAAUE,EAAS,IAAM,KAAO9zI,EAAKwB,EAAQyvI,cAE5CryI,IAAnB80I,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDF,EAA0BG,EAAgBD,EAC5C,EAEIlyI,EAAQwyI,MAASN,GAAkBA,EAAeM,OACpDvE,EAA4BkE,EAAgB,QAAQ,GAGtDjE,EAAS7vI,EAAQG,EAAK2zI,EAAgBnyI,EACxC,CACF,CAGO,EAED,4CAA2C,SAIjC69E,GAEhBA,EAAO1/E,QAAU,SAAU89E,GACzB,IACE,QAASA,GACX,CAAE,MAAOp5E,GACP,OAAO,CACT,CACF,CAGO,EAED,4DAA2D,SAIjDg7E,EAAQ4rD,EAA0BjH,GAElD,IAAIiQ,EAAYjQ,EAAmD,kDAGnE3kD,EAAO1/E,QAAU,SAAUoE,EAAI+oI,EAAMpsI,GAEnC,GADAuzI,EAAUlwI,QACGnF,IAATkuI,EAAoB,OAAO/oI,EAC/B,OAAQrD,GACN,KAAK,EAAG,OAAO,WACb,OAAOqD,EAAG5D,KAAK2sI,EACjB,EACA,KAAK,EAAG,OAAO,SAAUnwD,GACvB,OAAO54E,EAAG5D,KAAK2sI,EAAMnwD,EACvB,EACA,KAAK,EAAG,OAAO,SAAUA,EAAGiD,GAC1B,OAAO77E,EAAG5D,KAAK2sI,EAAMnwD,EAAGiD,EAC1B,EACA,KAAK,EAAG,OAAO,SAAUjD,EAAGiD,EAAG7yE,GAC7B,OAAOhJ,EAAG5D,KAAK2sI,EAAMnwD,EAAGiD,EAAG7yE,EAC7B,EAEF,OAAO,WACL,OAAOhJ,EAAGwC,MAAMumI,EAAMtmI,UACxB,CACF,CAGO,EAED,mDAAkD,SAIxC64E,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CAM5D3kD,EAAO1/E,QAAU,SAAUoR,EAAW48H,GACpC,OAAOnnI,UAAU9F,OAAS,EAJA,mBADFwzI,EAKgB/C,EAAOpgI,IAJRmjI,OAAWt1I,EAIWuyI,EAAOpgI,IAAcogI,EAAOpgI,GAAW48H,GALtF,IAAUuG,CAM1B,CAGO,EAED,6CAA4C,SAIlC70D,GAEhB,IAAI/4D,EAAQ,SAAU6gB,GACpB,OAAOA,GAAMA,EAAG+3C,MAAQA,MAAQ/3C,CAClC,EAGAk4C,EAAO1/E,QAEL2mB,EAA2B,iBAAd6tH,YAA0BA,aACvC7tH,EAAuB,iBAAV86D,QAAsBA,SAEnC96D,EAAqB,iBAARo8D,MAAoBA,OACjCp8D,EAAuB,iBAAV6qH,EAAAA,GAAsBA,EAAAA,IAElC,WAAc,OAAO1vI,IAAM,CAA3B,IAAmCoC,SAAS,cAATA,EAG/B,EAED,0CAAyC,SAI/Bw7E,EAAQ4rD,EAA0BjH,GAElD,IAAIoI,EAAWpI,EAAkD,iDAE7D9jI,EAAiB,CAAC,EAAEA,eAExBm/E,EAAO1/E,QAAUd,OAAOu1I,QAAU,SAAgBjtG,EAAInnC,GACpD,OAAOE,EAAeC,KAAKisI,EAASjlG,GAAKnnC,EAC3C,CAGO,EAED,kDAAiD,SAIvCq/E,GAEhBA,EAAO1/E,QAAU,CAAC,CAGX,EAED,2CAA0C,SAIhC0/E,EAAQ4rD,EAA0BjH,GAElD,IAAIkP,EAAalP,EAAqD,oDAEtE3kD,EAAO1/E,QAAUuzI,EAAW,WAAY,kBAGjC,EAED,qDAAoD,SAI1C7zD,EAAQ4rD,EAA0BjH,GAElD,IAAImL,EAAcnL,EAAoD,mDAClEmJ,EAAQnJ,EAA8C,6CACtDnvH,EAAgBmvH,EAAgE,+DAGpF3kD,EAAO1/E,SAAWwvI,IAAgBhC,GAAM,WAEtC,OAEQ,GAFDtuI,OAAOgY,eAAehC,EAAc,OAAQ,IAAK,CACtDkC,IAAK,WAAc,OAAO,CAAG,IAC5B4lE,CACL,GAGO,EAED,qDAAoD,SAI1C0C,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CACtDqQ,EAAUrQ,EAAoD,mDAE9D77H,EAAQ,GAAGA,MAGfk3E,EAAO1/E,QAAUwtI,GAAM,WAGrB,OAAQtuI,OAAO,KAAKy1I,qBAAqB,EAC3C,IAAK,SAAUntG,GACb,MAAsB,UAAfktG,EAAQltG,GAAkBh/B,EAAMhI,KAAKgnC,EAAI,IAAMtoC,OAAOsoC,EAC/D,EAAItoC,MAGG,EAED,0DAAyD,SAI/CwgF,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAC7Dr8C,EAAiBq8C,EAAgE,+DAGrF3kD,EAAO1/E,QAAU,SAAUqsI,EAAOuI,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPE/sD,GAE0C,mBAAlC8sD,EAAYF,EAAMtrI,cAC1BwrI,IAAcD,GACdtJ,EAASwJ,EAAqBD,EAAUx0I,YACxCy0I,IAAuBF,EAAQv0I,WAC/B0nF,EAAeqkD,EAAO0I,GACjB1I,CACT,CAGO,EAED,qDAAoD,SAI1C3sD,EAAQ4rD,EAA0BjH,GAElD,IAAI2Q,EAAQ3Q,EAAqD,oDAE7D4Q,EAAmB/wI,SAAS6O,SAGE,mBAAvBiiI,EAAME,gBACfF,EAAME,cAAgB,SAAU1tG,GAC9B,OAAOytG,EAAiBz0I,KAAKgnC,EAC/B,GAGFk4C,EAAO1/E,QAAUg1I,EAAME,aAGhB,EAED,qDAAoD,SAI1Cx1D,EAAQ4rD,EAA0BjH,GAElD,IAWIhtH,EAAKD,EAAKm3G,EAXV4mB,EAAkB9Q,EAAwD,uDAC1EmN,EAASnN,EAA+C,8CACxDkH,EAAWlH,EAAkD,iDAC7DyL,EAA8BzL,EAAuE,sEACrG+Q,EAAY/Q,EAA4C,2CACxDgR,EAAShR,EAAqD,oDAC9DiR,EAAYjR,EAAmD,kDAC/DkR,EAAalR,EAAoD,mDAEjEmR,EAA6B,6BAC7BC,EAAUjE,EAAOiE,QAgBrB,GAAIN,GAAmBE,EAAOpM,MAAO,CACnC,IAAI+L,EAAQK,EAAOpM,QAAUoM,EAAOpM,MAAQ,IAAIwM,GAC5CC,EAAQV,EAAM59H,IACdu+H,EAAQX,EAAMzmB,IACdqnB,EAAQZ,EAAM39H,IAClBA,EAAM,SAAUmwB,EAAIquG,GAClB,GAAIF,EAAMn1I,KAAKw0I,EAAOxtG,GAAK,MAAM,IAAIpnC,UAAUo1I,GAG/C,OAFAK,EAASC,OAAStuG,EAClBouG,EAAMp1I,KAAKw0I,EAAOxtG,EAAIquG,GACfA,CACT,EACAz+H,EAAM,SAAUowB,GACd,OAAOkuG,EAAMl1I,KAAKw0I,EAAOxtG,IAAO,CAAC,CACnC,EACA+mF,EAAM,SAAU/mF,GACd,OAAOmuG,EAAMn1I,KAAKw0I,EAAOxtG,EAC3B,CACF,KAAO,CACL,IAAIuuG,EAAQT,EAAU,SACtBC,EAAWQ,IAAS,EACpB1+H,EAAM,SAAUmwB,EAAIquG,GAClB,GAAIT,EAAU5tG,EAAIuuG,GAAQ,MAAM,IAAI31I,UAAUo1I,GAG9C,OAFAK,EAASC,OAAStuG,EAClBsoG,EAA4BtoG,EAAIuuG,EAAOF,GAChCA,CACT,EACAz+H,EAAM,SAAUowB,GACd,OAAO4tG,EAAU5tG,EAAIuuG,GAASvuG,EAAGuuG,GAAS,CAAC,CAC7C,EACAxnB,EAAM,SAAU/mF,GACd,OAAO4tG,EAAU5tG,EAAIuuG,EACvB,CACF,CAEAr2D,EAAO1/E,QAAU,CACfqX,IAAKA,EACLD,IAAKA,EACLm3G,IAAKA,EACLynB,QAnDY,SAAUxuG,GACtB,OAAO+mF,EAAI/mF,GAAMpwB,EAAIowB,GAAMnwB,EAAImwB,EAAI,CAAC,EACtC,EAkDEyuG,UAhDc,SAAUtJ,GACxB,OAAO,SAAUnlG,GACf,IAAIyhG,EACJ,IAAKsC,EAAS/jG,KAAQyhG,EAAQ7xH,EAAIowB,IAAKorD,OAAS+5C,EAC9C,MAAMvsI,UAAU,0BAA4BusI,EAAO,aACnD,OAAO1D,CACX,CACF,EA6CO,EAED,+CAA8C,SAIpCvpD,EAAQ4rD,EAA0BjH,GAElD,IAAIqQ,EAAUrQ,EAAoD,mDAKlE3kD,EAAO1/E,QAAUa,MAAM8rF,SAAW,SAAiB+R,GACjD,MAAuB,SAAhBg2C,EAAQh2C,EACjB,CAGO,EAED,gDAA+C,SAIrChf,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CAEtD6R,EAAc,kBAEdpC,EAAW,SAAUvgI,EAAS4iI,GAChC,IAAI72I,EAAQgH,EAAK9B,EAAU+O,IAC3B,OAAOjU,GAAS82I,GACZ92I,GAAS+2I,IACW,mBAAbF,EAA0B3I,EAAM2I,KACrCA,EACR,EAEI3xI,EAAYsvI,EAAStvI,UAAY,SAAUojF,GAC7C,OAAO7kF,OAAO6kF,GAAQjmF,QAAQu0I,EAAa,KAAK72D,aAClD,EAEI/4E,EAAOwtI,EAASxtI,KAAO,CAAC,EACxB+vI,EAASvC,EAASuC,OAAS,IAC3BD,EAAWtC,EAASsC,SAAW,IAEnC12D,EAAO1/E,QAAU8zI,CAGV,EAED,gDAA+C,SAIrCp0D,GAEhBA,EAAO1/E,QAAU,SAAUwnC,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,CACvD,CAGO,EAED,8CAA6C,SAInCk4C,GAEhBA,EAAO1/E,SAAU,CAGV,EAED,gDAA+C,SAIrC0/E,EAAQ4rD,EAA0BjH,GAElD,IAAIkP,EAAalP,EAAqD,oDAClEiS,EAAoBjS,EAA0D,yDAElF3kD,EAAO1/E,QAAUs2I,EAAoB,SAAU9uG,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAI+uG,EAAUhD,EAAW,UACzB,MAAyB,mBAAXgD,GAAyBr3I,OAAOsoC,aAAe+uG,CAC/D,CAGO,EAED,qDAAoD,SAI1C72D,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAcI4K,EAAmBuH,EAAmCC,EAdtDjJ,EAAQnJ,EAA8C,6CACtDyK,EAAiBzK,EAAgE,+DACjFyL,EAA8BzL,EAAuE,sEACrG9V,EAAM8V,EAA4C,2CAClDmH,EAAkBnH,EAA0D,yDAC5E2L,EAAU3L,EAAgD,+CAE1D8L,EAAW3E,EAAgB,YAC3B0E,GAAyB,EASzB,GAAGvnI,OAGC,SAFN8tI,EAAgB,GAAG9tI,SAIjB6tI,EAAoC1H,EAAeA,EAAe2H,OACxBv3I,OAAOoB,YAAW2uI,EAAoBuH,GAHlDtG,GAAyB,GAO3D,IAAIwG,OAA8Cz3I,GAArBgwI,GAAkCzB,GAAM,WACnE,IAAI7pI,EAAO,CAAC,EAEZ,OAAOsrI,EAAkBkB,GAAU3vI,KAAKmD,KAAUA,CACpD,IAEI+yI,IAAwBzH,EAAoB,CAAC,GAI3Ce,IAAW0G,GAA4BnoB,EAAI0gB,EAAmBkB,IAClEL,EAA4Bb,EAAmBkB,GA5BhC,WAAc,OAAOruI,IAAM,IA+B5C49E,EAAO1/E,QAAU,CACfivI,kBAAmBA,EACnBiB,uBAAwBA,EAInB,EAED,gDAA+C,SAIrCxwD,GAEhBA,EAAO1/E,QAAU,CAAC,CAGX,EAED,oDAAmD,SAIzC0/E,EAAQ4rD,EAA0BjH,GAGlD,IAAIoJ,EAAapJ,EAA0D,yDACvEmJ,EAAQnJ,EAA8C,6CAG1D3kD,EAAO1/E,UAAYd,OAAOy3I,wBAA0BnJ,GAAM,WACxD,IAAIoJ,EAASh0D,SAGb,OAAQ7/E,OAAO6zI,MAAa13I,OAAO03I,aAAmBh0D,UAEnDA,OAAOyxD,MAAQ5G,GAAcA,EAAa,EAC/C,GAGO,EAED,sDAAqD,SAI3C/tD,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxD6Q,EAAgB7Q,EAAuD,sDAEvEoR,EAAUjE,EAAOiE,QAErB/1D,EAAO1/E,QAA6B,oBAAZy1I,GAA0B,cAAc9xI,KAAKuxI,EAAcO,GAG5E,EAED,oDAAmD,SAIzC/1D,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAImL,EAAcnL,EAAoD,mDAClEmJ,EAAQnJ,EAA8C,6CACtDwS,EAAaxS,EAAoD,mDACjEyS,EAA8BzS,EAAwE,uEACtG0S,EAA6B1S,EAAsE,qEACnGoI,EAAWpI,EAAkD,iDAC7DmI,EAAgBnI,EAAuD,sDAGvE2S,EAAU93I,OAAOe,OAEjBiX,EAAiBhY,OAAOgY,eAI5BwoE,EAAO1/E,SAAWg3I,GAAWxJ,GAAM,WAEjC,GAAIgC,GAQiB,IARFwH,EAAQ,CAAE/2D,EAAG,GAAK+2D,EAAQ9/H,EAAe,CAAC,EAAG,IAAK,CACnEitE,YAAY,EACZ/sE,IAAK,WACHF,EAAepV,KAAM,IAAK,CACxBxC,MAAO,EACP6kF,YAAY,GAEhB,IACE,CAAElE,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAI8W,EAAI,CAAC,EACLkgD,EAAI,CAAC,EAELL,EAASh0D,SACTs0D,EAAW,uBAGf,OAFAngD,EAAE6/C,GAAU,EACZM,EAAS1uI,MAAM,IAAI04E,SAAQ,SAAUi2D,GAAOF,EAAEE,GAAOA,CAAK,IACzB,GAA1BH,EAAQ,CAAC,EAAGjgD,GAAG6/C,IAAgBC,EAAWG,EAAQ,CAAC,EAAGC,IAAI3lI,KAAK,KAAO4lI,CAC/E,IAAK,SAAgBh3I,EAAQC,GAM3B,IALA,IAAIm6G,EAAImyB,EAASvsI,GACbk3I,EAAkBvwI,UAAU9F,OAC5B+R,EAAQ,EACR6jI,EAAwBG,EAA4B96D,EACpD24D,EAAuBoC,EAA2B/6D,EAC/Co7D,EAAkBtkI,GAMvB,IALA,IAIIzS,EAJA8gF,EAAIqrD,EAAc3lI,UAAUiM,MAC5BnK,EAAOguI,EAAwBE,EAAW11D,GAAG2C,OAAO6yD,EAAsBx1D,IAAM01D,EAAW11D,GAC3FpgF,EAAS4H,EAAK5H,OACdggF,EAAI,EAEDhgF,EAASggF,GACd1gF,EAAMsI,EAAKo4E,KACNyuD,IAAemF,EAAqBn0I,KAAK2gF,EAAG9gF,KAAMi6G,EAAEj6G,GAAO8gF,EAAE9gF,IAEpE,OAAOi6G,CACX,EAAI08B,CAGG,EAED,oDAAmD,SAIzCt3D,EAAQ4rD,EAA0BjH,GAGlD,IAqDIgT,EArDAC,EAAWjT,EAAkD,iDAC7DkT,EAAmBlT,EAAiE,gEACpFmT,EAAcnT,EAAsD,qDACpEkR,EAAalR,EAAoD,mDACjEoT,EAAOpT,EAA6C,4CACpDqT,EAAwBrT,EAAgE,+DACxFiR,EAAYjR,EAAmD,kDAI/DsT,EAAY,YACZC,EAAS,SACTC,EAAWvC,EAAU,YAErBwC,EAAmB,WAAyB,EAE5CC,EAAY,SAAU5iC,GACxB,MARO,IAQKyiC,EATL,IASmBziC,EAAnBl/D,KAAwC2hG,EATxC,GAUT,EAGII,EAA4B,SAAUX,GACxCA,EAAgBh9C,MAAM09C,EAAU,KAChCV,EAAgBrhC,QAChB,IAAIiiC,EAAOZ,EAAgBa,aAAah5I,OAExC,OADAm4I,EAAkB,KACXY,CACT,EA2BIE,EAAkB,WACpB,IACEd,EAAkB,IAAIe,cAAc,WACtC,CAAE,MAAO1zI,GAAqB,CAC9ByzI,EAAkB52D,SAAS82D,QAAUhB,EACnCW,EAA0BX,GA7BC,WAE7B,IAEIiB,EAFA51B,EAASg1B,EAAsB,UAC/Ba,EAAK,OAASX,EAAS,IAE3B,GAAIl1B,EAAOjS,MAST,OARAiS,EAAOjS,MAAMW,QAAU,OACvBqmC,EAAKt0I,YAAYu/G,GAEjBA,EAAO55G,IAAM/F,OAAOw1I,IACpBD,EAAiB51B,EAAOC,cAAcphC,UACvBw0B,OACfuiC,EAAej+C,MAAM09C,EAAU,sBAC/BO,EAAetiC,QACRsiC,EAAerhD,CAE1B,CAcIuhD,IACAR,EAA0BX,GAE5B,IADA,IAAIt2I,EAASy2I,EAAYz2I,OAClBA,YAAiBo3I,EAAgBR,GAAWH,EAAYz2I,IAC/D,OAAOo3I,GACT,EAEA5C,EAAWsC,IAAY,EAIvBn4D,EAAO1/E,QAAUd,OAAOkpF,QAAU,SAAgBpH,EAAGy3D,GACnD,IAAIvvD,EAQJ,OAPU,OAANlI,GACF82D,EAAiBH,GAAaL,EAASt2D,GACvCkI,EAAS,IAAI4uD,EACbA,EAAiBH,GAAa,KAE9BzuD,EAAO2uD,GAAY72D,GACdkI,EAASivD,SACMl5I,IAAfw5I,EAA2BvvD,EAASquD,EAAiBruD,EAAQuvD,EACtE,CAGO,EAED,+DAA8D,SAIpD/4D,EAAQ4rD,EAA0BjH,GAElD,IAAImL,EAAcnL,EAAoD,mDAClEoH,EAAuBpH,EAA+D,8DACtFiT,EAAWjT,EAAkD,iDAC7DwS,EAAaxS,EAAoD,mDAKrE3kD,EAAO1/E,QAAUwvI,EAActwI,OAAOq4I,iBAAmB,SAA0Bv2D,EAAGy3D,GACpFnB,EAASt2D,GAKT,IAJA,IAGI3gF,EAHAsI,EAAOkuI,EAAW4B,GAClB13I,EAAS4H,EAAK5H,OACd+R,EAAQ,EAEL/R,EAAS+R,GAAO24H,EAAqBzvD,EAAEgF,EAAG3gF,EAAMsI,EAAKmK,KAAU2lI,EAAWp4I,IACjF,OAAO2gF,CACT,CAGO,EAED,6DAA4D,SAIlDmjD,EAAyBnkI,EAASqkI,GAElD,IAAImL,EAAcnL,EAAoD,mDAClEqU,EAAiBrU,EAAuD,sDACxEiT,EAAWjT,EAAkD,iDAC7DqL,EAAgBrL,EAAwD,uDAGxEsU,EAAkBz5I,OAAOgY,eAI7BlX,EAAQg8E,EAAIwzD,EAAcmJ,EAAkB,SAAwB33D,EAAGyH,EAAGmwD,GAIxE,GAHAtB,EAASt2D,GACTyH,EAAIinD,EAAcjnD,GAClB6uD,EAASsB,GACLF,EAAgB,IAClB,OAAOC,EAAgB33D,EAAGyH,EAAGmwD,EAC/B,CAAE,MAAOl0I,GAAoB,CAC7B,GAAI,QAASk0I,GAAc,QAASA,EAAY,MAAMx4I,UAAU,2BAEhE,MADI,UAAWw4I,IAAY53D,EAAEyH,GAAKmwD,EAAWt5I,OACtC0hF,CACT,CAGO,EAED,yEAAwE,SAI9DmjD,EAAyBnkI,EAASqkI,GAElD,IAAImL,EAAcnL,EAAoD,mDAClE0S,EAA6B1S,EAAsE,qEACnG6K,EAA2B7K,EAAmE,kEAC9F2H,EAAkB3H,EAA0D,yDAC5EqL,EAAgBrL,EAAwD,uDACxE9V,EAAM8V,EAA4C,2CAClDqU,EAAiBrU,EAAuD,sDAGxEwU,EAA4B35I,OAAO2vI,yBAIvC7uI,EAAQg8E,EAAIwzD,EAAcqJ,EAA4B,SAAkC73D,EAAGyH,GAGzF,GAFAzH,EAAIgrD,EAAgBhrD,GACpByH,EAAIinD,EAAcjnD,GACdiwD,EAAgB,IAClB,OAAOG,EAA0B73D,EAAGyH,EACtC,CAAE,MAAO/jF,GAAoB,CAC7B,GAAI6pH,EAAIvtC,EAAGyH,GAAI,OAAOymD,GAA0B6H,EAA2B/6D,EAAEx7E,KAAKwgF,EAAGyH,GAAIzH,EAAEyH,GAC7F,CAGO,EAED,6EAA4E,SAIlE/I,EAAQ4rD,EAA0BjH,GAGlD,IAAI2H,EAAkB3H,EAA0D,yDAC5EyU,EAAuBzU,EAAsE,qEAAqEroD,EAElKjpE,EAAW,CAAC,EAAEA,SAEdgmI,EAA+B,iBAAVt3D,QAAsBA,QAAUviF,OAAO85I,oBAC5D95I,OAAO85I,oBAAoBv3D,QAAU,GAWzC/B,EAAO1/E,QAAQg8E,EAAI,SAA6Bx0C,GAC9C,OAAOuxG,GAAoC,mBAArBhmI,EAASvS,KAAKgnC,GAVjB,SAAUA,GAC7B,IACE,OAAOsxG,EAAqBtxG,EAC9B,CAAE,MAAO9iC,GACP,OAAOq0I,EAAY9mI,OACrB,CACF,CAKMgnI,CAAezxG,GACfsxG,EAAqB9M,EAAgBxkG,GAC3C,CAGO,EAED,oEAAmE,SAIzD28F,EAAyBnkI,EAASqkI,GAElD,IAAI6U,EAAqB7U,EAA6D,4DAGlFkR,EAFclR,EAAsD,qDAE3CvgD,OAAO,SAAU,aAK9C9jF,EAAQg8E,EAAI98E,OAAO85I,qBAAuB,SAA6Bh4D,GACrE,OAAOk4D,EAAmBl4D,EAAGu0D,EAC/B,CAGO,EAED,sEAAqE,SAI3DpR,EAAyBnkI,GAGzCA,EAAQg8E,EAAI98E,OAAOy3I,qBAGZ,EAED,8DAA6D,SAInDj3D,EAAQ4rD,EAA0BjH,GAElD,IAAI9V,EAAM8V,EAA4C,2CAClDoI,EAAWpI,EAAkD,iDAC7DiR,EAAYjR,EAAmD,kDAC/D8U,EAA2B9U,EAAiE,gEAE5FwT,EAAWvC,EAAU,YACrB8D,EAAkBl6I,OAAOoB,UAK7Bo/E,EAAO1/E,QAAUm5I,EAA2Bj6I,OAAO4vI,eAAiB,SAAU9tD,GAE5E,OADAA,EAAIyrD,EAASzrD,GACTutC,EAAIvtC,EAAG62D,GAAkB72D,EAAE62D,GACH,mBAAjB72D,EAAE13E,aAA6B03E,aAAaA,EAAE13E,YAChD03E,EAAE13E,YAAYhJ,UACd0gF,aAAa9hF,OAASk6I,EAAkB,IACnD,CAGO,EAED,2DAA0D,SAIhD15D,EAAQ4rD,EAA0BjH,GAElD,IAAI9V,EAAM8V,EAA4C,2CAClD2H,EAAkB3H,EAA0D,yDAC5Ex1H,EAAUw1H,EAAuD,sDAAsDx1H,QACvH0mI,EAAalR,EAAoD,mDAErE3kD,EAAO1/E,QAAU,SAAUjB,EAAQs6I,GACjC,IAGIh5I,EAHA2gF,EAAIgrD,EAAgBjtI,GACpB+B,EAAI,EACJooF,EAAS,GAEb,IAAK7oF,KAAO2gF,GAAIutC,EAAIgnB,EAAYl1I,IAAQkuH,EAAIvtC,EAAG3gF,IAAQ6oF,EAAOx3E,KAAKrR,GAEnE,KAAOg5I,EAAMt4I,OAASD,GAAOytH,EAAIvtC,EAAG3gF,EAAMg5I,EAAMv4I,SAC7C+N,EAAQq6E,EAAQ7oF,IAAQ6oF,EAAOx3E,KAAKrR,IAEvC,OAAO6oF,CACT,CAGO,EAED,kDAAiD,SAIvCxJ,EAAQ4rD,EAA0BjH,GAElD,IAAI6U,EAAqB7U,EAA6D,4DAClFmT,EAAcnT,EAAsD,qDAKxE3kD,EAAO1/E,QAAUd,OAAOyJ,MAAQ,SAAcq4E,GAC5C,OAAOk4D,EAAmBl4D,EAAGw2D,EAC/B,CAGO,EAED,oEAAmE,SAIzDrT,EAAyBnkI,GAEzC,aAEA,IAAIs5I,EAAwB,CAAC,EAAE3E,qBAE3B9F,EAA2B3vI,OAAO2vI,yBAGlC0K,EAAc1K,IAA6ByK,EAAsB94I,KAAK,CAAE,EAAG,GAAK,GAIpFR,EAAQg8E,EAAIu9D,EAAc,SAA8Bl/B,GACtD,IAAIzC,EAAai3B,EAAyB/sI,KAAMu4G,GAChD,QAASzC,GAAcA,EAAWzzB,UACpC,EAAIm1D,CAGG,EAED,8DAA6D,SAInD55D,EAAQ4rD,EAA0BjH,GAGlD,IAAIiT,EAAWjT,EAAkD,iDAC7DmV,EAAqBnV,EAA6D,4DAMtF3kD,EAAO1/E,QAAUd,OAAO8oF,iBAAmB,aAAe,CAAC,EAAI,WAC7D,IAEIyxD,EAFAC,GAAiB,EACjB/1I,EAAO,CAAC,EAEZ,KAEE81I,EAASv6I,OAAO2vI,yBAAyB3vI,OAAOoB,UAAW,aAAa+W,KACjE7W,KAAKmD,EAAM,IAClB+1I,EAAiB/1I,aAAgB9C,KACnC,CAAE,MAAO6D,GAAoB,CAC7B,OAAO,SAAwBs8E,EAAGqwD,GAKhC,OAJAiG,EAASt2D,GACTw4D,EAAmBnI,GACfqI,EAAgBD,EAAOj5I,KAAKwgF,EAAGqwD,GAC9BrwD,EAAEiH,UAAYopD,EACZrwD,CACT,CACF,CAjB+D,QAiBzD/hF,EAGC,EAED,uDAAsD,SAI5CygF,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAI+J,EAAwB/J,EAA8D,6DACtFqQ,EAAUrQ,EAAgD,+CAI9D3kD,EAAO1/E,QAAUouI,EAAwB,CAAC,EAAEr7H,SAAW,WACrD,MAAO,WAAa2hI,EAAQ5yI,MAAQ,GACtC,CAGO,EAED,4DAA2D,SAIjD49E,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAIjE3kD,EAAO1/E,QAAU,SAAU0B,EAAOi4I,GAChC,IAAIv1I,EAAI8jI,EACR,GAAa,WAATyR,GAAqD,mBAAxBv1I,EAAK1C,EAAMqR,YAA4Bw4H,EAASrD,EAAM9jI,EAAG5D,KAAKkB,IAAS,OAAOwmI,EAC/G,GAAmC,mBAAvB9jI,EAAK1C,EAAMihF,WAA2B4oD,EAASrD,EAAM9jI,EAAG5D,KAAKkB,IAAS,OAAOwmI,EACzF,GAAa,WAATyR,GAAqD,mBAAxBv1I,EAAK1C,EAAMqR,YAA4Bw4H,EAASrD,EAAM9jI,EAAG5D,KAAKkB,IAAS,OAAOwmI,EAC/G,MAAM9nI,UAAU,0CAClB,CAGO,EAED,+CAA8C,SAIpCs/E,EAAQ4rD,EAA0BjH,GAElD,IAAIkP,EAAalP,EAAqD,oDAClEuV,EAA4BvV,EAAsE,qEAClGyS,EAA8BzS,EAAwE,uEACtGiT,EAAWjT,EAAkD,iDAGjE3kD,EAAO1/E,QAAUuzI,EAAW,UAAW,YAAc,SAAiB/rG,GACpE,IAAI7+B,EAAOixI,EAA0B59D,EAAEs7D,EAAS9vG,IAC5CmvG,EAAwBG,EAA4B96D,EACxD,OAAO26D,EAAwBhuI,EAAKm7E,OAAO6yD,EAAsBnvG,IAAO7+B,CAC1E,CAGO,EAED,2CAA0C,SAIhC+2E,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CAE5D3kD,EAAO1/E,QAAUwxI,CAGV,EAED,+CAA8C,SAIpC9xD,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxDyL,EAA8BzL,EAAuE,sEACrG9V,EAAM8V,EAA4C,2CAClDuP,EAAYvP,EAAmD,kDAC/D6Q,EAAgB7Q,EAAuD,sDACvEwV,EAAsBxV,EAAuD,sDAE7EyV,EAAmBD,EAAoBziI,IACvC2iI,EAAuBF,EAAoB7D,QAC3CgE,EAAWj3I,OAAOA,QAAQyF,MAAM,WAEnCk3E,EAAO1/E,QAAU,SAAUghF,EAAG3gF,EAAKf,EAAOuC,GACzC,IAGIonI,EAHAgR,IAASp4I,KAAYA,EAAQo4I,OAC7BC,IAASr4I,KAAYA,EAAQsiF,WAC7BiwD,IAAcvyI,KAAYA,EAAQuyI,YAElB,mBAAT90I,IACS,iBAAPe,GAAoBkuH,EAAIjvH,EAAO,SACxCwwI,EAA4BxwI,EAAO,OAAQe,IAE7C4oI,EAAQ8Q,EAAqBz6I,IAClBa,SACT8oI,EAAM9oI,OAAS65I,EAAS1oI,KAAmB,iBAAPjR,EAAkBA,EAAM,MAG5D2gF,IAAMwwD,GAIEyI,GAEA7F,GAAepzD,EAAE3gF,KAC3B65I,GAAS,UAFFl5D,EAAE3gF,GAIP65I,EAAQl5D,EAAE3gF,GAAOf,EAChBwwI,EAA4B9uD,EAAG3gF,EAAKf,IATnC46I,EAAQl5D,EAAE3gF,GAAOf,EAChBs0I,EAAUvzI,EAAKf,EAUxB,GAAG4E,SAAS5D,UAAW,YAAY,WACjC,MAAsB,mBAARwB,MAAsBg4I,EAAiBh4I,MAAM3B,QAAU+0I,EAAcpzI,KACrF,GAGO,EAED,mDAAkD,SAIxC49E,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAIiT,EAAWjT,EAAkD,iDAIjE3kD,EAAO1/E,QAAU,WACf,IAAImtI,EAAOmK,EAASx1I,MAChBonF,EAAS,GAOb,OANIikD,EAAKqE,SAAQtoD,GAAU,KACvBikD,EAAKgN,aAAYjxD,GAAU,KAC3BikD,EAAKiN,YAAWlxD,GAAU,KAC1BikD,EAAKkN,SAAQnxD,GAAU,KACvBikD,EAAKmN,UAASpxD,GAAU,KACxBikD,EAAKoN,SAAQrxD,GAAU,KACpBA,CACT,CAGO,EAED,+DAA8D,SAIpDxJ,GAIhBA,EAAO1/E,QAAU,SAAUwnC,GACzB,QAAUvoC,GAANuoC,EAAiB,MAAMpnC,UAAU,wBAA0BonC,GAC/D,OAAOA,CACT,CAGO,EAED,iDAAgD,SAItCk4C,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CAE5D3kD,EAAO1/E,QAAU,SAAUK,EAAKf,GAC9B,IAEEJ,OAAOgY,eAAes6H,EAAQnxI,EAAK,CAAEf,MAAOA,EAAO8kF,cAAc,EAAMC,UAAU,GACnF,CAAE,MAAO3/E,GACP8sI,EAAOnxI,GAAOf,CAChB,CAAE,OAAOA,CACX,CAGO,EAED,wDAAuD,SAI7CogF,EAAQ4rD,EAA0BjH,GAElD,IAAIntH,EAAiBmtH,EAA+D,8DAA8DroD,EAC9IuyC,EAAM8V,EAA4C,2CAGlDiK,EAFkBjK,EAA0D,wDAE5DmH,CAAgB,eAEpC9rD,EAAO1/E,QAAU,SAAUwnC,EAAIgzG,EAAKrG,GAC9B3sG,IAAO+mF,EAAI/mF,EAAK2sG,EAAS3sG,EAAKA,EAAGlnC,UAAWguI,IAC9Cp3H,EAAeswB,EAAI8mG,EAAe,CAAElqD,cAAc,EAAM9kF,MAAOk7I,GAEnE,CAGO,EAED,iDAAgD,SAItC96D,EAAQ4rD,EAA0BjH,GAElD,IAAIgR,EAAShR,EAA+C,8CACxDoW,EAAMpW,EAA4C,2CAElD17H,EAAO0sI,EAAO,QAElB31D,EAAO1/E,QAAU,SAAUK,GACzB,OAAOsI,EAAKtI,KAASsI,EAAKtI,GAAOo6I,EAAIp6I,GACvC,CAGO,EAED,mDAAkD,SAIxCq/E,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxDuP,EAAYvP,EAAmD,kDAE/DqW,EAAS,qBACT1F,EAAQxD,EAAOkJ,IAAW9G,EAAU8G,EAAQ,CAAC,GAEjDh7D,EAAO1/E,QAAUg1I,CAGV,EAED,6CAA4C,SAIlCt1D,EAAQ4rD,EAA0BjH,GAElD,IAAI2L,EAAU3L,EAAgD,+CAC1D2Q,EAAQ3Q,EAAqD,qDAEhE3kD,EAAO1/E,QAAU,SAAUK,EAAKf,GAC/B,OAAO01I,EAAM30I,KAAS20I,EAAM30I,QAAiBpB,IAAVK,EAAsBA,EAAQ,CAAC,EACpE,GAAG,WAAY,IAAIoS,KAAK,CACtB8B,QAAS,SACTgzH,KAAMwJ,EAAU,OAAS,SACzB2K,UAAW,2CAIN,EAED,yDAAwD,SAI9Cj7D,EAAQ4rD,EAA0BjH,GAElD,IAAImJ,EAAQnJ,EAA8C,6CAI1D3kD,EAAO1/E,QAAU,SAAU2tI,GACzB,OAAOH,GAAM,WACX,IAAI7pI,EAAO,GAAGgqI,GAAa,KAC3B,OAAOhqI,IAASA,EAAK07E,eAAiB17E,EAAK6E,MAAM,KAAKzH,OAAS,CACjE,GACF,CAGO,EAED,uDAAsD,SAI5C2+E,EAAQ4rD,EAA0BjH,GAElD,IAAIuW,EAAYvW,EAAmD,kDAC/DtxH,EAAWsxH,EAAkD,iDAC7D0K,EAAyB1K,EAAiE,gEAG1F8H,EAAe,SAAU0O,GAC3B,OAAO,SAAUxO,EAAO5uD,GACtB,IAGI0tB,EAAO+tB,EAHP/3C,EAAIpuE,EAASg8H,EAAuB1C,IACpCnqI,EAAW04I,EAAUn9D,GACrB+vB,EAAOrsB,EAAEpgF,OAEb,OAAImB,EAAW,GAAKA,GAAYsrG,EAAaqtC,EAAoB,QAAK57I,GACtEksG,EAAQhqB,EAAE9zE,WAAWnL,IACN,OAAUipG,EAAQ,OAAUjpG,EAAW,IAAMsrG,IACtD0rB,EAAS/3C,EAAE9zE,WAAWnL,EAAW,IAAM,OAAUg3H,EAAS,MAC1D2hB,EAAoB15D,EAAExE,OAAOz6E,GAAYipG,EACzC0vC,EAAoB15D,EAAElvE,MAAM/P,EAAUA,EAAW,GAA+Bg3H,EAAS,OAAlC/tB,EAAQ,OAAU,IAA0B,KAC3G,CACF,EAEAzrB,EAAO1/E,QAAU,CAGf86I,OAAQ3O,GAAa,GAGrBxvD,OAAQwvD,GAAa,GAIhB,EAED,kDAAiD,SAIvCzsD,EAAQ4rD,EAA0BjH,GAElD,IAAI0K,EAAyB1K,EAAiE,gEAC1FtxH,EAAWsxH,EAAkD,iDAG7D0W,EAAa,IAFC1W,EAAoD,mDAEjC,IACjC2W,EAAQn/D,OAAO,IAAMk/D,EAAaA,EAAa,KAC/CE,EAAQp/D,OAAOk/D,EAAaA,EAAa,MAGzC5O,EAAe,SAAUQ,GAC3B,OAAO,SAAUN,GACf,IAAIzkD,EAAS70E,EAASg8H,EAAuB1C,IAG7C,OAFW,EAAPM,IAAU/kD,EAASA,EAAOjmF,QAAQq5I,EAAO,KAClC,EAAPrO,IAAU/kD,EAASA,EAAOjmF,QAAQs5I,EAAO,KACtCrzD,CACT,CACF,EAEAlI,EAAO1/E,QAAU,CAGf2C,MAAOwpI,EAAa,GAGpBvuD,IAAKuuD,EAAa,GAGlB9sB,KAAM8sB,EAAa,GAId,EAED,wDAAuD,SAI7CzsD,EAAQ4rD,EAA0BjH,GAElD,IAAIuW,EAAYvW,EAAmD,kDAE/D7kD,EAAMD,KAAKC,IACXwD,EAAMzD,KAAKyD,IAKftD,EAAO1/E,QAAU,SAAU8S,EAAO/R,GAChC,IAAI8kH,EAAU+0B,EAAU9nI,GACxB,OAAO+yG,EAAU,EAAIrmC,EAAIqmC,EAAU9kH,EAAQ,GAAKiiF,EAAI6iC,EAAS9kH,EAC/D,CAGO,EAED,wDAAuD,SAI7C2+E,EAAQ4rD,EAA0BjH,GAGlD,IAAImI,EAAgBnI,EAAuD,sDACvE0K,EAAyB1K,EAAiE,gEAE9F3kD,EAAO1/E,QAAU,SAAUwnC,GACzB,OAAOglG,EAAcuC,EAAuBvnG,GAC9C,CAGO,EAED,iDAAgD,SAItCk4C,GAEhB,IAAIqO,EAAOxO,KAAKwO,KACZ1G,EAAQ9H,KAAK8H,MAIjB3H,EAAO1/E,QAAU,SAAU+tI,GACzB,OAAOnpD,MAAMmpD,GAAYA,GAAY,GAAKA,EAAW,EAAI1mD,EAAQ0G,GAAMggD,EACzE,CAGO,EAED,gDAA+C,SAIrCruD,EAAQ4rD,EAA0BjH,GAElD,IAAIuW,EAAYvW,EAAmD,kDAE/DrhD,EAAMzD,KAAKyD,IAIftD,EAAO1/E,QAAU,SAAU+tI,GACzB,OAAOA,EAAW,EAAI/qD,EAAI43D,EAAU7M,GAAW,kBAAoB,CACrE,CAGO,EAED,gDAA+C,SAIrCruD,EAAQ4rD,EAA0BjH,GAElD,IAAI0K,EAAyB1K,EAAiE,gEAI9F3kD,EAAO1/E,QAAU,SAAU+tI,GACzB,OAAO7uI,OAAO6vI,EAAuBhB,GACvC,CAGO,EAED,mDAAkD,SAIxCruD,EAAQ4rD,EAA0BjH,GAElD,IAAIkH,EAAWlH,EAAkD,iDAC7D6W,EAAW7W,EAAkD,iDAC7D8W,EAAsB9W,EAA8D,6DAGpF+W,EAFkB/W,EAA0D,wDAE7DmH,CAAgB,eAInC9rD,EAAO1/E,QAAU,SAAU0B,EAAOi4I,GAChC,IAAKpO,EAAS7pI,IAAUw5I,EAASx5I,GAAQ,OAAOA,EAChD,IACIwnF,EADAmyD,EAAe35I,EAAM05I,GAEzB,QAAqBn8I,IAAjBo8I,EAA4B,CAG9B,QAFap8I,IAAT06I,IAAoBA,EAAO,WAC/BzwD,EAASmyD,EAAa76I,KAAKkB,EAAOi4I,IAC7BpO,EAASriD,IAAWgyD,EAAShyD,GAAS,OAAOA,EAClD,MAAM9oF,UAAU,0CAClB,CAEA,YADanB,IAAT06I,IAAoBA,EAAO,UACxBwB,EAAoBz5I,EAAOi4I,EACpC,CAGO,EAED,sDAAqD,SAI3Cj6D,EAAQ4rD,EAA0BjH,GAElD,IAAIiX,EAAcjX,EAAqD,oDACnE6W,EAAW7W,EAAkD,iDAIjE3kD,EAAO1/E,QAAU,SAAU+tI,GACzB,IAAI1tI,EAAMi7I,EAAYvN,EAAU,UAChC,OAAOmN,EAAS76I,GAAOA,EAAM0C,OAAO1C,EACtC,CAGO,EAED,4DAA2D,SAIjDq/E,EAAQ4rD,EAA0BjH,GAElD,IAGI1gI,EAAO,CAAC,EAEZA,EALsB0gI,EAA0D,wDAE5DmH,CAAgB,gBAGd,IAEtB9rD,EAAO1/E,QAA2B,eAAjB+C,OAAOY,EAGjB,EAED,gDAA+C,SAIrC+7E,EAAQ4rD,EAA0BjH,GAElD,IAAI6W,EAAW7W,EAAkD,iDAEjE3kD,EAAO1/E,QAAU,SAAU+tI,GACzB,GAAImN,EAASnN,GAAW,MAAM3tI,UAAU,6CACxC,OAAO2C,OAAOgrI,EAChB,CAGO,EAED,0CAAyC,SAI/BruD,GAEhB,IAAInrE,EAAK,EACLgnI,EAAUh8D,KAAKi8D,SAEnB97D,EAAO1/E,QAAU,SAAUK,GACzB,MAAO,UAAY0C,YAAe9D,IAARoB,EAAoB,GAAKA,GAAO,QAAUkU,EAAKgnI,GAASxoI,SAAS,GAC7F,CAGO,EAED,wDAAuD,SAI7C2sE,EAAQ4rD,EAA0BjH,GAGlD,IAAIoX,EAAgBpX,EAAsD,qDAE1E3kD,EAAO1/E,QAAUy7I,IACX74D,OAAOyxD,MACkB,iBAAnBzxD,OAAOC,QAGZ,EAED,gEAA+D,SAIrDshD,EAAyBnkI,EAASqkI,GAElD,IAAImH,EAAkBnH,EAA0D,yDAEhFrkI,EAAQg8E,EAAIwvD,CAGL,EAED,wDAAuD,SAI7C9rD,EAAQ4rD,EAA0BjH,GAElD,IAAImN,EAASnN,EAA+C,8CACxDgR,EAAShR,EAA+C,8CACxD9V,EAAM8V,EAA4C,2CAClDoW,EAAMpW,EAA4C,2CAClDoX,EAAgBpX,EAAsD,qDACtEiS,EAAoBjS,EAA0D,yDAE9EqX,EAAwBrG,EAAO,OAC/BzyD,EAAS4uD,EAAO5uD,OAChB+4D,EAAwBrF,EAAoB1zD,EAASA,GAAUA,EAAOg5D,eAAiBnB,EAE3F/6D,EAAO1/E,QAAU,SAAUkH,GAOvB,OANGqnH,EAAImtB,EAAuBx0I,KAAWu0I,GAAuD,iBAA/BC,EAAsBx0I,MACnFu0I,GAAiBltB,EAAI3rC,EAAQ17E,GAC/Bw0I,EAAsBx0I,GAAQ07E,EAAO17E,GAErCw0I,EAAsBx0I,GAAQy0I,EAAsB,UAAYz0I,IAE3Dw0I,EAAsBx0I,EACjC,CAGO,EAED,kDAAiD,SAIvCw4E,GAGhBA,EAAO1/E,QAAU,6HAIV,EAED,oDAAmD,SAIzCmkI,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDmJ,EAAQnJ,EAA8C,6CACtD13C,EAAU03C,EAAiD,gDAC3DkH,EAAWlH,EAAkD,iDAC7DoI,EAAWpI,EAAkD,iDAC7D4H,EAAW5H,EAAkD,iDAC7DwX,EAAiBxX,EAAwD,uDACzEqI,EAAqBrI,EAA6D,4DAClFyX,EAA+BzX,EAAyE,wEACxGmH,EAAkBnH,EAA0D,yDAC5EoJ,EAAapJ,EAA0D,yDAEvE0X,EAAuBvQ,EAAgB,sBACvCwQ,EAAmB,iBACnBC,EAAiC,iCAKjCC,EAA+BzO,GAAc,KAAOD,GAAM,WAC5D,IAAII,EAAQ,GAEZ,OADAA,EAAMmO,IAAwB,EACvBnO,EAAM9pD,SAAS,KAAO8pD,CAC/B,IAEIuO,EAAkBL,EAA6B,UAE/CM,EAAqB,SAAUp7D,GACjC,IAAKuqD,EAASvqD,GAAI,OAAO,EACzB,IAAIq7D,EAAar7D,EAAE+6D,GACnB,YAAsB98I,IAAfo9I,IAA6BA,EAAa1vD,EAAQ3L,EAC3D,EAOA4uD,EAAE,CAAE1vI,OAAQ,QAASmxI,OAAO,EAAMC,QALpB4K,IAAiCC,GAKK,CAElDr4D,OAAQ,SAAgB4a,GACtB,IAGI59F,EAAG09E,EAAGz9E,EAAQsE,EAAK2xF,EAHnBhW,EAAIyrD,EAAS3qI,MACbi1F,EAAI21C,EAAmB1rD,EAAG,GAC1BtuE,EAAI,EAER,IAAK5R,GAAK,EAAGC,EAAS8F,UAAU9F,OAAQD,EAAIC,EAAQD,IAElD,GAAIs7I,EADJplD,GAAW,IAAPl2F,EAAWkgF,EAAIn6E,UAAU/F,IACF,CAEzB,GAAI4R,GADJrN,EAAM4mI,EAASj1C,EAAEj2F,SACHi7I,EAAkB,MAAM57I,UAAU67I,GAChD,IAAKz9D,EAAI,EAAGA,EAAIn5E,EAAKm5E,IAAK9rE,IAAS8rE,KAAKwY,GAAG6kD,EAAe9kD,EAAGrkF,EAAGskF,EAAExY,GACpE,KAAO,CACL,GAAI9rE,GAAKspI,EAAkB,MAAM57I,UAAU67I,GAC3CJ,EAAe9kD,EAAGrkF,IAAKskF,EACzB,CAGF,OADAD,EAAEh2F,OAAS2R,EACJqkF,CACT,GAIK,EAED,sDAAqD,SAI3CrX,EAAQ4rD,EAA0BjH,GAElD,aAEA,IAAI2H,EAAkB3H,EAA0D,yDAC5EiY,EAAmBjY,EAA2D,0DAC9E+K,EAAY/K,EAAkD,iDAC9DwV,EAAsBxV,EAAuD,sDAC7EkY,EAAiBlY,EAAwD,uDAEzEmY,EAAiB,iBACjBC,EAAmB5C,EAAoBxiI,IACvCyiI,EAAmBD,EAAoB5D,UAAUuG,GAYrD98D,EAAO1/E,QAAUu8I,EAAe17I,MAAO,SAAS,SAAU67I,EAAUC,GAClEF,EAAiB36I,KAAM,CACrB8wF,KAAM4pD,EACNt8I,OAAQ8rI,EAAgB0Q,GACxB5pI,MAAO,EACP6pI,KAAMA,GAIV,IAAG,WACD,IAAI1T,EAAQ6Q,EAAiBh4I,MACzB5B,EAAS+oI,EAAM/oI,OACfy8I,EAAO1T,EAAM0T,KACb7pI,EAAQm2H,EAAMn2H,QAClB,OAAK5S,GAAU4S,GAAS5S,EAAOa,QAC7BkoI,EAAM/oI,YAASjB,EACR,CAAEK,WAAOL,EAAWkqF,MAAM,IAEvB,QAARwzD,EAAuB,CAAEr9I,MAAOwT,EAAOq2E,MAAM,GACrC,UAARwzD,EAAyB,CAAEr9I,MAAOY,EAAO4S,GAAQq2E,MAAM,GACpD,CAAE7pF,MAAO,CAACwT,EAAO5S,EAAO4S,IAASq2E,MAAM,EAChD,GAAG,UAKHimD,EAAUwN,UAAYxN,EAAUvuI,MAGhCy7I,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,UAGV,EAED,kDAAiD,SAIvCnY,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDmI,EAAgBnI,EAAuD,sDACvE2H,EAAkB3H,EAA0D,yDAC5EyH,EAAsBzH,EAA+D,8DAErFwY,EAAa,GAAGvrI,KAEhBwrI,EAActQ,GAAiBttI,OAC/B2sI,EAAgBC,EAAoB,OAAQ,KAIhD8D,EAAE,CAAE1vI,OAAQ,QAASmxI,OAAO,EAAMC,OAAQwL,IAAgBjR,GAAiB,CACzEv6H,KAAM,SAAc06G,GAClB,OAAO6wB,EAAWr8I,KAAKwrI,EAAgBlqI,WAAqB7C,IAAd+sH,EAA0B,IAAMA,EAChF,GAIK,EAED,iDAAgD,SAItCmY,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnD0Y,EAAO1Y,EAAwD,uDAAuDnwH,IAQ1H07H,EAAE,CAAE1vI,OAAQ,QAASmxI,OAAO,EAAMC,QAPCjN,EAAyE,uEAElFyX,CAA6B,QAKW,CAChE5nI,IAAK,SAAa63H,GAChB,OAAOgR,EAAKj7I,KAAMiqI,EAAYllI,UAAU9F,OAAS,EAAI8F,UAAU,QAAK5H,EACtE,GAIK,EAED,mDAAkD,SAIxCklI,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDkH,EAAWlH,EAAkD,iDAC7D13C,EAAU03C,EAAiD,gDAC3D6H,EAAkB7H,EAA0D,yDAC5E4H,EAAW5H,EAAkD,iDAC7D2H,EAAkB3H,EAA0D,yDAC5EwX,EAAiBxX,EAAwD,uDACzEmH,EAAkBnH,EAA0D,yDAG5E2Y,EAF+B3Y,EAAyE,uEAElFyX,CAA6B,SAEnDpO,EAAUlC,EAAgB,WAC1ByR,EAAc,GAAGhrI,MACjButE,EAAMD,KAAKC,IAKfowD,EAAE,CAAE1vI,OAAQ,QAASmxI,OAAO,EAAMC,QAAS0L,GAAuB,CAChE/qI,MAAO,SAAetP,EAAOi7E,GAC3B,IAKIs/D,EAAah0D,EAAQx2E,EALrBsuE,EAAIgrD,EAAgBlqI,MACpBf,EAASkrI,EAASjrD,EAAEjgF,QACpBy9E,EAAI0tD,EAAgBvpI,EAAO5B,GAC3Bo8I,EAAMjR,OAAwBjtI,IAAR2+E,EAAoB78E,EAAS68E,EAAK78E,GAG5D,GAAI4rF,EAAQ3L,KAGgB,mBAF1Bk8D,EAAcl8D,EAAE13E,cAEyB4zI,IAAgBr8I,QAAS8rF,EAAQuwD,EAAY58I,WAE3EirI,EAAS2R,IAEE,QADpBA,EAAcA,EAAYxP,MACAwP,OAAcj+I,GAHxCi+I,OAAcj+I,EAKZi+I,IAAgBr8I,YAAyB5B,IAAhBi+I,GAC3B,OAAOD,EAAYz8I,KAAKwgF,EAAGxC,EAAG2+D,GAIlC,IADAj0D,EAAS,SAAqBjqF,IAAhBi+I,EAA4Br8I,MAAQq8I,GAAa19D,EAAI29D,EAAM3+D,EAAG,IACvE9rE,EAAI,EAAG8rE,EAAI2+D,EAAK3+D,IAAK9rE,IAAS8rE,KAAKwC,GAAG66D,EAAe3yD,EAAQx2E,EAAGsuE,EAAExC,IAEvE,OADA0K,EAAOnoF,OAAS2R,EACTw2E,CACT,GAIK,EAED,qDAAoD,SAI1Ci7C,EAAyBmH,EAA0BjH,GAEnE,IAAImL,EAAcnL,EAAoD,mDAClEntH,EAAiBmtH,EAA+D,8DAA8DroD,EAE9IohE,EAAoBl5I,SAAS5D,UAC7B+8I,EAA4BD,EAAkBrqI,SAC9CuqI,EAAS,wBACT/N,EAAO,OAIPC,KAAiBD,KAAQ6N,IAC3BlmI,EAAekmI,EAAmB7N,EAAM,CACtCnrD,cAAc,EACdhtE,IAAK,WACH,IACE,OAAOimI,EAA0B78I,KAAKsB,MAAMg7E,MAAMwgE,GAAQ,EAC5D,CAAE,MAAO54I,GACP,MAAO,EACT,CACF,GAKG,EAED,0DAAyD,SAI/Cy/H,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAImL,EAAcnL,EAAoD,mDAClEmN,EAASnN,EAA+C,8CACxDyP,EAAWzP,EAAkD,iDAC7D0L,EAAW1L,EAAiD,gDAC5D9V,EAAM8V,EAA4C,2CAClDqQ,EAAUrQ,EAAoD,mDAC9DkZ,EAAoBlZ,EAA4D,2DAChF6W,EAAW7W,EAAkD,iDAC7DiX,EAAcjX,EAAqD,oDACnEmJ,EAAQnJ,EAA8C,6CACtDj8C,EAASi8C,EAAsD,qDAC/D2U,EAAsB3U,EAAsE,qEAAqEroD,EACjK6yD,EAA2BxK,EAA2E,0EAA0EroD,EAChL9kE,EAAiBmtH,EAA+D,8DAA8DroD,EAC9IqjC,EAAOglB,EAAoD,mDAAmDhlB,KAE9Gm+B,EAAS,SACTC,EAAejM,EAAOgM,GACtBE,EAAkBD,EAAan9I,UAG/Bq9I,EAAiBjJ,EAAQtsD,EAAOs1D,KAAqBF,EAIrDI,EAAW,SAAU7P,GACvB,GAAImN,EAASnN,GAAW,MAAM3tI,UAAU,6CACxC,IACI+qG,EAAO0yC,EAAOC,EAAOC,EAAShiD,EAAQh7F,EAAQ+R,EAAOxH,EADrDk8B,EAAK8zG,EAAYvN,EAAU,UAE/B,GAAiB,iBAANvmG,GAAkBA,EAAGzmC,OAAS,EAGvC,GAAc,MADdoqG,GADA3jE,EAAK63E,EAAK73E,IACCn6B,WAAW,KACQ,KAAV89F,GAElB,GAAc,MADd0yC,EAAQr2G,EAAGn6B,WAAW,KACQ,MAAVwwI,EAAe,OAAO/6D,SACrC,GAAc,KAAVqoB,EAAc,CACvB,OAAQ3jE,EAAGn6B,WAAW,IACpB,KAAK,GAAI,KAAK,GAAIywI,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQv2G,EAInB,IADAzmC,GADAg7F,EAASv0D,EAAGv1B,MAAM,IACFlR,OACX+R,EAAQ,EAAGA,EAAQ/R,EAAQ+R,IAI9B,IAHAxH,EAAOywF,EAAO1uF,WAAWyF,IAGd,IAAMxH,EAAOyyI,EAAS,OAAOj7D,IACxC,OAAOrE,SAASsd,EAAQ+hD,EAC5B,CACA,OAAQt2G,CACZ,EAIA,GAAIssG,EAAS0J,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAgBqBp9I,EAhBjB29I,EAAgB,SAAgB1+I,GAClC,IAAIkoC,EAAK3gC,UAAU9F,OAAS,EAAI,EAAIzB,EAChCs1I,EAAQ9yI,KACZ,OAAO8yI,aAAiBoJ,IAElBL,EAAiBnQ,GAAM,WAAckQ,EAAgB/6D,QAAQniF,KAAKo0I,EAAQ,IAAKF,EAAQE,IAAU4I,GACjGD,EAAkB,IAAIE,EAAaG,EAASp2G,IAAMotG,EAAOoJ,GAAiBJ,EAASp2G,EAC3F,EACS7+B,EAAO6mI,EAAcwJ,EAAoByE,GAAgB,8LAQhEj1I,MAAM,KAAMu4E,EAAI,EAAQp4E,EAAK5H,OAASggF,EAAGA,IACrCwtC,EAAIkvB,EAAcp9I,EAAMsI,EAAKo4E,MAAQwtC,EAAIyvB,EAAe39I,IAC1D6W,EAAe8mI,EAAe39I,EAAKwuI,EAAyB4O,EAAcp9I,IAG9E29I,EAAc19I,UAAYo9I,EAC1BA,EAAgBp0I,YAAc00I,EAC9BjO,EAASyB,EAAQgM,EAAQQ,EAC3B,CAGO,EAED,qDAAoD,SAI1C7Z,EAAyBmH,EAA0BjH,GAEnE,IAAIuL,EAAIvL,EAA+C,8CACnDpkI,EAASokI,EAAsD,qDAKnEuL,EAAE,CAAE1vI,OAAQ,SAAU6sG,MAAM,EAAMukC,OAAQpyI,OAAOe,SAAWA,GAAU,CACpEA,OAAQA,GAIH,EAED,mDAAkD,SAIxCkkI,EAAyBmH,EAA0BjH,GAEnE,IAAIuL,EAAIvL,EAA+C,8CACnDoI,EAAWpI,EAAkD,iDAC7D4Z,EAAa5Z,EAAoD,mDAOrEuL,EAAE,CAAE1vI,OAAQ,SAAU6sG,MAAM,EAAMukC,OANtBjN,EAA8C,4CAEhCmJ,EAAM,WAAcyQ,EAAW,EAAI,KAII,CAC/Dt1I,KAAM,SAAc6+B,GAClB,OAAOy2G,EAAWxR,EAASjlG,GAC7B,GAIK,EAED,wDAAuD,SAI7C28F,EAAyBmH,EAA0BjH,GAEnE,IAAI+J,EAAwB/J,EAA8D,6DACtF0L,EAAW1L,EAAiD,gDAC5DtxH,EAAWsxH,EAAyD,wDAInE+J,GACH2B,EAAS7wI,OAAOoB,UAAW,WAAYyS,EAAU,CAAEknI,QAAQ,GAItD,EAED,wDAAuD,SAI7C9V,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAI0L,EAAW1L,EAAiD,gDAC5DiT,EAAWjT,EAAkD,iDAC7D6Z,EAAY7Z,EAAkD,iDAC9DmJ,EAAQnJ,EAA8C,6CACtDvpC,EAAQupC,EAAqD,oDAE7D8Z,EAAY,WACZC,EAAkBviE,OAAOv7E,UACzB+9I,EAAiBD,EAAgBD,GAEjCG,EAAc9Q,GAAM,WAAc,MAA2D,QAApD6Q,EAAe79I,KAAK,CAAEL,OAAQ,IAAK26F,MAAO,KAAkB,IAErGyjD,EAAiBF,EAAen3I,MAAQi3I,GAIxCG,GAAeC,IACjBxO,EAASl0D,OAAOv7E,UAAW69I,GAAW,WACpC,IAAIK,EAAIlH,EAASx1I,MACbkH,EAAIk1I,EAAUM,EAAEr+I,QAChBs+I,EAAKD,EAAE1jD,MAEX,MAAO,IAAM9xF,EAAI,IADTk1I,OAAiBj/I,IAAPw/I,GAAoBD,aAAa3iE,UAAY,UAAWuiE,GAAmBtjD,EAAMt6F,KAAKg+I,GAAKC,EAE/G,GAAG,CAAExE,QAAQ,GAIR,EAED,uDAAsD,SAI5C9V,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAI1nD,EAAS0nD,EAAyD,wDAAwD1nD,OAC1H5pE,EAAWsxH,EAAkD,iDAC7DwV,EAAsBxV,EAAuD,sDAC7EkY,EAAiBlY,EAAwD,uDAEzEqa,EAAkB,kBAClBjC,EAAmB5C,EAAoBxiI,IACvCyiI,EAAmBD,EAAoB5D,UAAUyI,GAIrDnC,EAAex5I,OAAQ,UAAU,SAAU25I,GACzCD,EAAiB36I,KAAM,CACrB8wF,KAAM8rD,EACN92D,OAAQ70E,EAAS2pI,GACjB5pI,MAAO,GAIX,IAAG,WACD,IAGIuiH,EAHA4T,EAAQ6Q,EAAiBh4I,MACzB8lF,EAASqhD,EAAMrhD,OACf90E,EAAQm2H,EAAMn2H,MAElB,OAAIA,GAAS80E,EAAO7mF,OAAe,CAAEzB,WAAOL,EAAWkqF,MAAM,IAC7DksC,EAAQ14C,EAAOiL,EAAQ90E,GACvBm2H,EAAMn2H,OAASuiH,EAAMt0H,OACd,CAAEzB,MAAO+1H,EAAOlsC,MAAM,GAC/B,GAGO,EAED,mDAAkD,SAIxCg7C,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDsa,EAAata,EAAoD,mDAKrEuL,EAAE,CAAE1vI,OAAQ,SAAUmxI,OAAO,EAAMC,OAJNjN,EAA2D,yDAI7Cua,CAAuB,SAAW,CAC3ElxB,KAAM,SAAc7e,GAClB,OAAO8vC,EAAW78I,KAAM,IAAK,OAAQ+sG,EACvC,GAIK,EAED,0DAAyD,SAI/Cs1B,EAAyBmH,EAA0BjH,GAEnE,aAIA,IAAIuL,EAAIvL,EAA+C,8CACnDmL,EAAcnL,EAAoD,mDAClEmN,EAASnN,EAA+C,8CACxD9V,EAAM8V,EAA4C,2CAClDkH,EAAWlH,EAAkD,iDAC7DntH,EAAiBmtH,EAA+D,8DAA8DroD,EAC9I63D,EAA4BxP,EAAoE,mEAEhGwa,EAAerN,EAAO5uD,OAE1B,GAAI4sD,GAAsC,mBAAhBqP,MAAiC,gBAAiBA,EAAav+I,iBAExDrB,IAA/B4/I,IAAeC,aACd,CACD,IAAIC,EAA8B,CAAC,EAE/BC,EAAgB,WAClB,IAAIF,EAAcj4I,UAAU9F,OAAS,QAAsB9B,IAAjB4H,UAAU,QAAmB5H,EAAY8D,OAAO8D,UAAU,IAChGqiF,EAASpnF,gBAAgBk9I,EACzB,IAAIH,EAAaC,QAED7/I,IAAhB6/I,EAA4BD,IAAiBA,EAAaC,GAE9D,MADoB,KAAhBA,IAAoBC,EAA4B71D,IAAU,GACvDA,CACT,EACA2qD,EAA0BmL,EAAeH,GACzC,IAAII,EAAkBD,EAAc1+I,UAAYu+I,EAAav+I,UAC7D2+I,EAAgB31I,YAAc01I,EAE9B,IAAIE,EAAiBD,EAAgBlsI,SACjCosI,EAAyC,gBAAhCp8I,OAAO87I,EAAa,SAC7BO,EAAS,wBACbloI,EAAe+nI,EAAiB,cAAe,CAC7C76D,cAAc,EACdhtE,IAAK,WACH,IAAIw/H,EAASrL,EAASzpI,MAAQA,KAAK6gF,UAAY7gF,KAC3C8lF,EAASs3D,EAAe1+I,KAAKo2I,GACjC,GAAIroB,EAAIwwB,EAA6BnI,GAAS,MAAO,GACrD,IAAIyI,EAAOF,EAASv3D,EAAO31E,MAAM,GAAI,GAAK21E,EAAOjmF,QAAQy9I,EAAQ,MACjE,MAAgB,KAATC,OAAcpgJ,EAAYogJ,CACnC,IAGFzP,EAAE,CAAE4B,QAAQ,EAAMF,QAAQ,GAAQ,CAChC1uD,OAAQo8D,GAEZ,CAGO,EAED,uDAAsD,SAI5C7a,EAAyBmH,EAA0BjH,GAEvCA,EAAiE,+DAI7Fib,CAAsB,WAGf,EAED,8CAA6C,SAInCnb,EAAyBmH,EAA0BjH,GAEnE,aAEA,IAAIuL,EAAIvL,EAA+C,8CACnDmN,EAASnN,EAA+C,8CACxDkP,EAAalP,EAAqD,oDAClE2L,EAAU3L,EAAgD,+CAC1DmL,EAAcnL,EAAoD,mDAClEoX,EAAgBpX,EAAsD,qDACtEmJ,EAAQnJ,EAA8C,6CACtD9V,EAAM8V,EAA4C,2CAClD13C,EAAU03C,EAAiD,gDAC3DkH,EAAWlH,EAAkD,iDAC7D6W,EAAW7W,EAAkD,iDAC7DiT,EAAWjT,EAAkD,iDAC7DoI,EAAWpI,EAAkD,iDAC7D2H,EAAkB3H,EAA0D,yDAC5EqL,EAAgBrL,EAAwD,uDACxE6Z,EAAY7Z,EAAkD,iDAC9D6K,EAA2B7K,EAAmE,kEAC9Fkb,EAAqBlb,EAAsD,qDAC3EwS,EAAaxS,EAAoD,mDACjEuV,EAA4BvV,EAAsE,qEAClGmb,EAA8Bnb,EAA+E,8EAC7GyS,EAA8BzS,EAAwE,uEACtGuK,EAAiCvK,EAA2E,0EAC5GoH,EAAuBpH,EAA+D,8DACtF0S,EAA6B1S,EAAsE,qEACnGyL,EAA8BzL,EAAuE,sEACrG0L,EAAW1L,EAAiD,gDAC5DgR,EAAShR,EAA+C,8CACxDiR,EAAYjR,EAAmD,kDAC/DkR,EAAalR,EAAoD,mDACjEoW,EAAMpW,EAA4C,2CAClDmH,EAAkBnH,EAA0D,yDAC5EkN,EAA+BlN,EAAkE,iEACjGib,EAAwBjb,EAAiE,gEACzF8K,EAAiB9K,EAA0D,yDAC3EwV,EAAsBxV,EAAuD,sDAC7EuH,EAAWvH,EAAwD,uDAAuDnjD,QAE1Hu+D,EAASnK,EAAU,UACnBoK,EAAS,SACT/H,EAAY,YACZyD,EAAe5P,EAAgB,eAC/BiR,EAAmB5C,EAAoBxiI,IACvCyiI,EAAmBD,EAAoB5D,UAAUyJ,GACjDtG,EAAkBl6I,OAAOy4I,GACzBpB,EAAU/E,EAAO5uD,OACjB+8D,EAAapM,EAAW,OAAQ,aAChCqM,EAAiChR,EAA+B5yD,EAChE6jE,EAAuBpU,EAAqBzvD,EAC5C8jE,EAA4BN,EAA4BxjE,EACxD+jE,EAA6BhJ,EAA2B/6D,EACxDgkE,EAAa3K,EAAO,WACpB4K,GAAyB5K,EAAO,cAChC6K,GAAyB7K,EAAO,6BAChC8K,GAAyB9K,EAAO,6BAChCqG,GAAwBrG,EAAO,OAC/B+K,GAAU5O,EAAO4O,QAEjBC,IAAcD,KAAYA,GAAQzI,KAAeyI,GAAQzI,GAAW2I,UAGpEC,GAAsB/Q,GAAehC,GAAM,WAC7C,OAES,GAFF+R,EAAmBM,EAAqB,CAAC,EAAG,IAAK,CACtDzoI,IAAK,WAAc,OAAOyoI,EAAqB/9I,KAAM,IAAK,CAAExC,MAAO,IAAK09E,CAAG,KACzEA,CACN,IAAK,SAAUgE,EAAGyH,EAAGmwD,GACnB,IAAI4H,EAA4BZ,EAA+BxG,EAAiB3wD,GAC5E+3D,UAAkCpH,EAAgB3wD,GACtDo3D,EAAqB7+D,EAAGyH,EAAGmwD,GACvB4H,GAA6Bx/D,IAAMo4D,GACrCyG,EAAqBzG,EAAiB3wD,EAAG+3D,EAE7C,EAAIX,EAEAY,GAAO,SAAUjS,EAAKsQ,GACxB,IAAIlI,EAASoJ,EAAWxR,GAAO+Q,EAAmBhJ,EAAQoB,IAO1D,OANA8E,EAAiB7F,EAAQ,CACvBhkD,KAAM8sD,EACNlR,IAAKA,EACLsQ,YAAaA,IAEVtP,IAAaoH,EAAOkI,YAAcA,GAChClI,CACT,EAEI+B,GAAkB,SAAwB33D,EAAGyH,EAAGmwD,GAC9C53D,IAAMo4D,GAAiBT,GAAgBsH,GAAwBx3D,EAAGmwD,GACtEtB,EAASt2D,GACT,IAAI3gF,EAAMqvI,EAAcjnD,GAExB,OADA6uD,EAASsB,GACLrqB,EAAIyxB,EAAY3/I,IACbu4I,EAAWz0D,YAIVoqC,EAAIvtC,EAAGy+D,IAAWz+D,EAAEy+D,GAAQp/I,KAAM2gF,EAAEy+D,GAAQp/I,IAAO,GACvDu4I,EAAa2G,EAAmB3G,EAAY,CAAEz0D,WAAY+qD,EAAyB,GAAG,OAJjF3gB,EAAIvtC,EAAGy+D,IAASI,EAAqB7+D,EAAGy+D,EAAQvQ,EAAyB,EAAG,CAAC,IAClFluD,EAAEy+D,GAAQp/I,IAAO,GAIVkgJ,GAAoBv/D,EAAG3gF,EAAKu4I,IAC9BiH,EAAqB7+D,EAAG3gF,EAAKu4I,EACxC,EAEI8H,GAAoB,SAA0B1/D,EAAGy3D,GACnDnB,EAASt2D,GACT,IAAI2/D,EAAa3U,EAAgByM,GAC7B9vI,EAAOkuI,EAAW8J,GAAY78D,OAAO88D,GAAuBD,IAIhE,OAHA/U,EAASjjI,GAAM,SAAUtI,GAClBmvI,IAAe8J,GAAsB94I,KAAKmgJ,EAAYtgJ,IAAMs4I,GAAgB33D,EAAG3gF,EAAKsgJ,EAAWtgJ,GACtG,IACO2gF,CACT,EAMIs4D,GAAwB,SAA8Bj/B,GACxD,IAAI5xB,EAAIinD,EAAcr1B,GAClBl2B,EAAa47D,EAA2Bv/I,KAAKsB,KAAM2mF,GACvD,QAAI3mF,OAASs3I,GAAmB7qB,EAAIyxB,EAAYv3D,KAAO8lC,EAAI0xB,GAAwBx3D,QAC5EtE,IAAeoqC,EAAIzsH,KAAM2mF,KAAO8lC,EAAIyxB,EAAYv3D,IAAM8lC,EAAIzsH,KAAM29I,IAAW39I,KAAK29I,GAAQh3D,KAAKtE,EACtG,EAEI00D,GAA4B,SAAkC73D,EAAGyH,GACnE,IAAIjhD,EAAKwkG,EAAgBhrD,GACrB3gF,EAAMqvI,EAAcjnD,GACxB,GAAIjhD,IAAO4xG,IAAmB7qB,EAAIyxB,EAAY3/I,IAASkuH,EAAI0xB,GAAwB5/I,GAAnF,CACA,IAAIu3G,EAAagoC,EAA+Bp4G,EAAInnC,GAIpD,OAHIu3G,IAAc2W,EAAIyxB,EAAY3/I,IAAUkuH,EAAI/mF,EAAIi4G,IAAWj4G,EAAGi4G,GAAQp/I,KACxEu3G,EAAWzzB,YAAa,GAEnByzB,CALwF,CAMjG,EAEIkhC,GAAuB,SAA6B93D,GACtD,IAAIq4D,EAAQyG,EAA0B9T,EAAgBhrD,IAClDkI,EAAS,GAIb,OAHA0iD,EAASyN,GAAO,SAAUh5I,GACnBkuH,EAAIyxB,EAAY3/I,IAASkuH,EAAIgnB,EAAYl1I,IAAM6oF,EAAOx3E,KAAKrR,EAClE,IACO6oF,CACT,EAEI03D,GAAyB,SAA+B5/D,GAC1D,IAAI6/D,EAAsB7/D,IAAMo4D,EAC5BC,EAAQyG,EAA0Be,EAAsBZ,GAAyBjU,EAAgBhrD,IACjGkI,EAAS,GAMb,OALA0iD,EAASyN,GAAO,SAAUh5I,IACpBkuH,EAAIyxB,EAAY3/I,IAAUwgJ,IAAuBtyB,EAAI6qB,EAAiB/4I,IACxE6oF,EAAOx3E,KAAKsuI,EAAW3/I,GAE3B,IACO6oF,CACT,EAIKuyD,IACHlF,EAAU,WACR,GAAIz0I,gBAAgBy0I,EAAS,MAAMn2I,UAAU,+BAC7C,IAAI0+I,EAAej4I,UAAU9F,aAA2B9B,IAAjB4H,UAAU,GAA+Bq3I,EAAUr3I,UAAU,SAAhC5H,EAChEuvI,EAAMiM,EAAIqE,GACVrF,EAAS,SAAUn6I,GACjBwC,OAASs3I,GAAiBK,EAAOj5I,KAAKy/I,GAAwB3gJ,GAC9DivH,EAAIzsH,KAAM29I,IAAWlxB,EAAIzsH,KAAK29I,GAASjR,KAAM1sI,KAAK29I,GAAQjR,IAAO,GACrE+R,GAAoBz+I,KAAM0sI,EAAKU,EAAyB,EAAG5vI,GAC7D,EAEA,OADIkwI,GAAe6Q,IAAYE,GAAoBnH,EAAiB5K,EAAK,CAAEpqD,cAAc,EAAM/sE,IAAKoiI,IAC7FgH,GAAKjS,EAAKsQ,EACnB,EAEA/O,EAASwG,EAAQoB,GAAY,YAAY,WACvC,OAAOmC,EAAiBh4I,MAAM0sI,GAChC,IAEAuB,EAASwG,EAAS,iBAAiB,SAAUuI,GAC3C,OAAO2B,GAAKhG,EAAIqE,GAAcA,EAChC,IAEA/H,EAA2B/6D,EAAIs9D,GAC/B7N,EAAqBzvD,EAAI28D,GACzB/J,EAA+B5yD,EAAI68D,GACnCe,EAA0B59D,EAAIwjE,EAA4BxjE,EAAI88D,GAC9DhC,EAA4B96D,EAAI4kE,GAEhCrP,EAA6Bv1D,EAAI,SAAU90E,GACzC,OAAOu5I,GAAKjV,EAAgBtkI,GAAOA,EACrC,EAEIsoI,IAEFqQ,EAAqBtJ,EAAQoB,GAAY,cAAe,CACtDvzD,cAAc,EACdhtE,IAAK,WACH,OAAO0iI,EAAiBh4I,MAAMg9I,WAChC,IAEG9O,GACHD,EAASqJ,EAAiB,uBAAwBE,GAAuB,CAAEW,QAAQ,MAKzFrK,EAAE,CAAE4B,QAAQ,EAAMiP,MAAM,EAAMnP,QAASmK,EAAepH,MAAOoH,GAAiB,CAC5E74D,OAAQ2zD,IAGV3K,EAASiL,EAAW6E,KAAwB,SAAUx0I,GACpDo4I,EAAsBp4I,EACxB,IAEA0oI,EAAE,CAAE1vI,OAAQw/I,EAAQ3yC,MAAM,EAAMukC,QAASmK,GAAiB,CAGxD,IAAO,SAAUp7I,GACf,IAAIunF,EAASs2D,EAAU79I,GACvB,GAAIkuH,EAAI2xB,GAAwBt4D,GAAS,OAAOs4D,GAAuBt4D,GACvE,IAAIgvD,EAASL,EAAQ3uD,GAGrB,OAFAs4D,GAAuBt4D,GAAUgvD,EACjCuJ,GAAuBvJ,GAAUhvD,EAC1BgvD,CACT,EAGAkK,OAAQ,SAAgBC,GACtB,IAAK7F,EAAS6F,GAAM,MAAM3gJ,UAAU2gJ,EAAM,oBAC1C,GAAIxyB,EAAI4xB,GAAwBY,GAAM,OAAOZ,GAAuBY,EACtE,EACAC,UAAW,WAAcX,IAAa,CAAM,EAC5CY,UAAW,WAAcZ,IAAa,CAAO,IAG/CzQ,EAAE,CAAE1vI,OAAQ,SAAU6sG,MAAM,EAAMukC,QAASmK,EAAepH,MAAO7E,GAAe,CAG9EpnD,OA3HY,SAAgBpH,EAAGy3D,GAC/B,YAAsBx5I,IAAfw5I,EAA2B8G,EAAmBv+D,GAAK0/D,GAAkBnB,EAAmBv+D,GAAIy3D,EACrG,EA4HEvhI,eAAgByhI,GAGhBpB,iBAAkBmJ,GAGlB7R,yBAA0BgK,KAG5BjJ,EAAE,CAAE1vI,OAAQ,SAAU6sG,MAAM,EAAMukC,QAASmK,GAAiB,CAG1DzC,oBAAqBF,GAGrBnC,sBAAuBiK,KAKzBhR,EAAE,CAAE1vI,OAAQ,SAAU6sG,MAAM,EAAMukC,OAAQ9D,GAAM,WAAcsJ,EAA4B96D,EAAE,EAAI,KAAM,CACpG26D,sBAAuB,SAA+BnvG,GACpD,OAAOsvG,EAA4B96D,EAAEywD,EAASjlG,GAChD,IAKEm4G,GAWF/P,EAAE,CAAE1vI,OAAQ,OAAQ6sG,MAAM,EAAMukC,QAVHmK,GAAiBjO,GAAM,WAClD,IAAIoJ,EAASL,IAEb,MAA+B,UAAxBoJ,EAAW,CAAC/I,KAEe,MAA7B+I,EAAW,CAAE3iE,EAAG45D,KAEc,MAA9B+I,EAAWzgJ,OAAO03I,GACzB,KAEiE,CAE/DjO,UAAW,SAAmBnhG,EAAI05G,EAAUC,GAI1C,IAHA,IAEIC,EAFA3iD,EAAO,CAACj3D,GACR10B,EAAQ,EAELjM,UAAU9F,OAAS+R,GAAO2rF,EAAK/sF,KAAK7K,UAAUiM,MAErD,GADAsuI,EAAYF,GACP3V,EAAS2V,SAAoBjiJ,IAAPuoC,KAAoB0zG,EAAS1zG,GAMxD,OALKmlD,EAAQu0D,KAAWA,EAAW,SAAU7gJ,EAAKf,GAEhD,GADwB,mBAAb8hJ,IAAyB9hJ,EAAQ8hJ,EAAU5gJ,KAAKsB,KAAMzB,EAAKf,KACjE47I,EAAS57I,GAAQ,OAAOA,CAC/B,GACAm/F,EAAK,GAAKyiD,EACHvB,EAAW/4I,MAAM,KAAM63F,EAChC,IAMC83C,EAAQoB,GAAWyD,IACtBtL,EAA4ByG,EAAQoB,GAAYyD,EAAc7E,EAAQoB,GAAWh1D,SAInFwsD,EAAeoH,EAASmJ,GAExBnK,EAAWkK,IAAU,CAGd,EAED,iEAAgE,SAItDtb,EAAyBmH,EAA0BjH,GAEnE,IAAImN,EAASnN,EAA+C,8CACxDgd,EAAehd,EAAsD,qDACrEnjD,EAAUmjD,EAAuD,sDACjEyL,EAA8BzL,EAAuE,sEAEzG,IAAK,IAAIid,KAAmBD,EAAc,CACxC,IAAIE,EAAa/P,EAAO8P,GACpBE,EAAsBD,GAAcA,EAAWjhJ,UAEnD,GAAIkhJ,GAAuBA,EAAoBtgE,UAAYA,EAAS,IAClE4uD,EAA4B0R,EAAqB,UAAWtgE,EAC9D,CAAE,MAAOx8E,GACP88I,EAAoBtgE,QAAUA,CAChC,CACF,CAGO,EAED,iEAAgE,SAItDijD,EAAyBmH,EAA0BjH,GAEnE,IAAImN,EAASnN,EAA+C,8CACxDgd,EAAehd,EAAsD,qDACrEod,EAAuBpd,EAAwD,uDAC/EyL,EAA8BzL,EAAuE,sEACrGmH,EAAkBnH,EAA0D,yDAE5E8L,EAAW3E,EAAgB,YAC3B8C,EAAgB9C,EAAgB,eAChCkW,EAAcD,EAAqB9jD,OAEvC,IAAK,IAAI2jD,KAAmBD,EAAc,CACxC,IAAIE,EAAa/P,EAAO8P,GACpBE,EAAsBD,GAAcA,EAAWjhJ,UACnD,GAAIkhJ,EAAqB,CAEvB,GAAIA,EAAoBrR,KAAcuR,EAAa,IACjD5R,EAA4B0R,EAAqBrR,EAAUuR,EAC7D,CAAE,MAAOh9I,GACP88I,EAAoBrR,GAAYuR,CAClC,CAIA,GAHKF,EAAoBlT,IACvBwB,EAA4B0R,EAAqBlT,EAAegT,GAE9DD,EAAaC,GAAkB,IAAK,IAAI3T,KAAe8T,EAEzD,GAAID,EAAoB7T,KAAiB8T,EAAqB9T,GAAc,IAC1EmC,EAA4B0R,EAAqB7T,EAAa8T,EAAqB9T,GACrF,CAAE,MAAOjpI,GACP88I,EAAoB7T,GAAe8T,EAAqB9T,EAC1D,CAEJ,CACF,CAGO,EAED,iDAAgD,SAItCjuD,GAWPA,EAAO1/E,QAEP,WAAc,aAEvB,SAAS2hJ,EAAiBthE,GACxB,IAAIuS,SAAcvS,EAClB,OAAa,OAANA,IAAwB,WAATuS,GAA8B,aAATA,EAC7C,CAEA,SAASgvD,EAAWvhE,GAClB,MAAoB,oBAANA,CAChB,CAIA,IASIsM,EARA9rF,MAAM8rF,QACG9rF,MAAM8rF,QAEN,SAAUtM,GACnB,MAA6C,mBAAtCnhF,OAAOoB,UAAUyS,SAASvS,KAAK6/E,EACxC,EAKEh7E,EAAM,EACNw8I,OAAY,EACZC,OAAoB,EAEpBC,EAAO,SAAcx0I,EAAUmxF,GACjCsjD,EAAM38I,GAAOkI,EACby0I,EAAM38I,EAAM,GAAKq5F,EAEL,KADZr5F,GAAO,KAKDy8I,EACFA,EAAkBp/D,GAElBu/D,IAGN,EAEA,SAASC,EAAaC,GACpBL,EAAoBK,CACtB,CAEA,SAASC,EAAQC,GACfN,EAAOM,CACT,CAEA,IAAIC,EAAkC,qBAAX7gE,OAAyBA,YAASxiF,EACzDsjJ,EAAgBD,GAAiB,CAAC,EAClCE,EAA0BD,EAAcj/D,kBAAoBi/D,EAAch/D,uBAC1Ek/D,EAAyB,qBAAT1/D,MAA2C,qBAAZywD,SAAyD,qBAA9B,CAAC,EAAEzgI,SAASvS,KAAKgzI,SAG3FkP,EAAwC,qBAAtBC,mBAA8D,qBAAlBC,eAA2D,qBAAnBC,eAG1G,SAASC,IAGP,OAAO,WACL,OAAOtP,QAAQuP,SAASrgE,EAC1B,CACF,CAGA,SAASsgE,IACP,MAAyB,qBAAdnB,EACF,WACLA,EAAUn/D,EACZ,EAGKugE,GACT,CAEA,SAASC,IACP,IAAIC,EAAa,EACbC,EAAW,IAAIZ,EAAwB9/D,GACvCvgF,EAAOo/E,SAASv6E,eAAe,IAGnC,OAFAo8I,EAAS3/D,QAAQthF,EAAM,CAAEkhJ,eAAe,IAEjC,WACLlhJ,EAAKmE,KAAO68I,IAAeA,EAAa,CAC1C,CACF,CAGA,SAASG,IACP,IAAIC,EAAU,IAAIV,eAElB,OADAU,EAAQC,MAAMC,UAAY/gE,EACnB,WACL,OAAO6gE,EAAQG,MAAMC,YAAY,EACnC,CACF,CAEA,SAASV,IAGP,IAAIW,EAAmBxhE,WACvB,OAAO,WACL,OAAOwhE,EAAiBlhE,EAAO,EACjC,CACF,CAEA,IAAIs/D,EAAQ,IAAInhJ,MAAM,KACtB,SAAS6hF,IACP,IAAK,IAAI5hF,EAAI,EAAGA,EAAIuE,EAAKvE,GAAK,GAI5ByM,EAHey0I,EAAMlhJ,IACXkhJ,EAAMlhJ,EAAI,IAIpBkhJ,EAAMlhJ,QAAK7B,EACX+iJ,EAAMlhJ,EAAI,QAAK7B,EAGjBoG,EAAM,CACR,CAEA,SAASw+I,IACP,IACE,IAAIC,EAAQ5/I,SAAS,cAATA,GAA0BhD,QAAQ,SAE9C,OADA2gJ,EAAYiC,EAAMC,WAAaD,EAAME,aAC9BhB,GACT,CAAE,MAAO1rI,GACP,OAAO2rI,GACT,CACF,CAEA,IAAIhB,OAAgB,EAcpB,SAAS74D,EAAK66D,EAAeC,GAC3B,IAAIl1I,EAASlN,KAETkM,EAAQ,IAAIlM,KAAKwH,YAAY66I,QAEPllJ,IAAtB+O,EAAMo2I,IACRC,EAAYr2I,GAGd,IAAIs2I,EAASt1I,EAAOs1I,OAGpB,GAAIA,EAAQ,CACV,IAAI/2I,EAAW1G,UAAUy9I,EAAS,GAClCvC,GAAK,WACH,OAAOwC,EAAeD,EAAQt2I,EAAOT,EAAUyB,EAAOw1I,QACxD,GACF,MACEC,EAAUz1I,EAAQhB,EAAOi2I,EAAeC,GAG1C,OAAOl2I,CACT,CAiCA,SAAS02I,EAAU3lJ,GAEjB,IAAIm+I,EAAcp7I,KAElB,GAAI/C,GAA4B,kBAAXA,GAAuBA,EAAOuK,cAAgB4zI,EACjE,OAAOn+I,EAGT,IAAI8pI,EAAU,IAAIqU,EAAYiH,GAE9B,OADAv7D,EAAQigD,EAAS9pI,GACV8pI,CACT,CA7EEoZ,EADEQ,EACcK,IACPN,EACOU,IACPR,EACOY,SACWrkJ,IAAlBqjJ,EACOuB,IAEAZ,IAuElB,IAAImB,EAAa7kE,KAAKi8D,SAASzoI,SAAS,IAAI2D,UAAU,GAEtD,SAASytI,IAAQ,CAEjB,IAAIQ,OAAU,EACVC,EAAY,EACZC,EAAW,EAEf,SAASC,IACP,OAAO,IAAI1kJ,UAAU,2CACvB,CAEA,SAAS2kJ,IACP,OAAO,IAAI3kJ,UAAU,uDACvB,CAEA,SAAS4kJ,EAAQC,EAAS3lJ,EAAO4lJ,EAAoBC,GACnD,IACEF,EAAQzkJ,KAAKlB,EAAO4lJ,EAAoBC,EAC1C,CAAE,MAAO7tI,GACP,OAAOA,CACT,CACF,CAEA,SAAS8tI,EAAsBvc,EAASwc,EAAUJ,GAChDlD,GAAK,SAAUlZ,GACb,IAAIyc,GAAS,EACT5gJ,EAAQsgJ,EAAQC,EAASI,GAAU,SAAU/lJ,GAC3CgmJ,IAGJA,GAAS,EACLD,IAAa/lJ,EACfspF,EAAQigD,EAASvpI,GAEjBimJ,EAAQ1c,EAASvpI,GAErB,IAAG,SAAUkmJ,GACPF,IAGJA,GAAS,EAETx8D,EAAO+/C,EAAS2c,GAClB,GAAG,YAAc3c,EAAQ4c,QAAU,sBAE9BH,GAAU5gJ,IACb4gJ,GAAS,EACTx8D,EAAO+/C,EAASnkI,GAEpB,GAAGmkI,EACL,CAEA,SAAS6c,EAAkB7c,EAASwc,GAC9BA,EAASf,SAAWM,EACtBW,EAAQ1c,EAASwc,EAASb,SACjBa,EAASf,SAAWO,EAC7B/7D,EAAO+/C,EAASwc,EAASb,SAEzBC,EAAUY,OAAUpmJ,GAAW,SAAUK,GACvC,OAAOspF,EAAQigD,EAASvpI,EAC1B,IAAG,SAAUkmJ,GACX,OAAO18D,EAAO+/C,EAAS2c,EACzB,GAEJ,CAEA,SAASG,EAAoB9c,EAAS+c,EAAeX,GAC/CW,EAAct8I,cAAgBu/H,EAAQv/H,aAAe27I,IAAY77D,GAAQw8D,EAAct8I,YAAYs/E,UAAY87D,EACjHgB,EAAkB7c,EAAS+c,QAEX3mJ,IAAZgmJ,EACFM,EAAQ1c,EAAS+c,GACRhE,EAAWqD,GACpBG,EAAsBvc,EAAS+c,EAAeX,GAE9CM,EAAQ1c,EAAS+c,EAGvB,CAEA,SAASh9D,EAAQigD,EAASvpI,GACxB,GAAIupI,IAAYvpI,EACdwpF,EAAO+/C,EAASic,UACX,GAAInD,EAAiBriJ,GAAQ,CAClC,IAAI2lJ,OAAU,EACd,IACEA,EAAU3lJ,EAAM8pF,IAClB,CAAE,MAAO1kF,GAEP,YADAokF,EAAO+/C,EAASnkI,EAElB,CACAihJ,EAAoB9c,EAASvpI,EAAO2lJ,EACtC,MACEM,EAAQ1c,EAASvpI,EAErB,CAEA,SAASumJ,EAAiBhd,GACpBA,EAAQid,UACVjd,EAAQid,SAASjd,EAAQ2b,SAG3BuB,EAAQld,EACV,CAEA,SAAS0c,EAAQ1c,EAASvpI,GACpBupI,EAAQyb,SAAWK,IAIvB9b,EAAQ2b,QAAUllJ,EAClBupI,EAAQyb,OAASM,EAEmB,IAAhC/b,EAAQmd,aAAajlJ,QACvBghJ,EAAKgE,EAASld,GAElB,CAEA,SAAS//C,EAAO+/C,EAAS2c,GACnB3c,EAAQyb,SAAWK,IAGvB9b,EAAQyb,OAASO,EACjBhc,EAAQ2b,QAAUgB,EAElBzD,EAAK8D,EAAkBhd,GACzB,CAEA,SAAS4b,EAAUz1I,EAAQhB,EAAOi2I,EAAeC,GAC/C,IAAI8B,EAAeh3I,EAAOg3I,aACtBjlJ,EAASilJ,EAAajlJ,OAG1BiO,EAAO82I,SAAW,KAElBE,EAAajlJ,GAAUiN,EACvBg4I,EAAajlJ,EAAS6jJ,GAAaX,EACnC+B,EAAajlJ,EAAS8jJ,GAAYX,EAEnB,IAAXnjJ,GAAgBiO,EAAOs1I,QACzBvC,EAAKgE,EAAS/2I,EAElB,CAEA,SAAS+2I,EAAQld,GACf,IAAIod,EAAcpd,EAAQmd,aACtBE,EAAUrd,EAAQyb,OAEtB,GAA2B,IAAvB2B,EAAYllJ,OAAhB,CAQA,IAJA,IAAIiN,OAAQ,EACRT,OAAW,EACX44I,EAAStd,EAAQ2b,QAEZ1jJ,EAAI,EAAGA,EAAImlJ,EAAYllJ,OAAQD,GAAK,EAC3CkN,EAAQi4I,EAAYnlJ,GACpByM,EAAW04I,EAAYnlJ,EAAIolJ,GAEvBl4I,EACFu2I,EAAe2B,EAASl4I,EAAOT,EAAU44I,GAEzC54I,EAAS44I,GAIbtd,EAAQmd,aAAajlJ,OAAS,CAjB9B,CAkBF,CAEA,SAASwjJ,EAAe2B,EAASrd,EAASt7H,EAAU44I,GAClD,IAAIC,EAAcxE,EAAWr0I,GACzBjO,OAAQ,EACRoF,OAAQ,EACR2hJ,GAAY,EAEhB,GAAID,EAAa,CACf,IACE9mJ,EAAQiO,EAAS44I,EACnB,CAAE,MAAO7uI,GACP+uI,GAAY,EACZ3hJ,EAAQ4S,CACV,CAEA,GAAIuxH,IAAYvpI,EAEd,YADAwpF,EAAO+/C,EAASkc,IAGpB,MACEzlJ,EAAQ6mJ,EAGNtd,EAAQyb,SAAWK,IAEZyB,GAAeC,EACxBz9D,EAAQigD,EAASvpI,IACM,IAAd+mJ,EACTv9D,EAAO+/C,EAASnkI,GACPwhJ,IAAYtB,EACrBW,EAAQ1c,EAASvpI,GACR4mJ,IAAYrB,GACrB/7D,EAAO+/C,EAASvpI,GAEpB,CAEA,SAASgnJ,EAAkBzd,EAAS5iB,GAClC,IACEA,GAAS,SAAwB3mH,GAC/BspF,EAAQigD,EAASvpI,EACnB,IAAG,SAAuBkmJ,GACxB18D,EAAO+/C,EAAS2c,EAClB,GACF,CAAE,MAAOluI,GACPwxE,EAAO+/C,EAASvxH,EAClB,CACF,CAEA,IAAI/C,EAAK,EACT,SAASgyI,IACP,OAAOhyI,GACT,CAEA,SAAS8vI,EAAYxb,GACnBA,EAAQub,GAAc7vI,IACtBs0H,EAAQyb,YAASrlJ,EACjB4pI,EAAQ2b,aAAUvlJ,EAClB4pI,EAAQmd,aAAe,EACzB,CAEA,SAASQ,IACP,OAAO,IAAIh7I,MAAM,0CACnB,CAEA,IAAIi7I,EAAa,WACf,SAASA,EAAWvJ,EAAax7I,GAC/BI,KAAK4kJ,qBAAuBxJ,EAC5Bp7I,KAAK+mI,QAAU,IAAIqU,EAAYiH,GAE1BriJ,KAAK+mI,QAAQub,IAChBC,EAAYviJ,KAAK+mI,SAGfl8C,EAAQjrF,IACVI,KAAKf,OAASW,EAAMX,OACpBe,KAAK6kJ,WAAajlJ,EAAMX,OAExBe,KAAK0iJ,QAAU,IAAI3jJ,MAAMiB,KAAKf,QAEV,IAAhBe,KAAKf,OACPwkJ,EAAQzjJ,KAAK+mI,QAAS/mI,KAAK0iJ,UAE3B1iJ,KAAKf,OAASe,KAAKf,QAAU,EAC7Be,KAAK8kJ,WAAWllJ,GACQ,IAApBI,KAAK6kJ,YACPpB,EAAQzjJ,KAAK+mI,QAAS/mI,KAAK0iJ,WAI/B17D,EAAOhnF,KAAK+mI,QAAS2d,IAEzB,CA4EA,OA1EAC,EAAWnmJ,UAAUsmJ,WAAa,SAAoBllJ,GACpD,IAAK,IAAIZ,EAAI,EAAGgB,KAAKwiJ,SAAWK,GAAW7jJ,EAAIY,EAAMX,OAAQD,IAC3DgB,KAAK+kJ,WAAWnlJ,EAAMZ,GAAIA,EAE9B,EAEA2lJ,EAAWnmJ,UAAUumJ,WAAa,SAAoB3hC,EAAOpkH,GAC3D,IAAIsM,EAAItL,KAAK4kJ,qBACTI,EAAa15I,EAAEw7E,QAGnB,GAAIk+D,IAAepC,EAAW,CAC5B,IAAIqC,OAAQ,EACRriJ,OAAQ,EACRsiJ,GAAW,EACf,IACED,EAAQ7hC,EAAM97B,IAChB,CAAE,MAAO9xE,GACP0vI,GAAW,EACXtiJ,EAAQ4S,CACV,CAEA,GAAIyvI,IAAU39D,GAAQ87B,EAAMo/B,SAAWK,EACrC7iJ,KAAKmlJ,WAAW/hC,EAAMo/B,OAAQxjJ,EAAGokH,EAAMs/B,cAClC,GAAqB,oBAAVuC,EAChBjlJ,KAAK6kJ,aACL7kJ,KAAK0iJ,QAAQ1jJ,GAAKokH,OACb,GAAI93G,IAAM85I,GAAW,CAC1B,IAAIre,EAAU,IAAIz7H,EAAE+2I,GAChB6C,EACFl+D,EAAO+/C,EAASnkI,GAEhBihJ,EAAoB9c,EAAS3jB,EAAO6hC,GAEtCjlJ,KAAKqlJ,cAActe,EAAS/nI,EAC9B,MACEgB,KAAKqlJ,cAAc,IAAI/5I,GAAE,SAAU05I,GACjC,OAAOA,EAAW5hC,EACpB,IAAIpkH,EAER,MACEgB,KAAKqlJ,cAAcL,EAAW5hC,GAAQpkH,EAE1C,EAEA2lJ,EAAWnmJ,UAAU2mJ,WAAa,SAAoBhe,EAAOnoI,EAAGxB,GAC9D,IAAIupI,EAAU/mI,KAAK+mI,QAGfA,EAAQyb,SAAWK,IACrB7iJ,KAAK6kJ,aAED1d,IAAU4b,EACZ/7D,EAAO+/C,EAASvpI,GAEhBwC,KAAK0iJ,QAAQ1jJ,GAAKxB,GAIE,IAApBwC,KAAK6kJ,YACPpB,EAAQ1c,EAAS/mI,KAAK0iJ,QAE1B,EAEAiC,EAAWnmJ,UAAU6mJ,cAAgB,SAAuBte,EAAS/nI,GACnE,IAAIsmJ,EAAatlJ,KAEjB2iJ,EAAU5b,OAAS5pI,GAAW,SAAUK,GACtC,OAAO8nJ,EAAWH,WAAWrC,EAAW9jJ,EAAGxB,EAC7C,IAAG,SAAUkmJ,GACX,OAAO4B,EAAWH,WAAWpC,EAAU/jJ,EAAG0kJ,EAC5C,GACF,EAEOiB,CACT,CAxGiB,GAyJjB,SAASjlE,EAAI4vD,GACX,OAAO,IAAIqV,EAAW3kJ,KAAMsvI,GAASvI,OACvC,CAmEA,SAASr1E,EAAK49E,GAEZ,IAAI8L,EAAcp7I,KAElB,OAAK6qF,EAAQykD,GAKJ,IAAI8L,GAAY,SAAUt0D,EAASE,GAExC,IADA,IAAI/nF,EAASqwI,EAAQrwI,OACZD,EAAI,EAAGA,EAAIC,EAAQD,IAC1Bo8I,EAAYt0D,QAAQwoD,EAAQtwI,IAAIsoF,KAAKR,EAASE,EAElD,IATO,IAAIo0D,GAAY,SAAU57D,EAAGwH,GAClC,OAAOA,EAAO,IAAI1oF,UAAU,mCAC9B,GASJ,CAoCA,SAASinJ,EAAS7B,GAEhB,IACI3c,EAAU,IADI/mI,KACYqiJ,GAE9B,OADAr7D,EAAO+/C,EAAS2c,GACT3c,CACT,CAEA,SAASye,IACP,MAAM,IAAIlnJ,UAAU,qFACtB,CAEA,SAASmnJ,KACP,MAAM,IAAInnJ,UAAU,wHACtB,CA0GA,IAAI8mJ,GAAY,WACd,SAASr+D,EAAQo9B,GACfnkH,KAAKsiJ,GAAcmC,IACnBzkJ,KAAK0iJ,QAAU1iJ,KAAKwiJ,YAASrlJ,EAC7B6C,KAAKkkJ,aAAe,GAEhB7B,IAASl+B,IACS,oBAAbA,GAA2BqhC,IAClCxlJ,gBAAgB+mF,EAAUy9D,EAAkBxkJ,KAAMmkH,GAAYshC,KAElE,CA2PA,OA/DA1+D,EAAQvoF,UAAU09G,MAAQ,SAAgBkmC,GACxC,OAAOpiJ,KAAKsnF,KAAK,KAAM86D,EACzB,EA0CAr7D,EAAQvoF,UAAUknJ,QAAU,SAAkBj6I,GAC5C,IAAIs7H,EAAU/mI,KACVwH,EAAcu/H,EAAQv/H,YAE1B,OAAIs4I,EAAWr0I,GACNs7H,EAAQz/C,MAAK,SAAU9pF,GAC5B,OAAOgK,EAAYs/E,QAAQr7E,KAAY67E,MAAK,WAC1C,OAAO9pF,CACT,GACF,IAAG,SAAUkmJ,GACX,OAAOl8I,EAAYs/E,QAAQr7E,KAAY67E,MAAK,WAC1C,MAAMo8D,CACR,GACF,IAGK3c,EAAQz/C,KAAK77E,EAAUA,EAChC,EAEOs7E,CACT,CAtQgB,GAkRhB,SAAS4+D,KACP,IAAIC,OAAQ,EAEZ,GAAsB,qBAAXlW,EAAAA,EACTkW,EAAQlW,EAAAA,OACH,GAAoB,qBAATzuD,KAChB2kE,EAAQ3kE,UAER,IACE2kE,EAAQxjJ,SAAS,cAATA,EACV,CAAE,MAAOoT,GACP,MAAM,IAAI9L,MAAM,2EAClB,CAGF,IAAIi9E,EAAIi/D,EAAM7+D,QAEd,GAAIJ,EAAG,CACL,IAAIk/D,EAAkB,KACtB,IACEA,EAAkBzoJ,OAAOoB,UAAUyS,SAASvS,KAAKioF,EAAEG,UACrD,CAAE,MAAOtxE,GACP,CAGF,GAAwB,qBAApBqwI,IAA2Cl/D,EAAEm/D,KAC/C,MAEJ,CAEAF,EAAM7+D,QAAUq+D,EAClB,CAMA,OA/CAA,GAAU5mJ,UAAU8oF,KAAOA,EAC3B89D,GAAU1lE,IAAMA,EAChB0lE,GAAU1zF,KAAOA,EACjB0zF,GAAUt+D,QAAU87D,EACpBwC,GAAUp+D,OAASu+D,EACnBH,GAAUW,cAAgB3F,EAC1BgF,GAAUY,SAAW1F,EACrB8E,GAAUa,MAAQhG,EAqClBmF,GAAUO,SAAWA,GACrBP,GAAUr+D,QAAUq+D,GAEbA,EAEP,CAvoC0BnjB,EA8oCnB,EAED,YAAa,SAIHrkD,GAEhB,aACAA,EAAO1/E,QAAUikI,CAEV,EAED,MAAO,SAIGvkD,GAEhB,aACAA,EAAO1/E,QAAUgkI,CAEV,GAKOgkB,EAA2B,CAAC,EAGhC,SAAS3jB,EAAoB4jB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBhpJ,IAAjBipJ,EACH,OAAOA,EAAaloJ,QAGrB,IAAI0/E,EAASsoE,EAAyBC,GAAY,CAGjDjoJ,QAAS,CAAC,GAOX,OAHAkkI,EAAoB+jB,GAAUznJ,KAAKk/E,EAAO1/E,QAAS0/E,EAAQA,EAAO1/E,QAASqkI,GAGpE3kD,EAAO1/E,OACf,CAMCqkI,EAAoB3xH,EAAI,SAASgtE,GAChC,IAAIyoE,EAASzoE,GAAUA,EAAOG,WAC7B,WAAa,OAAOH,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA2kD,EAAoBrkD,EAAEmoE,EAAQ,CAAEnrE,EAAGmrE,IAC5BA,CACR,EAMA9jB,EAAoBrkD,EAAI,SAAShgF,EAASooJ,GACzC,IAAI,IAAI/nJ,KAAO+nJ,EACX/jB,EAAoB1kD,EAAEyoE,EAAY/nJ,KAASgkI,EAAoB1kD,EAAE3/E,EAASK,IAC5EnB,OAAOgY,eAAelX,EAASK,EAAK,CAAE8jF,YAAY,EAAM/sE,IAAKgxI,EAAW/nJ,IAG3E,EAKAgkI,EAAoB1kD,EAAI,SAASgmD,EAAK5zE,GAAQ,OAAO7yD,OAAOoB,UAAUC,eAAeC,KAAKmlI,EAAK5zE,EAAO,EAMtGsyE,EAAoBliD,EAAI,SAASniF,GACX,qBAAX4iF,QAA0BA,OAAOylE,aAC1CnpJ,OAAOgY,eAAelX,EAAS4iF,OAAOylE,YAAa,CAAE/oJ,MAAO,WAE7DJ,OAAOgY,eAAelX,EAAS,aAAc,CAAEV,OAAO,GACvD,EAIX,IAAI8kI,EAAsB,CAAC,EA2CjB,OAzCT,WACD,aAIAC,EAAoBliD,EAAEiiD,GACD,IAAIkkB,EAA0CjkB,EAAuC,mBAiBtGkkB,GAhB4ElkB,EAAoD,gCACtDA,EAAkD,8BAClDA,EAAkD,8BAcjH,SAASkkB,EAASz/I,EAAK87H,GAEpC,IAAI4jB,EAAS,IAAID,EAAS/f,OAAO5D,GAEjC,OAAI97H,EAEK0/I,EAAOz+D,KAAKjhF,GAAKoyH,OAGjBstB,CAEX,GAEAD,EAAS/f,OAAS8f,EAAwCxoE,QAE7BskD,EAA6B,QAAKmkB,CAC/D,CAvCC,GAwCDnkB,EAAsBA,EAAoBtkD,OAEjC,CA9tLQ,EAguLjB,EAxuLEJ,EAAO1/E,QAAU+jI,EAAQ7iI,EAAQ,MAAUA,EAAQ,oCCPrD,QAoEEunJ,EAAO,CACL,QACA,QACA,cAGD,KAFE,EAAF,SAAWC,EAAaC,EAAcC,GACrC,OA1BJ,SAAsBF,EAAaC,EAAcC,GAE/C,IAAIC,EAAW,SAAS//I,EAAKo2E,GAC3B,OAAOwpE,EAAYA,YAAY5/I,EAAKo2E,EACtC,EAYA,OATA2pE,EAASC,GAAKJ,EAAYA,YAC1BG,EAASh/B,IAAM8+B,EAAaA,aAC5BE,EAASpR,KAAOmR,EAAcA,cAG9BC,EAASH,YAAcA,EAAYA,YACnCG,EAASF,aAAeA,EAAaA,aACrCE,EAASD,cAAgBA,EAAcA,cAEhCC,CACT,CASWE,CAAaL,EAAaC,EAAcC,EAChD,2CC1EH,OAgEC,WAGD,IAAII,GACK,WACC,aACA,IAAI9kB,EAAuB,CAq4BrC,WAj4BgBxkD,GA+BhB,SAASupE,EAAWj6I,GAClBlN,KAAKonJ,SAAWl6I,EAChBlN,KAAKqnJ,kBAAoB,EAEzBrnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKunJ,kBAAoB,EACzBvnJ,KAAKwnJ,mBAAqB,EAC1BxnJ,KAAKynJ,6BAA+B,EACpCznJ,KAAK0nJ,2BAA6B,EAClC1nJ,KAAK2nJ,6BAA+B,EAEpC3nJ,KAAK4nJ,QAAU,EACjB,CAoIA,SAASC,EAAkB9nJ,EAAS+nJ,GAClC9nJ,KAAK+nJ,QAAU,CAAC,IAChB/nJ,KAAKgoJ,cAAgBjoJ,EAAQkoJ,YAC7BjoJ,KAAKkoJ,gBAAkBnoJ,EAAQooJ,YAC1BpoJ,EAAQqoJ,mBACXpoJ,KAAKkoJ,gBAAkB,IAAInpJ,MAAMgB,EAAQkoJ,YAAc,GAAGz4I,KAAKzP,EAAQooJ,cAIzEL,EAAmBA,GAAoB,GACnC/nJ,EAAQsoJ,aAAe,IACzBP,EAAmB,IAAI/oJ,MAAMgB,EAAQsoJ,aAAe,GAAG74I,KAAKxP,KAAKkoJ,kBAGnEloJ,KAAKsoJ,cAAgBR,EACrB9nJ,KAAKuoJ,qBAAuBT,EAAiB7oJ,MAC/C,CAgDA,SAASupJ,EAAOzoJ,EAAS+nJ,GACvB9nJ,KAAKyoJ,eAAiB,IAAIZ,EAAkB9nJ,EAAS+nJ,GACrD9nJ,KAAK0oJ,KAAM,EACX1oJ,KAAK2oJ,kBAAoB5oJ,EAAQ6oJ,iBACjC5oJ,KAAKioJ,YAAcloJ,EAAQkoJ,YAC3BjoJ,KAAK6oJ,iBAAmB9oJ,EAAQ8oJ,iBAChC7oJ,KAAK8oJ,mBAAqB/oJ,EAAQ+oJ,mBAClC9oJ,KAAK+oJ,QAAU,GACf/oJ,KAAKgpJ,cAAgB,KACrBhpJ,KAAKipJ,aAAe,KACpBjpJ,KAAKkpJ,UAAY,IAAI/B,EAAWnnJ,MAChCA,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,EAE9BrpJ,KAAKspJ,kBACP,CAlNAnC,EAAW3oJ,UAAU+qJ,YAAc,WACjC,IAAI12C,EAAO,IAAIs0C,EAAWnnJ,KAAKonJ,UAE/B,OADAv0C,EAAK22C,WAAWxpJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnC10C,CACT,EAEAs0C,EAAW3oJ,UAAUU,KAAO,SAAS8R,GACnC,OAAIA,EAAQ,EACHhR,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS+R,GAEnChR,KAAK4nJ,QAAQ52I,EAExB,EAEAm2I,EAAW3oJ,UAAUirJ,UAAY,SAAS7sB,GACxC,IAAK,IAAI8sB,EAAoB1pJ,KAAK4nJ,QAAQ3oJ,OAAS,EAAGyqJ,GAAqB,EAAGA,IAC5E,GAAI1pJ,KAAK4nJ,QAAQ8B,GAAmB1uE,MAAM4hD,GACxC,OAAO,EAGX,OAAO,CACT,EAEAuqB,EAAW3oJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAC7C5pJ,KAAK6pJ,aACP7pJ,KAAKsnJ,eAAiBqC,GAAU,EAChC3pJ,KAAKunJ,kBAAoBqC,GAAa,EACtC5pJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAAS0C,gBAAgB9pJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBAErF,EAEAJ,EAAW3oJ,UAAUurJ,gBAAkB,WACjC/pJ,KAAKonJ,SAASyB,mBAChB7oJ,KAAKwnJ,mBAAqBxnJ,KAAK4nJ,QAAQ3oJ,OACvCe,KAAKynJ,6BAA+BznJ,KAAKqnJ,kBACzCrnJ,KAAK0nJ,0BAA4B1nJ,KAAKonJ,SAAS8B,UAAU5B,eACzDtnJ,KAAK2nJ,6BAA+B3nJ,KAAKonJ,SAAS8B,UAAU3B,kBAEhE,EAEAJ,EAAW3oJ,UAAUwrJ,aAAe,WAClC,OAAOhqJ,KAAKwnJ,oBACVxnJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAASyB,kBACvC7oJ,KAAKynJ,6BAA+BznJ,KAAKonJ,SAAS8B,UAAU7B,iBAChE,EAEAF,EAAW3oJ,UAAUyrJ,YAAc,WACjC,GAAIjqJ,KAAKgqJ,eAAgB,CACvBhqJ,KAAKonJ,SAAS8C,eACd,IAAI59I,EAAOtM,KAAKonJ,SAAS6B,aAYzB,OAXA38I,EAAKk9I,WAAWxpJ,KAAK0nJ,0BAA2B1nJ,KAAK2nJ,8BACrDr7I,EAAKs7I,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAMnQ,KAAKwnJ,oBACvCxnJ,KAAK4nJ,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAM,EAAGnQ,KAAKwnJ,oBAE1Cl7I,EAAK+6I,mBAAqBrnJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BACxDznJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BAEN,MAApBn7I,EAAKs7I,QAAQ,KACft7I,EAAKs7I,QAAQhtD,OAAO,EAAG,GACvBtuF,EAAK+6I,mBAAqB,IAErB,CACT,CACA,OAAO,CACT,EAEAF,EAAW3oJ,UAAUqrJ,SAAW,WAC9B,OAA+B,IAAxB7pJ,KAAK4nJ,QAAQ3oJ,MACtB,EAEAkoJ,EAAW3oJ,UAAU8qG,KAAO,WAC1B,OAAKtpG,KAAK6pJ,WAGD,KAFA7pJ,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS,EAI9C,EAEAkoJ,EAAW3oJ,UAAUoR,KAAO,SAAS1Q,GACnCc,KAAK4nJ,QAAQh4I,KAAK1Q,GAClB,IAAIirJ,EAAqBjrJ,EAAK08E,YAAY,OACd,IAAxBuuE,EACFnqJ,KAAKqnJ,kBAAoBnoJ,EAAKD,OAASkrJ,EAEvCnqJ,KAAKqnJ,mBAAqBnoJ,EAAKD,MAEnC,EAEAkoJ,EAAW3oJ,UAAU6+E,IAAM,WACzB,IAAIn+E,EAAO,KAKX,OAJKc,KAAK6pJ,aACR3qJ,EAAOc,KAAK4nJ,QAAQvqE,MACpBr9E,KAAKqnJ,mBAAqBnoJ,EAAKD,QAE1BC,CACT,EAGAioJ,EAAW3oJ,UAAU4rJ,eAAiB,WAChCpqJ,KAAKsnJ,eAAiB,IACxBtnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKqnJ,mBAAqBrnJ,KAAKonJ,SAASa,YAE5C,EAEAd,EAAW3oJ,UAAU6rJ,oBAAsB,WACrCrqJ,KAAK0nJ,0BAA4B,IACnC1nJ,KAAK0nJ,2BAA6B,EAEtC,EACAP,EAAW3oJ,UAAU++G,KAAO,WAC1B,KAAuB,MAAhBv9G,KAAKspG,QACVtpG,KAAK4nJ,QAAQvqE,MACbr9E,KAAKqnJ,mBAAqB,CAE9B,EAEAF,EAAW3oJ,UAAUyS,SAAW,WAC9B,IAAIm2E,EAAS,GASb,OARIpnF,KAAK6pJ,WACH7pJ,KAAKonJ,SAAS0B,qBAChB1hE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,kBAGhDlgE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnEngE,GAAUpnF,KAAK4nJ,QAAQp4I,KAAK,KAEvB43E,CACT,EAoBAygE,EAAkBrpJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAC7D,IAAInjE,EAASpnF,KAAKuoJ,qBAOlB,OANAgC,EAASA,GAAU,EACfZ,EAAS,IACXviE,EAAS,GAEXA,GAAUuiE,EAAS3pJ,KAAKgoJ,cACxB5gE,GAAUmjE,CAEZ,EAEA1C,EAAkBrpJ,UAAU8rJ,kBAAoB,SAASjC,EAAckC,GACrE,IAAInjE,EAASpnF,KAAKsoJ,cASlB,OARAiC,EAASA,GAAU,EACflC,EAAe,IACjBA,EAAe,EACfjhE,EAAS,IAEXmjE,GAAUlC,EAAeroJ,KAAKgoJ,cAC9BhoJ,KAAKwqJ,eAAeD,GACpBnjE,GAAUpnF,KAAK+nJ,QAAQwC,EAEzB,EAEA1C,EAAkBrpJ,UAAUgsJ,eAAiB,SAASD,GACpD,KAAOA,GAAUvqJ,KAAK+nJ,QAAQ9oJ,QAC5Be,KAAKyqJ,cAET,EAEA5C,EAAkBrpJ,UAAUisJ,aAAe,WACzC,IAAIF,EAASvqJ,KAAK+nJ,QAAQ9oJ,OACtB0qJ,EAAS,EACTviE,EAAS,GACTpnF,KAAKgoJ,eAAiBuC,GAAUvqJ,KAAKgoJ,gBAEvCuC,IADAZ,EAASlsE,KAAK8H,MAAMglE,EAASvqJ,KAAKgoJ,gBACfhoJ,KAAKgoJ,cACxB5gE,EAAS,IAAIroF,MAAM4qJ,EAAS,GAAGn6I,KAAKxP,KAAKkoJ,kBAEvCqC,IACFnjE,GAAU,IAAIroF,MAAMwrJ,EAAS,GAAG/6I,KAAK,MAGvCxP,KAAK+nJ,QAAQn4I,KAAKw3E,EACpB,EAoBAohE,EAAOhqJ,UAAU8qJ,iBAAmB,WAClCtpJ,KAAKgpJ,cAAgBhpJ,KAAKipJ,aAC1BjpJ,KAAKipJ,aAAejpJ,KAAKkpJ,UAAUK,cACnCvpJ,KAAK+oJ,QAAQn5I,KAAK5P,KAAKipJ,aACzB,EAEAT,EAAOhqJ,UAAUksJ,gBAAkB,WACjC,OAAO1qJ,KAAK+oJ,QAAQ9pJ,MACtB,EAEAupJ,EAAOhqJ,UAAU8rJ,kBAAoB,SAASX,EAAQY,GACpD,OAAOvqJ,KAAKyoJ,eAAe6B,kBAAkBX,EAAQY,EACvD,EAEA/B,EAAOhqJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAClD,OAAOvqJ,KAAKyoJ,eAAeqB,gBAAgBH,EAAQY,EACrD,EAEA/B,EAAOhqJ,UAAUqrJ,SAAW,WAC1B,OAAQ7pJ,KAAKgpJ,eAAiBhpJ,KAAKipJ,aAAaY,UAClD,EAEArB,EAAOhqJ,UAAU0rJ,aAAe,SAASS,GAGvC,QAAI3qJ,KAAK6pJ,aACLc,GAAiB3qJ,KAAK4qJ,wBAMrB5qJ,KAAK0oJ,KACR1oJ,KAAKspJ,oBAEA,EACT,EAEAd,EAAOhqJ,UAAUqsJ,SAAW,SAASC,GACnC9qJ,KAAKu9G,MAAK,GAIV,IAAIwtC,EAAY/qJ,KAAKipJ,aAAa5rE,MAC9B0tE,IACsC,OAApCA,EAAUA,EAAU9rJ,OAAS,KAC/B8rJ,EAAYA,EAAUlrJ,QAAQ,QAAS,KAEzCG,KAAKipJ,aAAar5I,KAAKm7I,IAGrB/qJ,KAAK2oJ,mBACP3oJ,KAAKspJ,mBAGP,IAAI0B,EAAahrJ,KAAK+oJ,QAAQv5I,KAAK,MAKnC,MAHY,OAARs7I,IACFE,EAAaA,EAAWnrJ,QAAQ,QAASirJ,IAEpCE,CACT,EAEAxC,EAAOhqJ,UAAUysJ,eAAiB,WAChCjrJ,KAAKipJ,aAAac,iBACpB,EAEAvB,EAAOhqJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAQ7C,OAPAD,EAASA,GAAU,EACnBC,EAAYA,GAAa,EAGzB5pJ,KAAKkpJ,UAAUM,WAAWG,EAAQC,GAG9B5pJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxBe,KAAKipJ,aAAaO,WAAWG,EAAQC,IAC9B,IAGT5pJ,KAAKipJ,aAAaO,cACX,EACT,EAEAhB,EAAOhqJ,UAAU0sJ,cAAgB,SAASvyD,GACxC,IAAK,IAAIpa,EAAI,EAAGA,EAAIoa,EAAMwyD,SAAU5sE,IAClCv+E,KAAKspJ,mBAEPtpJ,KAAKipJ,aAAaO,YAAY,GAC9BxpJ,KAAKipJ,aAAar5I,KAAK+oF,EAAMyyD,mBAC7BprJ,KAAKipJ,aAAar5I,KAAK+oF,EAAM9jF,MAC7B7U,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,CAChC,EAEAb,EAAOhqJ,UAAU6sJ,UAAY,SAASC,GACpCtrJ,KAAKurJ,2BACLvrJ,KAAKipJ,aAAar5I,KAAK07I,GACvBtrJ,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,uBAAyBrpJ,KAAKipJ,aAAagB,aAClD,EAEAzB,EAAOhqJ,UAAU+sJ,yBAA2B,WACtCvrJ,KAAKmpJ,qBAAuBnpJ,KAAK4qJ,uBAC9B5qJ,KAAKopJ,oBACRppJ,KAAKirJ,iBAEPjrJ,KAAKipJ,aAAar5I,KAAK,KAE3B,EAEA44I,EAAOhqJ,UAAUgtJ,cAAgB,SAASx6I,GAExC,IADA,IAAIy6I,EAAgBzrJ,KAAK+oJ,QAAQ9pJ,OAC1B+R,EAAQy6I,GACbzrJ,KAAK+oJ,QAAQ/3I,GAAOo5I,iBACpBp5I,IAEFhR,KAAKipJ,aAAaoB,qBACpB,EAEA7B,EAAOhqJ,UAAU++G,KAAO,SAASmuC,GAK/B,IAJAA,OAAiCvuJ,IAAjBuuJ,GAAsCA,EAEtD1rJ,KAAKipJ,aAAa1rC,OAEXmuC,GAAgB1rJ,KAAK+oJ,QAAQ9pJ,OAAS,GAC3Ce,KAAKipJ,aAAaY,YAClB7pJ,KAAK+oJ,QAAQ1rE,MACbr9E,KAAKipJ,aAAejpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACvDe,KAAKipJ,aAAa1rC,OAGpBv9G,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ9pJ,OAAS,EACzCe,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GAAK,IAC5C,EAEAupJ,EAAOhqJ,UAAUosJ,mBAAqB,WACpC,OAAO5qJ,KAAKipJ,aAAaY,UAC3B,EAEArB,EAAOhqJ,UAAUmtJ,qBAAuB,WACtC,OAAO3rJ,KAAK6pJ,YACT7pJ,KAAKipJ,aAAaY,YAAc7pJ,KAAKgpJ,cAAca,UACxD,EAEArB,EAAOhqJ,UAAUotJ,wBAA0B,SAASC,EAAaC,GAE/D,IADA,IAAI96I,EAAQhR,KAAK+oJ,QAAQ9pJ,OAAS,EAC3B+R,GAAS,GAAG,CACjB,IAAI+6I,EAAqB/rJ,KAAK+oJ,QAAQ/3I,GACtC,GAAI+6I,EAAmBlC,WACrB,MACK,GAAwD,IAApDkC,EAAmB7sJ,KAAK,GAAG6N,QAAQ8+I,IAC5CE,EAAmB7sJ,MAAM,KAAO4sJ,EAAW,CAC3C9rJ,KAAK+oJ,QAAQnuD,OAAO5pF,EAAQ,EAAG,EAAG,IAAIm2I,EAAWnnJ,OACjDA,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxD,KACF,CACA+R,GACF,CACF,EAEA4sE,EAAO1/E,QAAQsqJ,OAASA,CAGjB,EAAE,CAAF,WAKS5qE,GAgChB,SAASouE,EAAQjsJ,EAASksJ,GACxBjsJ,KAAKksJ,YAAcC,EAAWpsJ,EAASksJ,GAGvCjsJ,KAAKosJ,SAAWpsJ,KAAKqsJ,aAAa,YAElCrsJ,KAAK8qJ,IAAM9qJ,KAAKssJ,gBAAgB,MAAO,QACvCtsJ,KAAK4oJ,iBAAmB5oJ,KAAKqsJ,aAAa,oBAC1CrsJ,KAAKioJ,YAAcjoJ,KAAKusJ,YAAY,cAAe,GACnDvsJ,KAAKmoJ,YAAcnoJ,KAAKssJ,gBAAgB,cAAe,KACvDtsJ,KAAKqoJ,aAAeroJ,KAAKusJ,YAAY,gBAErCvsJ,KAAKwsJ,kBAAoBxsJ,KAAKqsJ,aAAa,qBAAqB,GAChErsJ,KAAKysJ,sBAAwBzsJ,KAAKusJ,YAAY,wBAAyB,OAClEvsJ,KAAKwsJ,oBACRxsJ,KAAKysJ,sBAAwB,GAG/BzsJ,KAAKooJ,iBAAmBpoJ,KAAKqsJ,aAAa,mBAAyC,OAArBrsJ,KAAKmoJ,aAC/DnoJ,KAAKooJ,mBACPpoJ,KAAKmoJ,YAAc,KASM,IAArBnoJ,KAAKioJ,cACPjoJ,KAAKioJ,YAAc,IAKvBjoJ,KAAK6oJ,iBAAmB7oJ,KAAKusJ,YAAY,mBAAoBvsJ,KAAKusJ,YAAY,aAE9EvsJ,KAAK8oJ,mBAAqB9oJ,KAAKqsJ,aAAa,sBAK5CrsJ,KAAK0sJ,WAAa1sJ,KAAK2sJ,oBAAoB,aAAc,CAAC,OAAQ,OAAQ,UAAW,SAAU,MAAO,aAAc,MAAO,UAAW,CAAC,QACzI,CAsFA,SAASR,EAAWS,EAAYC,GAC9B,IAEIznJ,EAFA0nJ,EAAY,CAAC,EAIjB,IAAK1nJ,KAHLwnJ,EAAaG,EAAeH,GAItBxnJ,IAASynJ,IACXC,EAAU1nJ,GAAQwnJ,EAAWxnJ,IAKjC,GAAIynJ,GAAkBD,EAAWC,GAC/B,IAAKznJ,KAAQwnJ,EAAWC,GACtBC,EAAU1nJ,GAAQwnJ,EAAWC,GAAgBznJ,GAGjD,OAAO0nJ,CACT,CAEA,SAASC,EAAehtJ,GACtB,IACIxB,EADAyuJ,EAAgB,CAAC,EAGrB,IAAKzuJ,KAAOwB,EAAS,CAEnBitJ,EADazuJ,EAAIsB,QAAQ,KAAM,MACPE,EAAQxB,EAClC,CACA,OAAOyuJ,CACT,CAjHAhB,EAAQxtJ,UAAUyuJ,WAAa,SAAS7nJ,EAAM8nJ,GAC5C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAQ9B,MAP4B,kBAAjBC,EACY,OAAjBA,GAAwD,oBAAxBA,EAAanrE,SAC/CoF,EAAS+lE,EAAanrE,UAES,kBAAjBmrE,IAChB/lE,EAAS+lE,EAAazmJ,MAAM,uBAEvB0gF,CACT,EAEA4kE,EAAQxtJ,UAAU6tJ,aAAe,SAASjnJ,EAAM8nJ,GAC9C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAEpC,YAD8BjI,IAAjBgwJ,IAA+BD,IAAkBC,CAEhE,EAEAnB,EAAQxtJ,UAAU8tJ,gBAAkB,SAASlnJ,EAAM8nJ,GACjD,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAI9B,MAH4B,kBAAjBC,IACT/lE,EAAS+lE,EAAattJ,QAAQ,MAAO,MAAMA,QAAQ,MAAO,MAAMA,QAAQ,MAAO,OAE1EunF,CACT,EAEA4kE,EAAQxtJ,UAAU+tJ,YAAc,SAASnnJ,EAAM8nJ,GAC7C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GACpC8nJ,EAAgBvwE,SAASuwE,EAAe,IACpCpqE,MAAMoqE,KACRA,EAAgB,GAElB,IAAI9lE,EAASzK,SAASwwE,EAAc,IAIpC,OAHIrqE,MAAMsE,KACRA,EAAS8lE,GAEJ9lE,CACT,EAEA4kE,EAAQxtJ,UAAU4uJ,eAAiB,SAAShoJ,EAAMioJ,EAAgBH,GAChE,IAAI9lE,EAASpnF,KAAK2sJ,oBAAoBvnJ,EAAMioJ,EAAgBH,GAC5D,GAAsB,IAAlB9lE,EAAOnoF,OACT,MAAM,IAAIyK,MACR,qCAAuCtE,EAAO,+CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,EAAO,EAChB,EAGA4kE,EAAQxtJ,UAAUmuJ,oBAAsB,SAASvnJ,EAAMioJ,EAAgBH,GACrE,IAAKG,GAA4C,IAA1BA,EAAepuJ,OACpC,MAAM,IAAIyK,MAAM,mCAIlB,GADAwjJ,EAAgBA,GAAiB,CAACG,EAAe,KAC5CrtJ,KAAKstJ,oBAAoBJ,EAAeG,GAC3C,MAAM,IAAI3jJ,MAAM,0BAGlB,IAAI09E,EAASpnF,KAAKitJ,WAAW7nJ,EAAM8nJ,GACnC,IAAKltJ,KAAKstJ,oBAAoBlmE,EAAQimE,GACpC,MAAM,IAAI3jJ,MACR,qCAAuCtE,EAAO,6CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,CACT,EAEA4kE,EAAQxtJ,UAAU8uJ,oBAAsB,SAASlmE,EAAQimE,GACvD,OAAOjmE,EAAOnoF,QAAUouJ,EAAepuJ,SACpCmoF,EAAOwvB,MAAK,SAAS13G,GAAQ,OAAyC,IAAlCmuJ,EAAetgJ,QAAQ7N,EAAc,GAC9E,EAuCA0+E,EAAO1/E,QAAQ8tJ,QAAUA,EACzBpuE,EAAO1/E,QAAQqvJ,cAAgBR,EAC/BnvE,EAAO1/E,QAAQsvJ,UAAYrB,CAGpB,EAAE,CAAF,SAGSvuE,GAgChB,IAAI6vE,EAAoB1zE,OAAOv7E,UAAUC,eAAe,UAExD,SAASivJ,EAAaC,GACpB3tJ,KAAK4tJ,QAAUD,GAAgB,GAC/B3tJ,KAAK6tJ,eAAiB7tJ,KAAK4tJ,QAAQ3uJ,OACnCe,KAAK8tJ,WAAa,CACpB,CAEAJ,EAAalvJ,UAAUuvJ,QAAU,WAC/B/tJ,KAAK8tJ,WAAa,CACpB,EAEAJ,EAAalvJ,UAAUwvJ,KAAO,WACxBhuJ,KAAK8tJ,WAAa,IACpB9tJ,KAAK8tJ,YAAc,EAEvB,EAEAJ,EAAalvJ,UAAUyvJ,QAAU,WAC/B,OAAOjuJ,KAAK8tJ,WAAa9tJ,KAAK6tJ,cAChC,EAEAH,EAAalvJ,UAAU8N,KAAO,WAC5B,IAAI85H,EAAM,KAKV,OAJIpmI,KAAKiuJ,YACP7nB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO76E,KAAK8tJ,YAC/B9tJ,KAAK8tJ,YAAc,GAEd1nB,CACT,EAEAsnB,EAAalvJ,UAAU0vJ,KAAO,SAASl9I,GACrC,IAAIo1H,EAAM,KAMV,OALAp1H,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aACD,GAAK98I,EAAQhR,KAAK6tJ,iBAC7BznB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO7pE,IAErBo1H,CACT,EASAsnB,EAAalvJ,UAAU2vJ,QAAU,SAASvxB,EAAS5rH,GACjD4rH,EAAQzxH,UAAY6F,EACpB,IAAIo9I,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAQtC,OANIQ,GAAmBX,GAAqB7wB,EAAQ6b,QAC9C2V,EAAcp9I,QAAUA,IAC1Bo9I,EAAgB,MAIbA,CACT,EAEAV,EAAalvJ,UAAUqD,KAAO,SAAS+6H,EAAS5rH,GAI9C,OAHAA,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aAED,GAAK98I,EAAQhR,KAAK6tJ,kBACpB7tJ,KAAKmuJ,QAAQvxB,EAAS5rH,EAInC,EAEA08I,EAAalvJ,UAAU6vJ,SAAW,SAASzxB,EAAS5rH,GAElD,IAAIo1H,EAAMpmI,KAAKkuJ,KAAKl9I,GAEpB,OADA4rH,EAAQzxH,UAAY,EACL,OAARi7H,GAAgBxJ,EAAQ/6H,KAAKukI,EACtC,EAEAsnB,EAAalvJ,UAAUw8E,MAAQ,SAAS4hD,GACtC,IAAIwxB,EAAgBpuJ,KAAKmuJ,QAAQvxB,EAAS58H,KAAK8tJ,YAM/C,OALIM,EACFpuJ,KAAK8tJ,YAAcM,EAAc,GAAGnvJ,OAEpCmvJ,EAAgB,KAEXA,CACT,EAEAV,EAAalvJ,UAAUi6F,KAAO,SAAS61D,EAAkBC,EAAeC,GACtE,IACIxzE,EADAorD,EAAM,GAWV,OATIkoB,IACFtzE,EAAQh7E,KAAKg7E,MAAMszE,MAEjBloB,GAAOprD,EAAM,KAGbuzE,IAAkBvzE,GAAUszE,IAC9BloB,GAAOpmI,KAAKyuJ,UAAUF,EAAeC,IAEhCpoB,CACT,EAEAsnB,EAAalvJ,UAAUiwJ,UAAY,SAAS7xB,EAAS4xB,GACnD,IAAIpoB,EACAsoB,EAAc1uJ,KAAK8tJ,WACvBlxB,EAAQzxH,UAAYnL,KAAK8tJ,WACzB,IAAIM,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAYtC,OAXIQ,GACFM,EAAcN,EAAcp9I,MACxBw9I,IACFE,GAAeN,EAAc,GAAGnvJ,SAGlCyvJ,EAAc1uJ,KAAK6tJ,eAGrBznB,EAAMpmI,KAAK4tJ,QAAQh5I,UAAU5U,KAAK8tJ,WAAYY,GAC9C1uJ,KAAK8tJ,WAAaY,EACXtoB,CACT,EAEAsnB,EAAalvJ,UAAUmwJ,eAAiB,SAAS/xB,GAC/C,OAAO58H,KAAKyuJ,UAAU7xB,GAAS,EACjC,EAEA8wB,EAAalvJ,UAAUowJ,WAAa,SAAShyB,EAASiyB,GACpD,IAAIznE,EAAS,KACT4R,EAAQ,IAWZ,OAVI61D,GAAcpB,IAChBz0D,EAAQ,KAGa,kBAAZ4jC,GAAoC,KAAZA,EAEjCx1C,EAAS,IAAIrN,OAAO6iD,EAAS5jC,GACpB4jC,IACTx1C,EAAS,IAAIrN,OAAO6iD,EAAQv+H,OAAQ26F,IAE/B5R,CACT,EAEAsmE,EAAalvJ,UAAUswJ,mBAAqB,SAASC,GACnD,OAAOh1E,OAAOg1E,EAAelvJ,QAAQ,yBAA0B,QACjE,EAGA6tJ,EAAalvJ,UAAUwwJ,eAAiB,SAASpyB,GAC/C,IAAI/7H,EAAQb,KAAK8tJ,WACb1nB,EAAMpmI,KAAK2uJ,eAAe/xB,GAE9B,OADA58H,KAAK8tJ,WAAajtJ,EACXulI,CACT,EAEAsnB,EAAalvJ,UAAUywJ,SAAW,SAASC,GACzC,IAAIruJ,EAAQb,KAAK8tJ,WAAa,EAC9B,OAAOjtJ,GAASquJ,EAAQjwJ,QAAUe,KAAK4tJ,QAAQh5I,UAAU/T,EAAQquJ,EAAQjwJ,OAAQ4B,GAC9E08E,gBAAkB2xE,CACvB,EAEAtxE,EAAO1/E,QAAQwvJ,aAAeA,CAGvB,EAAE,CAAF,YAMS9vE,GAgChB,SAASuxE,EAAWC,EAAqBC,GACvCD,EAAqD,kBAAxBA,EAAmCA,EAAsBA,EAAoB/wJ,OAC1GgxJ,EAAiD,kBAAtBA,EAAiCA,EAAoBA,EAAkBhxJ,OAClG2B,KAAKsvJ,2BAA6B,IAAIv1E,OAAOq1E,EAAsB,0BAA0B/wJ,OAASgxJ,EAAmB,KACzHrvJ,KAAKuvJ,oBAAsB,kBAE3BvvJ,KAAKwvJ,gCAAkC,IAAIz1E,OAAOq1E,EAAsB,2BAA2B/wJ,OAASgxJ,EAAmB,IACjI,CAEAF,EAAW3wJ,UAAUixJ,eAAiB,SAAS56I,GAC7C,IAAKA,EAAKmmE,MAAMh7E,KAAKsvJ,4BACnB,OAAO,KAGT,IAAII,EAAa,CAAC,EAClB1vJ,KAAKuvJ,oBAAoBpkJ,UAAY,EAGrC,IAFA,IAAIwkJ,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAE7C86I,GACLD,EAAWC,EAAgB,IAAMA,EAAgB,GACjDA,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAGlD,OAAO66I,CACT,EAEAP,EAAW3wJ,UAAUoxJ,YAAc,SAAShwJ,GAC1C,OAAOA,EAAM+uJ,eAAe3uJ,KAAKwvJ,gCACnC,EAGA5xE,EAAO1/E,QAAQixJ,WAAaA,CAGrB,EAAE,CAAF,SAGSvxE,EAAQ4rD,EAA0BjH,GAgClD,IAAIstB,EAActtB,EAAoB,IAAIstB,WACxC7D,EAAWzpB,EAAoB,IAAIypB,QAOrCpuE,EAAO1/E,QALP,SAAsB4xJ,EAAa/vJ,GAEjC,OADiB,IAAI8vJ,EAAWC,EAAa/vJ,GAC3BgnJ,UACpB,EAGAnpE,EAAO1/E,QAAQ6xJ,eAAiB,WAC9B,OAAO,IAAI/D,CACb,CAGO,WAESpuE,EAAQ4rD,EAA0BjH,GAgClD,IAAIypB,EAAWzpB,EAAoB,IAAIypB,QACnCxD,EAAUjmB,EAAoB,GAAGimB,OACjCkF,EAAgBnrB,EAAoB,GAAGmrB,aAGvCsC,EAAkB,IAAIb,EAFR5sB,EAAoB,IAAI4sB,YAEL,OAAQ,QAEzC/+D,EAAY,cACZ6/D,EAAgB,eAGhBC,EAAiB,KACjBC,EAAoB,cACpBC,EAAwB,gCACxBC,EAAkB,gCAEtB,SAASR,EAAWC,EAAa/vJ,GAC/BC,KAAKswJ,aAAeR,GAAe,GAGnC9vJ,KAAKusH,SAAW,IAAIy/B,EAAQjsJ,GAC5BC,KAAKuwJ,IAAM,KACXvwJ,KAAKwwJ,OAAS,KAGdxwJ,KAAKywJ,eAAiB,CACpB,MAAQ,EACR,aAAa,EACb,WAAa,EAEb,OAAS,EACT,UAAY,EACZ,UAAY,GAEdzwJ,KAAK0wJ,uBAAyB,CAC5B,OAAS,EACT,UAAY,EACZ,UAAY,GAEd1wJ,KAAK2wJ,+BAAiC,CACpC,sBACA,gBAGJ,CAEAd,EAAWrxJ,UAAUoyJ,UAAY,SAASC,GACxC,IAAIzpE,EAAS,GAEb,IADApnF,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,OAChBtM,KAAKuwJ,KAAK,CAEf,GADAnpE,GAAUpnF,KAAKuwJ,IACE,OAAbvwJ,KAAKuwJ,IACPnpE,GAAUpnF,KAAKwwJ,OAAOlkJ,YACjB,IAAoC,IAAhCukJ,EAAS9jJ,QAAQ/M,KAAKuwJ,MAA4B,OAAbvwJ,KAAKuwJ,IACnD,MAEFvwJ,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,MACzB,CACA,OAAO86E,CACT,EAMAyoE,EAAWrxJ,UAAUsyJ,cAAgB,SAASC,GAG5C,IAFA,IAAI3pE,EAAS8oE,EAAeruJ,KAAK7B,KAAKwwJ,OAAOtC,QACzC8C,EAAgB,EACbd,EAAeruJ,KAAK7B,KAAKwwJ,OAAOtC,SACrCluJ,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,OACnBykJ,GAAuC,OAAb/wJ,KAAKuwJ,MACX,IAAlBS,GAAuBA,EAAgBhxJ,KAAKusH,SAASkgC,yBACvDuE,IACAhxJ,KAAKixJ,QAAQ/G,cAAa,IAIhC,OAAO9iE,CACT,EAKAyoE,EAAWrxJ,UAAU0yJ,uBAAyB,WAI5C,IAHA,IAAIC,EAAY,EACZnyJ,EAAI,EACJ4F,EAAK5E,KAAKwwJ,OAAOtC,KAAKlvJ,GACnB4F,GAAI,CACT,GAAW,MAAPA,EACF,OAAO,EACF,GAAW,MAAPA,EAETusJ,GAAa,OACR,GAAW,MAAPvsJ,EAAY,CACrB,GAAkB,IAAdusJ,EACF,OAAO,EAETA,GAAa,CACf,MAAO,GAAW,MAAPvsJ,GAAqB,MAAPA,EACvB,OAAO,EAET5F,IACA4F,EAAK5E,KAAKwwJ,OAAOtC,KAAKlvJ,EACxB,CACA,OAAO,CACT,EAEA6wJ,EAAWrxJ,UAAU4yJ,aAAe,SAASC,GAC3CrxJ,KAAKixJ,QAAQzH,WAAWxpJ,KAAKsxJ,cAC7BtxJ,KAAKixJ,QAAQ7H,oBAAqB,EAClCppJ,KAAKixJ,QAAQ5F,UAAUgG,EACzB,EAEAxB,EAAWrxJ,UAAU+yJ,oBAAsB,SAASC,GAC9CA,IACFxxJ,KAAKixJ,QAAQ9H,oBAAqB,EAEtC,EAEA0G,EAAWrxJ,UAAUmrJ,OAAS,WAC5B3pJ,KAAKsxJ,cACP,EAEAzB,EAAWrxJ,UAAUizJ,QAAU,WACzBzxJ,KAAKsxJ,aAAe,GACtBtxJ,KAAKsxJ,cAET,EAIAzB,EAAWrxJ,UAAUuoJ,SAAW,WAC9B,GAAI/mJ,KAAKusH,SAAS6/B,SAChB,OAAOpsJ,KAAKswJ,aAGd,IAAIR,EAAc9vJ,KAAKswJ,aACnBxF,EAAM9qJ,KAAKusH,SAASu+B,IACZ,SAARA,IACFA,EAAM,KACFgF,GAAe1/D,EAAUvuF,KAAKiuJ,GAAe,MAC/ChF,EAAMgF,EAAY90E,MAAMoV,GAAW,KASvC,IAAI03D,GAHJgI,EAAcA,EAAYjwJ,QAAQowJ,EAAe,OAGdj1E,MAAM,WAAW,GAEpDh7E,KAAKixJ,QAAU,IAAIzI,EAAOxoJ,KAAKusH,SAAUu7B,GACzC9nJ,KAAKwwJ,OAAS,IAAI9C,EAAaoC,GAC/B9vJ,KAAKsxJ,aAAe,EACpBtxJ,KAAK0xJ,aAAe,EAEpB1xJ,KAAKuwJ,IAAM,KAgBX,IAfA,IAYIiB,EACAG,EAbAC,EAAa,EAEbC,GAAa,EAGbC,GAAsB,EACtBC,GAA2B,EAC3BC,GAAwB,EACxBC,GAAgB,EAChBC,EAAelyJ,KAAKuwJ,IACpB4B,GAA2B,EAO7BX,EAA8B,KADjBxxJ,KAAKwwJ,OAAO/3D,KAAK03D,GAE9BwB,EAAcO,EACdlyJ,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,OACN,OAAbtM,KAAKuwJ,KAAgBvwJ,KAAKwwJ,OAAOvC,YACnCjuJ,KAAKuwJ,KAAOvwJ,KAAKwwJ,OAAOlkJ,QAE1B4lJ,EAAelyJ,KAAKuwJ,IAEfvwJ,KAAKuwJ,KAEH,GAAiB,MAAbvwJ,KAAKuwJ,KAAsC,MAAvBvwJ,KAAKwwJ,OAAOtC,OAAgB,CAMzDluJ,KAAKixJ,QAAQ/G,eACblqJ,KAAKwwJ,OAAOxC,OAEZ,IAAI1oJ,EAAUtF,KAAKwwJ,OAAO/3D,KAAK23D,GAG3BV,EAAaM,EAAgBP,eAAenqJ,GAC5CoqJ,GAAoC,UAAtBA,EAAW0C,SAC3B9sJ,GAAW0qJ,EAAgBJ,YAAY5vJ,KAAKwwJ,SAG9CxwJ,KAAKoxJ,aAAa9rJ,GAGlBtF,KAAK8wJ,eAAc,GAInB9wJ,KAAKixJ,QAAQ/G,cACf,MAAO,GAAiB,MAAblqJ,KAAKuwJ,KAAsC,MAAvBvwJ,KAAKwwJ,OAAOtC,OAIzCluJ,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAKwwJ,OAAOxC,OACZhuJ,KAAKoxJ,aAAapxJ,KAAKwwJ,OAAO/3D,KAAK43D,IAGnCrwJ,KAAK8wJ,eAAc,QACd,GAAiB,MAAb9wJ,KAAKuwJ,IAAa,CAC3BvwJ,KAAKuxJ,oBAAoBC,GAEzBxxJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KAGvB,IAAI9d,EAAWzyI,KAAKwwJ,OAAOxB,eAAe,uBAEtCvc,EAASz3D,MAAM,WAEjBy3D,EAAWzyI,KAAK4wJ,UAAU,MAAM/wJ,QAAQ,OAAQ,IAChDG,KAAKoxJ,aAAa3e,GAClBzyI,KAAKixJ,QAAQ9H,oBAAqB,GAIjB,IAAfyI,IAA+C,IAA3Bnf,EAAS1lI,QAAQ,OACvC+kJ,GAAsB,EACtB9xJ,KAAK2pJ,SAET,MAAO,GAAiB,MAAb3pJ,KAAKuwJ,IAId,GAHAvwJ,KAAKuxJ,oBAAoBC,GAGE,MAAvBxxJ,KAAKwwJ,OAAOtC,OACdluJ,KAAKoxJ,aAAapxJ,KAAKuwJ,IAAMvwJ,KAAK4wJ,UAAU,UACvC,CACL5wJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KAGvB,IAAI8B,EAAiBryJ,KAAKwwJ,OAAOxB,eAAe,uBAE5CqD,EAAer3E,MAAM,WAEvBq3E,EAAiBryJ,KAAK4wJ,UAAU,MAAM/wJ,QAAQ,OAAQ,IACtDG,KAAKoxJ,aAAaiB,GAClBryJ,KAAKixJ,QAAQ9H,oBAAqB,GAIjB,IAAfyI,IAAqD,IAAjCS,EAAetlJ,QAAQ,MAC7C+kJ,GAAsB,EACtB9xJ,KAAK2pJ,UAGI0I,KAAkBryJ,KAAKywJ,gBAChCzwJ,KAAK0xJ,cAAgB,EACjBW,KAAkBryJ,KAAK0wJ,yBACzBqB,GAA2B,IAIL,IAAfH,GAAqBE,IAC9BE,GAAwB,EAE5B,MACK,GAAiB,MAAbhyJ,KAAKuwJ,KAAsC,MAAvBvwJ,KAAKwwJ,OAAOtC,OACzCluJ,KAAKuxJ,oBAAoBC,GACzBxxJ,KAAKoxJ,aAAapxJ,KAAKuwJ,IAAMvwJ,KAAK4wJ,UAAU,WACvC,GAAiB,MAAb5wJ,KAAKuwJ,IACVuB,IACFA,GAAsB,EACtB9xJ,KAAKyxJ,WAIPO,GAAwB,EAGpBD,GACFA,GAA2B,EAC3BF,EAAc7xJ,KAAKsxJ,cAAgBtxJ,KAAK0xJ,cAGxCG,EAAc7xJ,KAAKsxJ,cAAgBtxJ,KAAK0xJ,aAAe,EAErD1xJ,KAAKusH,SAAS+lC,uBAAyBT,GACrC7xJ,KAAKixJ,QAAQjI,eAAyD,MAAxChpJ,KAAKixJ,QAAQjI,cAAc9pJ,MAAM,IACjEc,KAAKixJ,QAAQrF,wBAAwB,IAAK,KAI9C5rJ,KAAKixJ,QAAQ9H,oBAAqB,EAGA,WAA9BnpJ,KAAKusH,SAASgmC,aAChBvyJ,KAAKixJ,QAAQ/G,eACblqJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK2pJ,SACL3pJ,KAAKixJ,QAAQzH,WAAWxpJ,KAAKsxJ,gBAGT,MAAhBK,EACF3xJ,KAAKixJ,QAAQ9H,oBAAqB,EACT,MAAhBwI,GACT3xJ,KAAK2pJ,SAEP3pJ,KAAKoxJ,aAAapxJ,KAAKuwJ,MAGzBvwJ,KAAK8wJ,eAAc,GACnB9wJ,KAAKixJ,QAAQ/G,oBACR,GAAiB,MAAblqJ,KAAKuwJ,IACdvwJ,KAAKyxJ,UACLzxJ,KAAKixJ,QAAQ/G,eACO,MAAhByH,GACF3xJ,KAAKixJ,QAAQ1zC,MAAK,GAGhBu0C,IACF9xJ,KAAKyxJ,UACLK,GAAsB,GAExB9xJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBsB,GAAa,EACT7xJ,KAAK0xJ,cACP1xJ,KAAK0xJ,eAGP1xJ,KAAK8wJ,eAAc,GACnB9wJ,KAAKixJ,QAAQ/G,eAETlqJ,KAAKusH,SAAS+lC,wBAA0BtyJ,KAAKixJ,QAAQtF,wBAC5B,MAAvB3rJ,KAAKwwJ,OAAOtC,QACdluJ,KAAKixJ,QAAQ/G,cAAa,GAGH,MAAvBlqJ,KAAKwwJ,OAAOtC,SACdluJ,KAAKixJ,QAAQ1zC,MAAK,GACgB,WAA9Bv9G,KAAKusH,SAASgmC,aAChBvyJ,KAAKixJ,QAAQ/G,cAAa,SAGzB,GAAiB,MAAblqJ,KAAKuwJ,IAAa,CAE3B,IAAK,IAAIvxJ,EAAI,EAAGA,EAAIgB,KAAK2wJ,+BAA+B1xJ,OAAQD,IAC9D,GAAIgB,KAAKwwJ,OAAOvB,SAASjvJ,KAAK2wJ,+BAA+B3xJ,IAAK,CAChEmzJ,GAA2B,EAC3B,KACF,EAGGN,IAAcE,GAA+B/xJ,KAAKwwJ,OAAOvB,SAAS,MAAQjvJ,KAAKkxJ,0BAA8BlxJ,KAAKwwJ,OAAOvB,SAAS,MAAS+C,GAAwC,IAAfJ,GAgBnK5xJ,KAAKwwJ,OAAOvB,SAAS,OACvBjvJ,KAAKixJ,QAAQ9H,oBAAqB,GAET,MAAvBnpJ,KAAKwwJ,OAAOtC,QAEdluJ,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,OACvBtM,KAAKoxJ,aAAa,OAGlBpxJ,KAAKoxJ,aAAa,OArBpBpxJ,KAAKoxJ,aAAa,KACbU,IACHA,GAAsB,EACtB9xJ,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAK8wJ,eAAc,GACnB9wJ,KAAK2pJ,UAmBX,MAAO,GAAiB,MAAb3pJ,KAAKuwJ,KAA4B,MAAbvwJ,KAAKuwJ,IAAc,CAChD,IAAIiC,EAAqC,MAAhBb,GAAuC,MAAhBA,EAChD3xJ,KAAKuxJ,oBAAoBiB,GAAsBhB,GAC/CxxJ,KAAKoxJ,aAAapxJ,KAAKuwJ,IAAMvwJ,KAAK4wJ,UAAU5wJ,KAAKuwJ,MACjDvwJ,KAAK8wJ,eAAc,EACrB,MAAO,GAAiB,MAAb9wJ,KAAKuwJ,IACd4B,GAA2B,EACR,IAAfP,GACEE,IACF9xJ,KAAKyxJ,UACLK,GAAsB,GAExBE,GAAwB,EACxBhyJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK8wJ,eAAc,GAMQ,MAAvB9wJ,KAAKwwJ,OAAOtC,QACdluJ,KAAKixJ,QAAQ/G,iBAGflqJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK8wJ,eAAc,GACnB9wJ,KAAKixJ,QAAQ9H,oBAAqB,QAE/B,GAAiB,MAAbnpJ,KAAKuwJ,IACd,GAAIvwJ,KAAKwwJ,OAAOvB,SAAS,OACvBjvJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK8wJ,gBACLc,IACA5xJ,KAAK2pJ,SACL3pJ,KAAKuwJ,IAAMvwJ,KAAKwwJ,OAAOlkJ,OACN,MAAbtM,KAAKuwJ,KAA4B,MAAbvwJ,KAAKuwJ,KAA4B,MAAbvwJ,KAAKuwJ,IAC/CvwJ,KAAKwwJ,OAAOxC,OACHhuJ,KAAKuwJ,MACdvwJ,KAAKoxJ,aAAapxJ,KAAKuwJ,IAAMvwJ,KAAK4wJ,UAAU,MACxCgB,IACFA,IACA5xJ,KAAKyxJ,gBAGJ,CACL,IAAIgB,GAAe,EACfzyJ,KAAKwwJ,OAAOvB,SAAS,UAEvBwD,GAAe,GAEjBzyJ,KAAKuxJ,oBAAoBC,GAAgBiB,GACzCzyJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KAGnBuB,GAAuC,MAAhBH,GAAuB3xJ,KAAKusH,SAASmmC,4BAC9D1yJ,KAAKixJ,QAAQ/G,eACb+H,GAAgB,IAEhBjyJ,KAAK8wJ,gBACLc,IACA5xJ,KAAK2pJ,SAET,MACK,GAAiB,MAAb3pJ,KAAKuwJ,IACVqB,IACFA,IACA5xJ,KAAKyxJ,WAEHQ,GAAwC,MAAvBjyJ,KAAKwwJ,OAAOtC,QAAkBluJ,KAAKusH,SAASmmC,6BAC/DT,GAAgB,EAChBjyJ,KAAKyxJ,UACLzxJ,KAAKixJ,QAAQ/G,gBAEflqJ,KAAKoxJ,aAAapxJ,KAAKuwJ,UAClB,GAAiB,MAAbvwJ,KAAKuwJ,IACdvwJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK8wJ,eAAc,IACf9wJ,KAAKusH,SAASmmC,4BAAgCZ,IAAuBG,GAAiC,IAAfL,GAAqBI,EAG9GhyJ,KAAKixJ,QAAQ9H,oBAAqB,EAFlCnpJ,KAAKixJ,QAAQ/G,oBAIV,GAAkB,MAAblqJ,KAAKuwJ,KAA4B,MAAbvwJ,KAAKuwJ,KAA4B,MAAbvwJ,KAAKuwJ,KAAiBuB,GAAsC,IAAfF,EAc1F,GAAiB,MAAb5xJ,KAAKuwJ,IACdvwJ,KAAKoxJ,aAAapxJ,KAAKuwJ,UAClB,GAAiB,MAAbvwJ,KAAKuwJ,IACdvwJ,KAAKuxJ,oBAAoBC,GACzBxxJ,KAAKoxJ,aAAapxJ,KAAKuwJ,UAClB,GAAiB,MAAbvwJ,KAAKuwJ,IACdvwJ,KAAK8wJ,gBACL9wJ,KAAKoxJ,aAAa,KACdlB,EAAeruJ,KAAK7B,KAAKuwJ,OAC3BvwJ,KAAKuwJ,IAAM,SAER,GAAiB,MAAbvwJ,KAAKuwJ,KAAgBvwJ,KAAKwwJ,OAAOvB,SAAS,MAG9C,CACL,IAAI0D,EAAqC,MAAhBhB,GAAuC,MAAhBA,EAChD3xJ,KAAKuxJ,oBAAoBoB,GAAsBnB,GAC/CxxJ,KAAKoxJ,aAAapxJ,KAAKuwJ,MAElBvwJ,KAAKixJ,QAAQrG,sBAA+C,OAAvB5qJ,KAAKwwJ,OAAOtC,QAAmBiE,GACvEnyJ,KAAKixJ,QAAQ/G,cAEjB,MAVElqJ,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAKoxJ,aAAapxJ,KAAKuwJ,UAzBnBvwJ,KAAKusH,SAASqmC,yBAChB5yJ,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAKixJ,QAAQ9H,oBAAqB,IAElCnpJ,KAAKoxJ,aAAapxJ,KAAKuwJ,KACvBvwJ,KAAK8wJ,gBAED9wJ,KAAKuwJ,KAAOL,EAAeruJ,KAAK7B,KAAKuwJ,OACvCvwJ,KAAKuwJ,IAAM,KA8BnB,OAFgBvwJ,KAAKixJ,QAAQpG,SAASC,EAGxC,EAEAltE,EAAO1/E,QAAQ2xJ,WAAaA,CAGrB,WAESjyE,EAAQ4rD,EAA0BjH,GAgClD,IAAIswB,EAAetwB,EAAoB,GAAGypB,QAE1C,SAASA,EAAQjsJ,GACf8yJ,EAAYn0J,KAAKsB,KAAMD,EAAS,OAEhCC,KAAK0yJ,2BAA6B1yJ,KAAKqsJ,aAAa,8BAA8B,GAClFrsJ,KAAKsyJ,sBAAwBtyJ,KAAKqsJ,aAAa,yBAAyB,GACxE,IAAIyG,EAAkC9yJ,KAAKqsJ,aAAa,mCACxDrsJ,KAAK4yJ,wBAA0B5yJ,KAAKqsJ,aAAa,4BAA8ByG,EAE/E,IAAIC,EAAoB/yJ,KAAK2sJ,oBAAoB,cAAe,CAAC,WAAY,SAAU,aAAc,OAAQ,oBAC7G3sJ,KAAKuyJ,YAAc,WACnB,IAAK,IAAIS,EAAK,EAAGA,EAAKD,EAAkB9zJ,OAAQ+zJ,IAChB,WAA1BD,EAAkBC,GAEpBhzJ,KAAKuyJ,YAAc,WAEnBvyJ,KAAKuyJ,YAAcQ,EAAkBC,EAG3C,CACAhH,EAAQxtJ,UAAY,IAAIq0J,EAIxBj1E,EAAO1/E,QAAQ8tJ,QAAUA,CAIjB,GAGM9F,EAA2B,CAAC,EA4BhC,IAAI5jB,EAzBJ,SAASC,EAAoB4jB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBhpJ,IAAjBipJ,EACH,OAAOA,EAAaloJ,QAGrB,IAAI0/E,EAASsoE,EAAyBC,GAAY,CAGjDjoJ,QAAS,CAAC,GAOX,OAHAkkI,EAAoB+jB,GAAUvoE,EAAQA,EAAO1/E,QAASqkI,GAG/C3kD,EAAO1/E,OACf,CAO0BqkI,CAAoB,IAC9C2kB,EAAsB5kB,CAEtB,CAjkDD,GAmkDT,IAAIukB,EAAeK,OAQd,KAJU,EAAF,WACL,MAAO,CACHL,aAAcA,EAErB,UAJM,OAIN,YAaJ,CA5lDA,mBChED,SA0EC,WAGD,IAAIoM,GACK,WACC,aACA,IAAI7wB,EAAuB,CAqlDrC,WAjlDgBxkD,GA+BhB,SAASupE,EAAWj6I,GAClBlN,KAAKonJ,SAAWl6I,EAChBlN,KAAKqnJ,kBAAoB,EAEzBrnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKunJ,kBAAoB,EACzBvnJ,KAAKwnJ,mBAAqB,EAC1BxnJ,KAAKynJ,6BAA+B,EACpCznJ,KAAK0nJ,2BAA6B,EAClC1nJ,KAAK2nJ,6BAA+B,EAEpC3nJ,KAAK4nJ,QAAU,EACjB,CAoIA,SAASC,EAAkB9nJ,EAAS+nJ,GAClC9nJ,KAAK+nJ,QAAU,CAAC,IAChB/nJ,KAAKgoJ,cAAgBjoJ,EAAQkoJ,YAC7BjoJ,KAAKkoJ,gBAAkBnoJ,EAAQooJ,YAC1BpoJ,EAAQqoJ,mBACXpoJ,KAAKkoJ,gBAAkB,IAAInpJ,MAAMgB,EAAQkoJ,YAAc,GAAGz4I,KAAKzP,EAAQooJ,cAIzEL,EAAmBA,GAAoB,GACnC/nJ,EAAQsoJ,aAAe,IACzBP,EAAmB,IAAI/oJ,MAAMgB,EAAQsoJ,aAAe,GAAG74I,KAAKxP,KAAKkoJ,kBAGnEloJ,KAAKsoJ,cAAgBR,EACrB9nJ,KAAKuoJ,qBAAuBT,EAAiB7oJ,MAC/C,CAgDA,SAASupJ,EAAOzoJ,EAAS+nJ,GACvB9nJ,KAAKyoJ,eAAiB,IAAIZ,EAAkB9nJ,EAAS+nJ,GACrD9nJ,KAAK0oJ,KAAM,EACX1oJ,KAAK2oJ,kBAAoB5oJ,EAAQ6oJ,iBACjC5oJ,KAAKioJ,YAAcloJ,EAAQkoJ,YAC3BjoJ,KAAK6oJ,iBAAmB9oJ,EAAQ8oJ,iBAChC7oJ,KAAK8oJ,mBAAqB/oJ,EAAQ+oJ,mBAClC9oJ,KAAK+oJ,QAAU,GACf/oJ,KAAKgpJ,cAAgB,KACrBhpJ,KAAKipJ,aAAe,KACpBjpJ,KAAKkpJ,UAAY,IAAI/B,EAAWnnJ,MAChCA,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,EAE9BrpJ,KAAKspJ,kBACP,CAlNAnC,EAAW3oJ,UAAU+qJ,YAAc,WACjC,IAAI12C,EAAO,IAAIs0C,EAAWnnJ,KAAKonJ,UAE/B,OADAv0C,EAAK22C,WAAWxpJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnC10C,CACT,EAEAs0C,EAAW3oJ,UAAUU,KAAO,SAAS8R,GACnC,OAAIA,EAAQ,EACHhR,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS+R,GAEnChR,KAAK4nJ,QAAQ52I,EAExB,EAEAm2I,EAAW3oJ,UAAUirJ,UAAY,SAAS7sB,GACxC,IAAK,IAAI8sB,EAAoB1pJ,KAAK4nJ,QAAQ3oJ,OAAS,EAAGyqJ,GAAqB,EAAGA,IAC5E,GAAI1pJ,KAAK4nJ,QAAQ8B,GAAmB1uE,MAAM4hD,GACxC,OAAO,EAGX,OAAO,CACT,EAEAuqB,EAAW3oJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAC7C5pJ,KAAK6pJ,aACP7pJ,KAAKsnJ,eAAiBqC,GAAU,EAChC3pJ,KAAKunJ,kBAAoBqC,GAAa,EACtC5pJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAAS0C,gBAAgB9pJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBAErF,EAEAJ,EAAW3oJ,UAAUurJ,gBAAkB,WACjC/pJ,KAAKonJ,SAASyB,mBAChB7oJ,KAAKwnJ,mBAAqBxnJ,KAAK4nJ,QAAQ3oJ,OACvCe,KAAKynJ,6BAA+BznJ,KAAKqnJ,kBACzCrnJ,KAAK0nJ,0BAA4B1nJ,KAAKonJ,SAAS8B,UAAU5B,eACzDtnJ,KAAK2nJ,6BAA+B3nJ,KAAKonJ,SAAS8B,UAAU3B,kBAEhE,EAEAJ,EAAW3oJ,UAAUwrJ,aAAe,WAClC,OAAOhqJ,KAAKwnJ,oBACVxnJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAASyB,kBACvC7oJ,KAAKynJ,6BAA+BznJ,KAAKonJ,SAAS8B,UAAU7B,iBAChE,EAEAF,EAAW3oJ,UAAUyrJ,YAAc,WACjC,GAAIjqJ,KAAKgqJ,eAAgB,CACvBhqJ,KAAKonJ,SAAS8C,eACd,IAAI59I,EAAOtM,KAAKonJ,SAAS6B,aAYzB,OAXA38I,EAAKk9I,WAAWxpJ,KAAK0nJ,0BAA2B1nJ,KAAK2nJ,8BACrDr7I,EAAKs7I,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAMnQ,KAAKwnJ,oBACvCxnJ,KAAK4nJ,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAM,EAAGnQ,KAAKwnJ,oBAE1Cl7I,EAAK+6I,mBAAqBrnJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BACxDznJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BAEN,MAApBn7I,EAAKs7I,QAAQ,KACft7I,EAAKs7I,QAAQhtD,OAAO,EAAG,GACvBtuF,EAAK+6I,mBAAqB,IAErB,CACT,CACA,OAAO,CACT,EAEAF,EAAW3oJ,UAAUqrJ,SAAW,WAC9B,OAA+B,IAAxB7pJ,KAAK4nJ,QAAQ3oJ,MACtB,EAEAkoJ,EAAW3oJ,UAAU8qG,KAAO,WAC1B,OAAKtpG,KAAK6pJ,WAGD,KAFA7pJ,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS,EAI9C,EAEAkoJ,EAAW3oJ,UAAUoR,KAAO,SAAS1Q,GACnCc,KAAK4nJ,QAAQh4I,KAAK1Q,GAClB,IAAIirJ,EAAqBjrJ,EAAK08E,YAAY,OACd,IAAxBuuE,EACFnqJ,KAAKqnJ,kBAAoBnoJ,EAAKD,OAASkrJ,EAEvCnqJ,KAAKqnJ,mBAAqBnoJ,EAAKD,MAEnC,EAEAkoJ,EAAW3oJ,UAAU6+E,IAAM,WACzB,IAAIn+E,EAAO,KAKX,OAJKc,KAAK6pJ,aACR3qJ,EAAOc,KAAK4nJ,QAAQvqE,MACpBr9E,KAAKqnJ,mBAAqBnoJ,EAAKD,QAE1BC,CACT,EAGAioJ,EAAW3oJ,UAAU4rJ,eAAiB,WAChCpqJ,KAAKsnJ,eAAiB,IACxBtnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKqnJ,mBAAqBrnJ,KAAKonJ,SAASa,YAE5C,EAEAd,EAAW3oJ,UAAU6rJ,oBAAsB,WACrCrqJ,KAAK0nJ,0BAA4B,IACnC1nJ,KAAK0nJ,2BAA6B,EAEtC,EACAP,EAAW3oJ,UAAU++G,KAAO,WAC1B,KAAuB,MAAhBv9G,KAAKspG,QACVtpG,KAAK4nJ,QAAQvqE,MACbr9E,KAAKqnJ,mBAAqB,CAE9B,EAEAF,EAAW3oJ,UAAUyS,SAAW,WAC9B,IAAIm2E,EAAS,GASb,OARIpnF,KAAK6pJ,WACH7pJ,KAAKonJ,SAAS0B,qBAChB1hE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,kBAGhDlgE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnEngE,GAAUpnF,KAAK4nJ,QAAQp4I,KAAK,KAEvB43E,CACT,EAoBAygE,EAAkBrpJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAC7D,IAAInjE,EAASpnF,KAAKuoJ,qBAOlB,OANAgC,EAASA,GAAU,EACfZ,EAAS,IACXviE,EAAS,GAEXA,GAAUuiE,EAAS3pJ,KAAKgoJ,cACxB5gE,GAAUmjE,CAEZ,EAEA1C,EAAkBrpJ,UAAU8rJ,kBAAoB,SAASjC,EAAckC,GACrE,IAAInjE,EAASpnF,KAAKsoJ,cASlB,OARAiC,EAASA,GAAU,EACflC,EAAe,IACjBA,EAAe,EACfjhE,EAAS,IAEXmjE,GAAUlC,EAAeroJ,KAAKgoJ,cAC9BhoJ,KAAKwqJ,eAAeD,GACpBnjE,GAAUpnF,KAAK+nJ,QAAQwC,EAEzB,EAEA1C,EAAkBrpJ,UAAUgsJ,eAAiB,SAASD,GACpD,KAAOA,GAAUvqJ,KAAK+nJ,QAAQ9oJ,QAC5Be,KAAKyqJ,cAET,EAEA5C,EAAkBrpJ,UAAUisJ,aAAe,WACzC,IAAIF,EAASvqJ,KAAK+nJ,QAAQ9oJ,OACtB0qJ,EAAS,EACTviE,EAAS,GACTpnF,KAAKgoJ,eAAiBuC,GAAUvqJ,KAAKgoJ,gBAEvCuC,IADAZ,EAASlsE,KAAK8H,MAAMglE,EAASvqJ,KAAKgoJ,gBACfhoJ,KAAKgoJ,cACxB5gE,EAAS,IAAIroF,MAAM4qJ,EAAS,GAAGn6I,KAAKxP,KAAKkoJ,kBAEvCqC,IACFnjE,GAAU,IAAIroF,MAAMwrJ,EAAS,GAAG/6I,KAAK,MAGvCxP,KAAK+nJ,QAAQn4I,KAAKw3E,EACpB,EAoBAohE,EAAOhqJ,UAAU8qJ,iBAAmB,WAClCtpJ,KAAKgpJ,cAAgBhpJ,KAAKipJ,aAC1BjpJ,KAAKipJ,aAAejpJ,KAAKkpJ,UAAUK,cACnCvpJ,KAAK+oJ,QAAQn5I,KAAK5P,KAAKipJ,aACzB,EAEAT,EAAOhqJ,UAAUksJ,gBAAkB,WACjC,OAAO1qJ,KAAK+oJ,QAAQ9pJ,MACtB,EAEAupJ,EAAOhqJ,UAAU8rJ,kBAAoB,SAASX,EAAQY,GACpD,OAAOvqJ,KAAKyoJ,eAAe6B,kBAAkBX,EAAQY,EACvD,EAEA/B,EAAOhqJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAClD,OAAOvqJ,KAAKyoJ,eAAeqB,gBAAgBH,EAAQY,EACrD,EAEA/B,EAAOhqJ,UAAUqrJ,SAAW,WAC1B,OAAQ7pJ,KAAKgpJ,eAAiBhpJ,KAAKipJ,aAAaY,UAClD,EAEArB,EAAOhqJ,UAAU0rJ,aAAe,SAASS,GAGvC,QAAI3qJ,KAAK6pJ,aACLc,GAAiB3qJ,KAAK4qJ,wBAMrB5qJ,KAAK0oJ,KACR1oJ,KAAKspJ,oBAEA,EACT,EAEAd,EAAOhqJ,UAAUqsJ,SAAW,SAASC,GACnC9qJ,KAAKu9G,MAAK,GAIV,IAAIwtC,EAAY/qJ,KAAKipJ,aAAa5rE,MAC9B0tE,IACsC,OAApCA,EAAUA,EAAU9rJ,OAAS,KAC/B8rJ,EAAYA,EAAUlrJ,QAAQ,QAAS,KAEzCG,KAAKipJ,aAAar5I,KAAKm7I,IAGrB/qJ,KAAK2oJ,mBACP3oJ,KAAKspJ,mBAGP,IAAI0B,EAAahrJ,KAAK+oJ,QAAQv5I,KAAK,MAKnC,MAHY,OAARs7I,IACFE,EAAaA,EAAWnrJ,QAAQ,QAASirJ,IAEpCE,CACT,EAEAxC,EAAOhqJ,UAAUysJ,eAAiB,WAChCjrJ,KAAKipJ,aAAac,iBACpB,EAEAvB,EAAOhqJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAQ7C,OAPAD,EAASA,GAAU,EACnBC,EAAYA,GAAa,EAGzB5pJ,KAAKkpJ,UAAUM,WAAWG,EAAQC,GAG9B5pJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxBe,KAAKipJ,aAAaO,WAAWG,EAAQC,IAC9B,IAGT5pJ,KAAKipJ,aAAaO,cACX,EACT,EAEAhB,EAAOhqJ,UAAU0sJ,cAAgB,SAASvyD,GACxC,IAAK,IAAIpa,EAAI,EAAGA,EAAIoa,EAAMwyD,SAAU5sE,IAClCv+E,KAAKspJ,mBAEPtpJ,KAAKipJ,aAAaO,YAAY,GAC9BxpJ,KAAKipJ,aAAar5I,KAAK+oF,EAAMyyD,mBAC7BprJ,KAAKipJ,aAAar5I,KAAK+oF,EAAM9jF,MAC7B7U,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,CAChC,EAEAb,EAAOhqJ,UAAU6sJ,UAAY,SAASC,GACpCtrJ,KAAKurJ,2BACLvrJ,KAAKipJ,aAAar5I,KAAK07I,GACvBtrJ,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,uBAAyBrpJ,KAAKipJ,aAAagB,aAClD,EAEAzB,EAAOhqJ,UAAU+sJ,yBAA2B,WACtCvrJ,KAAKmpJ,qBAAuBnpJ,KAAK4qJ,uBAC9B5qJ,KAAKopJ,oBACRppJ,KAAKirJ,iBAEPjrJ,KAAKipJ,aAAar5I,KAAK,KAE3B,EAEA44I,EAAOhqJ,UAAUgtJ,cAAgB,SAASx6I,GAExC,IADA,IAAIy6I,EAAgBzrJ,KAAK+oJ,QAAQ9pJ,OAC1B+R,EAAQy6I,GACbzrJ,KAAK+oJ,QAAQ/3I,GAAOo5I,iBACpBp5I,IAEFhR,KAAKipJ,aAAaoB,qBACpB,EAEA7B,EAAOhqJ,UAAU++G,KAAO,SAASmuC,GAK/B,IAJAA,OAAiCvuJ,IAAjBuuJ,GAAsCA,EAEtD1rJ,KAAKipJ,aAAa1rC,OAEXmuC,GAAgB1rJ,KAAK+oJ,QAAQ9pJ,OAAS,GAC3Ce,KAAKipJ,aAAaY,YAClB7pJ,KAAK+oJ,QAAQ1rE,MACbr9E,KAAKipJ,aAAejpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACvDe,KAAKipJ,aAAa1rC,OAGpBv9G,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ9pJ,OAAS,EACzCe,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GAAK,IAC5C,EAEAupJ,EAAOhqJ,UAAUosJ,mBAAqB,WACpC,OAAO5qJ,KAAKipJ,aAAaY,UAC3B,EAEArB,EAAOhqJ,UAAUmtJ,qBAAuB,WACtC,OAAO3rJ,KAAK6pJ,YACT7pJ,KAAKipJ,aAAaY,YAAc7pJ,KAAKgpJ,cAAca,UACxD,EAEArB,EAAOhqJ,UAAUotJ,wBAA0B,SAASC,EAAaC,GAE/D,IADA,IAAI96I,EAAQhR,KAAK+oJ,QAAQ9pJ,OAAS,EAC3B+R,GAAS,GAAG,CACjB,IAAI+6I,EAAqB/rJ,KAAK+oJ,QAAQ/3I,GACtC,GAAI+6I,EAAmBlC,WACrB,MACK,GAAwD,IAApDkC,EAAmB7sJ,KAAK,GAAG6N,QAAQ8+I,IAC5CE,EAAmB7sJ,MAAM,KAAO4sJ,EAAW,CAC3C9rJ,KAAK+oJ,QAAQnuD,OAAO5pF,EAAQ,EAAG,EAAG,IAAIm2I,EAAWnnJ,OACjDA,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxD,KACF,CACA+R,GACF,CACF,EAEA4sE,EAAO1/E,QAAQsqJ,OAASA,CAGjB,WAES5qE,GAuDhBA,EAAO1/E,QAAQg1J,MAvBf,SAAepiE,EAAMj8E,EAAMs2I,EAAUC,GACnCprJ,KAAK8wF,KAAOA,EACZ9wF,KAAK6U,KAAOA,EAMZ7U,KAAKmzJ,gBAAkB,KAIvBnzJ,KAAKmrJ,SAAWA,GAAY,EAC5BnrJ,KAAKorJ,kBAAoBA,GAAqB,GAC9CprJ,KAAKkN,OAAS,KACdlN,KAAKsM,KAAO,KACZtM,KAAKoM,SAAW,KAChBpM,KAAKozJ,OAAS,KACdpzJ,KAAK+6E,OAAS,KACd/6E,KAAK0vJ,WAAa,IACpB,CAMO,EAAE,CAAF,UAIS9xE,GAgChB,SAASouE,EAAQjsJ,EAASksJ,GACxBjsJ,KAAKksJ,YAAcC,EAAWpsJ,EAASksJ,GAGvCjsJ,KAAKosJ,SAAWpsJ,KAAKqsJ,aAAa,YAElCrsJ,KAAK8qJ,IAAM9qJ,KAAKssJ,gBAAgB,MAAO,QACvCtsJ,KAAK4oJ,iBAAmB5oJ,KAAKqsJ,aAAa,oBAC1CrsJ,KAAKioJ,YAAcjoJ,KAAKusJ,YAAY,cAAe,GACnDvsJ,KAAKmoJ,YAAcnoJ,KAAKssJ,gBAAgB,cAAe,KACvDtsJ,KAAKqoJ,aAAeroJ,KAAKusJ,YAAY,gBAErCvsJ,KAAKwsJ,kBAAoBxsJ,KAAKqsJ,aAAa,qBAAqB,GAChErsJ,KAAKysJ,sBAAwBzsJ,KAAKusJ,YAAY,wBAAyB,OAClEvsJ,KAAKwsJ,oBACRxsJ,KAAKysJ,sBAAwB,GAG/BzsJ,KAAKooJ,iBAAmBpoJ,KAAKqsJ,aAAa,mBAAyC,OAArBrsJ,KAAKmoJ,aAC/DnoJ,KAAKooJ,mBACPpoJ,KAAKmoJ,YAAc,KASM,IAArBnoJ,KAAKioJ,cACPjoJ,KAAKioJ,YAAc,IAKvBjoJ,KAAK6oJ,iBAAmB7oJ,KAAKusJ,YAAY,mBAAoBvsJ,KAAKusJ,YAAY,aAE9EvsJ,KAAK8oJ,mBAAqB9oJ,KAAKqsJ,aAAa,sBAK5CrsJ,KAAK0sJ,WAAa1sJ,KAAK2sJ,oBAAoB,aAAc,CAAC,OAAQ,OAAQ,UAAW,SAAU,MAAO,aAAc,MAAO,UAAW,CAAC,QACzI,CAsFA,SAASR,EAAWS,EAAYC,GAC9B,IAEIznJ,EAFA0nJ,EAAY,CAAC,EAIjB,IAAK1nJ,KAHLwnJ,EAAaG,EAAeH,GAItBxnJ,IAASynJ,IACXC,EAAU1nJ,GAAQwnJ,EAAWxnJ,IAKjC,GAAIynJ,GAAkBD,EAAWC,GAC/B,IAAKznJ,KAAQwnJ,EAAWC,GACtBC,EAAU1nJ,GAAQwnJ,EAAWC,GAAgBznJ,GAGjD,OAAO0nJ,CACT,CAEA,SAASC,EAAehtJ,GACtB,IACIxB,EADAyuJ,EAAgB,CAAC,EAGrB,IAAKzuJ,KAAOwB,EAAS,CAEnBitJ,EADazuJ,EAAIsB,QAAQ,KAAM,MACPE,EAAQxB,EAClC,CACA,OAAOyuJ,CACT,CAjHAhB,EAAQxtJ,UAAUyuJ,WAAa,SAAS7nJ,EAAM8nJ,GAC5C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAQ9B,MAP4B,kBAAjBC,EACY,OAAjBA,GAAwD,oBAAxBA,EAAanrE,SAC/CoF,EAAS+lE,EAAanrE,UAES,kBAAjBmrE,IAChB/lE,EAAS+lE,EAAazmJ,MAAM,uBAEvB0gF,CACT,EAEA4kE,EAAQxtJ,UAAU6tJ,aAAe,SAASjnJ,EAAM8nJ,GAC9C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAEpC,YAD8BjI,IAAjBgwJ,IAA+BD,IAAkBC,CAEhE,EAEAnB,EAAQxtJ,UAAU8tJ,gBAAkB,SAASlnJ,EAAM8nJ,GACjD,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAI9B,MAH4B,kBAAjBC,IACT/lE,EAAS+lE,EAAattJ,QAAQ,MAAO,MAAMA,QAAQ,MAAO,MAAMA,QAAQ,MAAO,OAE1EunF,CACT,EAEA4kE,EAAQxtJ,UAAU+tJ,YAAc,SAASnnJ,EAAM8nJ,GAC7C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GACpC8nJ,EAAgBvwE,SAASuwE,EAAe,IACpCpqE,MAAMoqE,KACRA,EAAgB,GAElB,IAAI9lE,EAASzK,SAASwwE,EAAc,IAIpC,OAHIrqE,MAAMsE,KACRA,EAAS8lE,GAEJ9lE,CACT,EAEA4kE,EAAQxtJ,UAAU4uJ,eAAiB,SAAShoJ,EAAMioJ,EAAgBH,GAChE,IAAI9lE,EAASpnF,KAAK2sJ,oBAAoBvnJ,EAAMioJ,EAAgBH,GAC5D,GAAsB,IAAlB9lE,EAAOnoF,OACT,MAAM,IAAIyK,MACR,qCAAuCtE,EAAO,+CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,EAAO,EAChB,EAGA4kE,EAAQxtJ,UAAUmuJ,oBAAsB,SAASvnJ,EAAMioJ,EAAgBH,GACrE,IAAKG,GAA4C,IAA1BA,EAAepuJ,OACpC,MAAM,IAAIyK,MAAM,mCAIlB,GADAwjJ,EAAgBA,GAAiB,CAACG,EAAe,KAC5CrtJ,KAAKstJ,oBAAoBJ,EAAeG,GAC3C,MAAM,IAAI3jJ,MAAM,0BAGlB,IAAI09E,EAASpnF,KAAKitJ,WAAW7nJ,EAAM8nJ,GACnC,IAAKltJ,KAAKstJ,oBAAoBlmE,EAAQimE,GACpC,MAAM,IAAI3jJ,MACR,qCAAuCtE,EAAO,6CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,CACT,EAEA4kE,EAAQxtJ,UAAU8uJ,oBAAsB,SAASlmE,EAAQimE,GACvD,OAAOjmE,EAAOnoF,QAAUouJ,EAAepuJ,SACpCmoF,EAAOwvB,MAAK,SAAS13G,GAAQ,OAAyC,IAAlCmuJ,EAAetgJ,QAAQ7N,EAAc,GAC9E,EAuCA0+E,EAAO1/E,QAAQ8tJ,QAAUA,EACzBpuE,EAAO1/E,QAAQqvJ,cAAgBR,EAC/BnvE,EAAO1/E,QAAQsvJ,UAAYrB,CAGpB,EAAE,CAAF,SAGSvuE,GAgChB,IAAI6vE,EAAoB1zE,OAAOv7E,UAAUC,eAAe,UAExD,SAASivJ,EAAaC,GACpB3tJ,KAAK4tJ,QAAUD,GAAgB,GAC/B3tJ,KAAK6tJ,eAAiB7tJ,KAAK4tJ,QAAQ3uJ,OACnCe,KAAK8tJ,WAAa,CACpB,CAEAJ,EAAalvJ,UAAUuvJ,QAAU,WAC/B/tJ,KAAK8tJ,WAAa,CACpB,EAEAJ,EAAalvJ,UAAUwvJ,KAAO,WACxBhuJ,KAAK8tJ,WAAa,IACpB9tJ,KAAK8tJ,YAAc,EAEvB,EAEAJ,EAAalvJ,UAAUyvJ,QAAU,WAC/B,OAAOjuJ,KAAK8tJ,WAAa9tJ,KAAK6tJ,cAChC,EAEAH,EAAalvJ,UAAU8N,KAAO,WAC5B,IAAI85H,EAAM,KAKV,OAJIpmI,KAAKiuJ,YACP7nB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO76E,KAAK8tJ,YAC/B9tJ,KAAK8tJ,YAAc,GAEd1nB,CACT,EAEAsnB,EAAalvJ,UAAU0vJ,KAAO,SAASl9I,GACrC,IAAIo1H,EAAM,KAMV,OALAp1H,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aACD,GAAK98I,EAAQhR,KAAK6tJ,iBAC7BznB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO7pE,IAErBo1H,CACT,EASAsnB,EAAalvJ,UAAU2vJ,QAAU,SAASvxB,EAAS5rH,GACjD4rH,EAAQzxH,UAAY6F,EACpB,IAAIo9I,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAQtC,OANIQ,GAAmBX,GAAqB7wB,EAAQ6b,QAC9C2V,EAAcp9I,QAAUA,IAC1Bo9I,EAAgB,MAIbA,CACT,EAEAV,EAAalvJ,UAAUqD,KAAO,SAAS+6H,EAAS5rH,GAI9C,OAHAA,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aAED,GAAK98I,EAAQhR,KAAK6tJ,kBACpB7tJ,KAAKmuJ,QAAQvxB,EAAS5rH,EAInC,EAEA08I,EAAalvJ,UAAU6vJ,SAAW,SAASzxB,EAAS5rH,GAElD,IAAIo1H,EAAMpmI,KAAKkuJ,KAAKl9I,GAEpB,OADA4rH,EAAQzxH,UAAY,EACL,OAARi7H,GAAgBxJ,EAAQ/6H,KAAKukI,EACtC,EAEAsnB,EAAalvJ,UAAUw8E,MAAQ,SAAS4hD,GACtC,IAAIwxB,EAAgBpuJ,KAAKmuJ,QAAQvxB,EAAS58H,KAAK8tJ,YAM/C,OALIM,EACFpuJ,KAAK8tJ,YAAcM,EAAc,GAAGnvJ,OAEpCmvJ,EAAgB,KAEXA,CACT,EAEAV,EAAalvJ,UAAUi6F,KAAO,SAAS61D,EAAkBC,EAAeC,GACtE,IACIxzE,EADAorD,EAAM,GAWV,OATIkoB,IACFtzE,EAAQh7E,KAAKg7E,MAAMszE,MAEjBloB,GAAOprD,EAAM,KAGbuzE,IAAkBvzE,GAAUszE,IAC9BloB,GAAOpmI,KAAKyuJ,UAAUF,EAAeC,IAEhCpoB,CACT,EAEAsnB,EAAalvJ,UAAUiwJ,UAAY,SAAS7xB,EAAS4xB,GACnD,IAAIpoB,EACAsoB,EAAc1uJ,KAAK8tJ,WACvBlxB,EAAQzxH,UAAYnL,KAAK8tJ,WACzB,IAAIM,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAYtC,OAXIQ,GACFM,EAAcN,EAAcp9I,MACxBw9I,IACFE,GAAeN,EAAc,GAAGnvJ,SAGlCyvJ,EAAc1uJ,KAAK6tJ,eAGrBznB,EAAMpmI,KAAK4tJ,QAAQh5I,UAAU5U,KAAK8tJ,WAAYY,GAC9C1uJ,KAAK8tJ,WAAaY,EACXtoB,CACT,EAEAsnB,EAAalvJ,UAAUmwJ,eAAiB,SAAS/xB,GAC/C,OAAO58H,KAAKyuJ,UAAU7xB,GAAS,EACjC,EAEA8wB,EAAalvJ,UAAUowJ,WAAa,SAAShyB,EAASiyB,GACpD,IAAIznE,EAAS,KACT4R,EAAQ,IAWZ,OAVI61D,GAAcpB,IAChBz0D,EAAQ,KAGa,kBAAZ4jC,GAAoC,KAAZA,EAEjCx1C,EAAS,IAAIrN,OAAO6iD,EAAS5jC,GACpB4jC,IACTx1C,EAAS,IAAIrN,OAAO6iD,EAAQv+H,OAAQ26F,IAE/B5R,CACT,EAEAsmE,EAAalvJ,UAAUswJ,mBAAqB,SAASC,GACnD,OAAOh1E,OAAOg1E,EAAelvJ,QAAQ,yBAA0B,QACjE,EAGA6tJ,EAAalvJ,UAAUwwJ,eAAiB,SAASpyB,GAC/C,IAAI/7H,EAAQb,KAAK8tJ,WACb1nB,EAAMpmI,KAAK2uJ,eAAe/xB,GAE9B,OADA58H,KAAK8tJ,WAAajtJ,EACXulI,CACT,EAEAsnB,EAAalvJ,UAAUywJ,SAAW,SAASC,GACzC,IAAIruJ,EAAQb,KAAK8tJ,WAAa,EAC9B,OAAOjtJ,GAASquJ,EAAQjwJ,QAAUe,KAAK4tJ,QAAQh5I,UAAU/T,EAAQquJ,EAAQjwJ,OAAQ4B,GAC9E08E,gBAAkB2xE,CACvB,EAEAtxE,EAAO1/E,QAAQwvJ,aAAeA,CAGvB,WAES9vE,EAAQ4rD,EAA0BjH,GAgClD,IAAImrB,EAAgBnrB,EAAoB,GAAGmrB,aACvCwF,EAAS3wB,EAAoB,GAAG2wB,MAChCG,EAAe9wB,EAAoB,IAAI8wB,YACvCC,EAAqB/wB,EAAoB,IAAI+wB,kBAE7CC,EAAQ,CACVC,MAAO,WACPC,IAAK,SACL3+D,IAAK,UAGHuD,EAAY,SAASs1D,EAAc5tJ,GACrCC,KAAKwwJ,OAAS,IAAI9C,EAAaC,GAC/B3tJ,KAAKusH,SAAWxsH,GAAW,CAAC,EAC5BC,KAAK0zJ,SAAW,KAEhB1zJ,KAAK2zJ,UAAY,CAAC,EAClB3zJ,KAAK2zJ,UAAU1a,WAAa,IAAIqa,EAAkBtzJ,KAAKwwJ,OACzD,EAEAn4D,EAAU75F,UAAUo1J,SAAW,WAM7B,IAAI3vJ,EALJjE,KAAKwwJ,OAAOzC,UACZ/tJ,KAAK0zJ,SAAW,IAAIL,EAEpBrzJ,KAAK6zJ,SAQL,IALA,IAAIznJ,EAAW,IAAI8mJ,EAAMK,EAAMC,MAAO,IAClCM,EAAa,KACbC,EAAa,GACbC,EAAW,IAAIX,EAEZjnJ,EAAS0kF,OAASyiE,EAAMz+D,KAAK,CAElC,IADA7wF,EAAUjE,KAAKi0J,gBAAgB7nJ,EAAU0nJ,GAClC9zJ,KAAKk0J,YAAYjwJ,IACtB+vJ,EAASvxE,IAAIx+E,GACbA,EAAUjE,KAAKi0J,gBAAgB7nJ,EAAU0nJ,GAGtCE,EAASG,YACZlwJ,EAAQkvJ,gBAAkBa,EAC1BA,EAAW,IAAIX,GAGjBpvJ,EAAQiJ,OAAS4mJ,EAEb9zJ,KAAKo0J,YAAYnwJ,IACnB8vJ,EAAWnkJ,KAAKkkJ,GAChBA,EAAa7vJ,GACJ6vJ,GAAc9zJ,KAAKq0J,YAAYpwJ,EAAS6vJ,KACjD7vJ,EAAQmvJ,OAASU,EACjBA,EAAW/4E,OAAS92E,EACpB6vJ,EAAaC,EAAW12E,MACxBp5E,EAAQiJ,OAAS4mJ,GAGnB7vJ,EAAQmI,SAAWA,EACnBA,EAASE,KAAOrI,EAEhBjE,KAAK0zJ,SAASjxE,IAAIx+E,GAClBmI,EAAWnI,CACb,CAEA,OAAOjE,KAAK0zJ,QACd,EAGAr7D,EAAU75F,UAAU81J,gBAAkB,WACpC,OAAOt0J,KAAK0zJ,SAASS,SACvB,EAEA97D,EAAU75F,UAAUq1J,OAAS,WAAY,EAEzCx7D,EAAU75F,UAAUy1J,gBAAkB,SAASM,EAAgBT,GAC7D9zJ,KAAKw0J,kBACL,IAAIC,EAAmBz0J,KAAKwwJ,OAAO/3D,KAAK,OACxC,OAAIg8D,EACKz0J,KAAK00J,cAAcnB,EAAME,IAAKgB,GAE9Bz0J,KAAK00J,cAAcnB,EAAMz+D,IAAK,GAEzC,EAEAuD,EAAU75F,UAAU01J,YAAc,SAASS,GACzC,OAAO,CACT,EAEAt8D,EAAU75F,UAAU41J,YAAc,SAASO,GACzC,OAAO,CACT,EAEAt8D,EAAU75F,UAAU61J,YAAc,SAASM,EAAeb,GACxD,OAAO,CACT,EAEAz7D,EAAU75F,UAAUk2J,cAAgB,SAAS5jE,EAAMj8E,GAIjD,OAHY,IAAIq+I,EAAMpiE,EAAMj8E,EAC1B7U,KAAK2zJ,UAAU1a,WAAW+X,cAC1BhxJ,KAAK2zJ,UAAU1a,WAAW2b,wBAE9B,EAEAv8D,EAAU75F,UAAUg2J,gBAAkB,WACpC,OAAOx0J,KAAK2zJ,UAAU1a,WAAWxgD,MACnC,EAIA7a,EAAO1/E,QAAQm6F,UAAYA,EAC3Bza,EAAO1/E,QAAQq1J,MAAQA,CAGhB,WAES31E,GAgChB,SAASy1E,EAAYwB,GAEnB70J,KAAK0zJ,SAAW,GAChB1zJ,KAAK80J,gBAAkB90J,KAAK0zJ,SAASz0J,OACrCe,KAAK8tJ,WAAa,EAClB9tJ,KAAK+0J,eAAiBF,CACxB,CAEAxB,EAAY70J,UAAUuvJ,QAAU,WAC9B/tJ,KAAK8tJ,WAAa,CACpB,EAEAuF,EAAY70J,UAAU21J,QAAU,WAC9B,OAAgC,IAAzBn0J,KAAK80J,eACd,EAEAzB,EAAY70J,UAAUyvJ,QAAU,WAC9B,OAAOjuJ,KAAK8tJ,WAAa9tJ,KAAK80J,eAChC,EAEAzB,EAAY70J,UAAU8N,KAAO,WAC3B,IAAI85H,EAAM,KAKV,OAJIpmI,KAAKiuJ,YACP7nB,EAAMpmI,KAAK0zJ,SAAS1zJ,KAAK8tJ,YACzB9tJ,KAAK8tJ,YAAc,GAEd1nB,CACT,EAEAitB,EAAY70J,UAAU0vJ,KAAO,SAASl9I,GACpC,IAAIo1H,EAAM,KAMV,OALAp1H,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aACD,GAAK98I,EAAQhR,KAAK80J,kBAC7B1uB,EAAMpmI,KAAK0zJ,SAAS1iJ,IAEfo1H,CACT,EAEAitB,EAAY70J,UAAUikF,IAAM,SAASkW,GAC/B34F,KAAK+0J,iBACPp8D,EAAMzrF,OAASlN,KAAK+0J,gBAEtB/0J,KAAK0zJ,SAAS9jJ,KAAK+oF,GACnB34F,KAAK80J,iBAAmB,CAC1B,EAEAl3E,EAAO1/E,QAAQm1J,YAAcA,CAGtB,WAESz1E,EAAQ4rD,EAA0BjH,GAgClD,IAAIyyB,EAAWzyB,EAAoB,IAAIyyB,QAEvC,SAAS1B,EAAkB2B,EAAe/nJ,GACxC8nJ,EAAQt2J,KAAKsB,KAAMi1J,EAAe/nJ,GAC9BA,EACFlN,KAAKk1J,aAAel1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAOgoJ,cAElDl1J,KAAKm1J,0BAA0B,GAAI,IAGrCn1J,KAAKgxJ,cAAgB,EACrBhxJ,KAAK40J,wBAA0B,EACjC,CACAtB,EAAkB90J,UAAY,IAAIw2J,EAElC1B,EAAkB90J,UAAU22J,0BAA4B,SAASC,EAAkBC,GACjFD,GAAoB,OACpBC,GAAiB,SAEjBr1J,KAAKs1J,eAAiBt1J,KAAKwwJ,OAAO5B,WAChC,IAAMwG,EAAmBC,EAAgB,MAAM,GACjDr1J,KAAKu1J,gBAAkBv1J,KAAKwwJ,OAAO5B,WACjC,WAAayG,EAAgB,IACjC,EAEA/B,EAAkB90J,UAAUi6F,KAAO,WACjCz4F,KAAKgxJ,cAAgB,EACrBhxJ,KAAK40J,wBAA0B,GAE/B,IAAIH,EAAmBz0J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,gBAC7C,GAAyB,MAArBb,EACFz0J,KAAK40J,wBAA0B,SAC1B,GAAIH,EAAkB,CAC3B,IAAIxhJ,EAAUjT,KAAKw1J,QAAQx1J,KAAKu1J,gBAAiBd,GACjDz0J,KAAKgxJ,cAAgB/9I,EAAQhU,OAAS,EACtCe,KAAK40J,wBAA0B3hJ,EAAQjT,KAAKgxJ,cAC9C,CAEA,OAAOyD,CACT,EAEAnB,EAAkB90J,UAAUi3J,SAAW,SAASL,EAAkBC,GAChE,IAAIjuE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO+tE,0BAA0BC,EAAkBC,GACnDjuE,EAAOuuE,UACAvuE,CACT,EAEAksE,EAAkB90J,UAAUk3J,QAAU,WACpC,OAAO,IAAIpC,EAAkBtzJ,KAAKwwJ,OAAQxwJ,KAC5C,EAEAszJ,EAAkB90J,UAAUg3J,QAAU,SAASlY,EAAQqQ,GACrDrQ,EAAOnyI,UAAY,EAInB,IAHA,IAAIyqJ,EAAc,EACdxuE,EAAS,GACTyuE,EAAavY,EAAOthE,KAAK2xE,GACtBkI,GACLzuE,EAAOx3E,KAAK+9I,EAAa/4I,UAAUghJ,EAAaC,EAAW7kJ,QAC3D4kJ,EAAcC,EAAW7kJ,MAAQ6kJ,EAAW,GAAG52J,OAC/C42J,EAAavY,EAAOthE,KAAK2xE,GAS3B,OANIiI,EAAcjI,EAAa1uJ,OAC7BmoF,EAAOx3E,KAAK+9I,EAAa/4I,UAAUghJ,EAAajI,EAAa1uJ,SAE7DmoF,EAAOx3E,KAAK,IAGPw3E,CACT,EAIAxJ,EAAO1/E,QAAQo1J,kBAAoBA,CAG5B,WAES11E,GAgChB,SAASo3E,EAAQC,EAAe/nJ,GAC9BlN,KAAKwwJ,OAASyE,EACdj1J,KAAK81J,kBAAoB,KACzB91J,KAAKs1J,eAAiB,KACtBt1J,KAAK+1J,eAAiB,KACtB/1J,KAAKg2J,cAAe,EAEhB9oJ,IACFlN,KAAK81J,kBAAoB91J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO4oJ,mBAAmB,GAC1E91J,KAAKs1J,eAAiBt1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAOooJ,gBAAgB,GACpEt1J,KAAK+1J,eAAiB/1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO6oJ,gBACpD/1J,KAAKg2J,aAAe9oJ,EAAO8oJ,aAE/B,CAEAhB,EAAQx2J,UAAUi6F,KAAO,WACvB,IAAIrR,EAASpnF,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,mBAInC,OAHK91J,KAAK81J,oBAAqB1uE,IAC7BA,GAAUpnF,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,eAAgBt1J,KAAK+1J,eAAgB/1J,KAAKg2J,eAErE5uE,CACT,EAEA4tE,EAAQx2J,UAAUy3J,WAAa,WAC7B,OAAOj2J,KAAKwwJ,OAAOx1E,MAAMh7E,KAAKs1J,eAChC,EAEAN,EAAQx2J,UAAUgwJ,YAAc,SAAS5xB,GACvC,IAAIx1C,EAASpnF,KAAK01J,UAIlB,OAHAtuE,EAAO4uE,cAAe,EACtB5uE,EAAO2uE,eAAiB/1J,KAAKwwJ,OAAO5B,WAAWhyB,GAC/Cx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAU03J,MAAQ,SAASt5B,GACjC,IAAIx1C,EAASpnF,KAAK01J,UAIlB,OAHAtuE,EAAO4uE,cAAe,EACtB5uE,EAAO2uE,eAAiB/1J,KAAKwwJ,OAAO5B,WAAWhyB,GAC/Cx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAU23J,cAAgB,SAASv5B,GACzC,IAAIx1C,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO0uE,kBAAoB91J,KAAKwwJ,OAAO5B,WAAWhyB,GAAS,GAC3Dx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAUi3J,SAAW,SAAS74B,GACpC,IAAIx1C,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAOkuE,eAAiBt1J,KAAKwwJ,OAAO5B,WAAWhyB,GAAS,GACxDx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAUk3J,QAAU,WAC1B,OAAO,IAAIV,EAAQh1J,KAAKwwJ,OAAQxwJ,KAClC,EAEAg1J,EAAQx2J,UAAUm3J,QAAU,WAAY,EAExC/3E,EAAO1/E,QAAQ82J,QAAUA,CAGlB,WAESp3E,GAgChB,SAASuxE,EAAWC,EAAqBC,GACvCD,EAAqD,kBAAxBA,EAAmCA,EAAsBA,EAAoB/wJ,OAC1GgxJ,EAAiD,kBAAtBA,EAAiCA,EAAoBA,EAAkBhxJ,OAClG2B,KAAKsvJ,2BAA6B,IAAIv1E,OAAOq1E,EAAsB,0BAA0B/wJ,OAASgxJ,EAAmB,KACzHrvJ,KAAKuvJ,oBAAsB,kBAE3BvvJ,KAAKwvJ,gCAAkC,IAAIz1E,OAAOq1E,EAAsB,2BAA2B/wJ,OAASgxJ,EAAmB,IACjI,CAEAF,EAAW3wJ,UAAUixJ,eAAiB,SAAS56I,GAC7C,IAAKA,EAAKmmE,MAAMh7E,KAAKsvJ,4BACnB,OAAO,KAGT,IAAII,EAAa,CAAC,EAClB1vJ,KAAKuvJ,oBAAoBpkJ,UAAY,EAGrC,IAFA,IAAIwkJ,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAE7C86I,GACLD,EAAWC,EAAgB,IAAMA,EAAgB,GACjDA,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAGlD,OAAO66I,CACT,EAEAP,EAAW3wJ,UAAUoxJ,YAAc,SAAShwJ,GAC1C,OAAOA,EAAM+uJ,eAAe3uJ,KAAKwvJ,gCACnC,EAGA5xE,EAAO1/E,QAAQixJ,WAAaA,CAGrB,WAESvxE,EAAQ4rD,EAA0BjH,GAgClD,IAAIyyB,EAAWzyB,EAAoB,IAAIyyB,QAGnCoB,EAAiB,CACnBC,QAAQ,EACRC,KAAK,EACLC,YAAY,EACZC,KAAK,EACLC,QAAQ,EACRC,SAAS,GAKX,SAASC,EAAmB1B,EAAe/nJ,GACzC8nJ,EAAQt2J,KAAKsB,KAAMi1J,EAAe/nJ,GAClClN,KAAK42J,mBAAqB,KAC1B52J,KAAK62J,UAAYz5J,OAAOe,OAAO,CAAC,EAAGi4J,GACnCp2J,KAAK82J,UAAY15J,OAAOe,OAAO,CAAC,EAAGi4J,GAE/BlpJ,IACFlN,KAAK42J,mBAAqB52J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO0pJ,oBACxD52J,KAAK82J,UAAY15J,OAAOe,OAAO6B,KAAK82J,UAAW5pJ,EAAO4pJ,WACtD92J,KAAK62J,UAAYz5J,OAAOe,OAAO6B,KAAK62J,UAAW3pJ,EAAO2pJ,YAExD,IAAIj6B,EAAU,IAAIo4B,EAAQC,GAC1Bj1J,KAAK+2J,WAAa,CAChBC,mBAAoBp6B,EAAQu5B,cAAc,SAAS3H,YAAY,QAC/DyI,qBAAsBr6B,EAAQu5B,cAAc,OAAO3H,YAAY,OAC/D+H,WAAY35B,EAAQu5B,cAAc,MAAM3H,YAAY,MACpDgI,IAAK55B,EAAQu5B,cAAc,mBAAmB3H,YAAY,OAC1D8H,IAAK15B,EAAQu5B,cAAc,UAAU3H,YAAY,UAEjD6H,OAAQz5B,EAAQu5B,cAAc,MAAM3H,YAAY,MAChD0I,aAAct6B,EAAQu5B,cAAc,MAAM3H,YAAY,MACtD2I,eAAgBv6B,EAAQu5B,cAAc,MAAM3H,YAAY,MACxDiI,OAAQ75B,EAAQu5B,cAAc,kBAAkB3H,YAAY,YAC5D4I,eAAgBx6B,EAAQu5B,cAAc,OAAO3H,YAAY,OACzD6I,eAAgBz6B,EAAQu5B,cAAc,aAAa3H,YAAY,eAEnE,CACAmI,EAAmBn4J,UAAY,IAAIw2J,EAEnC2B,EAAmBn4J,UAAUk3J,QAAU,WACrC,OAAO,IAAIiB,EAAmB32J,KAAKwwJ,OAAQxwJ,KAC7C,EAEA22J,EAAmBn4J,UAAUm3J,QAAU,WACrC31J,KAAKs3J,yBACP,EAEAX,EAAmBn4J,UAAUmgF,QAAU,SAAS44E,GAC9C,IAAInwE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAOyvE,UAAUU,IAAY,EAC7BnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUg5J,aAAe,SAASz3J,GACnD,IAAIqnF,EAASpnF,KAAK01J,UAClB,IAAK,IAAI6B,KAAYnB,EACnBhvE,EAAOyvE,UAAUU,IAAsD,IAA1Cx3J,EAAQ2sJ,WAAW3/I,QAAQwqJ,GAG1D,OADAnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUi5J,QAAU,SAASF,GAC9C,IAAInwE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO0vE,UAAUS,IAAY,EAC7BnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUi6F,KAAO,WAClC,IAAIrR,EAAS,GAEXA,EADEpnF,KAAKs1J,eACEt1J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,mBAEtB91J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,kBAAmB91J,KAAK42J,oBAGzD,IADA,IAAItqJ,EAAOtM,KAAK03J,iBACTprJ,GACDtM,KAAKs1J,eACPhpJ,GAAQtM,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,gBAE9BhpJ,GAAQtM,KAAKwwJ,OAAO/B,UAAUzuJ,KAAK42J,oBAErCxvE,GAAU96E,EACVA,EAAOtM,KAAK03J,iBAMd,OAHI13J,KAAKg2J,eACP5uE,GAAUpnF,KAAKwwJ,OAAO7B,eAAe3uJ,KAAK+1J,iBAErC3uE,CACT,EAEAuvE,EAAmBn4J,UAAU84J,wBAA0B,WACrD,IAAIK,EAAQ,GAEP33J,KAAK62J,UAAUL,KAClBmB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWP,IAAIV,kBAAkBz3J,QAE9C2B,KAAK62J,UAAUN,YAClBoB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWR,WAAWT,kBAAkBz3J,QAErD2B,KAAK62J,UAAUH,SAElBiB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWR,WAAWT,kBAAkBz3J,QAErD2B,KAAK62J,UAAUP,KAClBqB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWT,IAAIR,kBAAkBz3J,QAE9C2B,KAAK62J,UAAUR,SAClBsB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWV,OAAOP,kBAAkBz3J,QAGpDs5J,EAAM/nJ,KAAK5P,KAAK+2J,WAAWG,aAAapB,kBAAkBz3J,QAC1Ds5J,EAAM/nJ,KAAK5P,KAAK+2J,WAAWI,eAAerB,kBAAkBz3J,SAEzD2B,KAAK62J,UAAUJ,QAClBkB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWN,OAAOX,kBAAkBz3J,QAGlD2B,KAAK+1J,gBACP4B,EAAM/nJ,KAAK5P,KAAK+1J,eAAe13J,QAEjC2B,KAAK42J,mBAAqB52J,KAAKwwJ,OAAO5B,WAAW,MAAQ+I,EAAMnoJ,KAAK,KAAO,IAC7E,EAEAmnJ,EAAmBn4J,UAAUk5J,eAAiB,WAC5C,IAAIjD,EAAmB,GACnBnpJ,EAAItL,KAAKwwJ,OAAOtC,OACpB,GAAU,MAAN5iJ,EAAW,CACb,IAAIssJ,EAAQ53J,KAAKwwJ,OAAOtC,KAAK,GAIxBluJ,KAAK62J,UAAUL,KAAQx2J,KAAK82J,UAAUN,KAAiB,MAAVoB,IAChDnD,EAAmBA,GACjBz0J,KAAK+2J,WAAWP,IAAI/9D,QAEnBz4F,KAAK62J,UAAUP,KAAQt2J,KAAK82J,UAAUR,KAAiB,MAAVsB,IAChDnD,EAAmBA,GACjBz0J,KAAK+2J,WAAWT,IAAI79D,OAE1B,KAAiB,MAANntF,IACJtL,KAAK62J,UAAUN,YAAev2J,KAAK82J,UAAUP,aAKhD9B,GAFAA,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWC,mBAAmBv+D,SAEnCz4F,KAAK+2J,WAAWE,qBAAqBx+D,SAErCz4F,KAAK+2J,WAAWR,WAAW99D,QAE1Bz4F,KAAK62J,UAAUR,SAEbr2J,KAAK82J,UAAUT,QAAWr2J,KAAK82J,UAAUP,aAC5C9B,EAAmBA,GACjBz0J,KAAK+2J,WAAWG,aAAaz+D,QAE5Bz4F,KAAK82J,UAAUT,SAGlB5B,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWI,eAAe1+D,SAE/Bz4F,KAAK+2J,WAAWV,OAAO59D,SAGxBz4F,KAAK62J,UAAUJ,QAEdz2J,KAAK62J,UAAUR,QAAUr2J,KAAK62J,UAAUN,aAK1C9B,GAFAA,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWK,eAAe3+D,SAE/Bz4F,KAAK+2J,WAAWM,eAAe5+D,SAE/Bz4F,KAAK+2J,WAAWN,OAAOh+D,SAI/B,OAAOg8D,CACT,EAGA72E,EAAO1/E,QAAQy4J,mBAAqBA,CAG7B,EAAE,CAAF,WAKS/4E,EAAQ4rD,EAA0BjH,GAgClD,IAAIstB,EAActtB,EAAoB,IAAIstB,WACxC7D,EAAWzpB,EAAoB,IAAIypB,QAOrCpuE,EAAO1/E,QALP,SAAoB25J,EAAa93J,EAAS6mJ,EAAaC,GAErD,OADiB,IAAIgJ,EAAWgI,EAAa93J,EAAS6mJ,EAAaC,GACjDE,UACpB,EAGAnpE,EAAO1/E,QAAQ6xJ,eAAiB,WAC9B,OAAO,IAAI/D,CACb,CAGO,WAESpuE,EAAQ4rD,EAA0BjH,GAgClD,IAAIypB,EAAWzpB,EAAoB,IAAIypB,QACnCxD,EAAUjmB,EAAoB,GAAGimB,OACjCnwD,EAAakqC,EAAoB,IAAIlqC,UACrCk7D,EAAShxB,EAAoB,IAAIgxB,MAEjCnjE,EAAY,cACZ6/D,EAAgB,eAEhB6H,EAAU,SAAS/3J,EAASg4J,GAE9B/3J,KAAKqoJ,aAAe,EACpBroJ,KAAKg4J,eAAiB,EACtBh4J,KAAKysJ,sBAAwB1sJ,EAAQ0sJ,sBACrCzsJ,KAAKwsJ,kBAAoBzsJ,EAAQysJ,kBAEjCxsJ,KAAKixJ,QAAU,IAAIzI,EAAOzoJ,EAASg4J,EAErC,EAEAD,EAAQt5J,UAAUy5J,uBAAyB,SAASr7B,GAClD,OAAO58H,KAAKixJ,QAAQhI,aAAaQ,UAAU7sB,EAC7C,EAEAk7B,EAAQt5J,UAAU05J,uBAAyB,SAAS16J,EAAO26J,GACzDn4J,KAAKixJ,QAAQ9H,mBAAqB3rJ,EAClCwC,KAAKixJ,QAAQ7H,mBAAqB+O,CACpC,EAEAL,EAAQt5J,UAAUysJ,eAAiB,WACjCjrJ,KAAKixJ,QAAQzH,WAAWxpJ,KAAKqoJ,aAAcroJ,KAAKg4J,gBAChDh4J,KAAKixJ,QAAQhG,gBACf,EAGA6M,EAAQt5J,UAAU0sJ,cAAgB,SAASvyD,GACzC34F,KAAKixJ,QAAQ/F,cAAcvyD,EAC7B,EAEAm/D,EAAQt5J,UAAU45J,yBAA2B,SAASC,GACpD,IAAIlN,EAAW,EACXkN,EAAUvnE,OAASyiE,EAAM+E,MAAQD,EAAUjsJ,SAAS0kF,OAASyiE,EAAM+E,OACrEnN,EAAWkN,EAAUlN,SAAW,EAAI,GAGlCnrJ,KAAKwsJ,oBACPrB,EAAWkN,EAAUlN,SAAWnrJ,KAAKysJ,sBAAwB,EAAI4L,EAAUlN,SAAWnrJ,KAAKysJ,sBAAwB,GAErH,IAAK,IAAI77I,EAAI,EAAGA,EAAIu6I,EAAUv6I,IAC5B5Q,KAAKu4J,cAAc3nJ,EAAI,GAGzB,OAAoB,IAAbu6I,CACT,EAEA2M,EAAQt5J,UAAUg6J,oBAAsB,SAASH,GAC/C,SAAIA,EAAUjN,oBAAqBiN,EAAUlN,YACtCnrJ,KAAKo4J,yBAAyBC,KACjCr4J,KAAKixJ,QAAQ9H,oBAAqB,IAE7B,EAGX,EAEA2O,EAAQt5J,UAAU6qJ,uBAAyB,WACzC,OAAOrpJ,KAAKixJ,QAAQ5H,sBACtB,EAEAyO,EAAQt5J,UAAU+5J,cAAgB,SAASE,GACzCz4J,KAAKixJ,QAAQ/G,aAAauO,EAC5B,EAEAX,EAAQt5J,UAAUk6J,YAAc,SAAS//D,GACnCA,EAAM9jF,OACR7U,KAAKixJ,QAAQzH,WAAWxpJ,KAAKqoJ,aAAcroJ,KAAKg4J,gBAChDh4J,KAAKixJ,QAAQ5F,UAAU1yD,EAAM9jF,MAEjC,EAEAijJ,EAAQt5J,UAAUmrJ,OAAS,WACzB3pJ,KAAKqoJ,cACP,EAEAyP,EAAQt5J,UAAUm6J,SAAW,WACvB34J,KAAKqoJ,aAAe,IACtBroJ,KAAKqoJ,eACLroJ,KAAKixJ,QAAQzH,WAAWxpJ,KAAKqoJ,aAAcroJ,KAAKg4J,gBAEpD,EAEAF,EAAQt5J,UAAUo6J,gBAAkB,SAASC,GAE3C,OADAA,EAAQ74J,KAAKqoJ,cAAgBwQ,GAAS,IAC1B,EACH,GAGF74J,KAAKixJ,QAAQ3G,kBAAkBuO,EACxC,EAEA,IAmBIC,EAA6B,SAASC,EAAWV,GACnD,IAAIW,EAAgB,KAChB5xE,EAAS,KAEb,OAAKixE,EAAUt9E,QAIG,WAAdg+E,EACFC,EAAgB,kBACO,UAAdD,IACTC,EAAgB,YAGlBA,EAjCuB,SAASC,GAKhC,IAJA,IAAI7xE,EAAS,KACTixE,EAAYY,EAAY3sJ,KAGrB+rJ,EAAUvnE,OAASyiE,EAAMz+D,KAAOmkE,EAAYl+E,SAAWs9E,GAAW,CACvE,GAAIA,EAAUvnE,OAASyiE,EAAM2F,WAAgC,SAAnBb,EAAUxjJ,KAAiB,CAC/DwjJ,EAAU/rJ,MAAQ+rJ,EAAU/rJ,KAAKwkF,OAASyiE,EAAM4F,QAClDd,EAAU/rJ,KAAKA,MAAQ+rJ,EAAU/rJ,KAAKA,KAAKwkF,OAASyiE,EAAM6F,QAC1DhyE,EAASixE,EAAU/rJ,KAAKA,KAAKuI,MAE/B,KACF,CACAwjJ,EAAYA,EAAU/rJ,IACxB,CAEA,OAAO86E,CACT,CAgBkBiyE,CAAmBhB,IAAcW,EAI7CA,EAAcM,OAAO,aAAe,EACtClyE,EAAS,MACA4xE,EAAcM,OAAO,gHAAkH,EAChJlyE,EAAS,aACA4xE,EAAcM,OAAO,yCAA2C,EACzElyE,EAAS,OACA4xE,EAAcM,OAAO,eAAiB,IAE/ClyE,EAAS,QAGJA,GAxBE,IAyBX,EAEA,SAASmyE,EAASC,EAAMz1E,GACtB,OAA8B,IAAvBA,EAAIh3E,QAAQysJ,EACrB,CAEA,SAASC,EAASvsJ,EAAQwsJ,EAAcrR,GACtCroJ,KAAKkN,OAASA,GAAU,KACxBlN,KAAK0sI,IAAMgtB,EAAeA,EAAaC,SAAW,GAClD35J,KAAKqoJ,aAAeA,GAAgB,EACpCroJ,KAAK05J,aAAeA,GAAgB,IACtC,CAEA,SAASE,EAASC,GAChB75J,KAAK85J,SAAWD,EAChB75J,KAAK+5J,eAAiB,IACxB,CAmDA,SAASlK,EAAWC,EAAa/vJ,EAAS6mJ,EAAaC,GAErD7mJ,KAAKswJ,aAAeR,GAAe,GACnC/vJ,EAAUA,GAAW,CAAC,EACtBC,KAAKg6J,aAAepT,EACpB5mJ,KAAKi6J,cAAgBpT,EACrB7mJ,KAAKk6J,WAAa,KAIlB,IAAIC,EAAa,IAAInO,EAAQjsJ,EAAS,QAEtCC,KAAKusH,SAAW4tC,EAEhBn6J,KAAKo6J,0BAAwF,UAA5Dp6J,KAAKusH,SAAS8tC,gBAAgBv5J,OAAO,EAAG,GACzEd,KAAKs6J,2CAAgF,2BAAlCt6J,KAAKusH,SAAS8tC,gBACjEr6J,KAAKu6J,kCAAuE,kBAAlCv6J,KAAKusH,SAAS8tC,gBACxDr6J,KAAKw6J,qCAA0E,qBAAlCx6J,KAAKusH,SAAS8tC,gBAC3Dr6J,KAAKy6J,6BAA8F,aAA/Dz6J,KAAKusH,SAAS8tC,gBAAgBv5J,OAAO,EAAG,GAC5Ed,KAAK06J,qCAA0E,qBAAlC16J,KAAKusH,SAAS8tC,eAC7D,CArEAT,EAASp7J,UAAUm8J,iBAAmB,WACpC,OAAO36J,KAAK+5J,eAAiB/5J,KAAK+5J,eAAeL,aAAe,IAClE,EAEAE,EAASp7J,UAAUo8J,WAAa,SAASlB,GACvC,IAAImB,EAAY,IAAIpB,EAASz5J,KAAK+5J,eAAgBL,EAAc15J,KAAK85J,SAASzR,cAC9EroJ,KAAK+5J,eAAiBc,CACxB,EAEAjB,EAASp7J,UAAUs8J,eAAiB,SAASC,GAC3C,IAAIrB,EAAe,KAQnB,OANIqB,IACFrB,EAAeqB,EAAMrB,aACrB15J,KAAK85J,SAASzR,aAAe0S,EAAM1S,aACnCroJ,KAAK+5J,eAAiBgB,EAAM7tJ,QAGvBwsJ,CACT,EAEAE,EAASp7J,UAAUw8J,WAAa,SAASC,EAAUC,GAGjD,IAFA,IAAIH,EAAQ/6J,KAAK+5J,eAEVgB,IACgC,IAAjCE,EAASluJ,QAAQguJ,EAAMruB,MADf,CAGL,GAAIwuB,IAA+C,IAAlCA,EAAUnuJ,QAAQguJ,EAAMruB,KAAa,CAC3DquB,EAAQ,KACR,KACF,CACAA,EAAQA,EAAM7tJ,MAChB,CAEA,OAAO6tJ,CACT,EAEAnB,EAASp7J,UAAU28J,QAAU,SAASzuB,EAAKwuB,GACzC,IAAIH,EAAQ/6J,KAAKg7J,WAAW,CAACtuB,GAAMwuB,GACnC,OAAOl7J,KAAK86J,eAAeC,EAC7B,EAEAnB,EAASp7J,UAAU48J,cAAgB,SAASH,GAC1C,IAAIF,EAAQ/6J,KAAKg7J,WAAWC,GACxBF,IACF/6J,KAAK85J,SAASzR,aAAe0S,EAAM1S,aAEvC,EAwBAwH,EAAWrxJ,UAAUuoJ,SAAW,WAG9B,GAAI/mJ,KAAKusH,SAAS6/B,SAChB,OAAOpsJ,KAAKswJ,aAGd,IAAIR,EAAc9vJ,KAAKswJ,aACnBxF,EAAM9qJ,KAAKusH,SAASu+B,IACE,SAAtB9qJ,KAAKusH,SAASu+B,MAChBA,EAAM,KACFgF,GAAe1/D,EAAUvuF,KAAKiuJ,KAChChF,EAAMgF,EAAY90E,MAAMoV,GAAW,KAOvC,IAAI03D,GAFJgI,EAAcA,EAAYjwJ,QAAQowJ,EAAe,OAEdj1E,MAAM,WAAW,GAEhDqgF,EAAa,CACfxmJ,KAAM,GACNi8E,KAAM,IAGJwqE,EAAiB,IAAIC,EAAmBv7J,KAAKusH,UAE7CstC,EAAU,IAAI/B,EAAQ93J,KAAKusH,SAAUu7B,GACrCpvD,EAAS,IAAIL,EAAUy3D,EAAa9vJ,KAAKusH,UAAUqnC,WAEvD5zJ,KAAKk6J,WAAa,IAAIN,EAASC,GAI/B,IAFA,IAAIH,EAAe,KACfrB,EAAY3/D,EAAOpsF,OAChB+rJ,EAAUvnE,OAASyiE,EAAMz+D,KAE1BujE,EAAUvnE,OAASyiE,EAAMiI,UAAYnD,EAAUvnE,OAASyiE,EAAMkI,QAEhEH,EADA5B,EAAe15J,KAAK07J,iBAAiB7B,EAASxB,EAAWiD,EAAgBD,EAAY3iE,GAE3E2/D,EAAUvnE,OAASyiE,EAAM2F,WAAab,EAAUvnE,OAASyiE,EAAM4F,QAAUd,EAAUvnE,OAASyiE,EAAM6F,OAC3Gf,EAAUvnE,OAASyiE,EAAM+E,OAASgD,EAAeK,aAClDjC,EAAe15J,KAAK47J,mBAAmB/B,EAASxB,EAAWiD,EAAgBD,GAClEhD,EAAUvnE,OAASyiE,EAAMsI,UAClCnC,EAAe15J,KAAK87J,kBAAkBjC,EAASxB,EAAWiD,GACjDjD,EAAUvnE,OAASyiE,EAAM+E,KAClCoB,EAAe15J,KAAK+7J,aAAalC,EAASxB,EAAWiD,GAC5CjD,EAAUvnE,OAASyiE,EAAMyI,kBAClCtC,EAAe15J,KAAKi8J,0BAA0BpC,EAASxB,GAC9CA,EAAUvnE,OAASyiE,EAAM2I,mBAClCxC,EAAe15J,KAAKm8J,2BAA2BtC,EAASxB,GAGxDwB,EAAQ3O,cAAcmN,GAGxBgD,EAAa3B,EAEbrB,EAAY3/D,EAAOpsF,OAIrB,OAFiButJ,EAAQ5I,QAAQpG,SAASC,EAG5C,EAEA+E,EAAWrxJ,UAAUy9J,0BAA4B,SAASpC,EAASxB,GACjE,IAAIqB,EAAe,CACjB7kJ,KAAMwjJ,EAAUxjJ,KAChBi8E,KAAMunE,EAAUvnE,MAUlB,OARA+oE,EAAQ3B,uBAAuBG,EAAUlN,UAA4C,KAAhCkN,EAAUjN,mBAA0B,GACrFiN,EAAUlN,SACZ0O,EAAQzB,yBAAyBC,GAEjCwB,EAAQ3B,uBAAuBG,EAAUlN,UAA4C,KAAhCkN,EAAUjN,mBAA0B,GAE3FyO,EAAQnB,YAAYL,GACpBwB,EAAQlQ,SACD+P,CACT,EAEA7J,EAAWrxJ,UAAU29J,2BAA6B,SAAStC,EAASxB,GAClE,IAAIqB,EAAe,CACjB7kJ,KAAMwjJ,EAAUxjJ,KAChBi8E,KAAMunE,EAAUvnE,MAUlB,OAPA+oE,EAAQlB,WACJN,EAAUlN,SACZ0O,EAAQzB,yBAAyBC,GAEjCwB,EAAQ3B,uBAAuBG,EAAUlN,UAA4C,KAAhCkN,EAAUjN,mBAA0B,GAE3FyO,EAAQnB,YAAYL,GACbqB,CACT,EAEA7J,EAAWrxJ,UAAUs9J,kBAAoB,SAASjC,EAASxB,EAAWiD,GACpE,IAAI5B,EAAe,CACjB7kJ,KAAMwjJ,EAAUxjJ,KAChBi8E,KAAMunE,EAAUvnE,MAgClB,OA9BA+oE,EAAQ7B,eAAiB,EACzBsD,EAAeK,cAAe,EAE9B9B,EAAQ3B,uBAAuBG,EAAUlN,UAA4C,KAAhCkN,EAAUjN,mBAA0B,GACrFkQ,EAAec,eACjBvC,EAAQ3O,cAAcmN,IAEgB,MAAlCiD,EAAee,iBACjBxC,EAAQ3B,uBAA6C,MAAtBG,EAAUxjJ,KAAK,IAAY,GACtD7U,KAAKs6J,4CAA8CgB,EAAegB,mBACpEzC,EAAQtB,eAAc,IAG1BsB,EAAQnB,YAAYL,KAIlBiD,EAAeiB,gBACfjB,EAAec,gBAAkBd,EAAekB,yBAClD3C,EAAQlQ,SAGR2R,EAAeiB,gBAAiB,GAG7BjB,EAAemB,mBAChBnB,EAAec,gBAAkBd,EAAekB,wBAClD3C,EAAQ5O,iBAGHyO,CACT,EAEA7J,EAAWrxJ,UAAUo9J,mBAAqB,SAAS/B,EAASxB,EAAWiD,EAAgBD,GACrF,IAAIqB,EAAUpB,EAAegB,kBACzB5C,EAAe,CACjB7kJ,KAAMwjJ,EAAUxjJ,KAChBi8E,KAAMunE,EAAUvnE,MA4ClB,OAzCA+oE,EAAQ3B,uBAAuBG,EAAUlN,UAA4C,KAAhCkN,EAAUjN,mBAA0B,GACrFkQ,EAAec,eACjBvC,EAAQ3O,cAAcmN,GACqB,MAAlCiD,EAAee,gBAA0BhE,EAAUvnE,OAASyiE,EAAM+E,KAEvEuB,EAAQzB,yBAAyBC,IACnCA,EAAUlN,SAAW,EACrB0O,EAAQ3O,cAAcmN,IAEtBwB,EAAQnB,YAAYL,IAGlBA,EAAUvnE,OAASyiE,EAAM2F,UAC3BW,EAAQ3B,wBAAuB,IACtBG,EAAUvnE,OAASyiE,EAAM4F,QAEzBd,EAAUvnE,OAASyiE,EAAM6F,OAASf,EAAUjsJ,SAAS0kF,OAASyiE,EAAM4F,SAD7EU,EAAQ3B,wBAAuB,GAK7BG,EAAUvnE,OAASyiE,EAAM2F,WAA+C,MAAlCoC,EAAee,kBACnDr8J,KAAKy6J,8BAAgCz6J,KAAK06J,wCAC5Cb,EAAQrB,oBAAoBH,GAC5BqE,EAAUA,GAAkC,IAAvBrE,EAAUlN,UAM7BnrJ,KAAKo6J,2BACPkB,EAAeqB,YAAc38J,KAAKusH,SAASqwC,4BAC1CvB,EAAWvqE,OAASyiE,EAAMiI,UACzBx7J,KAAKs6J,8CACPT,EAAQtB,eAAc,GACtBmE,GAAU,IAGd7C,EAAQnB,YAAYL,GACpBqE,EAAUA,GAAW7C,EAAQxQ,yBAC7BiS,EAAegB,kBAAoBI,GAE9BhD,CACT,EAEA7J,EAAWrxJ,UAAUu9J,aAAe,SAASlC,EAASxB,EAAWiD,GAC/D,IAAI5B,EAAe,CACjB7kJ,KAAMwjJ,EAAUxjJ,KAChBi8E,KAAM,cAUR,OARIwqE,EAAeuB,uBACjB78J,KAAK88J,6BAA6BjD,EAASxB,EAAWiD,GAC7CA,EAAec,gBAAkBd,EAAekB,uBACzD3C,EAAQ3O,cAAcmN,IAEtBwB,EAAQrB,oBAAoBH,GAC5BwB,EAAQnB,YAAYL,IAEfqB,CACT,EAEA7J,EAAWrxJ,UAAUs+J,6BAA+B,SAASjD,EAASxB,EAAWiD,GAC/E,IAAI1V,EAAQ5lJ,KACZ,GAAuB,KAAnBq4J,EAAUxjJ,KAAa,CAEzB,IACEkoJ,EADEloJ,EAAOwjJ,EAAUxjJ,KAEnBmoJ,EAAsB,EACtBhvJ,EAAM,GACNivJ,EAAO,GACqC,eAA1C3B,EAAeuB,wBAAwE,oBAAtB78J,KAAKg6J,aACxE+C,EAAc/8J,KAAKg6J,aACgC,QAA1CsB,EAAeuB,wBAAkE,oBAAvB78J,KAAKi6J,cACxE8C,EAAc/8J,KAAKi6J,cACgC,SAA1CqB,EAAeuB,yBACxBE,EAAc,SAASlF,EAAa93J,GAElC,OADiB,IAAI8vJ,EAAWgI,EAAa93J,EAAS6lJ,EAAMoU,aAAcpU,EAAMqU,eAC9DlT,UACpB,GAGmC,SAAjC/mJ,KAAKusH,SAAS2wC,eAChBF,EAAsB,EACoB,aAAjCh9J,KAAKusH,SAAS2wC,iBACvBF,GAAuBnD,EAAQxR,cAGjC,IAAI8U,EAActD,EAAQjB,gBAAgBoE,GAO1C,GAHAnoJ,EAAOA,EAAKhV,QAAQ,YAAa,IAGa,SAA1Cy7J,EAAeuB,wBACL,MAAZhoJ,EAAK,IAAcA,EAAKmmE,MAAM,uBAAwB,CACtD,IAAIoiF,EAAU,8DAA8DphF,KAAKnnE,GAGjF,IAAKuoJ,EAEH,YADAvD,EAAQ3O,cAAcmN,GAIxBrqJ,EAAMmvJ,EAAcC,EAAQ,GAAK,KACjCvoJ,EAAOuoJ,EAAQ,GACXA,EAAQ,KACVH,EAAOE,EAAcC,EAAQ,IAK/BvoJ,EAAOA,EAAKhV,QAAQ,YAAa,KAE7Bu9J,EAAQ,KAAoC,IAA9BA,EAAQ,GAAGrwJ,QAAQ,SAGnCqwJ,EAAUA,EAAQ,GAAGpiF,MAAM,cAEzBq9E,EAAUjN,kBAAoBgS,EAAQ,GAG5C,CAEA,GAAIvoJ,EACF,GAAIkoJ,EAAa,CAGf,IAAIM,EAAgB,WAClBr9J,KAAK8qJ,IAAM,IACb,EACAuS,EAAc7+J,UAAYwB,KAAKusH,SAAS2/B,YAExCr3I,EAAOkoJ,EAAYI,EAActoJ,EADb,IAAIwoJ,EAE1B,KAAO,CAEL,IAAIC,EAAQjF,EAAUjN,kBAClBkS,IACFzoJ,EAAOA,EAAKhV,QAAQ,IAAIk6E,OAAO,MAAQujF,EAAQ,KAAM,KAAM,OAG7DzoJ,EAAOsoJ,EAActoJ,EAAKhV,QAAQ,MAAO,KAAOs9J,EAClD,CAGEnvJ,IAIA6G,EAHGA,EAGI7G,EAAM6G,EAAO,KAAOooJ,EAFpBjvJ,EAAMivJ,GAMjBpD,EAAQtB,eAAc,GAClB1jJ,IACFwjJ,EAAUxjJ,KAAOA,EACjBwjJ,EAAUjN,kBAAoB,GAC9BiN,EAAUlN,SAAW,EACrB0O,EAAQ3O,cAAcmN,GACtBwB,EAAQtB,eAAc,GAE1B,CACF,EAEA1I,EAAWrxJ,UAAUk9J,iBAAmB,SAAS7B,EAASxB,EAAWiD,EAAgBD,EAAY3iE,GAC/F,IAAIghE,EAAe15J,KAAKu9J,oBAAoBlF,GAmB5C,IAjBKiD,EAAec,iBAAkBd,EAAekB,wBAClDlB,EAAekC,kBAChBnF,EAAUvnE,OAASyiE,EAAMiI,UAAa9B,EAAa+D,cAMnD5D,EAAQrB,oBAAoBH,GAC5Br4J,KAAK09J,kBAAkB7D,EAASxB,EAAWqB,EAAc4B,EAAgBD,GACpE3B,EAAa+C,mBAChB5C,EAAQ5O,iBAEV4O,EAAQnB,YAAYL,KARpBwB,EAAQ3O,cAAcmN,GACtBqB,EAAaiE,gBAAkB39J,KAAKk6J,WAAWiB,QAAQzB,EAAaC,WAWlED,EAAa+D,cAAgBz9J,KAAKo6J,0BAA2B,CAC/D,IACIwD,EADAC,EAAa,EAEjB,IACED,EAAallE,EAAOw1D,KAAK2P,IACV/sE,OAASyiE,EAAM2F,YAC5BQ,EAAaiD,YAAc,GAE7BkB,GAAc,QACPD,EAAW9sE,OAASyiE,EAAMz+D,KAAO8oE,EAAW9sE,OAASyiE,EAAMsI,UACtE,CAWA,OARI77J,KAAKu6J,mCAAqCv6J,KAAKw6J,sCAAwCx6J,KAAK06J,wCAC9FhB,EAAa1B,eAAiBK,EAAUxjJ,KAAK5V,OAAS,GAGnDy6J,EAAaiC,cAAiBjC,EAAa0C,iBAC9CvC,EAAQ7B,eAAiB0B,EAAa1B,gBAGjC0B,CACT,EAEA,IAAI6B,EAAqB,SAASx7J,EAASmN,EAAQmrJ,GAsBjD,GArBAr4J,KAAKkN,OAASA,GAAU,KACxBlN,KAAK6U,KAAO,GACZ7U,KAAK8wF,KAAO,cACZ9wF,KAAK25J,SAAW,GAChB35J,KAAKy8J,mBAAoB,EACzBz8J,KAAKo8J,gBAAiB,EACtBp8J,KAAKw8J,wBAAyB,EAC9Bx8J,KAAKw9J,kBAAmB,EACxBx9J,KAAKy9J,cAAe,EACpBz9J,KAAK89J,YAAa,EAClB99J,KAAKu8J,gBAAiB,EACtBv8J,KAAK+9J,mBAAoB,EACzB/9J,KAAK68J,uBAAyB,KAC9B78J,KAAK29J,gBAAkB,KACvB39J,KAAK28J,WAAa,EAClB38J,KAAKs8J,mBAAoB,EACzBt8J,KAAKg4J,eAAiB,EACtBh4J,KAAK27J,cAAe,EACpB37J,KAAKq8J,eAAiB,GACtBr8J,KAAK+4J,UAAY,GAEZV,EAEE,CACL,IAAI2F,EAEJh+J,KAAKq8J,eAAiBhE,EAAUxjJ,KAAK,GACrC7U,KAAK6U,KAAOwjJ,EAAUxjJ,KAEM,MAAxB7U,KAAKq8J,gBACP2B,EAAkB3F,EAAUxjJ,KAAKmmE,MAAM,eACvCh7E,KAAK+4J,UAAYiF,EAAkBA,EAAgB,GAAK,KAExDA,EAAkB3F,EAAUxjJ,KAAKmmE,MAAM,gCACvCh7E,KAAK+4J,UAAYiF,EAAkBA,EAAgB,GAAK,IAGnD3F,EAAUxjJ,KAAKopJ,WAAW,SAAW5F,EAAUxjJ,KAAKopJ,WAAW,WAAmC,MAAtBj+J,KAAK+4J,UAAU,KACvE,MAAnB/4J,KAAK+4J,WAAwC,OAAnBV,EAAU/rJ,KACtCtM,KAAK+4J,UAAYV,EAAU/rJ,KAAKuI,KAAKnO,MAAM,KAAK,GAEhD1G,KAAK+4J,UAAYV,EAAUxjJ,KAAKnO,MAAM,KAAK,KAKjD1G,KAAK+4J,UAAY/4J,KAAK+4J,UAAUx7E,cAE5B86E,EAAUvnE,OAASyiE,EAAMkI,UAC3Bz7J,KAAK27J,cAAe,GAGtB37J,KAAKy9J,aAA4C,MAA7Bz9J,KAAK+4J,UAAUl+E,OAAO,GAC1C76E,KAAK25J,SAAY35J,KAAKy9J,aAA0Cz9J,KAAK+4J,UAAhC/4J,KAAK+4J,UAAUj4J,OAAO,GAC3Dd,KAAK89J,YAAc99J,KAAKy9J,cACrBpF,EAAUt9E,QAAoC,OAA1Bs9E,EAAUt9E,OAAOlmE,KAGxC,IAAIqpJ,EAAmB,EACK,MAAxBl+J,KAAKq8J,gBAA0Br8J,KAAK6U,KAAK5V,QAAU,GACzB,MAAxBe,KAAK6U,KAAKgmE,OAAO,KACnBqjF,EAAmB,GAMvBl+J,KAAK89J,WAAa99J,KAAK89J,YACI,MAAxB99J,KAAKq8J,kBAA4Bt8J,EAAQo+J,mBAAqBn+J,KAAK6U,KAAK5V,OAAS,GAAM,SAAS4C,KAAK7B,KAAK6U,KAAKgmE,OAAOqjF,IAC3H,MA/CEl+J,KAAK27J,cAAe,CAgDxB,EAEA9L,EAAWrxJ,UAAU++J,oBAAsB,SAASlF,GAClD,IAAIqB,EAAe,IAAI6B,EAAmBv7J,KAAKusH,SAAUvsH,KAAKk6J,WAAWS,mBAAoBtC,GAc7F,OAZAqB,EAAa1B,eAAiBh4J,KAAKusH,SAAS6xC,4BAE5C1E,EAAaoE,WAAapE,EAAaoE,YACrCvE,EAASG,EAAaX,UAAW/4J,KAAKusH,SAAS8xC,eAEjD3E,EAAa8D,iBAAmB9D,EAAaiC,cAC1CjC,EAAa+D,cAAgB/D,EAAaoE,WAE7CpE,EAAa0C,gBAAkB1C,EAAaiC,cAAgBpC,EAASG,EAAaX,UAAW/4J,KAAKusH,SAAS+xC,aAC3G5E,EAAa8C,wBAA0B9C,EAAa8D,kBAAoBjE,EAASG,EAAaX,UAAW/4J,KAAKusH,SAASgyC,qBACvH7E,EAAa+C,kBAAoBlD,EAASG,EAAaC,SAAU35J,KAAKusH,SAASiyC,SAAYx+J,KAAKusH,SAASkyC,wBAA0B/E,EAAaC,SAASlvB,SAAS,MAAyC,MAAhCivB,EAAa2C,eAEjL3C,CACT,EAEA7J,EAAWrxJ,UAAUk/J,kBAAoB,SAAS7D,EAASxB,EAAWqB,EAAc4B,EAAgBD,GA8BlG,GA5BK3B,EAAa8D,mBACZ9D,EAAaoE,WACfpE,EAAaiE,gBAAkB39J,KAAKk6J,WAAWiB,QAAQzB,EAAaC,WAIhE35J,KAAK0+J,yBAAyBhF,KAC3BA,EAAa+C,mBAChB5C,EAAQtB,eAAc,IAI1Bv4J,KAAKk6J,WAAWU,WAAWlB,GAEI,WAA1BA,EAAaC,UAAmD,UAA1BD,EAAaC,UACpDD,EAAa0C,gBAAkB1C,EAAa8C,yBAC9C9C,EAAamD,uBAAyB/D,EAA2BY,EAAaX,UAAWV,MAK3FkB,EAASG,EAAaX,UAAW/4J,KAAKusH,SAASoyC,gBACjD9E,EAAQtB,eAAc,GACjBsB,EAAQ5I,QAAQtF,wBACnBkO,EAAQtB,eAAc,IAItBmB,EAAa8D,iBAAkB,CAIjC,GAAoC,MAAhC9D,EAAa2C,gBAAqD,SAA3B3C,EAAaX,UACtD/4J,KAAKk6J,WAAWkB,cAAc,CAAC,KAAM,SAAU,SAC/C1B,EAAa6C,gBAAiB,EAEH1C,EAAQ5B,uBAAuB,UAExD4B,EAAQtB,eAAc,GAKI,QAA1BmB,EAAaC,UAAsB0B,EAAWvqE,OAASyiE,EAAMsI,WAC/DP,EAAewC,aAAmD,IAArCpE,EAAa7kJ,KAAK9H,QAAQ,QAGjD2sJ,EAAa+C,mBAAqB/C,EAAa0C,gBACnDvC,EAAQtB,eAAc,GAExBv4J,KAAK4+J,4BAA4B/E,EAASH,GAE9C,MAAO,GAAIA,EAAaoE,WAAY,CAClC,IAAIe,GAAgB,EAIpBA,GADAA,EAAgBnF,EAAaiE,iBAAmBjE,EAAaiE,gBAAgBI,qBAC1CrE,EAAa+C,qBAC5CnB,EAAemB,mBAAqBnB,EAAec,mBACnDf,EAAWvqE,OAASyiE,EAAMsI,WAAanC,EAAaiE,kBAAoBrC,IACtD,eAApBD,EAAWvqE,MAGT4oE,EAAa8C,wBAA0B9C,EAAa0C,kBACtDyC,GAAgB,GAGdA,GACFhF,EAAQtB,eAAc,EAE1B,MACEmB,EAAa6C,gBAAkB7C,EAAamD,uBAER,MAAhCnD,EAAa2C,iBACe,SAA1B3C,EAAaC,SACfD,EAAa6C,eAAiBv8J,KAAKusH,SAASuyC,kBACT,SAA1BpF,EAAaC,SACtBD,EAAa6C,eAAiBv8J,KAAKusH,SAASwyC,uBACT,SAA1BrF,EAAaC,WACtBD,EAAa6C,eAAiBv8J,KAAKusH,SAASyyC,yBAI1CtF,EAAa+C,mBAAqB/C,EAAa0C,gBAC9B,eAApBf,EAAWvqE,OAAyB4oE,EAAa8C,wBAClD3C,EAAQtB,eAAc,GAGxBv4J,KAAK4+J,4BAA4B/E,EAASH,EAE9C,EAEA7J,EAAWrxJ,UAAUogK,4BAA8B,SAAS/E,EAASH,IAC/DA,EAAaxsJ,SAAU2sJ,EAAQ5I,QAAQrG,uBACtC8O,EAAa+C,mBAAqB/C,EAAa0C,iBAAmB1C,EAAaxsJ,OAAOuvJ,oBACzF/C,EAAaxsJ,OAAO6wJ,mBAAoB,EAE5C,EAGA,IAAIkB,EAAY,CAAC,UAAW,UAAW,QAAS,aAAc,UAAW,MAAO,KAAM,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,KAAM,OAAQ,OAAQ,MAAO,KAAM,IAAK,MAAO,UAAW,QAAS,MACzPC,EAAoB,CAAC,IAAK,QAAS,MAAO,MAAO,MAAO,WAAY,SAExErP,EAAWrxJ,UAAUkgK,yBAA2B,SAAShF,GACvD,IAAItyE,EAAS,KAKb,IAAIsyE,EAAa8D,kBAAqB9D,EAAa+D,cAAiB/D,EAAaxsJ,OAAjF,CAKA,GAA8B,SAA1BwsJ,EAAaC,SAEfvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,aAKtC,GAA8B,OAA1BzB,EAAaC,SAEtBvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,KAAM,KAAM,cAEzD,GAA8B,OAA1BzB,EAAaC,UAA+C,OAA1BD,EAAaC,SAIxDvyE,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,SAC/Bn7J,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,YAG7C,GAAqC,MAAjCzB,EAAaxsJ,OAAOysJ,WAAkE,IAA9CsF,EAAUlyJ,QAAQ2sJ,EAAaC,UAAkB,CAKlG,IAAIwF,EAAWzF,EAAaxsJ,OAAOA,OAC9BiyJ,IAA8D,IAAlDD,EAAkBnyJ,QAAQoyJ,EAASxF,YAClDvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,KAE/C,KAAqC,OAA1BzB,EAAaC,UAA+C,OAA1BD,EAAaC,SAIxDvyE,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,OAAQ,UACvCn7J,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,OAAQ,QAEvB,aAA1BzB,EAAaC,SAGtBvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,WAAY,CAAC,WAGrB,WAA1BzB,EAAaC,SAEtBvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,SAAU,CAAC,SAAU,WAAY,aAEzC,aAA1BzB,EAAaC,SAGtBvyE,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,UAAW,CAAC,UAEpB,UAA1BzB,EAAaC,SAItBvyE,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,UAAW,CAAC,YACpCn7J,KAAKk6J,WAAWiB,QAAQ,WAAY,CAAC,UAKrB,UAA1BzB,EAAaC,UAAkD,UAA1BD,EAAaC,SAQ3DvyE,GADAA,GADAA,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,UAAW,CAAC,YACpCn7J,KAAKk6J,WAAWiB,QAAQ,WAAY,CAAC,YACrCn7J,KAAKk6J,WAAWiB,QAAQ,QAAS,CAAC,YAClCn7J,KAAKk6J,WAAWiB,QAAQ,QAAS,CAAC,UAKlB,OAA1BzB,EAAaC,SAMtBvyE,GADAA,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,UAAW,CAAC,YACpCn7J,KAAKk6J,WAAWiB,QAAQ,WAAY,CAAC,YACrCn7J,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,QAAS,QAAS,QAAS,UAE1C,OAA1BzB,EAAaC,UAA+C,OAA1BD,EAAaC,WAIxDvyE,GADAA,EAASA,GAAUpnF,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,QAAS,QAAS,QAAS,QAAS,SACnEn7J,KAAKk6J,WAAWiB,QAAQ,KAAM,CAAC,QAAS,QAAS,QAAS,QAAS,QAWxF,OAFAzB,EAAaxsJ,OAASlN,KAAKk6J,WAAWS,mBAE/BvzE,CA/FP,CAgGF,EAEAxJ,EAAO1/E,QAAQ2xJ,WAAaA,CAGrB,WAESjyE,EAAQ4rD,EAA0BjH,GAgClD,IAAIswB,EAAetwB,EAAoB,GAAGypB,QAE1C,SAASA,EAAQjsJ,GACf8yJ,EAAYn0J,KAAKsB,KAAMD,EAAS,QACD,IAA3BC,KAAK0sJ,WAAWztJ,QAAuC,SAAvBe,KAAK0sJ,WAAW,KAClD1sJ,KAAK0sJ,WAAa,CAAC,SAAU,MAAO,aAAc,QAGpD1sJ,KAAK8+J,kBAAoB9+J,KAAKqsJ,aAAa,qBAC3CrsJ,KAAKg/J,uBAAyBh/J,KAAKqsJ,aAAa,0BAA0B,GAC1ErsJ,KAAK++J,uBAAyB/+J,KAAKqsJ,aAAa,0BAA0B,GAE1ErsJ,KAAKm+J,kBAAoBn+J,KAAKqsJ,aAAa,qBAAqB,GAChErsJ,KAAKq6J,gBAAkBr6J,KAAKotJ,eAAe,kBACzC,CAAC,OAAQ,QAAS,gBAAiB,yBAA0B,mBAAoB,WAAY,qBAC/FptJ,KAAK48J,0BAA4B58J,KAAKusJ,YAAY,4BAA6B,GAC/EvsJ,KAAKo+J,4BAA8Bp+J,KAAKusJ,YAAY,8BAA+BvsJ,KAAKioJ,aACxFjoJ,KAAK2+J,aAAe3+J,KAAKitJ,WAAW,eAAgB,CAAC,OAAQ,OAAQ,UAMrEjtJ,KAAKw+J,OAASx+J,KAAKitJ,WAAW,SAAU,CACtC,IAAK,OAAQ,OAAQ,QAAS,IAAK,MAAO,MAAO,KAAM,SAAU,SAAU,OAC3E,OAAQ,OAAQ,WAAY,MAAO,MAAO,KAAM,QAAS,IAAK,SAAU,MACxE,QAAS,MAAO,MAAO,SAAU,QAAS,MAAO,OAAQ,OAAQ,QAAS,WAC1E,SAAU,SAAU,WAAY,IAAK,OAAQ,IAAK,OAAwB,SAAU,QACpF,OAAQ,SAAU,MAAO,MAAO,MAAO,WAAY,WAAY,OAAQ,IAAK,MAC5E,QAAS,MAAO,OAEhB,UAAW,MAAO,SAAU,OAE9BjtJ,KAAKy+J,uBAAyBz+J,KAAKqsJ,aAAa,0BAA0B,GAC1ErsJ,KAAKq+J,cAAgBr+J,KAAKitJ,WAAW,gBAAiB,CAGpD,OAAQ,OAAQ,KAAM,MAAO,QAAS,KAAM,MAAO,QAAS,SAC5D,OAAQ,WAAY,OAAQ,QAAS,SAAU,QAAS,MAKxD,WAAY,OAKZ,WAAY,YAEdjtJ,KAAKs+J,YAAct+J,KAAKitJ,WAAW,cAAe,IAClDjtJ,KAAKu+J,oBAAsBv+J,KAAKitJ,WAAW,sBAAuB,CAChE,MAAO,aAETjtJ,KAAKo/J,8BAAgCp/J,KAAKssJ,gBAAgB,iCAC1DtsJ,KAAKk9J,eAAiBl9J,KAAKotJ,eAAe,iBAAkB,CAAC,SAAU,OAAQ,YAEjF,CACApB,EAAQxtJ,UAAY,IAAIq0J,EAIxBj1E,EAAO1/E,QAAQ8tJ,QAAUA,CAGlB,WAESpuE,EAAQ4rD,EAA0BjH,GAgClD,IAAI88B,EAAiB98B,EAAoB,GAAGlqC,UACxCinE,EAAa/8B,EAAoB,GAAGgxB,MACpCpE,EAAc5sB,EAAoB,IAAI4sB,WACtCwH,EAAsBp0B,EAAoB,IAAIo0B,mBAC9C3B,EAAWzyB,EAAoB,IAAIyyB,QAEnCzB,EAAQ,CACViI,SAAU,cACVK,UAAW,eACXG,kBAAmB,uBACnBE,mBAAoB,wBACpBhD,UAAW,eACXC,OAAQ,YACRC,MAAO,WACPqC,QAAS,aACTnD,KAAM,UACNiH,QAAS,aACT/L,MAAO8L,EAAU9L,MACjBC,IAAK6L,EAAU7L,IACf3+D,IAAKwqE,EAAUxqE,KAGbk7D,EAAkB,IAAIb,EAAW,QAAS,OAE1C92D,EAAY,SAASs1D,EAAc5tJ,GACrCs/J,EAAc3gK,KAAKsB,KAAM2tJ,EAAc5tJ,GACvCC,KAAKw/J,kBAAoB,GAIzB,IAAIC,EAAqB,IAAI9I,EAAmB32J,KAAKwwJ,QAAQgH,aAAax3J,KAAKusH,UAC3EmzC,EAAiB,IAAI1K,EAAQh1J,KAAKwwJ,QA6BtC,GA3BAxwJ,KAAK+2J,WAAa,CAChB4I,KAAMF,EAAmBvJ,MAAM,cAC/B0J,iCAAkCH,EAAmBvJ,MAAM,eAC3D2J,aAAcJ,EAAmBjR,YAAY,KAC7CsR,aAAcL,EAAmBjR,YAAY,KAC7CthB,UAAWuyB,EAAmBvJ,MAAM,mBACpC6J,aAAcN,EAAmBvJ,MAAM,gBAEvC8J,2BAA4BN,EAAejK,SAAS,yBACpDuB,mBAAoB0I,EAAevJ,cAAc,SAAS3H,YAAY,QACtE+H,WAAYmJ,EAAevJ,cAAc,MAAM3H,YAAY,MAC3DyR,gBAAiBP,EAAexJ,MAAM,cACtCgK,qBAAsBR,EAAexJ,MAAM,MAC3C5wJ,QAASo6J,EAAevJ,cAAc,QAAQ3H,YAAY,OAC1DruJ,MAAOu/J,EAAevJ,cAAc,eAAe3H,YAAY,OAE/D2R,oBAAqBT,EAAevJ,cAAc,QAAQ3H,YAAY,MACtE4R,WAAYV,EAAevJ,cAAc,OAAO3H,YAAY,QAG1DxuJ,KAAKusH,SAAS4xC,oBAChBn+J,KAAK+2J,WAAW4I,KAAO3/J,KAAK+2J,WAAW4I,KAAKlI,QAAQ,cACpDz3J,KAAK+2J,WAAW6I,iCAAmC5/J,KAAK+2J,WAAW6I,iCAAiCnI,QAAQ,eAG9Gz3J,KAAKqgK,+BAAiC,KAElCrgK,KAAKusH,SAAS6yC,8BAA+B,CAC/C,IAAIkB,EAAiBtgK,KAAKwwJ,OAAO1B,mBAAmB9uJ,KAAKusH,SAAS6yC,+BAClEp/J,KAAK+2J,WAAWqI,8BACdM,EAAejK,SAAS6K,GACvB9R,YAAY8R,EACjB,CACF,GACAjoE,EAAU75F,UAAY,IAAI6gK,GAENnL,YAAc,SAASS,GACzC,OAAO,CACT,EAEAt8D,EAAU75F,UAAU41J,YAAc,SAASO,GACzC,OAAOA,EAAc7jE,OAASyiE,EAAMiI,UAAY7G,EAAc7jE,OAASyiE,EAAMyI,iBAC/E,EAEA3jE,EAAU75F,UAAU61J,YAAc,SAASM,EAAeb,GACxD,OAAQa,EAAc7jE,OAASyiE,EAAMsI,WAClC/H,KAC0B,MAAvBa,EAAc9/I,MAAuC,OAAvB8/I,EAAc9/I,OAAyC,MAAvBi/I,EAAWj/I,KAAK,IACxD,OAAvB8/I,EAAc9/I,MAAwC,MAAvBi/I,EAAWj/I,KAAK,IAAqC,MAAvBi/I,EAAWj/I,KAAK,KAC5E8/I,EAAc7jE,OAASyiE,EAAM2I,oBACT,MAAvBvH,EAAc9/I,MAAgBi/I,EAAWj/I,KAAK0rJ,SAAS,IAC5D,EAEAloE,EAAU75F,UAAUq1J,OAAS,WAC3B7zJ,KAAKw/J,kBAAoB,EAC3B,EAEAnnE,EAAU75F,UAAUy1J,gBAAkB,SAASM,EAAgBT,GAC7D,IAAIn7D,EAAQ,KACZ34F,KAAKw0J,kBACL,IAAIlpJ,EAAItL,KAAKwwJ,OAAOtC,OAEpB,OAAU,OAAN5iJ,EACKtL,KAAK00J,cAAcnB,EAAMz+D,IAAK,IAavC6D,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAQA,GAAS34F,KAAKwgK,sBAAsBl1J,EAAGwoJ,KAC9B9zJ,KAAKygK,gBAAgBn1J,EAAGipJ,EAAgBT,KACxC9zJ,KAAK0gK,YAAYp1J,EAAGwoJ,KACpB9zJ,KAAK2gK,uBAAuBr1J,EAAGipJ,KAC/Bv0J,KAAK4gK,oBAAoBt1J,EAAGwoJ,KAC5B9zJ,KAAK6gK,kBAAkBv1J,EAAGipJ,EAAgBT,KAC1C9zJ,KAAK8gK,mBAAmBx1J,EAAGwoJ,KAC3B9zJ,KAAK+gK,uBAAuBz1J,KAC5BtL,KAAKghK,iBAAiB11J,KACtBtL,KAAKihK,WAAW31J,EAAGwoJ,KACnB9zJ,KAAK00J,cAAcnB,EAAMgM,QAASv/J,KAAKwwJ,OAAOlkJ,OAGjE,EAEA+rF,EAAU75F,UAAUuiK,uBAAyB,SAASz1J,GACpD,IAAIqtF,EAAQ,KACR87D,EAAmB,KACnB/E,EAAa,KAEP,MAANpkJ,IAIY,MAHFtL,KAAKwwJ,OAAOtC,KAAK,MAI3BuG,EAAmBz0J,KAAK+2J,WAAWzxJ,QAAQmzF,SAIzCi3D,EAAaM,EAAgBP,eAAegF,KACJ,UAAtB/E,EAAW0C,SAC3BqC,GAAoBzE,EAAgBJ,YAAY5vJ,KAAKwwJ,SAGvDiE,EAAmBz0J,KAAK+2J,WAAW52J,MAAMs4F,QAIzCg8D,KACF97D,EAAQ34F,KAAK00J,cAAcnB,EAAMkI,QAAShH,IACpC/E,WAAaA,IAIvB,OAAO/2D,CACT,EAEAN,EAAU75F,UAAUwiK,iBAAmB,SAAS11J,GAC9C,IAAIqtF,EAAQ,KACR87D,EAAmB,KAGvB,GAAU,MAANnpJ,EAAW,CACb,IAAIssJ,EAAQ53J,KAAKwwJ,OAAOtC,KAAK,GACf,MAAV0J,GAA2B,MAAVA,IAEnBnD,GADAA,EAAmBz0J,KAAK+2J,WAAWoJ,oBAAoB1nE,SAChBz4F,KAAK+2J,WAAWqJ,WAAW3nE,QAGhEg8D,KACF97D,EAAQ34F,KAAK00J,cAAcnB,EAAMkI,QAAShH,IACpC/E,WAXO,KAajB,CAEA,OAAO/2D,CACT,EAEAN,EAAU75F,UAAUyiK,WAAa,SAAS31J,EAAGwoJ,GAC3C,IAAIW,EAAmB,KACnB97D,EAAQ,KAYZ,OAXKm7D,GAAcA,EAAWhjE,OAASyiE,EAAMyI,mBACjC,MAAN1wJ,IAEFmpJ,EAAmBz0J,KAAKwwJ,OAAOlkJ,OACJ,MAAvBtM,KAAKwwJ,OAAOtC,SACduG,GAAoBz0J,KAAKwwJ,OAAOlkJ,QAElCmoJ,GAAoBz0J,KAAK+2J,WAAWgJ,aAAatnE,OACjDE,EAAQ34F,KAAK00J,cAAcnB,EAAMiI,SAAU/G,IAGxC97D,CACT,EAEAN,EAAU75F,UAAUgiK,sBAAwB,SAASl1J,EAAGwoJ,GACtD,IAAIW,EAAmB,KACnB97D,EAAQ,KAaZ,OAZKm7D,GAAcA,EAAWhjE,OAASyiE,EAAMyI,oBACtCh8J,KAAKusH,SAASmgC,WAAWjiB,SAAS,YAAczqI,KAAKusH,SAAS4xC,oBAA4B,MAAN7yJ,GAAqC,MAAxBtL,KAAKwwJ,OAAOtC,KAAK,KACjHluJ,KAAKusH,SAAS4xC,mBAA6C,MAAxBn+J,KAAKwwJ,OAAOtC,KAAK,IAEtDuG,GADAA,EAAmBz0J,KAAK+2J,WAAWC,mBAAmBv+D,SACfz4F,KAAK+2J,WAAWR,WAAW99D,OAClEE,EAAQ34F,KAAK00J,cAAcnB,EAAMkI,QAAShH,KAE1CA,EAAmBz0J,KAAK+2J,WAAWkJ,gBAAgBxnE,OACnDE,EAAQ34F,KAAK00J,cAAcnB,EAAMiI,SAAU/G,KAI1C97D,CACT,EAEAN,EAAU75F,UAAUoiK,oBAAsB,SAASt1J,EAAGwoJ,GACpD,IAAIW,EAAmB,GACnB97D,EAAQ,KAEZ,IAAK34F,KAAKusH,SAASmgC,WAAWjiB,SAAS,WACrC,OAAO9xC,EAGT,GAAU,MAANrtF,EAAW,CAEb,GAAyB,MADzBmpJ,EAAmBz0J,KAAK+2J,WAAWiJ,2BAA2BvnE,QAE5D,OAAOE,EAOT,IAJA,IAAIuoE,EAA4BzM,EAAiB8L,SAAS,KAAO,EAAI,EACjEY,EAA4B,GAGvB1M,EAAiB8L,SAAS,MAAQW,IAA8BC,GAA4B,CACnG,IAAIC,EAAYphK,KAAKwwJ,OAAOlkJ,OAC5B,GAAkB,OAAd80J,EACF,MACuB,MAAdA,EACTF,IACuB,MAAdE,GACTD,IAEF1M,GAAoB2M,CACtB,CACAzoE,EAAQ34F,KAAK00J,cAAcnB,EAAMyI,kBAAmBvH,EACtD,KAAiB,MAANnpJ,GAAawoJ,GAAcA,EAAWhjE,OAASyiE,EAAMyI,oBAC9DvH,EAAmBz0J,KAAKwwJ,OAAOlkJ,OAC/BqsF,EAAQ34F,KAAK00J,cAAcnB,EAAM2I,mBAAoBzH,IAEvD,OAAO97D,CACT,EAGAN,EAAU75F,UAAUkiK,YAAc,SAASp1J,EAAGwoJ,GAC5C,IAAIW,EAAmB,KACnB97D,EAAQ,KAeZ,OAdIm7D,GAAcA,EAAWhjE,OAASyiE,EAAMiI,WACf,MAAvB1H,EAAWj/I,KAAK,KAAqB,MAANvJ,GAAoB,MAANA,GAAqC,MAAxBtL,KAAKwwJ,OAAOtC,KAAK,KAC7EuG,EAAmBz0J,KAAKwwJ,OAAOlkJ,OACrB,MAANhB,IACFmpJ,GAAoBz0J,KAAKwwJ,OAAOlkJ,QAElCqsF,EAAQ34F,KAAK00J,cAAcnB,EAAMsI,UAAWpH,IACZ,MAAvBX,EAAWj/I,KAAK,IAAoB,MAANvJ,GAAqC,MAAxBtL,KAAKwwJ,OAAOtC,KAAK,KACrEluJ,KAAKwwJ,OAAOlkJ,OACZtM,KAAKwwJ,OAAOlkJ,OACZqsF,EAAQ34F,KAAK00J,cAAcnB,EAAMsI,UAAW,QAIzCljE,CACT,EAEAN,EAAU75F,UAAUiiK,gBAAkB,SAASn1J,EAAGipJ,EAAgBT,GAChE,IAAIn7D,EAAQ,KACR87D,EAAmB,GACvB,GAAIX,GAAqC,MAAvBA,EAAWj/I,KAAK,GAEhC,GAAU,MAANvJ,EACFqtF,EAAQ34F,KAAK00J,cAAcnB,EAAM4F,OAAQn5J,KAAKwwJ,OAAOlkJ,aAChD,GAAU,MAANhB,GAAmB,MAANA,EAAW,CACjC,IAAI+nG,EAAUrzG,KAAKwwJ,OAAOlkJ,OAExB+mG,GADQ,MAAN/nG,EACStL,KAAK+2J,WAAW+I,aAAarnE,OAE7Bz4F,KAAK+2J,WAAW8I,aAAapnE,OAE1CE,EAAQ34F,KAAK00J,cAAcnB,EAAM6F,MAAO/lD,EAC1C,MACEohD,EAAmBz0J,KAAK+2J,WAAW7pB,UAAUz0C,UAIzCE,EADE47D,EAAezjE,OAASyiE,EAAM4F,OACxBn5J,KAAK00J,cAAcnB,EAAM6F,MAAO3E,GAEhCz0J,KAAK00J,cAAcnB,EAAM2F,UAAWzE,IAKpD,OAAO97D,CACT,EAEAN,EAAU75F,UAAU6iK,wBAA0B,SAAS1H,GAIrD,OAA0D,IAAnD35J,KAAKusH,SAAS8xC,cAActxJ,QAAQ4sJ,MACiB,IAAzD35J,KAAKusH,SAASgyC,oBAAoBxxJ,QAAQ4sJ,KACQ,IAAjD35J,KAAKusH,SAAS+xC,YAAYvxJ,QAAQ4sJ,GACxC,EAEAthE,EAAU75F,UAAUqiK,kBAAoB,SAASv1J,EAAGipJ,EAAgBT,GAClE,IAAIW,EAAmB,GACvB,GAAIX,GAAqC,MAAvBA,EAAWj/I,KAAK,GAChC4/I,EAAmBz0J,KAAK+2J,WAAWmJ,qBAAqBznE,YACnD,GAAI87D,EAAezjE,OAASyiE,EAAMsI,WACL,MAAlCtH,EAAenB,OAAOv+I,KAAK,IAAyC,MAA3B0/I,EAAe1/I,KAAK,GAAY,CAEzE,IAAI8kJ,EAAWpF,EAAenB,OAAOv+I,KAAK/T,OAAO,GAAGy8E,cAChDv9E,KAAKqhK,wBAAwB1H,KAE/BlF,EAAmBz0J,KAAKwwJ,OAAO/B,UAAU,IAAI10E,OAAO,KAAO4/E,EAAW,kBAAmB,OAE7F,CAEA,OAAIlF,EACKz0J,KAAK00J,cAAcnB,EAAM+E,KAAM7D,GAGjC,IACT,EAEAp8D,EAAU75F,UAAUmiK,uBAAyB,SAASr1J,EAAGipJ,GACvD,GAAIA,EAAezjE,OAASyiE,EAAMsI,WAA+C,MAAlCtH,EAAenB,OAAOv+I,KAAK,IAAyC,MAA3B0/I,EAAe1/I,KAAK,GAAY,CACtH,IAAI8kJ,EAAWpF,EAAenB,OAAOv+I,KAAK/T,OAAO,GAAGy8E,cACpD,GAAiB,WAAbo8E,GAAsC,UAAbA,EAAsB,CAGjD,IAAIhhE,EAAQ34F,KAAK+gK,uBAAuBz1J,GACxC,GAAIqtF,EAEF,OADAA,EAAM7H,KAAOyiE,EAAM+E,KACZ3/D,EAET,IAAI87D,EAAmBz0J,KAAKwwJ,OAAO/B,UAAU,IAAI10E,OAAO,KAAO4/E,EAAW,kBAAmB,OAC7F,GAAIlF,EACF,OAAOz0J,KAAK00J,cAAcnB,EAAM+E,KAAM7D,EAE1C,CACF,CACA,OAAO,IACT,EAEAp8D,EAAU75F,UAAUsiK,mBAAqB,SAASx1J,EAAGwoJ,GACnD,IAAIW,EAAmB,GAUvB,OATIz0J,KAAKusH,SAAS6yC,+BACZ9zJ,IAAMtL,KAAKusH,SAAS6yC,8BAA8B,KACpD3K,EAAmBz0J,KAAK+2J,WAAWqI,8BAA8B3mE,QAIhEg8D,IACHA,EAAoBX,GAAcA,EAAWhjE,OAASyiE,EAAMyI,kBAAqBh8J,KAAK+2J,WAAW6I,iCAAiCnnE,OAASz4F,KAAK+2J,WAAW4I,KAAKlnE,QAE9Jg8D,EACKz0J,KAAK00J,cAAcnB,EAAM+E,KAAM7D,GAEjC,IACT,EAEA72E,EAAO1/E,QAAQm6F,UAAYA,EAC3Bza,EAAO1/E,QAAQq1J,MAAQA,CAIf,GAGMrN,EAA2B,CAAC,EA4BhC,IAAI5jB,EAzBJ,SAASC,EAAoB4jB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBhpJ,IAAjBipJ,EACH,OAAOA,EAAaloJ,QAGrB,IAAI0/E,EAASsoE,EAAyBC,GAAY,CAGjDjoJ,QAAS,CAAC,GAOX,OAHAkkI,EAAoB+jB,GAAUvoE,EAAQA,EAAO1/E,QAASqkI,GAG/C3kD,EAAO1/E,OACf,CAO0BqkI,CAAoB,IAC9C0wB,EAAuB3wB,CAEvB,CAtjGD,GAwjGT,IAAIg/B,EAAarO,EAIbtM,EAAO,CAAC,EAAW,QAAc,SAAmB,EAAF,SAAW4a,GACzD,IAAI3a,EAAc2a,EAAW,MACzB1a,EAAe0a,EAAW,MAE9B,MAAO,CACHza,cAAe,SAAS+Q,EAAa93J,GACjC,OAAOuhK,EAAWzJ,EAAa93J,EAAS6mJ,EAAYA,YAAaC,EAAaA,aAClF,EAEP,sCAsBJ,CA/lGA,iBC1ED,OAuFC,WAGD,IAAI2a,GACK,WACC,aACA,IAAIp/B,EAAuB,CAAC,SAEtBxkD,EAAQ4rD,EAA0BjH,GAgClD,IAAIstB,EAActtB,EAAoB,GAAGstB,WACvC7D,EAAWzpB,EAAoB,GAAGypB,QAOpCpuE,EAAO1/E,QALP,SAAqBujK,EAAgB1hK,GAEnC,OADiB,IAAI8vJ,EAAW4R,EAAgB1hK,GAC9BgnJ,UACpB,EAGAnpE,EAAO1/E,QAAQ6xJ,eAAiB,WAC9B,OAAO,IAAI/D,CACb,CAGO,WAESpuE,EAAQ4rD,EAA0BjH,GAgClD,IAAIimB,EAAUjmB,EAAoB,GAAGimB,OACjC0K,EAAS3wB,EAAoB,GAAG2wB,MAChCwO,EAAQn/B,EAAoB,GAC5BypB,EAAWzpB,EAAoB,GAAGypB,QAClC3zD,EAAakqC,EAAoB,GAAGlqC,UACpCspE,EAAiBp/B,EAAoB,GAAGo/B,cACxCC,EAA0Br/B,EAAoB,GAAGq/B,uBACjDrO,EAAShxB,EAAoB,GAAGgxB,MAGpC,SAASgG,EAASC,EAAMz1E,GACtB,OAA8B,IAAvBA,EAAIh3E,QAAQysJ,EACrB,CAeA,SAASqI,EAAclpE,EAAOgnE,GAC5B,OAAOhnE,GAASA,EAAM7H,OAASyiE,EAAMuO,UAAYnpE,EAAM9jF,OAAS8qJ,CAClE,CAEA,SAASoC,EAAeppE,EAAO4lB,GAC7B,OAAO5lB,GAASA,EAAM7H,OAASyiE,EAAMuO,UAAYvI,EAAS5gE,EAAM9jF,KAAM0pG,EACxE,CAEA,IAAIyjD,EAAgB,CAAC,OAAQ,SAAU,KAAM,KAAM,QAAS,OAAQ,QAAS,QAAS,WAAY,SAK9FC,EAtBJ,SAAgCrjK,GAE9B,IADA,IAAIwoF,EAAS,CAAC,EACL7I,EAAI,EAAGA,EAAI3/E,EAAKK,OAAQs/E,IAE/B6I,EAAOxoF,EAAK2/E,GAAG1+E,QAAQ,KAAM,MAAQjB,EAAK2/E,GAE5C,OAAO6I,CACT,CAewB86E,CAHE,CAAC,iBAAkB,gBAAiB,qBAK1DC,EAAuC,CAACF,EAAkBG,eAAgBH,EAAkBI,kBAE5FC,EACc,iBADdA,EAES,YAFTA,EAGa,gBAHbA,EAIY,eAJZA,EAKc,iBALdA,EAMW,cANXA,EAOU,aAGd,SAASC,EAA6B19E,EAAQk2E,GAMxCA,EAAMyH,iBACRzH,EAAMr2B,OAAS49B,GACfvH,EAAMr2B,OAAS49B,GAKjBz9E,EAAO2mE,cAAcuP,EAAM0H,iBAC7B,CAqBA,SAASC,EAASh+B,GAChB,OAAOA,IAAS49B,CAClB,CAEA,SAASK,EAAcj+B,GACrB,OAAO60B,EAAS70B,EAAM,CAAC49B,EAAiBA,EAAqBA,GAC/D,CA2BA,SAASzS,EAAWC,EAAa/vJ,GAC/BA,EAAUA,GAAW,CAAC,EACtBC,KAAKswJ,aAAeR,GAAe,GAEnC9vJ,KAAKixJ,QAAU,KACfjxJ,KAAKo7F,QAAU,KACfp7F,KAAK4iK,gBAAkB,KACvB5iK,KAAK6iK,OAAS,KACd7iK,KAAK8iK,gBAAkB,KAEvB9iK,KAAK+iK,YAAc,KACnB/iK,KAAKusH,SAAW,IAAIy/B,EAAQjsJ,EAC9B,CAEA8vJ,EAAWrxJ,UAAUwkK,aAAe,SAASC,EAAYv+B,GACvD,IAAIw+B,EAAoB,EAkCxB,OAjCID,IACFC,EAAoBD,EAAWE,mBAC1BnjK,KAAKixJ,QAAQrG,sBAChBqY,EAAWG,kBAAoBF,IAC/BA,EAAoBD,EAAWG,oBAIlB,CACf1+B,KAAMA,EACNx3H,OAAQ+1J,EACR5H,WAAY4H,EAAaA,EAAW5H,WAAa,IAAInI,EAAMK,EAAM8P,YAAa,IAC9EC,UAAWL,EAAaA,EAAWK,UAAY,GAC/CC,uBAAuB,EACvBC,wBAAwB,EACxBhB,iBAAiB,EACjBiB,cAAc,EACdC,UAAU,EACVC,YAAY,EACZC,mBAAmB,EACnBC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,mBAAmB,EACnBC,SAAS,EACTC,WAAW,EACXC,YAAY,EACZhB,kBAAmBD,EACnBtZ,UAAW,EACXwZ,kBAAmBH,EAAaA,EAAWG,kBAAoBF,EAC/DT,iBAAkBziK,KAAKixJ,QAAQvG,kBAC/B0Z,cAAe,EAGnB,EAEAvU,EAAWrxJ,UAAUq1J,OAAS,SAAS/D,GACrC,IAAIhI,EAAmBgI,EAAY90E,MAAM,WAAW,GAEpDh7E,KAAK4iK,gBAAkB,GACvB5iK,KAAKixJ,QAAU,IAAIzI,EAAOxoJ,KAAKusH,SAAUu7B,GAGzC9nJ,KAAKixJ,QAAQvI,IAAM1oJ,KAAKusH,SAAS83C,gBAajCrkK,KAAK+iK,YAAc,GACnB/iK,KAAKskK,SAAShC,GACd,IAAIjnE,EAAY,IAAIhD,EAAUy3D,EAAa9vJ,KAAKusH,UAEhD,OADAvsH,KAAKo7F,QAAUC,EAAUu4D,WAClB9D,CACT,EAEAD,EAAWrxJ,UAAUuoJ,SAAW,WAE9B,GAAI/mJ,KAAKusH,SAAS6/B,SAChB,OAAOpsJ,KAAKswJ,aAGd,IACIR,EAAc9vJ,KAAK6zJ,OAAO7zJ,KAAKswJ,cAE/BxF,EAAM9qJ,KAAKusH,SAASu+B,IACE,SAAtB9qJ,KAAKusH,SAASu+B,MAChBA,EAAM,KACFgF,GAAe4R,EAAMtxE,UAAUvuF,KAAKiuJ,GAAe,MACrDhF,EAAMgF,EAAY90E,MAAM0mF,EAAMtxE,WAAW,KAK7C,IADA,IAAIukE,EAAgB30J,KAAKo7F,QAAQ9uF,OAC1BqoJ,GACL30J,KAAKukK,aAAa5P,GAElB30J,KAAK4iK,gBAAkB5iK,KAAK6iK,OAAOxH,WAAWxmJ,KAC9C7U,KAAK6iK,OAAOxH,WAAa1G,EAEzBA,EAAgB30J,KAAKo7F,QAAQ9uF,OAK/B,OAFatM,KAAKixJ,QAAQpG,SAASC,EAGrC,EAEA+E,EAAWrxJ,UAAU+lK,aAAe,SAAS5P,EAAe6P,GACtD7P,EAAc7jE,OAASyiE,EAAMkR,WAC/BzkK,KAAK0kK,kBAAkB/P,GACdA,EAAc7jE,OAASyiE,EAAMoR,SACtC3kK,KAAK4kK,gBAAgBjQ,GACZA,EAAc7jE,OAASyiE,EAAM8P,YACtCrjK,KAAK6kK,mBAAmBlQ,GACfA,EAAc7jE,OAASyiE,EAAMuR,UACtC9kK,KAAK+kK,iBAAiBpQ,GACbA,EAAc7jE,OAASyiE,EAAMyR,MAE7BrQ,EAAc7jE,OAASyiE,EAAMuO,SADtC9hK,KAAKilK,YAAYtQ,GAGRA,EAAc7jE,OAASyiE,EAAMj/D,UACtCt0F,KAAKklK,iBAAiBvQ,GACbA,EAAc7jE,OAASyiE,EAAM4R,OACtCnlK,KAAKolK,cAAczQ,GACVA,EAAc7jE,OAASyiE,EAAM4F,OACtCn5J,KAAKqlK,cAAc1Q,GACVA,EAAc7jE,OAASyiE,EAAM+R,SACtCtlK,KAAKulK,gBAAgB5Q,GACZA,EAAc7jE,OAASyiE,EAAMn/D,MACtCp0F,KAAKwlK,aAAa7Q,GACTA,EAAc7jE,OAASyiE,EAAMkS,cACtCzlK,KAAK0lK,qBAAqB/Q,EAAe6P,GAChC7P,EAAc7jE,OAASyiE,EAAMkI,QACtCz7J,KAAK2lK,eAAehR,EAAe6P,GAC1B7P,EAAc7jE,OAASyiE,EAAMqS,IACtC5lK,KAAK6lK,WAAWlR,GACPA,EAAc7jE,OAASyiE,EAAMz+D,IACtC90F,KAAK8lK,WAAWnR,IACPA,EAAc7jE,KAASyiE,EAAMgM,QACtCv/J,KAAK+lK,eAAepR,EAAe6P,GAIvC,EAEA3U,EAAWrxJ,UAAUwnK,+BAAiC,SAASrR,EAAe6P,GAC5E,IAAIrZ,EAAWwJ,EAAcxJ,SACzB8a,EAAkBjmK,KAAKusH,SAAS25C,wBAA0BxD,EAAS1iK,KAAK6iK,OAAOn+B,MAEnF,GAAIiwB,EAAcxB,gBAEhB,IADA,IAAIgT,EAAgBxR,EAAcxB,gBAAgB7mJ,OAC3C65J,GAILnmK,KAAKgmK,+BAA+BG,EAAe3B,GACnDxkK,KAAKukK,aAAa4B,EAAe3B,GACjC2B,EAAgBxR,EAAcxB,gBAAgB7mJ,OAIlD,GAAI25J,EACF,IAAK,IAAIjnK,EAAI,EAAGA,EAAImsJ,EAAUnsJ,GAAK,EACjCgB,KAAKu4J,cAAcv5J,EAAI,EAAGwlK,QAO5B,GAJIxkK,KAAKusH,SAASkgC,uBAAyBtB,EAAWnrJ,KAAKusH,SAASkgC,wBAClEtB,EAAWnrJ,KAAKusH,SAASkgC,uBAGvBzsJ,KAAKusH,SAASigC,mBACZrB,EAAW,EAAG,CAChBnrJ,KAAKu4J,eAAc,EAAOiM,GAC1B,IAAK,IAAIvlF,EAAI,EAAGA,EAAIksE,EAAUlsE,GAAK,EACjCj/E,KAAKu4J,eAAc,EAAMiM,EAE7B,CAIN,EAEA,IAAI4B,EAA4B,CAAC,QAAS,QAAS,WAAY,SAAU,QAAS,SAElFvW,EAAWrxJ,UAAU6nK,gCAAkC,SAAS1R,EAAe2R,GAI7E,GAHAA,OAAqCnpK,IAAnBmpK,GAAwCA,GAGtDtmK,KAAKixJ,QAAQrG,qBAAjB,CAIA,IAAI2b,EAAyBvmK,KAAKusH,SAASigC,mBAAqBmI,EAAcxJ,UAAamb,EAI3F,GAH2B/M,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM+sJ,IAC/DrI,EAAS5E,EAAc9/I,KAAM+sJ,GAEL,CACxB,IAAI4E,EACAjN,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM+sJ,IACtCrI,EAASv5J,KAAKusH,SAASk6C,kBAAmBtE,IAE5C5I,EAAS5E,EAAc9/I,KAAM+sJ,GAC/B2E,EAAwBA,GAAyBC,CACnD,CAEA,GAAID,EACFvmK,KAAKu4J,eAAc,GAAO,QACrB,GAAIv4J,KAAKusH,SAASs8B,iBAAkB,CACzC,GAAIkZ,EAAe/hK,KAAK6iK,OAAOxH,WAAY+K,GAGzC,OAEFpmK,KAAKixJ,QAAQhG,gBACf,CAxBA,CAyBF,EAEA4E,EAAWrxJ,UAAU+5J,cAAgB,SAAS5N,EAAe6Z,GAC3D,IAAKA,GACiC,MAAhCxkK,KAAK6iK,OAAOxH,WAAWxmJ,MAAgD,MAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,MAAgD,MAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,OAAiB7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAA4C,OAAhCtlK,KAAK6iK,OAAOxH,WAAWxmJ,MAAiD,OAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,MAEzO,IADA,IAAI6xJ,EAAa1mK,KAAKo7F,QAAQ8yD,OACvBluJ,KAAK6iK,OAAOn+B,OAAS49B,KACxBtiK,KAAK6iK,OAAOa,WAAY7B,EAAc6E,EAAY,WACnD1mK,KAAK6iK,OAAOgB,UACb7jK,KAAK2mK,eAKP3mK,KAAKixJ,QAAQ/G,aAAaS,KAC5B3qJ,KAAK6iK,OAAOL,iBAAkB,EAElC,EAEA3S,EAAWrxJ,UAAUooK,6BAA+B,SAASjS,GACvD30J,KAAKixJ,QAAQrG,uBACX5qJ,KAAKusH,SAAS25C,wBAChBvR,EAAcxJ,WACU,MAAvBwJ,EAAc9/I,MAAgB6tJ,EAAS1iK,KAAK6iK,OAAOn+B,QACpD1kI,KAAKixJ,QAAQhI,aAAaO,YAAY,GACtCxpJ,KAAKixJ,QAAQhI,aAAar5I,KAAK+kJ,EAAcvJ,mBAC7CprJ,KAAKixJ,QAAQ9H,oBAAqB,GACzBnpJ,KAAKixJ,QAAQzH,WAAWxpJ,KAAK6iK,OAAOM,kBAAmBnjK,KAAK6iK,OAAOjZ,aAC5E5pJ,KAAK6iK,OAAOO,kBAAoBpjK,KAAK6iK,OAAOM,mBAGlD,EAEAtT,EAAWrxJ,UAAUk6J,YAAc,SAAS/D,GAC1C,GAAI30J,KAAKixJ,QAAQvI,IACf1oJ,KAAKixJ,QAAQ/F,cAAcyJ,OAD7B,CAKA,GAAI30J,KAAKusH,SAASs6C,aAAelS,EAAcvoJ,UAAYuoJ,EAAcvoJ,SAAS0kF,OAASyiE,EAAMn/D,OAC/Fp0F,KAAKixJ,QAAQrG,sBAC6B,MAAtC5qJ,KAAKixJ,QAAQjI,cAAc1/C,OAAgB,CAC7C,IAAIw9D,EAAS9mK,KAAKixJ,QAAQjI,cAAc3rE,MAGpCr9E,KAAKixJ,QAAQjI,cAAca,aAC7B7pJ,KAAKixJ,QAAQjI,cAAcp5I,KAAKk3J,GAChC9mK,KAAKixJ,QAAQ1zC,MAAK,GAClBv9G,KAAKixJ,QAAQhI,aAAa5rE,MAC1Br9E,KAAKixJ,QAAQ1zC,QAIfv9G,KAAK4mK,6BAA6BjS,GAClC30J,KAAKixJ,QAAQ5F,UAAU,KACvBrrJ,KAAKixJ,QAAQ9H,oBAAqB,CACpC,CAGFnpJ,KAAK4mK,6BAA6BjS,GAClC30J,KAAKixJ,QAAQ7H,oBAAqB,EAClCppJ,KAAKixJ,QAAQ5F,UAAUsJ,EAAc9/I,MACjC7U,KAAKixJ,QAAQ5H,yBACfrpJ,KAAK6iK,OAAOL,iBAAkB,EA1BhC,CA4BF,EAEA3S,EAAWrxJ,UAAUmrJ,OAAS,WAC5B3pJ,KAAK6iK,OAAOM,mBAAqB,EACjCnjK,KAAKixJ,QAAQzH,WAAWxpJ,KAAK6iK,OAAOM,kBAAmBnjK,KAAK6iK,OAAOjZ,UACrE,EAEAiG,EAAWrxJ,UAAUm6J,SAAW,WAC1B34J,KAAK6iK,OAAOM,kBAAoB,KAC/BnjK,KAAK6iK,OAAO31J,QAAWlN,KAAK6iK,OAAOM,kBAAoBnjK,KAAK6iK,OAAO31J,OAAOi2J,qBAC7EnjK,KAAK6iK,OAAOM,mBAAqB,EACjCnjK,KAAKixJ,QAAQzH,WAAWxpJ,KAAK6iK,OAAOM,kBAAmBnjK,KAAK6iK,OAAOjZ,WAEvE,EAEAiG,EAAWrxJ,UAAU8lK,SAAW,SAAS5/B,GACnC1kI,KAAK6iK,QACP7iK,KAAK+iK,YAAYnzJ,KAAK5P,KAAK6iK,QAC3B7iK,KAAK8iK,gBAAkB9iK,KAAK6iK,QAE5B7iK,KAAK8iK,gBAAkB9iK,KAAKgjK,aAAa,KAAMt+B,GAGjD1kI,KAAK6iK,OAAS7iK,KAAKgjK,aAAahjK,KAAK8iK,gBAAiBp+B,GACtD1kI,KAAKixJ,QAAQzH,WAAWxpJ,KAAK6iK,OAAOM,kBAAmBnjK,KAAK6iK,OAAOjZ,UACrE,EAGAiG,EAAWrxJ,UAAUmoK,aAAe,WAC9B3mK,KAAK+iK,YAAY9jK,OAAS,IAC5Be,KAAK8iK,gBAAkB9iK,KAAK6iK,OAC5B7iK,KAAK6iK,OAAS7iK,KAAK+iK,YAAY1lF,MAC3Br9E,KAAK8iK,gBAAgBp+B,OAAS49B,GAChCC,EAA6BviK,KAAKixJ,QAASjxJ,KAAK8iK,iBAElD9iK,KAAKixJ,QAAQzH,WAAWxpJ,KAAK6iK,OAAOM,kBAAmBnjK,KAAK6iK,OAAOjZ,WAEvE,EAEAiG,EAAWrxJ,UAAUuoK,yBAA2B,WAC9C,OAAO/mK,KAAK6iK,OAAO31J,OAAOw3H,OAAS49B,GAAsBtiK,KAAK6iK,OAAOn+B,OAAS49B,IAC3C,MAAhCtiK,KAAK6iK,OAAOxH,WAAWxmJ,MAA8C,IAA9B7U,KAAK6iK,OAAOuB,eAAyBrC,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,QAChI,EAEAxL,EAAWrxJ,UAAUwoK,mBAAqB,SAASrS,GACjD,IAAI9zJ,GAAQ,EAeZ,SAHAA,GALAA,GADAA,GAFAA,GADAA,GADAA,GADAA,EAAQA,GAASkhK,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,MAAO,WAAa1G,EAAc7jE,OAASyiE,EAAMyR,OAChGnD,EAAc7hK,KAAK6iK,OAAOxH,WAAY,UACnCr7J,KAAK6iK,OAAO31J,OAAOw3H,OAAS49B,GAAsBtiK,KAAK6iK,OAAOn+B,OAAS49B,IAAoBP,EAAe/hK,KAAK6iK,OAAOxH,WAAY+K,KAA+BzR,EAAcxJ,WAClL0W,EAAc7hK,KAAK6iK,OAAOxH,WAAY,WACnDwG,EAAclN,EAAe,QAAUA,EAAcxB,mBACvCnzJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,WAAa3kK,KAAK8iK,gBAAgBp+B,OAAS49B,GAAuBtiK,KAAK8iK,gBAAgBp+B,OAAS49B,KACtItiK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,MAAQhlK,KAAK6iK,OAAOn+B,OAAS49B,IAClFtiK,KAAK6iK,OAAOoB,WACY,OAAvBtP,EAAc9/I,MAAwC,OAAvB8/I,EAAc9/I,OACtB,aAAzB7U,KAAK4iK,iBACLjO,EAAc7jE,OAASyiE,EAAMyR,MAAQrQ,EAAc7jE,OAASyiE,EAAMuO,WAClD9hK,KAAK6iK,OAAOn+B,OAAS49B,IACJ,MAAhCtiK,KAAK6iK,OAAOxH,WAAWxmJ,MAA8C,IAA9B7U,KAAK6iK,OAAOuB,eAAwBrC,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,YAG3Hr7J,KAAKskK,SAAShC,GACdtiK,KAAK2pJ,SAEL3pJ,KAAKgmK,+BAA+BrR,GAAe,GAK9C30J,KAAK+mK,4BACR/mK,KAAKqmK,gCAAgC1R,EACnCoN,EAAepN,EAAe,CAAC,KAAM,MAAO,KAAM,YAE/C,EAGX,EAEA9E,EAAWrxJ,UAAUkmK,kBAAoB,SAAS/P,GAE3C30J,KAAKgnK,mBAAmBrS,IAC3B30J,KAAKgmK,+BAA+BrR,GAGtC,IAAIsS,EAAY3E,EAChB,GAA2B,MAAvB3N,EAAc9/I,KAAc,CAE9B,GAAI7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,MAAwC,MAAhChlK,KAAK6iK,OAAOxH,WAAWxmJ,KAYvE,OATIktJ,EAAe/hK,KAAK6iK,OAAOxH,WAAYsG,KACzC3hK,KAAKixJ,QAAQ9H,oBAAqB,GAEpCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAKskK,SAAS2C,GACdjnK,KAAK2pJ,cACD3pJ,KAAKusH,SAAS26C,iBAChBlnK,KAAKixJ,QAAQ9H,oBAAqB,IAKtC8d,EAAY3E,EACRI,EAAS1iK,KAAK6iK,OAAOn+B,QACa,MAAhC1kI,KAAK6iK,OAAOxH,WAAWxmJ,OACQ,MAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,MAA0C,MAAzB7U,KAAK4iK,iBAAoD,MAAzB5iK,KAAK4iK,kBAGzE5iK,KAAKusH,SAAS25C,wBACjBlmK,KAAKu4J,iBAKNgB,EAASv5J,KAAK6iK,OAAOxH,WAAWvqE,KAAM,CAACyiE,EAAMkR,WAAYlR,EAAMoR,SAAUpR,EAAMyR,KAAMzR,EAAM+R,SAAU/R,EAAMqS,QAC9G5lK,KAAKixJ,QAAQ9H,oBAAqB,EAEtC,KAAO,CACL,GAAInpJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,SACJ,QAAhC9hK,KAAK6iK,OAAOxH,WAAWxmJ,MACzB7U,KAAKixJ,QAAQ9H,mBAAqBnpJ,KAAKusH,SAAS46C,yBAChDF,EAAY3E,GACH/I,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,KAAM,QAAS,YAC/D7U,KAAKixJ,QAAQ9H,mBAAqBnpJ,KAAKusH,SAAS46C,yBAChDF,EAAY3E,GACH/I,EAASv5J,KAAK6iK,OAAOS,UAAW,CAAC,QAAS,UAEnDtjK,KAAKixJ,QAAQ9H,oBAAqB,EACO,WAAhCnpJ,KAAK6iK,OAAOxH,WAAWxmJ,MAAyD,KAApC8/I,EAAcvJ,kBACnEprJ,KAAKixJ,QAAQ9H,oBAAqB,GACzBoQ,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM8sJ,IAAkD,UAAhC3hK,KAAK6iK,OAAOxH,WAAWxmJ,QACxF7U,KAAKixJ,QAAQ9H,oBAAqB,QAE/B,GAAInpJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4F,QAAUn5J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,SAI1FtlK,KAAK+mK,4BACR/mK,KAAKqmK,gCAAgC1R,QAElC,GAAI30J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,KAAM,CACrDhlK,KAAKixJ,QAAQ9H,oBAAqB,EAWlC,IAAIie,EAAgBpnK,KAAKo7F,QAAQ8yD,MAAM,GACvC,GAAIluJ,KAAKusH,SAAS86C,4BAA8BD,EAAe,CAE7D,IAAIE,EAAkBtnK,KAAKo7F,QAAQ8yD,MAAM,GACrC6T,EAAeqF,EAAe,CAAC,QAAS,cAClB,MAAvBA,EAAcvyJ,MAAgBktJ,EAAeuF,EAAiB,CAAC,QAAS,aACzEtnK,KAAKixJ,QAAQ9H,oBAAqB,EACzBnpJ,KAAK6iK,OAAOn+B,OAAS49B,EACF,MAAvB8E,EAAcvyJ,MAAuC,MAAvBuyJ,EAAcvyJ,OACvB,MAAvBuyJ,EAAcvyJ,MAA0C,MAAzByyJ,EAAgBzyJ,MAAyC,MAAzByyJ,EAAgBzyJ,QAChF7U,KAAKixJ,QAAQ9H,oBAAqB,GAE3BnpJ,KAAK6iK,OAAO31J,QAAUlN,KAAK6iK,OAAO31J,OAAO02J,oBAClD5jK,KAAKixJ,QAAQ9H,oBAAqB,EAEtC,CACF,MAKEnpJ,KAAKqmK,gCAAgC1R,IAMlC30J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,WAAuC,aAA1B9hK,KAAK6iK,OAAOS,WAAsD,WAA1BtjK,KAAK6iK,OAAOS,YACzE,MAAhCtjK,KAAK6iK,OAAOxH,WAAWxmJ,OACrB0kJ,EAASv5J,KAAK4iK,gBAAiB,CAAC,WAAY,WAC1C5iK,KAAK6iK,OAAOn+B,OAAS49B,GAAsB/I,EAASv5J,KAAK4iK,gBAAiB,CAAC,IAAK,UACrF5iK,KAAKixJ,QAAQ9H,mBAAqBnpJ,KAAKusH,SAASg7C,0BAEpD,CAEoC,MAAhCvnK,KAAK6iK,OAAOxH,WAAWxmJ,MAAgB7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM8P,YAC/ErjK,KAAKu4J,gBACIv4J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,UAAY3kK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAczkK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuR,WAA6C,MAAhC9kK,KAAK6iK,OAAOxH,WAAWxmJ,MAAgB7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAG/Op0F,KAAKqmK,gCAAgC1R,EAAeA,EAAcxJ,UAGpEnrJ,KAAK04J,YAAY/D,GACjB30J,KAAKskK,SAAS2C,GACVjnK,KAAKusH,SAAS26C,iBAChBlnK,KAAKixJ,QAAQ9H,oBAAqB,GAIpCnpJ,KAAK2pJ,QACP,EAEAkG,EAAWrxJ,UAAUomK,gBAAkB,SAASjQ,GAG9C,KAAO30J,KAAK6iK,OAAOn+B,OAAS49B,GAC1BtiK,KAAK2mK,eAGP3mK,KAAKgmK,+BAA+BrR,GAEhC30J,KAAK6iK,OAAOL,iBACdxiK,KAAKqmK,gCAAgC1R,EACZ,MAAvBA,EAAc9/I,MAAgB6tJ,EAAS1iK,KAAK6iK,OAAOn+B,QAAU1kI,KAAKusH,SAAS25C,wBAG3ElmK,KAAKusH,SAAS26C,iBACZlnK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAezkK,KAAKusH,SAASi7C,qBAKrExnK,KAAKixJ,QAAQ9H,oBAAqB,GAHlCnpJ,KAAKixJ,QAAQ1zC,OACbv9G,KAAKixJ,QAAQ9H,oBAAqB,IAKtCnpJ,KAAK24J,WACL34J,KAAK04J,YAAY/D,GACjB30J,KAAK2mK,eAELpE,EAA6BviK,KAAKixJ,QAASjxJ,KAAK8iK,iBAG5C9iK,KAAK6iK,OAAOiB,UAAY9jK,KAAK8iK,gBAAgBp+B,OAAS49B,IACxDtiK,KAAK8iK,gBAAgBp+B,KAAO49B,EAC5BtiK,KAAK6iK,OAAOgB,UAAW,EACvB7jK,KAAK6iK,OAAOiB,UAAW,EAG3B,EAEAjU,EAAWrxJ,UAAUqmK,mBAAqB,SAASlQ,GACjD30J,KAAKgmK,+BAA+BrR,GAGpC,IAAI+R,EAAa1mK,KAAKo7F,QAAQ8yD,OAC1BuZ,EAAeznK,KAAKo7F,QAAQ8yD,KAAK,GACP,WAA1BluJ,KAAK6iK,OAAOS,WAA0BtjK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,UAC9E3kK,KAAKskK,SAAShC,GACdtiK,KAAK6iK,OAAOmB,mBAAoB,GACvBhkK,KAAK6iK,OAAOqB,UACrBlkK,KAAKskK,SAAShC,GACLmF,IACNlO,EAASkO,EAAa5yJ,KAAM,CAAC,IAAK,OAAS0kJ,EAASmN,EAAW51E,KAAM,CAACyiE,EAAM4R,OAAQ5R,EAAMyR,KAAMzR,EAAMuO,YACtGvI,EAASmN,EAAW7xJ,KAAM,CAAC,MAAO,MAAO,SAAW0kJ,EAASkO,EAAa32E,KAAM,CAACyiE,EAAMyR,KAAMzR,EAAMuO,YAIlGvI,EAASv5J,KAAK4iK,gBAAiB,CAAC,QAAS,gBAAkBrJ,EAASkO,EAAa5yJ,KAAM,CAAC,IAAK,MAC/F7U,KAAKskK,SAAShC,GAEdtiK,KAAKskK,SAAShC,GAEPtiK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAA4C,OAAhCtlK,KAAK6iK,OAAOxH,WAAWxmJ,KAElF7U,KAAKskK,SAAShC,GACL/I,EAASv5J,KAAK6iK,OAAOxH,WAAWvqE,KAAM,CAACyiE,EAAM4F,OAAQ5F,EAAMkR,WAAYlR,EAAMn/D,MAAOm/D,EAAM+R,YACnGvD,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,SAAU,QAAS,SAAU,YAMrEr7J,KAAKskK,SAAShC,GAEdtiK,KAAKskK,SAAShC,GAGZtiK,KAAK6iK,OAAOxH,YACV0G,EAAe/hK,KAAK6iK,OAAOxH,WAAWjvJ,SAAU,CAAC,QAAS,cAC5DpM,KAAK6iK,OAAOe,mBAAoB,GAIpC,IAAI8D,GAAgBhB,EAAWvT,iBAAuC,MAApBuT,EAAW7xJ,KACzD8yJ,EAA2BD,GAA0C,aAA1B1nK,KAAK6iK,OAAOS,WACzDtjK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,SAExC,GAAI3kK,KAAKusH,SAASq7C,sBAClB,CAEE,IAAI52J,EAAQ,EACR62J,EAAc,KAClB7nK,KAAK6iK,OAAOY,cAAe,EAC3B,GAGE,GAFAzyJ,GAAS,GACT62J,EAAc7nK,KAAKo7F,QAAQ8yD,KAAKl9I,EAAQ,IACxBm6I,SAAU,CACxBnrJ,KAAK6iK,OAAOY,cAAe,EAC3B,KACF,QACOoE,EAAY/2E,OAASyiE,EAAMz+D,MAChC+yE,EAAY/2E,OAASyiE,EAAMuR,WAAa+C,EAAYzU,SAAWuB,GACrE,EAEmC,WAA9B30J,KAAKusH,SAASgmC,aACgB,SAA9BvyJ,KAAKusH,SAASgmC,aAA0BoC,EAAcxJ,YACxDnrJ,KAAK6iK,OAAOY,aACTzjK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,WACvCqC,GACC3nK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4F,QACrC4I,EAAe/hK,KAAK6iK,OAAOxH,WAAY2G,IAAkD,SAAhChiK,KAAK6iK,OAAOxH,WAAWxmJ,MACnF7U,KAAKixJ,QAAQ9H,oBAAqB,EAElCnpJ,KAAKu4J,eAAc,GAAO,KAGxBmK,EAAS1iK,KAAK8iK,gBAAgBp+B,OAAU1kI,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAczkK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,SAChIp0F,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAASp0F,KAAKusH,SAAS26C,kBAC/DlnK,KAAKixJ,QAAQ9H,oBAAqB,IAGhCnpJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAAUp0F,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAczkK,KAAK6iK,OAAOY,gBAClHzjK,KAAKqmK,gCAAgC1R,GACrC30J,KAAK8iK,gBAAgBN,gBAAkBxiK,KAAK8iK,gBAAgBN,iBAAmBxiK,KAAK6iK,OAAOL,gBAC3FxiK,KAAK6iK,OAAOL,iBAAkB,IAG9BxiK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAAYtlK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,aACtFlL,EAASv5J,KAAK6iK,OAAOxH,WAAWvqE,KAAM,CAACyiE,EAAM8P,YAAa9P,EAAMj/D,cAAgBt0F,KAAK6iK,OAAOY,aAC9FzjK,KAAKu4J,gBAELv4J,KAAKixJ,QAAQ9H,oBAAqB,IAIxCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAK2pJ,SAGA+d,GAAkB1nK,KAAKusH,SAASq7C,uBAAyB5nK,KAAK6iK,OAAOY,cACxEzjK,KAAKu4J,eAET,EAEA1I,EAAWrxJ,UAAUumK,iBAAmB,SAASpQ,GAI/C,IAFA30J,KAAKgmK,+BAA+BrR,GAE7B30J,KAAK6iK,OAAOn+B,OAAS49B,GAC1BtiK,KAAK2mK,eAGP,IAAIe,EAAe1nK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM8P,YAErDrjK,KAAK6iK,OAAOY,eAAiBiE,EAC/B1nK,KAAKixJ,QAAQ9H,oBAAqB,EACK,WAA9BnpJ,KAAKusH,SAASgmC,YAClBmV,GACH1nK,KAAKu4J,gBAIFmP,IACChF,EAAS1iK,KAAK6iK,OAAOn+B,OAAS1kI,KAAKusH,SAAS25C,wBAE9ClmK,KAAKusH,SAAS25C,wBAAyB,EACvClmK,KAAKu4J,gBACLv4J,KAAKusH,SAAS25C,wBAAyB,GAGvClmK,KAAKu4J,iBAIXv4J,KAAK2mK,eACL3mK,KAAK04J,YAAY/D,EACnB,EAEA9E,EAAWrxJ,UAAUymK,YAAc,SAAStQ,GAC1C,GAAIA,EAAc7jE,OAASyiE,EAAMuO,SAC/B,GAAIvI,EAAS5E,EAAc9/I,KAAM,CAAC,MAAO,SAAW7U,KAAK6iK,OAAOn+B,OAAS49B,EACvE3N,EAAc7jE,KAAOyiE,EAAMyR,UACtB,GAA2B,WAAvBrQ,EAAc9/I,MAAqB0kJ,EAASv5J,KAAKo7F,QAAQ8yD,OAAOr5I,KAAM,CAAC,IAAK,MACrF8/I,EAAc7jE,KAAOyiE,EAAMyR,UACtB,GAAIzL,EAAS5E,EAAc9/I,KAAM,CAAC,KAAM,WAAa7U,KAAK6iK,OAAOkB,aACtEpP,EAAc7jE,KAAOyiE,EAAMyR,UACtB,GAAIhlK,KAAK6iK,OAAOn+B,OAAS49B,EAAoB,CAE1B,MADPtiK,KAAKo7F,QAAQ8yD,OACfr5I,OACb8/I,EAAc7jE,KAAOyiE,EAAMyR,KAE/B,CAkBF,GAfIhlK,KAAKgnK,mBAAmBrS,GAEtBoN,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,MAAO,WAAa1G,EAAc7jE,OAASyiE,EAAMyR,OAClGhlK,KAAK6iK,OAAOU,uBAAwB,IAE7B5O,EAAcxJ,UAAawX,EAAc3iK,KAAK6iK,OAAOn+B,OAC7D1kI,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAA6C,OAAhCtlK,KAAK6iK,OAAOxH,WAAWxmJ,MAAiD,OAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,MACnH7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4F,SACrCn5J,KAAKusH,SAASigC,mBAAsBuV,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,MAAO,QAAS,MAAO,QAI3Gr7J,KAAKgmK,+BAA+BrR,IAHpC30J,KAAKgmK,+BAA+BrR,GACpC30J,KAAKu4J,iBAKHv4J,KAAK6iK,OAAOgB,WAAa7jK,KAAK6iK,OAAOiB,SAAU,CACjD,GAAIjC,EAAclN,EAAe,SAM/B,OAJA30J,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAKixJ,QAAQ9H,oBAAqB,OAClCnpJ,KAAK6iK,OAAOiB,UAAW,GAKvB9jK,KAAKu4J,gBACLv4J,KAAK6iK,OAAOgB,UAAW,CAE3B,CAKA,GAAI7jK,KAAK6iK,OAAOa,SACd,IAAK1jK,KAAK6iK,OAAOc,YAAc9B,EAAclN,EAAe,QAC1D30J,KAAK6iK,OAAOc,YAAa,MACpB,CACL,KAAO3jK,KAAK6iK,OAAOn+B,OAAS49B,GAC1BtiK,KAAK2mK,eAEP3mK,KAAK6iK,OAAOa,UAAW,EACvB1jK,KAAK6iK,OAAOc,YAAa,CAC3B,CAGF,GAAI3jK,KAAK6iK,OAAOmB,mBAAqBjC,EAAepN,EAAe,CAAC,OAAQ,YAU1E,OATA30J,KAAKu4J,gBACAv4J,KAAK6iK,OAAOsB,aAAenkK,KAAK6iK,OAAOqB,YAAalkK,KAAKusH,SAASu7C,cAErE9nK,KAAK24J,WAEP34J,KAAK6iK,OAAOqB,WAAY,EAExBlkK,KAAK04J,YAAY/D,QACjB30J,KAAK6iK,OAAOoB,SAAU,GAYxB,GARIjkK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAASp0F,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAczkK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4F,QAAUn5J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UACtLtlK,KAAK+mK,4BAENxN,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,IAAK,OAAkC,MAAzB7U,KAAK4iK,iBAA2B5iK,KAAK6iK,OAAO31J,OAAOw3H,OAAS49B,GACnHtiK,KAAKqmK,gCAAgC1R,GAIrCkN,EAAclN,EAAe,YAiC/B,OAhCI4E,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,IAAK,OAC7C7U,KAAKixJ,QAAQrG,uBAA0B2O,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,OAAS7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,YAGlJtlK,KAAKixJ,QAAQtF,wBAA2BgJ,EAAcxB,kBACzDnzJ,KAAKu4J,gBACLv4J,KAAKu4J,eAAc,KAGnBv4J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,UAAY9hK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,KACtFjD,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,MAAO,MAAO,MAAO,YAC/D0G,EAAe/hK,KAAK6iK,OAAOxH,WAAY+K,IAE9BvE,EAAc7hK,KAAK6iK,OAAOxH,WAAY,YAAuC,WAAzBr7J,KAAK4iK,iBAEzB,YAAhC5iK,KAAK6iK,OAAOxH,WAAWxmJ,KAHhC7U,KAAKixJ,QAAQ9H,oBAAqB,EAOlCnpJ,KAAKu4J,gBAEEv4J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAA4C,MAAhCtlK,KAAK6iK,OAAOxH,WAAWxmJ,KAElF7U,KAAKixJ,QAAQ9H,oBAAqB,GACxBnpJ,KAAK6iK,OAAOL,kBAAoBG,EAAc3iK,KAAK6iK,OAAOn+B,QAASg+B,EAAS1iK,KAAK6iK,OAAOn+B,QAGlG1kI,KAAKu4J,gBAGPv4J,KAAK04J,YAAY/D,QACjB30J,KAAK6iK,OAAOS,UAAY3O,EAAc9/I,MAIxC,IAAIxQ,EAAS,QAETrE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuR,UAEpC9kK,KAAK8iK,gBAAgBW,aACvBp/J,EAAS,QACC09J,EAAepN,EAAe,CAAC,OAAQ,QAAS,UAAW,SAGnC,WAA9B30J,KAAKusH,SAASgmC,aACc,eAA9BvyJ,KAAKusH,SAASgmC,aACiB,SAA9BvyJ,KAAKusH,SAASgmC,aAA0BoC,EAAcxJ,SACvD9mJ,EAAS,WAETA,EAAS,QACTrE,KAAKixJ,QAAQ9H,oBAAqB,GARpC9kJ,EAAS,UAWFrE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMj/D,WAAat0F,KAAK6iK,OAAOn+B,OAAS49B,EAEjFj+J,EAAS,UACArE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMj/D,WAAaquE,EAAc3iK,KAAK6iK,OAAOn+B,MACtFrgI,EAAS,QACArE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4R,OAC/C9gK,EAAS,UACArE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,UAAY9hK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,MAChE,MAAhChlK,KAAK6iK,OAAOxH,WAAWxmJ,OACrB0kJ,EAASv5J,KAAK4iK,gBAAiB,CAAC,WAAY,WAC1C5iK,KAAK6iK,OAAOn+B,OAAS49B,GAAsB/I,EAASv5J,KAAK4iK,gBAAiB,CAAC,IAAK,OACrFv+J,EAAS,QACArE,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM8P,YAE7Ch/J,EADErE,KAAK6iK,OAAOY,aACL,QAEA,UAEFzjK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,WAC/C3kK,KAAKixJ,QAAQ9H,oBAAqB,EAClC9kJ,EAAS,WAGP09J,EAAepN,EAAegN,IAAkD,MAAhC3hK,KAAK6iK,OAAOxH,WAAWxmJ,OAEvExQ,EADErE,KAAK6iK,OAAOY,cAAgD,SAAhCzjK,KAAK6iK,OAAOxH,WAAWxmJ,MAAmD,WAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,KACtF,QAEA,WAKTktJ,EAAepN,EAAe,CAAC,OAAQ,QAAS,cAC3C30J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuR,WAAa9kK,KAAK8iK,gBAAgBp+B,OAAS49B,GACtD,WAA9BtiK,KAAKusH,SAASgmC,aACgB,eAA9BvyJ,KAAKusH,SAASgmC,aACiB,SAA9BvyJ,KAAKusH,SAASgmC,aAA0BoC,EAAcxJ,YACxDnrJ,KAAK6iK,OAAOY,aACbzjK,KAAKu4J,iBAELv4J,KAAKixJ,QAAQ1zC,MAAK,GAIE,MAHTv9G,KAAKixJ,QAAQhI,aAGf3/C,QACPtpG,KAAKu4J,gBAEPv4J,KAAKixJ,QAAQ9H,oBAAqB,GAEhB,YAAX9kJ,EACL09J,EAAe/hK,KAAK6iK,OAAOxH,WAAY2G,IAGA,YAAhChiK,KAAK6iK,OAAOxH,WAAWxmJ,MAAsBktJ,EAAepN,EAAe,CAAC,MAAO,MAAO,UADnG30J,KAAKixJ,QAAQ9H,oBAAqB,EAIzBnpJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,SAC1C3kK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAe1C,EAAepN,EAAe,CAAC,MAAO,MAAO,WAA8C,MAAhC30J,KAAK6iK,OAAOxH,WAAWxmJ,OAEtIgtJ,EAAclN,EAAe,OAASkN,EAAclN,EAAcvoJ,SAAU,QAE9EpM,KAAKixJ,QAAQ9H,oBAAqB,EAElCnpJ,KAAKu4J,iBAGAwJ,EAAepN,EAAegN,IAAkD,MAAhC3hK,KAAK6iK,OAAOxH,WAAWxmJ,MAChF7U,KAAKu4J,gBAEEv4J,KAAK6iK,OAAOL,iBAAmBE,EAAS1iK,KAAK6iK,OAAOn+B,OAAyC,MAAhC1kI,KAAK6iK,OAAOxH,WAAWxmJ,MAAyC,MAAzB7U,KAAK4iK,gBAClH5iK,KAAKu4J,gBACe,UAAXl0J,IACTrE,KAAKixJ,QAAQ9H,oBAAqB,IAEhCwL,EAAcvoJ,UAAauoJ,EAAcvoJ,SAAS0kF,OAASyiE,EAAMyR,MAAQrQ,EAAcvoJ,SAAS0kF,OAASyiE,EAAMuO,WACjH9hK,KAAKixJ,QAAQ9H,oBAAqB,GAEpCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAK6iK,OAAOS,UAAY3O,EAAc9/I,KAElC8/I,EAAc7jE,OAASyiE,EAAMuO,WACJ,OAAvBnN,EAAc9/I,KAChB7U,KAAK6iK,OAAOgB,UAAW,EACS,OAAvBlP,EAAc9/I,KACvB7U,KAAK6iK,OAAOa,UAAW,EACS,WAAvB/O,EAAc9/I,KACvB7U,KAAK6iK,OAAOkB,cAAe,EAClB/jK,KAAK6iK,OAAOkB,cAAgBlC,EAAclN,EAAe,UAClE30J,KAAK6iK,OAAOkB,cAAe,GAGjC,EAEAlU,EAAWrxJ,UAAU0mK,iBAAmB,SAASvQ,GAC3C30J,KAAKgnK,mBAAmBrS,GAG1B30J,KAAKixJ,QAAQ9H,oBAAqB,EAElCnpJ,KAAKgmK,+BAA+BrR,GAItC,IADA,IAAI+R,EAAa1mK,KAAKo7F,QAAQ8yD,OACvBluJ,KAAK6iK,OAAOn+B,OAAS49B,KACxBtiK,KAAK6iK,OAAOa,WAAY7B,EAAc6E,EAAY,WACnD1mK,KAAK6iK,OAAOgB,UACb7jK,KAAK2mK,eAIH3mK,KAAK6iK,OAAOkB,eACd/jK,KAAK6iK,OAAOkB,cAAe,GAE7B/jK,KAAK04J,YAAY/D,EACnB,EAEA9E,EAAWrxJ,UAAU4mK,cAAgB,SAASzQ,KACxCA,EAAc9/I,KAAKopJ,WAAW,MAAmC,IAA3BtJ,EAAcxJ,UAAsD,KAApCwJ,EAAcvJ,mBAA6D,MAAhCuJ,EAAcvoJ,SAASyI,MAAgB7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,QAEvLhlK,KAAKgnK,mBAAmBrS,GAGjC30J,KAAKixJ,QAAQ9H,oBAAqB,GAElCnpJ,KAAKgmK,+BAA+BrR,GAChC30J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,UAAY9hK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMyR,MAAQhlK,KAAK6iK,OAAOY,aAC9GzjK,KAAKixJ,QAAQ9H,oBAAqB,EACzBnpJ,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAASp0F,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YAAczkK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM4F,QAAUn5J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,SAC7LtlK,KAAK+mK,4BACR/mK,KAAKqmK,gCAAgC1R,IAE7BA,EAAc9/I,KAAKopJ,WAAW,MAAQj+J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,UAA6C,MAAhChQ,EAAcvoJ,SAASyI,MAAgD,MAAhC8/I,EAAcvoJ,SAASyI,MAA4C,IAA3B8/I,EAAcxJ,SAGhMnrJ,KAAKu4J,gBAFLv4J,KAAKixJ,QAAQ9H,oBAAqB,IAKtCnpJ,KAAK04J,YAAY/D,EACnB,EAEA9E,EAAWrxJ,UAAU6mK,cAAgB,SAAS1Q,GACxC30J,KAAKgnK,mBAAmBrS,IAG1B30J,KAAKgmK,+BAA+BrR,GAGlC30J,KAAK6iK,OAAOU,wBAEdvjK,KAAK6iK,OAAOW,wBAAyB,GAEvCxjK,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAKixJ,QAAQ9H,oBAAqB,CACpC,EAEA0G,EAAWrxJ,UAAUgnK,aAAe,SAAS7Q,GAC3C30J,KAAKgmK,+BAA+BrR,GAAe,GAEnD30J,KAAK04J,YAAY/D,GACjB30J,KAAKixJ,QAAQ9H,oBAAqB,EAC9BnpJ,KAAK6iK,OAAOU,uBACVZ,EAAc3iK,KAAK6iK,OAAO31J,OAAOw3H,QAEnC1kI,KAAK6iK,OAAOW,wBAAyB,GAGnCxjK,KAAK6iK,OAAOW,wBACdxjK,KAAK6iK,OAAOW,wBAAyB,EACrCxjK,KAAKu4J,eAAc,GAAO,IACjBv4J,KAAKusH,SAASs6C,aAGvB7mK,KAAKqmK,gCAAgC1R,IAE9B30J,KAAK6iK,OAAOn+B,OAAS49B,GAC7BtiK,KAAK6iK,OAAOn+B,OAAS49B,GAAkBtiK,KAAK6iK,OAAO31J,OAAOw3H,OAAS49B,GAChEtiK,KAAK6iK,OAAOn+B,OAAS49B,GACvBtiK,KAAK2mK,eAGF3mK,KAAK6iK,OAAOY,cACfzjK,KAAKu4J,iBAEEv4J,KAAKusH,SAASs6C,aAIvB7mK,KAAKqmK,gCAAgC1R,EAEzC,EAEA9E,EAAWrxJ,UAAU+mK,gBAAkB,SAAS5Q,GAC9C,IAAIoT,EAA6C,MAAvBpT,EAAc9/I,OACrCktJ,EAAe/hK,KAAK6iK,OAAOxH,WAAY,CAAC,WAAY,WAClD9B,EAASv5J,KAAK6iK,OAAOxH,WAAWvqE,KAAM,CAACyiE,EAAM8P,YAAa9P,EAAMn/D,MAAOm/D,EAAMuR,UAAWvR,EAAMj/D,aAE/F0zE,EAAUzO,EAAS5E,EAAc9/I,KAAM,CAAC,IAAK,QAC/C0kJ,EAASv5J,KAAK6iK,OAAOxH,WAAWvqE,KAAM,CAACyiE,EAAM8P,YAAa9P,EAAMkR,WAAYlR,EAAM4F,OAAQ5F,EAAM+R,YAChG/L,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM8sJ,IACN,MAAhC3hK,KAAK6iK,OAAOxH,WAAWxmJ,MAGzB,GAAI7U,KAAKgnK,mBAAmBrS,QAErB,CACL,IAAI6P,GAA4BuD,EAChC/nK,KAAKgmK,+BAA+BrR,EAAe6P,EACrD,CAGA,GAA2B,MAAvB7P,EAAc9/I,MAAgB7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMqS,IAKxE,GAA2B,OAAvBjR,EAAc9/I,KAMlB,GAAI0kJ,EAAS5E,EAAc9/I,KAAM,CAAC,IAAK,OAAS7U,KAAK+mK,2BAEnD/mK,KAAK04J,YAAY/D,OAFnB,CAYA,GAJI30J,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,UAAY/L,EAASv5J,KAAKusH,SAASk6C,kBAAmBtE,IAC9FniK,KAAKqmK,gCAAgC1R,GAGZ,MAAvBA,EAAc9/I,MAAgB7U,KAAK6iK,OAAOoB,QAa5C,OAZAjkK,KAAK04J,YAAY/D,GAEjB30J,KAAK6iK,OAAOoB,SAAU,EACtBjkK,KAAK6iK,OAAOqB,WAAY,OACpBlkK,KAAKo7F,QAAQ8yD,OAAOp9D,OAASyiE,EAAM8P,aACrCrjK,KAAK2pJ,SACL3pJ,KAAKu4J,gBACLv4J,KAAK6iK,OAAOsB,YAAa,IAEzBnkK,KAAK6iK,OAAOsB,YAAa,EACzBnkK,KAAKixJ,QAAQ9H,oBAAqB,IAKtC,IAAI8e,GAAe,EACfC,GAAc,EACdC,GAAa,EAcjB,GAb2B,MAAvBxT,EAAc9/I,KACkB,IAA9B7U,KAAK6iK,OAAOuB,cAEd6D,GAAe,GAEfjoK,KAAK6iK,OAAOuB,eAAiB,EAC7B+D,GAAa,GAEiB,MAAvBxT,EAAc9/I,OACvB7U,KAAK6iK,OAAOuB,eAAiB,IAI1B4D,IAAYD,GAAuB/nK,KAAKusH,SAASigC,mBAAqB+M,EAAS5E,EAAc9/I,KAAM+sJ,GAAyB,CAC/H,IAAIwG,EAAiC,MAAvBzT,EAAc9/I,KACxBwzJ,EAAkBD,GAAWD,EAC7BG,EAAgBF,IAAYD,EAEhC,OAAQnoK,KAAKusH,SAASk6C,mBACpB,KAAKxE,EAAkBG,eAWrB,OATApiK,KAAKixJ,QAAQ9H,oBAAsBmf,EAEnCtoK,KAAK04J,YAAY/D,GAEZyT,IAAWC,GACdroK,KAAKqmK,gCAAgC1R,QAGvC30J,KAAKixJ,QAAQ9H,oBAAqB,GAGpC,KAAK8Y,EAAkBsG,cAmBrB,OAfAvoK,KAAKixJ,QAAQ9H,oBAAqB,GAE7Bif,GAAWC,EACVroK,KAAKo7F,QAAQ8yD,OAAO/C,SACtBnrJ,KAAKu4J,eAAc,GAAO,GAE1Bv4J,KAAKqmK,gCAAgC1R,GAGvC30J,KAAKixJ,QAAQ9H,oBAAqB,EAGpCnpJ,KAAK04J,YAAY/D,QAEjB30J,KAAKixJ,QAAQ9H,oBAAqB,GAGpC,KAAK8Y,EAAkBI,iBAYrB,OAXKiG,GACHtoK,KAAKqmK,gCAAgC1R,GAKvCsT,IAAiBjoK,KAAKixJ,QAAQrG,sBAAwB0d,GAEtDtoK,KAAKixJ,QAAQ9H,mBAAqB8e,EAClCjoK,KAAK04J,YAAY/D,QACjB30J,KAAKixJ,QAAQ9H,oBAAqB,GAGxC,CAEA,GAAI4e,EAAqB,CACvB/nK,KAAKqmK,gCAAgC1R,GACrCsT,GAAe,EACf,IAAIvB,EAAa1mK,KAAKo7F,QAAQ8yD,OAC9Bga,EAAcxB,GAAcnN,EAASmN,EAAW51E,KAAM,CAACyiE,EAAMyR,KAAMzR,EAAMuO,UAC3E,MAAO,GAA2B,QAAvBnN,EAAc9/I,KACvB7U,KAAKqmK,gCAAgC1R,GACrCsT,EAAejoK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM8P,YACrD6E,GAAc,OACT,GAAI3O,EAAS5E,EAAc9/I,KAAM,CAAC,KAAM,KAAM,IAAK,OAASmzJ,EAAS,CAW1E,GATIhoK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMn/D,OAASp0F,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMkR,YACvFzkK,KAAKqmK,gCAAgC1R,GAGvCsT,GAAe,EACfC,GAAc,EAIVvT,EAAcxJ,WAAoC,OAAvBwJ,EAAc9/I,MAAwC,OAAvB8/I,EAAc9/I,MAAwC,MAAvB8/I,EAAc9/I,MAAe,CACxH,IAAI2zJ,EAAkBzG,EAAe/hK,KAAK6iK,OAAOxH,WAAY2G,IAAkBrN,EAAcxJ,SACzFqd,IAAoBxoK,KAAK8iK,gBAAgBY,UAAY1jK,KAAK8iK,gBAAgBa,aAC5E3jK,KAAK2mK,eAEP3mK,KAAKu4J,cAAciQ,GAAiB,EACtC,CAEoC,MAAhCxoK,KAAK6iK,OAAOxH,WAAWxmJ,MAAgB8tJ,EAAc3iK,KAAK6iK,OAAOn+B,QAGnEujC,GAAe,GAGbjoK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMuO,SACxCmG,GAAe,EACNjoK,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAMoR,SAC/CsD,IAAiD,MAAhCjoK,KAAK6iK,OAAOxH,WAAWxmJ,OAAwC,OAAvB8/I,EAAc9/I,MAAwC,OAAvB8/I,EAAc9/I,OAC7F7U,KAAK6iK,OAAOxH,WAAWvqE,OAASyiE,EAAM+R,WAG/C2C,EAAe1O,EAAS5E,EAAc9/I,KAAM,CAAC,KAAM,IAAK,KAAM,OAAS0kJ,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,KAAM,IAAK,KAAM,MAK3H0kJ,EAAS5E,EAAc9/I,KAAM,CAAC,IAAK,OAAS0kJ,EAASv5J,KAAK6iK,OAAOxH,WAAWxmJ,KAAM,CAAC,KAAM,SAC3FqzJ,GAAc,KAKZloK,KAAK6iK,OAAOn+B,OAAS49B,GAAwBtiK,KAAK6iK,OAAOY,eAAiBzjK,KAAK6iK,OAAOn+B,OAAS49B,GAClE,MAAhCtiK,KAAK6iK,OAAOxH,WAAWxmJ,MAAgD,MAAhC7U,KAAK6iK,OAAOxH,WAAWxmJ,MAG/D7U,KAAKu4J,eAET,CAEAv4J,KAAKixJ,QAAQ9H,mBAAqBnpJ,KAAKixJ,QAAQ9H,oBAAsB8e,EACrEjoK,KAAK04J,YAAY/D,GACjB30J,KAAKixJ,QAAQ9H,mBAAqB+e,CA9JlC,MAREloK,KAAK04J,YAAY/D,QANjB30J,KAAK04J,YAAY/D,EA6KrB,EAEA9E,EAAWrxJ,UAAUknK,qBAAuB,SAAS/Q,EAAe6P,GAClE,OAAIxkK,KAAKixJ,QAAQvI,KACf1oJ,KAAKixJ,QAAQ/F,cAAcyJ,QACvBA,EAAcjF,YAAoD,QAAtCiF,EAAcjF,WAAW+Y,WAEvDzoK,KAAKixJ,QAAQvI,IAAM1oJ,KAAKusH,SAAS83C,mBAKjC1P,EAAcjF,YAChB1vJ,KAAKu4J,eAAc,EAAOiM,GAC1BxkK,KAAK04J,YAAY/D,GACyB,UAAtCA,EAAcjF,WAAW+Y,WAC3BzoK,KAAKixJ,QAAQvI,KAAM,QAErB1oJ,KAAKu4J,eAAc,GAAO,IAKvBmJ,EAAMgH,QAAQ7mK,KAAK8yJ,EAAc9/I,OAAU8/I,EAAcxJ,cAM5DnrJ,KAAK2oK,qBAAqBhU,EAAe6P,IALzCxkK,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAK04J,YAAY/D,QACjB30J,KAAKixJ,QAAQ9H,oBAAqB,GAKtC,EAEA0G,EAAWrxJ,UAAUmqK,qBAAuB,SAAShU,EAAe6P,GAClE,IACIvlF,EADA2pF,EAvvCN,SAA0BhuF,GAMxB,IAFA,IAAIiuF,EAAM,GACRC,GAFFluF,EAAIA,EAAE/6E,QAAQ6hK,EAAMzR,cAAe,OAEzBljJ,QAAQ,OACF,IAAT+7J,GACLD,EAAIj5J,KAAKgrE,EAAEhmE,UAAU,EAAGk0J,IAExBA,GADAluF,EAAIA,EAAEhmE,UAAUk0J,EAAM,IACd/7J,QAAQ,MAKlB,OAHI6tE,EAAE37E,QACJ4pK,EAAIj5J,KAAKgrE,GAEJiuF,CACT,CAwuCcE,CAAiBpU,EAAc9/I,MAEvCm0J,GAAU,EACVC,GAAW,EACXC,EAAavU,EAAcvJ,kBAC3B+d,EAAmBD,EAAWjqK,OAWlC,GARAe,KAAKu4J,eAAc,EAAOiM,GAG1BxkK,KAAK4mK,6BAA6BjS,GAClC30J,KAAKixJ,QAAQ5F,UAAUud,EAAM,IAC7B5oK,KAAKu4J,eAAc,EAAOiM,GAGtBoE,EAAM3pK,OAAS,EAAG,CASpB,IAPA+pK,EAhvCJ,SAA8BJ,EAAOt9J,GACnC,IAAK,IAAItM,EAAI,EAAGA,EAAI4pK,EAAM3pK,OAAQD,IAEhC,GADW4pK,EAAM5pK,GAAGu+G,OACX1iC,OAAO,KAAOvvE,EACrB,OAAO,EAGX,OAAO,CACT,CAwuCc89J,CADVR,EAAQA,EAAMz4J,MAAM,GACkB,KACtC84J,EAvuCJ,SAAkCL,EAAOjf,GAIvC,IAHA,IAEE92C,EAFE7zG,EAAI,EACNuE,EAAMqlK,EAAM3pK,OAEPD,EAAIuE,EAAKvE,IAGd,IAFA6zG,EAAO+1D,EAAM5pK,KAEwB,IAAzB6zG,EAAK9lG,QAAQ48I,GACvB,OAAO,EAGX,OAAO,CACT,CA2tCe0f,CAAyBT,EAAOM,GAEvCF,IACFhpK,KAAK6iK,OAAOjZ,UAAY,GAGrB3qE,EAAI,EAAGA,EAAI2pF,EAAM3pK,OAAQggF,IACxB+pF,GAEFhpK,KAAK4mK,6BAA6BjS,GAClC30J,KAAKixJ,QAAQ5F,UAAgBud,EAAM3pF,GA70ChCp/E,QAAQ,QAAS,MA80CXopK,GAAYL,EAAM3pF,IAE3Bj/E,KAAK4mK,6BAA6BjS,GAClC30J,KAAKixJ,QAAQ5F,UAAUud,EAAM3pF,GAAGrqE,UAAUu0J,MAG1CnpK,KAAKixJ,QAAQhI,aAAaO,YAAY,GACtCxpJ,KAAKixJ,QAAQ5F,UAAUud,EAAM3pF,KAI/Bj/E,KAAKu4J,eAAc,EAAOiM,GAG5BxkK,KAAK6iK,OAAOjZ,UAAY,CAC1B,CACF,EAGAiG,EAAWrxJ,UAAUmnK,eAAiB,SAAShR,EAAe6P,GACxD7P,EAAcxJ,SAChBnrJ,KAAKu4J,eAAc,EAAOiM,GAE1BxkK,KAAKixJ,QAAQ1zC,MAAK,GAGpBv9G,KAAKixJ,QAAQ9H,oBAAqB,EAClCnpJ,KAAK04J,YAAY/D,GACjB30J,KAAKu4J,eAAc,EAAOiM,EAC5B,EAEA3U,EAAWrxJ,UAAUqnK,WAAa,SAASlR,GACrC30J,KAAKgnK,mBAAmBrS,IAG1B30J,KAAKgmK,+BAA+BrR,GAAe,GAGjD30J,KAAK6iK,OAAOxH,WAAWxmJ,KAAKmmE,MAAM,cACpCh7E,KAAKixJ,QAAQ9H,oBAAqB,GAGhC4Y,EAAe/hK,KAAK6iK,OAAOxH,WAAY2G,GACzChiK,KAAKixJ,QAAQ9H,oBAAqB,EAIlCnpJ,KAAKqmK,gCAAgC1R,EACH,MAAhC30J,KAAK6iK,OAAOxH,WAAWxmJ,MAAgB7U,KAAKusH,SAAS+8C,uBAKrDtpK,KAAKusH,SAASg9C,0BAA4BvpK,KAAKixJ,QAAQrG,sBACzD5qJ,KAAK24J,WAGP34J,KAAK04J,YAAY/D,EACnB,EAEA9E,EAAWrxJ,UAAUunK,eAAiB,SAASpR,EAAe6P,GAC5DxkK,KAAK04J,YAAY/D,GAEyC,OAAtDA,EAAc9/I,KAAK8/I,EAAc9/I,KAAK5V,OAAS,IACjDe,KAAKu4J,eAAc,EAAOiM,EAE9B,EAEA3U,EAAWrxJ,UAAUsnK,WAAa,SAASnR,GAEzC,KAAO30J,KAAK6iK,OAAOn+B,OAAS49B,GAC1BtiK,KAAK2mK,eAEP3mK,KAAKgmK,+BAA+BrR,EACtC,EAEA/2E,EAAO1/E,QAAQ2xJ,WAAaA,CAGrB,WAESjyE,GA+BhB,SAASupE,EAAWj6I,GAClBlN,KAAKonJ,SAAWl6I,EAChBlN,KAAKqnJ,kBAAoB,EAEzBrnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKunJ,kBAAoB,EACzBvnJ,KAAKwnJ,mBAAqB,EAC1BxnJ,KAAKynJ,6BAA+B,EACpCznJ,KAAK0nJ,2BAA6B,EAClC1nJ,KAAK2nJ,6BAA+B,EAEpC3nJ,KAAK4nJ,QAAU,EACjB,CAoIA,SAASC,EAAkB9nJ,EAAS+nJ,GAClC9nJ,KAAK+nJ,QAAU,CAAC,IAChB/nJ,KAAKgoJ,cAAgBjoJ,EAAQkoJ,YAC7BjoJ,KAAKkoJ,gBAAkBnoJ,EAAQooJ,YAC1BpoJ,EAAQqoJ,mBACXpoJ,KAAKkoJ,gBAAkB,IAAInpJ,MAAMgB,EAAQkoJ,YAAc,GAAGz4I,KAAKzP,EAAQooJ,cAIzEL,EAAmBA,GAAoB,GACnC/nJ,EAAQsoJ,aAAe,IACzBP,EAAmB,IAAI/oJ,MAAMgB,EAAQsoJ,aAAe,GAAG74I,KAAKxP,KAAKkoJ,kBAGnEloJ,KAAKsoJ,cAAgBR,EACrB9nJ,KAAKuoJ,qBAAuBT,EAAiB7oJ,MAC/C,CAgDA,SAASupJ,EAAOzoJ,EAAS+nJ,GACvB9nJ,KAAKyoJ,eAAiB,IAAIZ,EAAkB9nJ,EAAS+nJ,GACrD9nJ,KAAK0oJ,KAAM,EACX1oJ,KAAK2oJ,kBAAoB5oJ,EAAQ6oJ,iBACjC5oJ,KAAKioJ,YAAcloJ,EAAQkoJ,YAC3BjoJ,KAAK6oJ,iBAAmB9oJ,EAAQ8oJ,iBAChC7oJ,KAAK8oJ,mBAAqB/oJ,EAAQ+oJ,mBAClC9oJ,KAAK+oJ,QAAU,GACf/oJ,KAAKgpJ,cAAgB,KACrBhpJ,KAAKipJ,aAAe,KACpBjpJ,KAAKkpJ,UAAY,IAAI/B,EAAWnnJ,MAChCA,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,EAE9BrpJ,KAAKspJ,kBACP,CAlNAnC,EAAW3oJ,UAAU+qJ,YAAc,WACjC,IAAI12C,EAAO,IAAIs0C,EAAWnnJ,KAAKonJ,UAE/B,OADAv0C,EAAK22C,WAAWxpJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnC10C,CACT,EAEAs0C,EAAW3oJ,UAAUU,KAAO,SAAS8R,GACnC,OAAIA,EAAQ,EACHhR,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS+R,GAEnChR,KAAK4nJ,QAAQ52I,EAExB,EAEAm2I,EAAW3oJ,UAAUirJ,UAAY,SAAS7sB,GACxC,IAAK,IAAI8sB,EAAoB1pJ,KAAK4nJ,QAAQ3oJ,OAAS,EAAGyqJ,GAAqB,EAAGA,IAC5E,GAAI1pJ,KAAK4nJ,QAAQ8B,GAAmB1uE,MAAM4hD,GACxC,OAAO,EAGX,OAAO,CACT,EAEAuqB,EAAW3oJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAC7C5pJ,KAAK6pJ,aACP7pJ,KAAKsnJ,eAAiBqC,GAAU,EAChC3pJ,KAAKunJ,kBAAoBqC,GAAa,EACtC5pJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAAS0C,gBAAgB9pJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBAErF,EAEAJ,EAAW3oJ,UAAUurJ,gBAAkB,WACjC/pJ,KAAKonJ,SAASyB,mBAChB7oJ,KAAKwnJ,mBAAqBxnJ,KAAK4nJ,QAAQ3oJ,OACvCe,KAAKynJ,6BAA+BznJ,KAAKqnJ,kBACzCrnJ,KAAK0nJ,0BAA4B1nJ,KAAKonJ,SAAS8B,UAAU5B,eACzDtnJ,KAAK2nJ,6BAA+B3nJ,KAAKonJ,SAAS8B,UAAU3B,kBAEhE,EAEAJ,EAAW3oJ,UAAUwrJ,aAAe,WAClC,OAAOhqJ,KAAKwnJ,oBACVxnJ,KAAKqnJ,kBAAoBrnJ,KAAKonJ,SAASyB,kBACvC7oJ,KAAKynJ,6BAA+BznJ,KAAKonJ,SAAS8B,UAAU7B,iBAChE,EAEAF,EAAW3oJ,UAAUyrJ,YAAc,WACjC,GAAIjqJ,KAAKgqJ,eAAgB,CACvBhqJ,KAAKonJ,SAAS8C,eACd,IAAI59I,EAAOtM,KAAKonJ,SAAS6B,aAYzB,OAXA38I,EAAKk9I,WAAWxpJ,KAAK0nJ,0BAA2B1nJ,KAAK2nJ,8BACrDr7I,EAAKs7I,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAMnQ,KAAKwnJ,oBACvCxnJ,KAAK4nJ,QAAU5nJ,KAAK4nJ,QAAQz3I,MAAM,EAAGnQ,KAAKwnJ,oBAE1Cl7I,EAAK+6I,mBAAqBrnJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BACxDznJ,KAAKqnJ,kBAAoBrnJ,KAAKynJ,6BAEN,MAApBn7I,EAAKs7I,QAAQ,KACft7I,EAAKs7I,QAAQhtD,OAAO,EAAG,GACvBtuF,EAAK+6I,mBAAqB,IAErB,CACT,CACA,OAAO,CACT,EAEAF,EAAW3oJ,UAAUqrJ,SAAW,WAC9B,OAA+B,IAAxB7pJ,KAAK4nJ,QAAQ3oJ,MACtB,EAEAkoJ,EAAW3oJ,UAAU8qG,KAAO,WAC1B,OAAKtpG,KAAK6pJ,WAGD,KAFA7pJ,KAAK4nJ,QAAQ5nJ,KAAK4nJ,QAAQ3oJ,OAAS,EAI9C,EAEAkoJ,EAAW3oJ,UAAUoR,KAAO,SAAS1Q,GACnCc,KAAK4nJ,QAAQh4I,KAAK1Q,GAClB,IAAIirJ,EAAqBjrJ,EAAK08E,YAAY,OACd,IAAxBuuE,EACFnqJ,KAAKqnJ,kBAAoBnoJ,EAAKD,OAASkrJ,EAEvCnqJ,KAAKqnJ,mBAAqBnoJ,EAAKD,MAEnC,EAEAkoJ,EAAW3oJ,UAAU6+E,IAAM,WACzB,IAAIn+E,EAAO,KAKX,OAJKc,KAAK6pJ,aACR3qJ,EAAOc,KAAK4nJ,QAAQvqE,MACpBr9E,KAAKqnJ,mBAAqBnoJ,EAAKD,QAE1BC,CACT,EAGAioJ,EAAW3oJ,UAAU4rJ,eAAiB,WAChCpqJ,KAAKsnJ,eAAiB,IACxBtnJ,KAAKsnJ,gBAAkB,EACvBtnJ,KAAKqnJ,mBAAqBrnJ,KAAKonJ,SAASa,YAE5C,EAEAd,EAAW3oJ,UAAU6rJ,oBAAsB,WACrCrqJ,KAAK0nJ,0BAA4B,IACnC1nJ,KAAK0nJ,2BAA6B,EAEtC,EACAP,EAAW3oJ,UAAU++G,KAAO,WAC1B,KAAuB,MAAhBv9G,KAAKspG,QACVtpG,KAAK4nJ,QAAQvqE,MACbr9E,KAAKqnJ,mBAAqB,CAE9B,EAEAF,EAAW3oJ,UAAUyS,SAAW,WAC9B,IAAIm2E,EAAS,GASb,OARIpnF,KAAK6pJ,WACH7pJ,KAAKonJ,SAAS0B,qBAChB1hE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,kBAGhDlgE,EAASpnF,KAAKonJ,SAASkD,kBAAkBtqJ,KAAKsnJ,eAAgBtnJ,KAAKunJ,mBACnEngE,GAAUpnF,KAAK4nJ,QAAQp4I,KAAK,KAEvB43E,CACT,EAoBAygE,EAAkBrpJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAC7D,IAAInjE,EAASpnF,KAAKuoJ,qBAOlB,OANAgC,EAASA,GAAU,EACfZ,EAAS,IACXviE,EAAS,GAEXA,GAAUuiE,EAAS3pJ,KAAKgoJ,cACxB5gE,GAAUmjE,CAEZ,EAEA1C,EAAkBrpJ,UAAU8rJ,kBAAoB,SAASjC,EAAckC,GACrE,IAAInjE,EAASpnF,KAAKsoJ,cASlB,OARAiC,EAASA,GAAU,EACflC,EAAe,IACjBA,EAAe,EACfjhE,EAAS,IAEXmjE,GAAUlC,EAAeroJ,KAAKgoJ,cAC9BhoJ,KAAKwqJ,eAAeD,GACpBnjE,GAAUpnF,KAAK+nJ,QAAQwC,EAEzB,EAEA1C,EAAkBrpJ,UAAUgsJ,eAAiB,SAASD,GACpD,KAAOA,GAAUvqJ,KAAK+nJ,QAAQ9oJ,QAC5Be,KAAKyqJ,cAET,EAEA5C,EAAkBrpJ,UAAUisJ,aAAe,WACzC,IAAIF,EAASvqJ,KAAK+nJ,QAAQ9oJ,OACtB0qJ,EAAS,EACTviE,EAAS,GACTpnF,KAAKgoJ,eAAiBuC,GAAUvqJ,KAAKgoJ,gBAEvCuC,IADAZ,EAASlsE,KAAK8H,MAAMglE,EAASvqJ,KAAKgoJ,gBACfhoJ,KAAKgoJ,cACxB5gE,EAAS,IAAIroF,MAAM4qJ,EAAS,GAAGn6I,KAAKxP,KAAKkoJ,kBAEvCqC,IACFnjE,GAAU,IAAIroF,MAAMwrJ,EAAS,GAAG/6I,KAAK,MAGvCxP,KAAK+nJ,QAAQn4I,KAAKw3E,EACpB,EAoBAohE,EAAOhqJ,UAAU8qJ,iBAAmB,WAClCtpJ,KAAKgpJ,cAAgBhpJ,KAAKipJ,aAC1BjpJ,KAAKipJ,aAAejpJ,KAAKkpJ,UAAUK,cACnCvpJ,KAAK+oJ,QAAQn5I,KAAK5P,KAAKipJ,aACzB,EAEAT,EAAOhqJ,UAAUksJ,gBAAkB,WACjC,OAAO1qJ,KAAK+oJ,QAAQ9pJ,MACtB,EAEAupJ,EAAOhqJ,UAAU8rJ,kBAAoB,SAASX,EAAQY,GACpD,OAAOvqJ,KAAKyoJ,eAAe6B,kBAAkBX,EAAQY,EACvD,EAEA/B,EAAOhqJ,UAAUsrJ,gBAAkB,SAASH,EAAQY,GAClD,OAAOvqJ,KAAKyoJ,eAAeqB,gBAAgBH,EAAQY,EACrD,EAEA/B,EAAOhqJ,UAAUqrJ,SAAW,WAC1B,OAAQ7pJ,KAAKgpJ,eAAiBhpJ,KAAKipJ,aAAaY,UAClD,EAEArB,EAAOhqJ,UAAU0rJ,aAAe,SAASS,GAGvC,QAAI3qJ,KAAK6pJ,aACLc,GAAiB3qJ,KAAK4qJ,wBAMrB5qJ,KAAK0oJ,KACR1oJ,KAAKspJ,oBAEA,EACT,EAEAd,EAAOhqJ,UAAUqsJ,SAAW,SAASC,GACnC9qJ,KAAKu9G,MAAK,GAIV,IAAIwtC,EAAY/qJ,KAAKipJ,aAAa5rE,MAC9B0tE,IACsC,OAApCA,EAAUA,EAAU9rJ,OAAS,KAC/B8rJ,EAAYA,EAAUlrJ,QAAQ,QAAS,KAEzCG,KAAKipJ,aAAar5I,KAAKm7I,IAGrB/qJ,KAAK2oJ,mBACP3oJ,KAAKspJ,mBAGP,IAAI0B,EAAahrJ,KAAK+oJ,QAAQv5I,KAAK,MAKnC,MAHY,OAARs7I,IACFE,EAAaA,EAAWnrJ,QAAQ,QAASirJ,IAEpCE,CACT,EAEAxC,EAAOhqJ,UAAUysJ,eAAiB,WAChCjrJ,KAAKipJ,aAAac,iBACpB,EAEAvB,EAAOhqJ,UAAUgrJ,WAAa,SAASG,EAAQC,GAQ7C,OAPAD,EAASA,GAAU,EACnBC,EAAYA,GAAa,EAGzB5pJ,KAAKkpJ,UAAUM,WAAWG,EAAQC,GAG9B5pJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxBe,KAAKipJ,aAAaO,WAAWG,EAAQC,IAC9B,IAGT5pJ,KAAKipJ,aAAaO,cACX,EACT,EAEAhB,EAAOhqJ,UAAU0sJ,cAAgB,SAASvyD,GACxC,IAAK,IAAIpa,EAAI,EAAGA,EAAIoa,EAAMwyD,SAAU5sE,IAClCv+E,KAAKspJ,mBAEPtpJ,KAAKipJ,aAAaO,YAAY,GAC9BxpJ,KAAKipJ,aAAar5I,KAAK+oF,EAAMyyD,mBAC7BprJ,KAAKipJ,aAAar5I,KAAK+oF,EAAM9jF,MAC7B7U,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,wBAAyB,CAChC,EAEAb,EAAOhqJ,UAAU6sJ,UAAY,SAASC,GACpCtrJ,KAAKurJ,2BACLvrJ,KAAKipJ,aAAar5I,KAAK07I,GACvBtrJ,KAAKmpJ,oBAAqB,EAC1BnpJ,KAAKopJ,oBAAqB,EAC1BppJ,KAAKqpJ,uBAAyBrpJ,KAAKipJ,aAAagB,aAClD,EAEAzB,EAAOhqJ,UAAU+sJ,yBAA2B,WACtCvrJ,KAAKmpJ,qBAAuBnpJ,KAAK4qJ,uBAC9B5qJ,KAAKopJ,oBACRppJ,KAAKirJ,iBAEPjrJ,KAAKipJ,aAAar5I,KAAK,KAE3B,EAEA44I,EAAOhqJ,UAAUgtJ,cAAgB,SAASx6I,GAExC,IADA,IAAIy6I,EAAgBzrJ,KAAK+oJ,QAAQ9pJ,OAC1B+R,EAAQy6I,GACbzrJ,KAAK+oJ,QAAQ/3I,GAAOo5I,iBACpBp5I,IAEFhR,KAAKipJ,aAAaoB,qBACpB,EAEA7B,EAAOhqJ,UAAU++G,KAAO,SAASmuC,GAK/B,IAJAA,OAAiCvuJ,IAAjBuuJ,GAAsCA,EAEtD1rJ,KAAKipJ,aAAa1rC,OAEXmuC,GAAgB1rJ,KAAK+oJ,QAAQ9pJ,OAAS,GAC3Ce,KAAKipJ,aAAaY,YAClB7pJ,KAAK+oJ,QAAQ1rE,MACbr9E,KAAKipJ,aAAejpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACvDe,KAAKipJ,aAAa1rC,OAGpBv9G,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ9pJ,OAAS,EACzCe,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GAAK,IAC5C,EAEAupJ,EAAOhqJ,UAAUosJ,mBAAqB,WACpC,OAAO5qJ,KAAKipJ,aAAaY,UAC3B,EAEArB,EAAOhqJ,UAAUmtJ,qBAAuB,WACtC,OAAO3rJ,KAAK6pJ,YACT7pJ,KAAKipJ,aAAaY,YAAc7pJ,KAAKgpJ,cAAca,UACxD,EAEArB,EAAOhqJ,UAAUotJ,wBAA0B,SAASC,EAAaC,GAE/D,IADA,IAAI96I,EAAQhR,KAAK+oJ,QAAQ9pJ,OAAS,EAC3B+R,GAAS,GAAG,CACjB,IAAI+6I,EAAqB/rJ,KAAK+oJ,QAAQ/3I,GACtC,GAAI+6I,EAAmBlC,WACrB,MACK,GAAwD,IAApDkC,EAAmB7sJ,KAAK,GAAG6N,QAAQ8+I,IAC5CE,EAAmB7sJ,MAAM,KAAO4sJ,EAAW,CAC3C9rJ,KAAK+oJ,QAAQnuD,OAAO5pF,EAAQ,EAAG,EAAG,IAAIm2I,EAAWnnJ,OACjDA,KAAKgpJ,cAAgBhpJ,KAAK+oJ,QAAQ/oJ,KAAK+oJ,QAAQ9pJ,OAAS,GACxD,KACF,CACA+R,GACF,CACF,EAEA4sE,EAAO1/E,QAAQsqJ,OAASA,CAGjB,WAES5qE,GAuDhBA,EAAO1/E,QAAQg1J,MAvBf,SAAepiE,EAAMj8E,EAAMs2I,EAAUC,GACnCprJ,KAAK8wF,KAAOA,EACZ9wF,KAAK6U,KAAOA,EAMZ7U,KAAKmzJ,gBAAkB,KAIvBnzJ,KAAKmrJ,SAAWA,GAAY,EAC5BnrJ,KAAKorJ,kBAAoBA,GAAqB,GAC9CprJ,KAAKkN,OAAS,KACdlN,KAAKsM,KAAO,KACZtM,KAAKoM,SAAW,KAChBpM,KAAKozJ,OAAS,KACdpzJ,KAAK+6E,OAAS,KACd/6E,KAAK0vJ,WAAa,IACpB,CAMO,WAESrtB,EAAyBnkI,GAyBzC,IAGIsrK,EAA2B,8CAM3BC,EAA+B,2vJAC/BC,EAA0B,g+EAI1BC,EAA2B,8CAC3BC,EAAkB,MAAQD,EAAR,+CAA0EF,EAA+B,KAC3HI,EAAkB,MAAQF,EAA2B,KAAOH,EAA2BC,EAA+BC,EAA0B,MAEpJxrK,EAAQ4rK,WAAa,IAAI/vF,OAAO6vF,EAAkBC,EAAiB,KACnE3rK,EAAQ0rK,gBAAkB,IAAI7vF,OAAO6vF,GACrC1rK,EAAQ6rK,gBAAkB,IAAIhwF,OAAO,MAAQ4vF,EAA2B,KAAOH,EAA2BC,EAA+BC,EAA0B,OAMnKxrK,EAAQwqK,QAAU,qBAOlBxqK,EAAQkyF,UAAY,IAAIrW,OAAO,QAAU77E,EAAQwqK,QAAQrqK,QACzDH,EAAQ+xJ,cAAgB,IAAIl2E,OAAO77E,EAAQkyF,UAAU/xF,OAAQ,IAGtD,WAESu/E,EAAQ4rD,EAA0BjH,GAgClD,IAAIswB,EAAetwB,EAAoB,GAAGypB,QAEtCge,EAAsB,CAAC,iBAAkB,gBAAiB,oBAE9D,SAAShe,EAAQjsJ,GACf8yJ,EAAYn0J,KAAKsB,KAAMD,EAAS,MAGhC,IAAIkqK,EAAkBjqK,KAAKksJ,YAAYqG,aAAe,KAC9B,kBAApB0X,EACFjqK,KAAKksJ,YAAYqG,YAAc,SACF,6BAApB0X,EACTjqK,KAAKksJ,YAAYqG,YAAc,gCACkBp1J,IAAxC6C,KAAKksJ,YAAYge,qBAC1BlqK,KAAKksJ,YAAYqG,YAAcvyJ,KAAKksJ,YAAYge,mBAAqB,SAAW,YAQlF,IAAInX,EAAoB/yJ,KAAK2sJ,oBAAoB,cAAe,CAAC,WAAY,SAAU,aAAc,OAAQ,oBAE7G3sJ,KAAK4nK,uBAAwB,EAC7B5nK,KAAKuyJ,YAAc,WAEnB,IAAK,IAAIS,EAAK,EAAGA,EAAKD,EAAkB9zJ,OAAQ+zJ,IAChB,oBAA1BD,EAAkBC,GACpBhzJ,KAAK4nK,uBAAwB,EAE7B5nK,KAAKuyJ,YAAcQ,EAAkBC,GAIzChzJ,KAAKupK,yBAA2BvpK,KAAKqsJ,aAAa,4BAClDrsJ,KAAKspK,sBAAwBtpK,KAAKqsJ,aAAa,yBAC/CrsJ,KAAKknK,eAAiBlnK,KAAKqsJ,aAAa,kBACxCrsJ,KAAKwnK,qBAAuBxnK,KAAKqsJ,aAAa,wBAC9CrsJ,KAAK8nK,aAAe9nK,KAAKqsJ,aAAa,gBACtCrsJ,KAAKunK,0BAA4BvnK,KAAKqsJ,aAAa,6BACnDrsJ,KAAKqnK,2BAA6BrnK,KAAKqsJ,aAAa,8BACpDrsJ,KAAKkmK,uBAAyBlmK,KAAKqsJ,aAAa,0BAChDrsJ,KAAKmnK,yBAA2BnnK,KAAKqsJ,aAAa,4BAA4B,GAC9ErsJ,KAAKmqK,iBAAmBnqK,KAAKqsJ,aAAa,oBAC1CrsJ,KAAKoqK,IAAMpqK,KAAKqsJ,aAAa,OAC7BrsJ,KAAK6mK,YAAc7mK,KAAKqsJ,aAAa,eACrCrsJ,KAAKymK,kBAAoBzmK,KAAKotJ,eAAe,oBAAqB4c,GAGlEhqK,KAAKqkK,gBAAkBrkK,KAAKqsJ,aAAa,mBAGrCrsJ,KAAK8nK,eACP9nK,KAAKunK,2BAA4B,EAGrC,CACAvb,EAAQxtJ,UAAY,IAAIq0J,EAIxBj1E,EAAO1/E,QAAQ8tJ,QAAUA,CAGlB,WAESpuE,GAgChB,SAASouE,EAAQjsJ,EAASksJ,GACxBjsJ,KAAKksJ,YAAcC,EAAWpsJ,EAASksJ,GAGvCjsJ,KAAKosJ,SAAWpsJ,KAAKqsJ,aAAa,YAElCrsJ,KAAK8qJ,IAAM9qJ,KAAKssJ,gBAAgB,MAAO,QACvCtsJ,KAAK4oJ,iBAAmB5oJ,KAAKqsJ,aAAa,oBAC1CrsJ,KAAKioJ,YAAcjoJ,KAAKusJ,YAAY,cAAe,GACnDvsJ,KAAKmoJ,YAAcnoJ,KAAKssJ,gBAAgB,cAAe,KACvDtsJ,KAAKqoJ,aAAeroJ,KAAKusJ,YAAY,gBAErCvsJ,KAAKwsJ,kBAAoBxsJ,KAAKqsJ,aAAa,qBAAqB,GAChErsJ,KAAKysJ,sBAAwBzsJ,KAAKusJ,YAAY,wBAAyB,OAClEvsJ,KAAKwsJ,oBACRxsJ,KAAKysJ,sBAAwB,GAG/BzsJ,KAAKooJ,iBAAmBpoJ,KAAKqsJ,aAAa,mBAAyC,OAArBrsJ,KAAKmoJ,aAC/DnoJ,KAAKooJ,mBACPpoJ,KAAKmoJ,YAAc,KASM,IAArBnoJ,KAAKioJ,cACPjoJ,KAAKioJ,YAAc,IAKvBjoJ,KAAK6oJ,iBAAmB7oJ,KAAKusJ,YAAY,mBAAoBvsJ,KAAKusJ,YAAY,aAE9EvsJ,KAAK8oJ,mBAAqB9oJ,KAAKqsJ,aAAa,sBAK5CrsJ,KAAK0sJ,WAAa1sJ,KAAK2sJ,oBAAoB,aAAc,CAAC,OAAQ,OAAQ,UAAW,SAAU,MAAO,aAAc,MAAO,UAAW,CAAC,QACzI,CAsFA,SAASR,EAAWS,EAAYC,GAC9B,IAEIznJ,EAFA0nJ,EAAY,CAAC,EAIjB,IAAK1nJ,KAHLwnJ,EAAaG,EAAeH,GAItBxnJ,IAASynJ,IACXC,EAAU1nJ,GAAQwnJ,EAAWxnJ,IAKjC,GAAIynJ,GAAkBD,EAAWC,GAC/B,IAAKznJ,KAAQwnJ,EAAWC,GACtBC,EAAU1nJ,GAAQwnJ,EAAWC,GAAgBznJ,GAGjD,OAAO0nJ,CACT,CAEA,SAASC,EAAehtJ,GACtB,IACIxB,EADAyuJ,EAAgB,CAAC,EAGrB,IAAKzuJ,KAAOwB,EAAS,CAEnBitJ,EADazuJ,EAAIsB,QAAQ,KAAM,MACPE,EAAQxB,EAClC,CACA,OAAOyuJ,CACT,CAjHAhB,EAAQxtJ,UAAUyuJ,WAAa,SAAS7nJ,EAAM8nJ,GAC5C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAQ9B,MAP4B,kBAAjBC,EACY,OAAjBA,GAAwD,oBAAxBA,EAAanrE,SAC/CoF,EAAS+lE,EAAanrE,UAES,kBAAjBmrE,IAChB/lE,EAAS+lE,EAAazmJ,MAAM,uBAEvB0gF,CACT,EAEA4kE,EAAQxtJ,UAAU6tJ,aAAe,SAASjnJ,EAAM8nJ,GAC9C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAEpC,YAD8BjI,IAAjBgwJ,IAA+BD,IAAkBC,CAEhE,EAEAnB,EAAQxtJ,UAAU8tJ,gBAAkB,SAASlnJ,EAAM8nJ,GACjD,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GAChCgiF,EAAS8lE,GAAiB,GAI9B,MAH4B,kBAAjBC,IACT/lE,EAAS+lE,EAAattJ,QAAQ,MAAO,MAAMA,QAAQ,MAAO,MAAMA,QAAQ,MAAO,OAE1EunF,CACT,EAEA4kE,EAAQxtJ,UAAU+tJ,YAAc,SAASnnJ,EAAM8nJ,GAC7C,IAAIC,EAAentJ,KAAKksJ,YAAY9mJ,GACpC8nJ,EAAgBvwE,SAASuwE,EAAe,IACpCpqE,MAAMoqE,KACRA,EAAgB,GAElB,IAAI9lE,EAASzK,SAASwwE,EAAc,IAIpC,OAHIrqE,MAAMsE,KACRA,EAAS8lE,GAEJ9lE,CACT,EAEA4kE,EAAQxtJ,UAAU4uJ,eAAiB,SAAShoJ,EAAMioJ,EAAgBH,GAChE,IAAI9lE,EAASpnF,KAAK2sJ,oBAAoBvnJ,EAAMioJ,EAAgBH,GAC5D,GAAsB,IAAlB9lE,EAAOnoF,OACT,MAAM,IAAIyK,MACR,qCAAuCtE,EAAO,+CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,EAAO,EAChB,EAGA4kE,EAAQxtJ,UAAUmuJ,oBAAsB,SAASvnJ,EAAMioJ,EAAgBH,GACrE,IAAKG,GAA4C,IAA1BA,EAAepuJ,OACpC,MAAM,IAAIyK,MAAM,mCAIlB,GADAwjJ,EAAgBA,GAAiB,CAACG,EAAe,KAC5CrtJ,KAAKstJ,oBAAoBJ,EAAeG,GAC3C,MAAM,IAAI3jJ,MAAM,0BAGlB,IAAI09E,EAASpnF,KAAKitJ,WAAW7nJ,EAAM8nJ,GACnC,IAAKltJ,KAAKstJ,oBAAoBlmE,EAAQimE,GACpC,MAAM,IAAI3jJ,MACR,qCAAuCtE,EAAO,6CAC9CioJ,EAAiB,qBAAuBrtJ,KAAKksJ,YAAY9mJ,GAAQ,KAGrE,OAAOgiF,CACT,EAEA4kE,EAAQxtJ,UAAU8uJ,oBAAsB,SAASlmE,EAAQimE,GACvD,OAAOjmE,EAAOnoF,QAAUouJ,EAAepuJ,SACpCmoF,EAAOwvB,MAAK,SAAS13G,GAAQ,OAAyC,IAAlCmuJ,EAAetgJ,QAAQ7N,EAAc,GAC9E,EAuCA0+E,EAAO1/E,QAAQ8tJ,QAAUA,EACzBpuE,EAAO1/E,QAAQqvJ,cAAgBR,EAC/BnvE,EAAO1/E,QAAQsvJ,UAAYrB,CAGpB,WAESvuE,EAAQ4rD,EAA0BjH,GAgClD,IAAImrB,EAAgBnrB,EAAoB,GAAGmrB,aACvC2R,EAAiB98B,EAAoB,GAAGlqC,UACxCinE,EAAa/8B,EAAoB,GAAGgxB,MACpCpE,EAAc5sB,EAAoB,IAAI4sB,WACtCuS,EAAQn/B,EAAoB,GAC5ByyB,EAAWzyB,EAAoB,IAAIyyB,QACnC2B,EAAsBp0B,EAAoB,IAAIo0B,mBAGlD,SAAS4C,EAASC,EAAMz1E,GACtB,OAA8B,IAAvBA,EAAIh3E,QAAQysJ,EACrB,CAGA,IAAIjG,EAAQ,CACVkR,WAAY,gBACZE,SAAU,cACVtB,YAAa,iBACbyB,UAAW,eACXE,KAAM,UACNlD,SAAU,cACVxtE,UAAW,eACX6wE,OAAQ,YACRhM,OAAQ,YACRmM,SAAU,cACVlxE,MAAO,WACPqxE,cAAe,mBACfhK,QAAS,aACTmK,IAAK,SACLrG,QAAS,aACT/L,MAAO8L,EAAU9L,MACjBC,IAAK6L,EAAU7L,IACf3+D,IAAKwqE,EAAUxqE,KAIbk7D,EAAkB,IAAIb,EAAW,OAAQ,QAEzCkb,EAAiB,qIAEjBlwE,EAAQ,QAGRmwE,EAAc,UAEd1I,EAAyB,mFAGAl7J,MAAM,KAI/B6jK,EACF,kJAQFA,GADAA,EAAQ,kBAFRA,EAAQA,EAAM1qK,QAAQ,yBAA0B,UAGlCA,QAAQ,KAAM,KAE5B,IASI2qK,EATAC,EAAgB,IAAI1wF,OAAOwwF,GAG3B5I,EAAgB,wGAAwGj7J,MAAM,KAC9HgkK,EAAiB/I,EAAc3/E,OAAO,CAAC,KAAM,KAAM,KAAM,OAAQ,MAAO,MAAO,MAAO,QAAS,UAAW,SAAU,QAAS,QAAS,QAAS,OAAQ,KAAM,QAAS,YACtK2oF,EAAwB,IAAI5wF,OAAO,OAAS2wF,EAAel7J,KAAK,KAAO,MAMvE6oF,EAAY,SAASs1D,EAAc5tJ,GACrCs/J,EAAc3gK,KAAKsB,KAAM2tJ,EAAc5tJ,GAEvCC,KAAK2zJ,UAAU1a,WAAaj5I,KAAK2zJ,UAAU1a,WAAWwc,SACpD,0DAA0Dp3J,OAC1D,eAAeA,QAEjB,IAAIqhK,EAAiB,IAAI1K,EAAQh1J,KAAKwwJ,QAClCoa,EAAc,IAAIjU,EAAmB32J,KAAKwwJ,QAC3CgH,aAAax3J,KAAKusH,UAErBvsH,KAAK+2J,WAAa,CAChBvyB,SAAUomC,EACVd,WAAYc,EAAYzU,cAAcuL,EAAMoI,YAAYrU,SAASiM,EAAMqI,iBACvE/uE,OAAQ0kE,EAAejK,SAAS4U,GAChCE,MAAO7K,EAAejK,SAASgV,GAE/BnlK,QAASo6J,EAAevJ,cAAc,QAAQD,MAAM,sBAEpD2U,cAAenL,EAAevJ,cAAc,QAAQ3H,YAAY,QAChEsc,mBAAoBpL,EAAejK,SAAS,QAC5CsV,iBAAkBrL,EAAejK,SAAS,OAC1CuV,QAAStL,EAAevJ,cAAc,YAAY3H,YAAYkT,EAAMtxE,WACpE66E,QAASvL,EAAevJ,cAAc,MAAM3H,YAAYkT,EAAMtxE,WAC9D3tF,IAAKi9J,EAAejK,SAAS,mLAC7BoK,aAAc+K,EAAY1U,MAAM,yBAChC4J,aAAc8K,EAAY1U,MAAM,yBAChCgV,cAAeN,EAAY1U,MAAM,UACjCiV,oBAAqBP,EAAY1U,MAAM,UAG3C,GACA79D,EAAU75F,UAAY,IAAI6gK,GAENnL,YAAc,SAASS,GACzC,OAAOA,EAAc7jE,OAASyiE,EAAMkI,SAAW9G,EAAc7jE,OAASyiE,EAAMkS,eAAiB9Q,EAAc7jE,OAASyiE,EAAMgM,OAC5H,EAEAlnE,EAAU75F,UAAU41J,YAAc,SAASO,GACzC,OAAOA,EAAc7jE,OAASyiE,EAAM8P,aAAe1O,EAAc7jE,OAASyiE,EAAMkR,UAClF,EAEApsE,EAAU75F,UAAU61J,YAAc,SAASM,EAAeb,GACxD,OAAQa,EAAc7jE,OAASyiE,EAAMuR,WAAanQ,EAAc7jE,OAASyiE,EAAMoR,WAC5E7Q,IACyB,MAAvBa,EAAc9/I,MAAoC,MAApBi/I,EAAWj/I,MAClB,MAAvB8/I,EAAc9/I,MAAoC,MAApBi/I,EAAWj/I,MAClB,MAAvB8/I,EAAc9/I,MAAoC,MAApBi/I,EAAWj/I,KAChD,EAEAwjF,EAAU75F,UAAUq1J,OAAS,WAC3B2W,GAAkB,CACpB,EAEAnyE,EAAU75F,UAAUy1J,gBAAkB,SAASM,EAAgBT,GAC7D,IAAIn7D,EAAQ,KACZ34F,KAAKw0J,kBACL,IAAIlpJ,EAAItL,KAAKwwJ,OAAOtC,OAEpB,OAAU,OAAN5iJ,EACKtL,KAAK00J,cAAcnB,EAAMz+D,IAAK,IAYvC6D,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAQA,GAAS34F,KAAKorK,qBAAqB9/J,KAC1BtL,KAAKqrK,aAAa//J,KAClBtL,KAAKsrK,WAAWhgK,EAAGtL,KAAKwwJ,OAAOtC,KAAK,MACpCluJ,KAAKurK,WAAWhX,KAChBv0J,KAAKwrK,cAAclgK,KACnBtL,KAAKyrK,cAAcngK,KACnBtL,KAAK0rK,aAAapgK,EAAGipJ,KACrBv0J,KAAK2rK,UAAUrgK,EAAGipJ,KAClBv0J,KAAK4rK,sBACL5rK,KAAK00J,cAAcnB,EAAMgM,QAASv/J,KAAKwwJ,OAAOlkJ,OAGjE,EAEA+rF,EAAU75F,UAAU+sK,WAAa,SAAShX,GACxC,IAAIE,EAEJ,MAAyB,MADzBA,EAAmBz0J,KAAK+2J,WAAW+S,WAAWrxE,SAE5Cg8D,EAAmBA,EAAiB50J,QAAQ6hK,EAAMzR,cAAe,MAC3DsE,EAAezjE,OAASyiE,EAAMqS,MAC/BrR,EAAezjE,OAASyiE,EAAMuO,UAAqC,QAAxBvN,EAAe1/I,MAA0C,QAAxB0/I,EAAe1/I,OAC9F81J,EAAsB9oK,KAAK4yJ,GACD,OAArBA,GAAkD,OAArBA,GAC/BF,EAAezjE,OAASyiE,EAAMyR,MAAQzQ,EAAezjE,OAASyiE,EAAM4R,OAGhEnlK,KAAK00J,cAAcnB,EAAMuO,SAAUrN,GAFjCz0J,KAAK00J,cAAcnB,EAAM+R,SAAU7Q,GAIvCz0J,KAAK00J,cAAcnB,EAAMyR,KAAMvQ,IAIf,MADzBA,EAAmBz0J,KAAK+2J,WAAW/7D,OAAOvC,QAEjCz4F,KAAK00J,cAAcnB,EAAMyR,KAAMvQ,QADxC,CAGF,EAEAp8D,EAAU75F,UAAUgtK,cAAgB,SAASlgK,GAC3C,IAAIqtF,EAAQ,KAoBZ,MAnBU,MAANrtF,GAAmB,MAANA,EACfqtF,EAAQ34F,KAAK00J,cAAcnB,EAAMkR,WAAYn5J,GAC9B,MAANA,GAAmB,MAANA,EACtBqtF,EAAQ34F,KAAK00J,cAAcnB,EAAMoR,SAAUr5J,GAC5B,MAANA,EACTqtF,EAAQ34F,KAAK00J,cAAcnB,EAAM8P,YAAa/3J,GAC/B,MAANA,EACTqtF,EAAQ34F,KAAK00J,cAAcnB,EAAMuR,UAAWx5J,GAC7B,MAANA,EACTqtF,EAAQ34F,KAAK00J,cAAcnB,EAAMj/D,UAAWhpF,GAC7B,MAANA,GAAag/J,EAAYzoK,KAAK7B,KAAKwwJ,OAAOtC,KAAK,IACxDv1D,EAAQ34F,KAAK00J,cAAcnB,EAAMqS,IAAKt6J,GACvB,MAANA,IACTqtF,EAAQ34F,KAAK00J,cAAcnB,EAAMn/D,MAAO9oF,IAGtCqtF,GACF34F,KAAKwwJ,OAAOlkJ,OAEPqsF,CACT,EAEAN,EAAU75F,UAAU8sK,WAAa,SAAShgK,EAAG4yE,GAC3C,IAAIya,EAAQ,KASZ,MARU,MAANrtF,GAAmB,MAAN4yE,IACfya,EAAQ34F,KAAK00J,cAAcnB,EAAM8P,YAAa/3J,EAAI4yE,IAGhDya,IACF34F,KAAKwwJ,OAAOlkJ,OACZtM,KAAKwwJ,OAAOlkJ,QAEPqsF,CACT,EAEAN,EAAU75F,UAAUotK,kBAAoB,WACtC,IAAInX,EAAmBz0J,KAAK+2J,WAAWwT,MAAM9xE,OAE7C,GAAyB,KAArBg8D,EACF,MAAyB,MAArBA,EACKz0J,KAAK00J,cAAcnB,EAAM4F,OAAQ1E,GACV,OAArBA,EACFz0J,KAAK00J,cAAcnB,EAAMqS,IAAKnR,GAE9Bz0J,KAAK00J,cAAcnB,EAAM+R,SAAU7Q,EAGhD,EAEAp8D,EAAU75F,UAAU4sK,qBAAuB,SAAS9/J,GAClD,IAAImpJ,EAAmB,GAEvB,GAAU,MAANnpJ,EAAW,CACb,GAAItL,KAAKs0J,oBACPG,EAAmBz0J,KAAK+2J,WAAWkU,QAAQxyE,QAGzC,OAAOz4F,KAAK00J,cAAcnB,EAAMgM,QAAS9K,EAAiBl3C,OAAS,MAOvE,GAFAk3C,EAAmBz0J,KAAK+2J,WAAWiU,QAAQvyE,OAGzC,OAAOz4F,KAAK00J,cAAcnB,EAAMgM,QAAS9K,EAAiBl3C,OAAS,MAGrEjyG,EAAItL,KAAKwwJ,OAAOlkJ,OAGhB,IAAI2wD,EAAQ,IACZ,GAAIj9D,KAAKwwJ,OAAOvC,WAAajuJ,KAAKwwJ,OAAOnC,SAASl0D,GAAQ,CACxD,GAEEl9B,GADA3xD,EAAItL,KAAKwwJ,OAAOlkJ,aAETtM,KAAKwwJ,OAAOvC,WAAmB,MAAN3iJ,GAAmB,MAANA,GAY/C,MAXU,MAANA,IAE8B,MAAvBtL,KAAKwwJ,OAAOtC,QAA0C,MAAxBluJ,KAAKwwJ,OAAOtC,KAAK,IACxDjxF,GAAS,KACTj9D,KAAKwwJ,OAAOlkJ,OACZtM,KAAKwwJ,OAAOlkJ,QACoB,MAAvBtM,KAAKwwJ,OAAOtC,QAA0C,MAAxBluJ,KAAKwwJ,OAAOtC,KAAK,KACxDjxF,GAAS,KACTj9D,KAAKwwJ,OAAOlkJ,OACZtM,KAAKwwJ,OAAOlkJ,SAEPtM,KAAK00J,cAAcnB,EAAMyR,KAAM/nG,EACxC,CAEAj9D,KAAKwwJ,OAAOxC,MAEd,MAAO,GAAU,MAAN1iJ,GAAatL,KAAKs0J,mBAE3B,GADAG,EAAmBz0J,KAAK+2J,WAAW+T,mBAAmBryE,OAChC,CACpB,KAAOz4F,KAAKwwJ,OAAOvC,YAAcjuJ,KAAKwwJ,OAAOnC,SAASqT,EAAMgH,UAC1DjU,GAAoBz0J,KAAKwwJ,OAAOlkJ,OAGlC,OADAk+J,GAAkB,EACXxqK,KAAK00J,cAAcnB,EAAMkI,QAAShH,EAC3C,OACK,GAAI+V,GAAyB,MAANl/J,IAC5BmpJ,EAAmBz0J,KAAK+2J,WAAWgU,iBAAiBtyE,QAGlD,OADA+xE,GAAkB,EACXxqK,KAAK00J,cAAcnB,EAAMkI,QAAShH,GAI7C,OAAO,IACT,EAEAp8D,EAAU75F,UAAUitK,cAAgB,SAASngK,GAC3C,IAAIqtF,EAAQ,KACZ,GAAU,MAANrtF,EAAW,CACb,IAAIhG,EAAU,GACd,GAA4B,MAAxBtF,KAAKwwJ,OAAOtC,KAAK,GAAY,CAE/B5oJ,EAAUtF,KAAK+2J,WAAW8T,cAAcpyE,OACxC,IAAIi3D,EAAaM,EAAgBP,eAAenqJ,GAC5CoqJ,GAAoC,UAAtBA,EAAW0C,SAC3B9sJ,GAAW0qJ,EAAgBJ,YAAY5vJ,KAAKwwJ,SAE9ClrJ,EAAUA,EAAQzF,QAAQ6hK,EAAMzR,cAAe,OAC/Ct3D,EAAQ34F,KAAK00J,cAAcnB,EAAMkS,cAAengK,IAC1CoqJ,WAAaA,CACrB,KAAmC,MAAxB1vJ,KAAKwwJ,OAAOtC,KAAK,KAE1B5oJ,EAAUtF,KAAK+2J,WAAWzxJ,QAAQmzF,OAClCE,EAAQ34F,KAAK00J,cAAcnB,EAAMkI,QAASn2J,GAE9C,CACA,OAAOqzF,CACT,EAEAN,EAAU75F,UAAU6sK,aAAe,SAAS//J,GAC1C,GAAU,MAANA,GAAmB,MAANA,GAAmB,MAANA,EAAW,CACvC,IAAImpJ,EAAmBz0J,KAAKwwJ,OAAOlkJ,OAmBnC,OAlBAtM,KAAK6rK,kBAAmB,EAGtBpX,GADQ,MAANnpJ,EACkBtL,KAAK8rK,uBAAuB,KAAK,EAAM,MAEvC9rK,KAAK8rK,uBAAuBxgK,GAG9CtL,KAAK6rK,kBAAoB7rK,KAAKusH,SAAS49C,mBACzC1V,EAyGN,SAAyB75E,GAMvB,IAAIiuF,EAAM,GACRkD,EAAU,EAERC,EAAa,IAAIte,EAAa9yE,GAC9BwiF,EAAU,KAEd,KAAO4O,EAAW/d,WAShB,IANAmP,EAAU4O,EAAWhxF,MAAM,0BAGzB6tF,GAAOzL,EAAQ,IAGS,OAAtB4O,EAAW9d,OAAiB,CAE9B,GADA8d,EAAW1/J,OACe,MAAtB0/J,EAAW9d,OACbkP,EAAU4O,EAAWhxF,MAAM,0BACtB,IAA0B,MAAtBgxF,EAAW9d,OAKf,CACL2a,GAAO,KACHmD,EAAW/d,YACb4a,GAAOmD,EAAW1/J,QAEpB,QACF,EAVE8wJ,EAAU4O,EAAWhxF,MAAM,yBAEzBoiF,EAAU4O,EAAWhxF,MAAM,wBAQ/B,CAGA,IAAKoiF,EACH,OAAOxiF,EAKT,IAFAmxF,EAAUpvF,SAASygF,EAAQ,GAAI,KAEjB,KAAQ2O,GAAW,KAAoC,IAA5B3O,EAAQ,GAAGrwJ,QAAQ,KAI1D,OAAO6tE,EAGPiuF,GAFSkD,GAAW,GAAQA,EAAU,IAG7BA,EAAU,QADZ,KAAO3O,EAAQ,GAID,KAAZ2O,GAAgC,KAAZA,GAAgC,KAAZA,EAE1C,KAAO9qK,OAAOw7E,aAAasvF,GAE3B9qK,OAAOw7E,aAAasvF,EAE/B,CAGF,OAAOlD,CACT,CA3KyBoD,CAAgBxX,IAGjCz0J,KAAKwwJ,OAAOtC,SAAW5iJ,IACzBmpJ,GAAoBz0J,KAAKwwJ,OAAOlkJ,QAGlCmoJ,EAAmBA,EAAiB50J,QAAQ6hK,EAAMzR,cAAe,MAE1DjwJ,KAAK00J,cAAcnB,EAAM4R,OAAQ1Q,EAC1C,CAEA,OAAO,IACT,EAEAp8D,EAAU75F,UAAU0tK,qBAAuB,SAAS3X,GAElD,OAAQA,EAAezjE,OAASyiE,EAAMuO,UAAYvI,EAAShF,EAAe1/I,KAAM,CAAC,SAAU,OAAQ,QAAS,OAAQ,KAAM,SAAU,WACjI0/I,EAAezjE,OAASyiE,EAAMoR,UAAoC,MAAxBpQ,EAAe1/I,MACxD0/I,EAAenB,OAAOhnJ,SAAS0kF,OAASyiE,EAAMuO,UAAYvI,EAAShF,EAAenB,OAAOhnJ,SAASyI,KAAM,CAAC,KAAM,QAAS,SACzH0kJ,EAAShF,EAAezjE,KAAM,CAACyiE,EAAMkI,QAASlI,EAAMkR,WAAYlR,EAAM8P,YAAa9P,EAAMC,MACxFD,EAAMuR,UAAWvR,EAAM+R,SAAU/R,EAAM4F,OAAQ5F,EAAMz+D,IAAKy+D,EAAMj/D,UAAWi/D,EAAMn/D,OAEvF,EAEAiE,EAAU75F,UAAUktK,aAAe,SAASpgK,EAAGipJ,GAE7C,GAAU,MAANjpJ,GAAatL,KAAKksK,qBAAqB3X,GAAiB,CAO1D,IAJA,IAAIE,EAAmBz0J,KAAKwwJ,OAAOlkJ,OAC/B6/J,GAAM,EAENC,GAAgB,EACbpsK,KAAKwwJ,OAAOvC,YACfke,GAAOC,GAAiBpsK,KAAKwwJ,OAAOtC,SAAW5iJ,KAC9CtL,KAAKwwJ,OAAOnC,SAASqT,EAAMgH,UAC9BjU,GAAoBz0J,KAAKwwJ,OAAOtC,OAC3Bie,EAQHA,GAAM,GAPNA,EAA6B,OAAvBnsK,KAAKwwJ,OAAOtC,OACS,MAAvBluJ,KAAKwwJ,OAAOtC,OACdke,GAAgB,EACgB,MAAvBpsK,KAAKwwJ,OAAOtC,SACrBke,GAAgB,IAKpBpsK,KAAKwwJ,OAAOlkJ,OAUd,OAPItM,KAAKwwJ,OAAOtC,SAAW5iJ,IACzBmpJ,GAAoBz0J,KAAKwwJ,OAAOlkJ,OAIhCmoJ,GAAoBz0J,KAAKwwJ,OAAO/3D,KAAKipE,EAAMoI,aAEtC9pK,KAAK00J,cAAcnB,EAAM4R,OAAQ1Q,EAC1C,CACA,OAAO,IACT,EAEAp8D,EAAU75F,UAAUmtK,UAAY,SAASrgK,EAAGipJ,GAE1C,GAAIv0J,KAAKusH,SAAS69C,KAAa,MAAN9+J,GAAatL,KAAKksK,qBAAqB3X,GAAiB,CAC/E,IAAI8X,EAAS,GACTrxF,EAAQh7E,KAAK+2J,WAAWt0J,IAAIwzJ,aAGhC,GAAIj7E,EAAO,CAKT,IAHA,IAAIsxF,EAAUtxF,EAAM,GAAGn7E,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAC1D0sK,EAAuC,IAAzBD,EAAQv/J,QAAQ,KAC9BqnG,EAAQ,EACLp5B,GAAO,CACZ,IAAIwxF,IAAaxxF,EAAM,GACnB92E,EAAU82E,EAAM,GAWpB,OAVwBA,EAAMA,EAAM/7E,OAAS,IAAgC,aAAxBiF,EAAQiM,MAAM,EAAG,MAEnEjM,IAAYooK,GAAYC,GAAeroK,EAAQrE,QAAQ,QAAS,KAAKA,QAAQ,QAAS,QACnF2sK,IACAp4D,IAEAA,GAGNi4D,GAAUrxF,EAAM,GACZo5B,GAAS,EACX,MAEFp5B,EAAQh7E,KAAK+2J,WAAWt0J,IAAIwzJ,YAC9B,CAMA,OAJKj7E,IACHqxF,GAAUrsK,KAAKwwJ,OAAOx1E,MAAM,YAAY,IAE1CqxF,EAASA,EAAOxsK,QAAQ6hK,EAAMzR,cAAe,MACtCjwJ,KAAK00J,cAAcnB,EAAM4R,OAAQkH,EAC1C,CACF,CAEA,OAAO,IACT,EAwEAh0E,EAAU75F,UAAUstK,uBAAyB,SAASW,EAAWC,EAA0BC,GACzF,IAAIC,EACAhwC,EACc,MAAd6vC,EACF7vC,EAAU58H,KAAK+2J,WAAW8I,aACH,MAAd4M,EACT7vC,EAAU58H,KAAK+2J,WAAW+I,aACH,MAAd2M,EACT7vC,EAAU58H,KAAK+2J,WAAWmU,cACH,MAAduB,IACT7vC,EAAU58H,KAAK+2J,WAAWoU,qBAK5B,IAFA,IAAI1W,EAAmB73B,EAAQnkC,OAC3BnsF,EAAO,GACJtM,KAAKwwJ,OAAOvC,WAAW,CAE5B,IADA3hJ,EAAOtM,KAAKwwJ,OAAOlkJ,UACNmgK,IACTC,GAA4BhL,EAAMgH,QAAQ7mK,KAAKyK,GAAQ,CACzDtM,KAAKwwJ,OAAOxC,OACZ,KACF,CAAoB,OAAT1hJ,GAAiBtM,KAAKwwJ,OAAOvC,WAGjB,OAFrB2e,EAAe5sK,KAAKwwJ,OAAOtC,SAEkB,MAAjB0e,EAC1B5sK,KAAK6rK,kBAAmB,EACE,OAAjBe,GAAiD,OAAxB5sK,KAAKwwJ,OAAOtC,KAAK,IACnDluJ,KAAKwwJ,OAAOlkJ,OAEdA,GAAQtM,KAAKwwJ,OAAOlkJ,QACXqgK,IACS,OAAdA,GAA+B,MAATrgK,GAAuC,MAAvBtM,KAAKwwJ,OAAOtC,SACpD5hJ,GAAQtM,KAAKwwJ,OAAOlkJ,QAGlBqgK,IAAcrgK,IAEdA,GADgB,MAAdmgK,EACMzsK,KAAK8rK,uBAAuB,IAAKY,EAA0B,KAE3D1sK,KAAK8rK,uBAAuB,IAAKY,EAA0B,MAEjE1sK,KAAKwwJ,OAAOvC,YACd3hJ,GAAQtM,KAAKwwJ,OAAOlkJ,UAK1BmoJ,GADAnoJ,GAAQswH,EAAQnkC,MAElB,CAEA,OAAOg8D,CACT,EAEA72E,EAAO1/E,QAAQm6F,UAAYA,EAC3Bza,EAAO1/E,QAAQq1J,MAAQA,EACvB31E,EAAO1/E,QAAQ0jK,uBAAyBA,EAAuBzxJ,QAC/DytE,EAAO1/E,QAAQyjK,cAAgBA,EAAcxxJ,OAGtC,WAESytE,GAgChB,IAAI6vE,EAAoB1zE,OAAOv7E,UAAUC,eAAe,UAExD,SAASivJ,EAAaC,GACpB3tJ,KAAK4tJ,QAAUD,GAAgB,GAC/B3tJ,KAAK6tJ,eAAiB7tJ,KAAK4tJ,QAAQ3uJ,OACnCe,KAAK8tJ,WAAa,CACpB,CAEAJ,EAAalvJ,UAAUuvJ,QAAU,WAC/B/tJ,KAAK8tJ,WAAa,CACpB,EAEAJ,EAAalvJ,UAAUwvJ,KAAO,WACxBhuJ,KAAK8tJ,WAAa,IACpB9tJ,KAAK8tJ,YAAc,EAEvB,EAEAJ,EAAalvJ,UAAUyvJ,QAAU,WAC/B,OAAOjuJ,KAAK8tJ,WAAa9tJ,KAAK6tJ,cAChC,EAEAH,EAAalvJ,UAAU8N,KAAO,WAC5B,IAAI85H,EAAM,KAKV,OAJIpmI,KAAKiuJ,YACP7nB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO76E,KAAK8tJ,YAC/B9tJ,KAAK8tJ,YAAc,GAEd1nB,CACT,EAEAsnB,EAAalvJ,UAAU0vJ,KAAO,SAASl9I,GACrC,IAAIo1H,EAAM,KAMV,OALAp1H,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aACD,GAAK98I,EAAQhR,KAAK6tJ,iBAC7BznB,EAAMpmI,KAAK4tJ,QAAQ/yE,OAAO7pE,IAErBo1H,CACT,EASAsnB,EAAalvJ,UAAU2vJ,QAAU,SAASvxB,EAAS5rH,GACjD4rH,EAAQzxH,UAAY6F,EACpB,IAAIo9I,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAQtC,OANIQ,GAAmBX,GAAqB7wB,EAAQ6b,QAC9C2V,EAAcp9I,QAAUA,IAC1Bo9I,EAAgB,MAIbA,CACT,EAEAV,EAAalvJ,UAAUqD,KAAO,SAAS+6H,EAAS5rH,GAI9C,OAHAA,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aAED,GAAK98I,EAAQhR,KAAK6tJ,kBACpB7tJ,KAAKmuJ,QAAQvxB,EAAS5rH,EAInC,EAEA08I,EAAalvJ,UAAU6vJ,SAAW,SAASzxB,EAAS5rH,GAElD,IAAIo1H,EAAMpmI,KAAKkuJ,KAAKl9I,GAEpB,OADA4rH,EAAQzxH,UAAY,EACL,OAARi7H,GAAgBxJ,EAAQ/6H,KAAKukI,EACtC,EAEAsnB,EAAalvJ,UAAUw8E,MAAQ,SAAS4hD,GACtC,IAAIwxB,EAAgBpuJ,KAAKmuJ,QAAQvxB,EAAS58H,KAAK8tJ,YAM/C,OALIM,EACFpuJ,KAAK8tJ,YAAcM,EAAc,GAAGnvJ,OAEpCmvJ,EAAgB,KAEXA,CACT,EAEAV,EAAalvJ,UAAUi6F,KAAO,SAAS61D,EAAkBC,EAAeC,GACtE,IACIxzE,EADAorD,EAAM,GAWV,OATIkoB,IACFtzE,EAAQh7E,KAAKg7E,MAAMszE,MAEjBloB,GAAOprD,EAAM,KAGbuzE,IAAkBvzE,GAAUszE,IAC9BloB,GAAOpmI,KAAKyuJ,UAAUF,EAAeC,IAEhCpoB,CACT,EAEAsnB,EAAalvJ,UAAUiwJ,UAAY,SAAS7xB,EAAS4xB,GACnD,IAAIpoB,EACAsoB,EAAc1uJ,KAAK8tJ,WACvBlxB,EAAQzxH,UAAYnL,KAAK8tJ,WACzB,IAAIM,EAAgBxxB,EAAQ5gD,KAAKh8E,KAAK4tJ,SAYtC,OAXIQ,GACFM,EAAcN,EAAcp9I,MACxBw9I,IACFE,GAAeN,EAAc,GAAGnvJ,SAGlCyvJ,EAAc1uJ,KAAK6tJ,eAGrBznB,EAAMpmI,KAAK4tJ,QAAQh5I,UAAU5U,KAAK8tJ,WAAYY,GAC9C1uJ,KAAK8tJ,WAAaY,EACXtoB,CACT,EAEAsnB,EAAalvJ,UAAUmwJ,eAAiB,SAAS/xB,GAC/C,OAAO58H,KAAKyuJ,UAAU7xB,GAAS,EACjC,EAEA8wB,EAAalvJ,UAAUowJ,WAAa,SAAShyB,EAASiyB,GACpD,IAAIznE,EAAS,KACT4R,EAAQ,IAWZ,OAVI61D,GAAcpB,IAChBz0D,EAAQ,KAGa,kBAAZ4jC,GAAoC,KAAZA,EAEjCx1C,EAAS,IAAIrN,OAAO6iD,EAAS5jC,GACpB4jC,IACTx1C,EAAS,IAAIrN,OAAO6iD,EAAQv+H,OAAQ26F,IAE/B5R,CACT,EAEAsmE,EAAalvJ,UAAUswJ,mBAAqB,SAASC,GACnD,OAAOh1E,OAAOg1E,EAAelvJ,QAAQ,yBAA0B,QACjE,EAGA6tJ,EAAalvJ,UAAUwwJ,eAAiB,SAASpyB,GAC/C,IAAI/7H,EAAQb,KAAK8tJ,WACb1nB,EAAMpmI,KAAK2uJ,eAAe/xB,GAE9B,OADA58H,KAAK8tJ,WAAajtJ,EACXulI,CACT,EAEAsnB,EAAalvJ,UAAUywJ,SAAW,SAASC,GACzC,IAAIruJ,EAAQb,KAAK8tJ,WAAa,EAC9B,OAAOjtJ,GAASquJ,EAAQjwJ,QAAUe,KAAK4tJ,QAAQh5I,UAAU/T,EAAQquJ,EAAQjwJ,OAAQ4B,GAC9E08E,gBAAkB2xE,CACvB,EAEAtxE,EAAO1/E,QAAQwvJ,aAAeA,CAGvB,WAES9vE,EAAQ4rD,EAA0BjH,GAgClD,IAAImrB,EAAgBnrB,EAAoB,GAAGmrB,aACvCwF,EAAS3wB,EAAoB,GAAG2wB,MAChCG,EAAe9wB,EAAoB,IAAI8wB,YACvCC,EAAqB/wB,EAAoB,IAAI+wB,kBAE7CC,EAAQ,CACVC,MAAO,WACPC,IAAK,SACL3+D,IAAK,UAGHuD,EAAY,SAASs1D,EAAc5tJ,GACrCC,KAAKwwJ,OAAS,IAAI9C,EAAaC,GAC/B3tJ,KAAKusH,SAAWxsH,GAAW,CAAC,EAC5BC,KAAK0zJ,SAAW,KAEhB1zJ,KAAK2zJ,UAAY,CAAC,EAClB3zJ,KAAK2zJ,UAAU1a,WAAa,IAAIqa,EAAkBtzJ,KAAKwwJ,OACzD,EAEAn4D,EAAU75F,UAAUo1J,SAAW,WAM7B,IAAI3vJ,EALJjE,KAAKwwJ,OAAOzC,UACZ/tJ,KAAK0zJ,SAAW,IAAIL,EAEpBrzJ,KAAK6zJ,SAQL,IALA,IAAIznJ,EAAW,IAAI8mJ,EAAMK,EAAMC,MAAO,IAClCM,EAAa,KACbC,EAAa,GACbC,EAAW,IAAIX,EAEZjnJ,EAAS0kF,OAASyiE,EAAMz+D,KAAK,CAElC,IADA7wF,EAAUjE,KAAKi0J,gBAAgB7nJ,EAAU0nJ,GAClC9zJ,KAAKk0J,YAAYjwJ,IACtB+vJ,EAASvxE,IAAIx+E,GACbA,EAAUjE,KAAKi0J,gBAAgB7nJ,EAAU0nJ,GAGtCE,EAASG,YACZlwJ,EAAQkvJ,gBAAkBa,EAC1BA,EAAW,IAAIX,GAGjBpvJ,EAAQiJ,OAAS4mJ,EAEb9zJ,KAAKo0J,YAAYnwJ,IACnB8vJ,EAAWnkJ,KAAKkkJ,GAChBA,EAAa7vJ,GACJ6vJ,GAAc9zJ,KAAKq0J,YAAYpwJ,EAAS6vJ,KACjD7vJ,EAAQmvJ,OAASU,EACjBA,EAAW/4E,OAAS92E,EACpB6vJ,EAAaC,EAAW12E,MACxBp5E,EAAQiJ,OAAS4mJ,GAGnB7vJ,EAAQmI,SAAWA,EACnBA,EAASE,KAAOrI,EAEhBjE,KAAK0zJ,SAASjxE,IAAIx+E,GAClBmI,EAAWnI,CACb,CAEA,OAAOjE,KAAK0zJ,QACd,EAGAr7D,EAAU75F,UAAU81J,gBAAkB,WACpC,OAAOt0J,KAAK0zJ,SAASS,SACvB,EAEA97D,EAAU75F,UAAUq1J,OAAS,WAAY,EAEzCx7D,EAAU75F,UAAUy1J,gBAAkB,SAASM,EAAgBT,GAC7D9zJ,KAAKw0J,kBACL,IAAIC,EAAmBz0J,KAAKwwJ,OAAO/3D,KAAK,OACxC,OAAIg8D,EACKz0J,KAAK00J,cAAcnB,EAAME,IAAKgB,GAE9Bz0J,KAAK00J,cAAcnB,EAAMz+D,IAAK,GAEzC,EAEAuD,EAAU75F,UAAU01J,YAAc,SAASS,GACzC,OAAO,CACT,EAEAt8D,EAAU75F,UAAU41J,YAAc,SAASO,GACzC,OAAO,CACT,EAEAt8D,EAAU75F,UAAU61J,YAAc,SAASM,EAAeb,GACxD,OAAO,CACT,EAEAz7D,EAAU75F,UAAUk2J,cAAgB,SAAS5jE,EAAMj8E,GAIjD,OAHY,IAAIq+I,EAAMpiE,EAAMj8E,EAC1B7U,KAAK2zJ,UAAU1a,WAAW+X,cAC1BhxJ,KAAK2zJ,UAAU1a,WAAW2b,wBAE9B,EAEAv8D,EAAU75F,UAAUg2J,gBAAkB,WACpC,OAAOx0J,KAAK2zJ,UAAU1a,WAAWxgD,MACnC,EAIA7a,EAAO1/E,QAAQm6F,UAAYA,EAC3Bza,EAAO1/E,QAAQq1J,MAAQA,CAGhB,WAES31E,GAgChB,SAASy1E,EAAYwB,GAEnB70J,KAAK0zJ,SAAW,GAChB1zJ,KAAK80J,gBAAkB90J,KAAK0zJ,SAASz0J,OACrCe,KAAK8tJ,WAAa,EAClB9tJ,KAAK+0J,eAAiBF,CACxB,CAEAxB,EAAY70J,UAAUuvJ,QAAU,WAC9B/tJ,KAAK8tJ,WAAa,CACpB,EAEAuF,EAAY70J,UAAU21J,QAAU,WAC9B,OAAgC,IAAzBn0J,KAAK80J,eACd,EAEAzB,EAAY70J,UAAUyvJ,QAAU,WAC9B,OAAOjuJ,KAAK8tJ,WAAa9tJ,KAAK80J,eAChC,EAEAzB,EAAY70J,UAAU8N,KAAO,WAC3B,IAAI85H,EAAM,KAKV,OAJIpmI,KAAKiuJ,YACP7nB,EAAMpmI,KAAK0zJ,SAAS1zJ,KAAK8tJ,YACzB9tJ,KAAK8tJ,YAAc,GAEd1nB,CACT,EAEAitB,EAAY70J,UAAU0vJ,KAAO,SAASl9I,GACpC,IAAIo1H,EAAM,KAMV,OALAp1H,EAAQA,GAAS,GACjBA,GAAShR,KAAK8tJ,aACD,GAAK98I,EAAQhR,KAAK80J,kBAC7B1uB,EAAMpmI,KAAK0zJ,SAAS1iJ,IAEfo1H,CACT,EAEAitB,EAAY70J,UAAUikF,IAAM,SAASkW,GAC/B34F,KAAK+0J,iBACPp8D,EAAMzrF,OAASlN,KAAK+0J,gBAEtB/0J,KAAK0zJ,SAAS9jJ,KAAK+oF,GACnB34F,KAAK80J,iBAAmB,CAC1B,EAEAl3E,EAAO1/E,QAAQm1J,YAAcA,CAGtB,WAESz1E,EAAQ4rD,EAA0BjH,GAgClD,IAAIyyB,EAAWzyB,EAAoB,IAAIyyB,QAEvC,SAAS1B,EAAkB2B,EAAe/nJ,GACxC8nJ,EAAQt2J,KAAKsB,KAAMi1J,EAAe/nJ,GAC9BA,EACFlN,KAAKk1J,aAAel1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAOgoJ,cAElDl1J,KAAKm1J,0BAA0B,GAAI,IAGrCn1J,KAAKgxJ,cAAgB,EACrBhxJ,KAAK40J,wBAA0B,EACjC,CACAtB,EAAkB90J,UAAY,IAAIw2J,EAElC1B,EAAkB90J,UAAU22J,0BAA4B,SAASC,EAAkBC,GACjFD,GAAoB,OACpBC,GAAiB,SAEjBr1J,KAAKs1J,eAAiBt1J,KAAKwwJ,OAAO5B,WAChC,IAAMwG,EAAmBC,EAAgB,MAAM,GACjDr1J,KAAKu1J,gBAAkBv1J,KAAKwwJ,OAAO5B,WACjC,WAAayG,EAAgB,IACjC,EAEA/B,EAAkB90J,UAAUi6F,KAAO,WACjCz4F,KAAKgxJ,cAAgB,EACrBhxJ,KAAK40J,wBAA0B,GAE/B,IAAIH,EAAmBz0J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,gBAC7C,GAAyB,MAArBb,EACFz0J,KAAK40J,wBAA0B,SAC1B,GAAIH,EAAkB,CAC3B,IAAIxhJ,EAAUjT,KAAKw1J,QAAQx1J,KAAKu1J,gBAAiBd,GACjDz0J,KAAKgxJ,cAAgB/9I,EAAQhU,OAAS,EACtCe,KAAK40J,wBAA0B3hJ,EAAQjT,KAAKgxJ,cAC9C,CAEA,OAAOyD,CACT,EAEAnB,EAAkB90J,UAAUi3J,SAAW,SAASL,EAAkBC,GAChE,IAAIjuE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO+tE,0BAA0BC,EAAkBC,GACnDjuE,EAAOuuE,UACAvuE,CACT,EAEAksE,EAAkB90J,UAAUk3J,QAAU,WACpC,OAAO,IAAIpC,EAAkBtzJ,KAAKwwJ,OAAQxwJ,KAC5C,EAEAszJ,EAAkB90J,UAAUg3J,QAAU,SAASlY,EAAQqQ,GACrDrQ,EAAOnyI,UAAY,EAInB,IAHA,IAAIyqJ,EAAc,EACdxuE,EAAS,GACTyuE,EAAavY,EAAOthE,KAAK2xE,GACtBkI,GACLzuE,EAAOx3E,KAAK+9I,EAAa/4I,UAAUghJ,EAAaC,EAAW7kJ,QAC3D4kJ,EAAcC,EAAW7kJ,MAAQ6kJ,EAAW,GAAG52J,OAC/C42J,EAAavY,EAAOthE,KAAK2xE,GAS3B,OANIiI,EAAcjI,EAAa1uJ,OAC7BmoF,EAAOx3E,KAAK+9I,EAAa/4I,UAAUghJ,EAAajI,EAAa1uJ,SAE7DmoF,EAAOx3E,KAAK,IAGPw3E,CACT,EAIAxJ,EAAO1/E,QAAQo1J,kBAAoBA,CAG5B,WAES11E,GAgChB,SAASo3E,EAAQC,EAAe/nJ,GAC9BlN,KAAKwwJ,OAASyE,EACdj1J,KAAK81J,kBAAoB,KACzB91J,KAAKs1J,eAAiB,KACtBt1J,KAAK+1J,eAAiB,KACtB/1J,KAAKg2J,cAAe,EAEhB9oJ,IACFlN,KAAK81J,kBAAoB91J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO4oJ,mBAAmB,GAC1E91J,KAAKs1J,eAAiBt1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAOooJ,gBAAgB,GACpEt1J,KAAK+1J,eAAiB/1J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO6oJ,gBACpD/1J,KAAKg2J,aAAe9oJ,EAAO8oJ,aAE/B,CAEAhB,EAAQx2J,UAAUi6F,KAAO,WACvB,IAAIrR,EAASpnF,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,mBAInC,OAHK91J,KAAK81J,oBAAqB1uE,IAC7BA,GAAUpnF,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,eAAgBt1J,KAAK+1J,eAAgB/1J,KAAKg2J,eAErE5uE,CACT,EAEA4tE,EAAQx2J,UAAUy3J,WAAa,WAC7B,OAAOj2J,KAAKwwJ,OAAOx1E,MAAMh7E,KAAKs1J,eAChC,EAEAN,EAAQx2J,UAAUgwJ,YAAc,SAAS5xB,GACvC,IAAIx1C,EAASpnF,KAAK01J,UAIlB,OAHAtuE,EAAO4uE,cAAe,EACtB5uE,EAAO2uE,eAAiB/1J,KAAKwwJ,OAAO5B,WAAWhyB,GAC/Cx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAU03J,MAAQ,SAASt5B,GACjC,IAAIx1C,EAASpnF,KAAK01J,UAIlB,OAHAtuE,EAAO4uE,cAAe,EACtB5uE,EAAO2uE,eAAiB/1J,KAAKwwJ,OAAO5B,WAAWhyB,GAC/Cx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAU23J,cAAgB,SAASv5B,GACzC,IAAIx1C,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO0uE,kBAAoB91J,KAAKwwJ,OAAO5B,WAAWhyB,GAAS,GAC3Dx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAUi3J,SAAW,SAAS74B,GACpC,IAAIx1C,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAOkuE,eAAiBt1J,KAAKwwJ,OAAO5B,WAAWhyB,GAAS,GACxDx1C,EAAOuuE,UACAvuE,CACT,EAEA4tE,EAAQx2J,UAAUk3J,QAAU,WAC1B,OAAO,IAAIV,EAAQh1J,KAAKwwJ,OAAQxwJ,KAClC,EAEAg1J,EAAQx2J,UAAUm3J,QAAU,WAAY,EAExC/3E,EAAO1/E,QAAQ82J,QAAUA,CAGlB,WAESp3E,GAgChB,SAASuxE,EAAWC,EAAqBC,GACvCD,EAAqD,kBAAxBA,EAAmCA,EAAsBA,EAAoB/wJ,OAC1GgxJ,EAAiD,kBAAtBA,EAAiCA,EAAoBA,EAAkBhxJ,OAClG2B,KAAKsvJ,2BAA6B,IAAIv1E,OAAOq1E,EAAsB,0BAA0B/wJ,OAASgxJ,EAAmB,KACzHrvJ,KAAKuvJ,oBAAsB,kBAE3BvvJ,KAAKwvJ,gCAAkC,IAAIz1E,OAAOq1E,EAAsB,2BAA2B/wJ,OAASgxJ,EAAmB,IACjI,CAEAF,EAAW3wJ,UAAUixJ,eAAiB,SAAS56I,GAC7C,IAAKA,EAAKmmE,MAAMh7E,KAAKsvJ,4BACnB,OAAO,KAGT,IAAII,EAAa,CAAC,EAClB1vJ,KAAKuvJ,oBAAoBpkJ,UAAY,EAGrC,IAFA,IAAIwkJ,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAE7C86I,GACLD,EAAWC,EAAgB,IAAMA,EAAgB,GACjDA,EAAkB3vJ,KAAKuvJ,oBAAoBvzE,KAAKnnE,GAGlD,OAAO66I,CACT,EAEAP,EAAW3wJ,UAAUoxJ,YAAc,SAAShwJ,GAC1C,OAAOA,EAAM+uJ,eAAe3uJ,KAAKwvJ,gCACnC,EAGA5xE,EAAO1/E,QAAQixJ,WAAaA,CAGrB,WAESvxE,EAAQ4rD,EAA0BjH,GAgClD,IAAIyyB,EAAWzyB,EAAoB,IAAIyyB,QAGnCoB,EAAiB,CACnBC,QAAQ,EACRC,KAAK,EACLC,YAAY,EACZC,KAAK,EACLC,QAAQ,EACRC,SAAS,GAKX,SAASC,EAAmB1B,EAAe/nJ,GACzC8nJ,EAAQt2J,KAAKsB,KAAMi1J,EAAe/nJ,GAClClN,KAAK42J,mBAAqB,KAC1B52J,KAAK62J,UAAYz5J,OAAOe,OAAO,CAAC,EAAGi4J,GACnCp2J,KAAK82J,UAAY15J,OAAOe,OAAO,CAAC,EAAGi4J,GAE/BlpJ,IACFlN,KAAK42J,mBAAqB52J,KAAKwwJ,OAAO5B,WAAW1hJ,EAAO0pJ,oBACxD52J,KAAK82J,UAAY15J,OAAOe,OAAO6B,KAAK82J,UAAW5pJ,EAAO4pJ,WACtD92J,KAAK62J,UAAYz5J,OAAOe,OAAO6B,KAAK62J,UAAW3pJ,EAAO2pJ,YAExD,IAAIj6B,EAAU,IAAIo4B,EAAQC,GAC1Bj1J,KAAK+2J,WAAa,CAChBC,mBAAoBp6B,EAAQu5B,cAAc,SAAS3H,YAAY,QAC/DyI,qBAAsBr6B,EAAQu5B,cAAc,OAAO3H,YAAY,OAC/D+H,WAAY35B,EAAQu5B,cAAc,MAAM3H,YAAY,MACpDgI,IAAK55B,EAAQu5B,cAAc,mBAAmB3H,YAAY,OAC1D8H,IAAK15B,EAAQu5B,cAAc,UAAU3H,YAAY,UAEjD6H,OAAQz5B,EAAQu5B,cAAc,MAAM3H,YAAY,MAChD0I,aAAct6B,EAAQu5B,cAAc,MAAM3H,YAAY,MACtD2I,eAAgBv6B,EAAQu5B,cAAc,MAAM3H,YAAY,MACxDiI,OAAQ75B,EAAQu5B,cAAc,kBAAkB3H,YAAY,YAC5D4I,eAAgBx6B,EAAQu5B,cAAc,OAAO3H,YAAY,OACzD6I,eAAgBz6B,EAAQu5B,cAAc,aAAa3H,YAAY,eAEnE,CACAmI,EAAmBn4J,UAAY,IAAIw2J,EAEnC2B,EAAmBn4J,UAAUk3J,QAAU,WACrC,OAAO,IAAIiB,EAAmB32J,KAAKwwJ,OAAQxwJ,KAC7C,EAEA22J,EAAmBn4J,UAAUm3J,QAAU,WACrC31J,KAAKs3J,yBACP,EAEAX,EAAmBn4J,UAAUmgF,QAAU,SAAS44E,GAC9C,IAAInwE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAOyvE,UAAUU,IAAY,EAC7BnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUg5J,aAAe,SAASz3J,GACnD,IAAIqnF,EAASpnF,KAAK01J,UAClB,IAAK,IAAI6B,KAAYnB,EACnBhvE,EAAOyvE,UAAUU,IAAsD,IAA1Cx3J,EAAQ2sJ,WAAW3/I,QAAQwqJ,GAG1D,OADAnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUi5J,QAAU,SAASF,GAC9C,IAAInwE,EAASpnF,KAAK01J,UAGlB,OAFAtuE,EAAO0vE,UAAUS,IAAY,EAC7BnwE,EAAOuuE,UACAvuE,CACT,EAEAuvE,EAAmBn4J,UAAUi6F,KAAO,WAClC,IAAIrR,EAAS,GAEXA,EADEpnF,KAAKs1J,eACEt1J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,mBAEtB91J,KAAKwwJ,OAAO/3D,KAAKz4F,KAAK81J,kBAAmB91J,KAAK42J,oBAGzD,IADA,IAAItqJ,EAAOtM,KAAK03J,iBACTprJ,GACDtM,KAAKs1J,eACPhpJ,GAAQtM,KAAKwwJ,OAAO/3D,KAAKz4F,KAAKs1J,gBAE9BhpJ,GAAQtM,KAAKwwJ,OAAO/B,UAAUzuJ,KAAK42J,oBAErCxvE,GAAU96E,EACVA,EAAOtM,KAAK03J,iBAMd,OAHI13J,KAAKg2J,eACP5uE,GAAUpnF,KAAKwwJ,OAAO7B,eAAe3uJ,KAAK+1J,iBAErC3uE,CACT,EAEAuvE,EAAmBn4J,UAAU84J,wBAA0B,WACrD,IAAIK,EAAQ,GAEP33J,KAAK62J,UAAUL,KAClBmB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWP,IAAIV,kBAAkBz3J,QAE9C2B,KAAK62J,UAAUN,YAClBoB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWR,WAAWT,kBAAkBz3J,QAErD2B,KAAK62J,UAAUH,SAElBiB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWR,WAAWT,kBAAkBz3J,QAErD2B,KAAK62J,UAAUP,KAClBqB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWT,IAAIR,kBAAkBz3J,QAE9C2B,KAAK62J,UAAUR,SAClBsB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWV,OAAOP,kBAAkBz3J,QAGpDs5J,EAAM/nJ,KAAK5P,KAAK+2J,WAAWG,aAAapB,kBAAkBz3J,QAC1Ds5J,EAAM/nJ,KAAK5P,KAAK+2J,WAAWI,eAAerB,kBAAkBz3J,SAEzD2B,KAAK62J,UAAUJ,QAClBkB,EAAM/nJ,KAAK5P,KAAK+2J,WAAWN,OAAOX,kBAAkBz3J,QAGlD2B,KAAK+1J,gBACP4B,EAAM/nJ,KAAK5P,KAAK+1J,eAAe13J,QAEjC2B,KAAK42J,mBAAqB52J,KAAKwwJ,OAAO5B,WAAW,MAAQ+I,EAAMnoJ,KAAK,KAAO,IAC7E,EAEAmnJ,EAAmBn4J,UAAUk5J,eAAiB,WAC5C,IAAIjD,EAAmB,GACnBnpJ,EAAItL,KAAKwwJ,OAAOtC,OACpB,GAAU,MAAN5iJ,EAAW,CACb,IAAIssJ,EAAQ53J,KAAKwwJ,OAAOtC,KAAK,GAIxBluJ,KAAK62J,UAAUL,KAAQx2J,KAAK82J,UAAUN,KAAiB,MAAVoB,IAChDnD,EAAmBA,GACjBz0J,KAAK+2J,WAAWP,IAAI/9D,QAEnBz4F,KAAK62J,UAAUP,KAAQt2J,KAAK82J,UAAUR,KAAiB,MAAVsB,IAChDnD,EAAmBA,GACjBz0J,KAAK+2J,WAAWT,IAAI79D,OAE1B,KAAiB,MAANntF,IACJtL,KAAK62J,UAAUN,YAAev2J,KAAK82J,UAAUP,aAKhD9B,GAFAA,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWC,mBAAmBv+D,SAEnCz4F,KAAK+2J,WAAWE,qBAAqBx+D,SAErCz4F,KAAK+2J,WAAWR,WAAW99D,QAE1Bz4F,KAAK62J,UAAUR,SAEbr2J,KAAK82J,UAAUT,QAAWr2J,KAAK82J,UAAUP,aAC5C9B,EAAmBA,GACjBz0J,KAAK+2J,WAAWG,aAAaz+D,QAE5Bz4F,KAAK82J,UAAUT,SAGlB5B,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWI,eAAe1+D,SAE/Bz4F,KAAK+2J,WAAWV,OAAO59D,SAGxBz4F,KAAK62J,UAAUJ,QAEdz2J,KAAK62J,UAAUR,QAAUr2J,KAAK62J,UAAUN,aAK1C9B,GAFAA,GAFAA,EAAmBA,GACjBz0J,KAAK+2J,WAAWK,eAAe3+D,SAE/Bz4F,KAAK+2J,WAAWM,eAAe5+D,SAE/Bz4F,KAAK+2J,WAAWN,OAAOh+D,SAI/B,OAAOg8D,CACT,EAGA72E,EAAO1/E,QAAQy4J,mBAAqBA,CAI5B,GAGMzQ,EAA2B,CAAC,EA4BhC,IAAI5jB,EAzBJ,SAASC,EAAoB4jB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBhpJ,IAAjBipJ,EACH,OAAOA,EAAaloJ,QAGrB,IAAI0/E,EAASsoE,EAAyBC,GAAY,CAGjDjoJ,QAAS,CAAC,GAOX,OAHAkkI,EAAoB+jB,GAAUvoE,EAAQA,EAAO1/E,QAASqkI,GAG/C3kD,EAAO1/E,OACf,CAO0BqkI,CAAoB,GAC9Ci/B,EAAqBl/B,CAErB,CAn2HD,GAq2HT,IAAIskB,EAAc4a,OAMb,KAFU,EAAF,WACL,MAAO,CAAE5a,YAAaA,EACzB,UAFM,OAEN,YAaJ,CA53HA,gCCrFD,IAEIimB,EAAaC,EAFD1tK,EAAQ,OAMpB2tK,EAAUD,EAFD1tK,EAAQ,OAMjB4tK,EAAuBF,EAFD1tK,EAAQ,OAM9B6tK,EAAeH,EAFD1tK,EAAQ,OAMtB8tK,EAAwBJ,EAFD1tK,EAAQ,OAM/B+tK,EAAuBL,EAFD1tK,EAAQ,MAM9BguK,EAAiBN,EAFD1tK,EAAQ,OAIxBiuK,EAAcjuK,EAAQ,MAItBkuK,EAAaR,EAFD1tK,EAAQ,OAIxB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAM9F,IAAI0pC,EAAM,WAAgB,EAYtBC,EAAY,SAAmBhnK,EAASqO,EAAM9U,GACjD,IAAI0tK,EAAM,IAAIF,EAEd,GAAuB,qBAAZ/mK,EACV,MAAMkD,MAAM,yCAoBb,OAhBA+jK,EAAIC,mBAAoB,EAAIR,EAAsBlvF,SAASx3E,GAC3DinK,EAAIE,WAAa,GACjBF,EAAIlhD,SAAW+gD,EAAWtvF,QAC1ByvF,EAAIG,cAAgB,IAAIR,EAAepvF,QAAQyvF,GAG3B,qBAAT54J,KACV9U,EAAUA,GAAW,CAAC,GAETgpG,SACZhpG,EAAQgpG,OAAS8kE,KAGlBJ,EAAI1tK,QAAQA,GAASA,EAAQgpG,QAAQl0F,EAAM9U,GAASq7H,UAG9CqyC,CACR,EAQA,IAAK,IAAIroK,KALTooK,EAAUM,UAAY,SAAU1oK,GAC/B,OAAOynK,EAAW7uF,QAAQ54E,EAC3B,EAGiBynK,EAAW7uF,QACvB6uF,EAAW7uF,QAAQv/E,eAAe2G,IAErC2oK,EAAgBlB,EAAW7uF,QAAS54E,GAGtC,SAAS2oK,EAAgBC,EAAU5oK,GAClCmoK,EAAI/uK,UAAU4G,GAAQmoK,EAAI/uK,UAAU4G,EAAK2gF,eAAiBwnF,EAAI/uK,UAAU4G,EAAKm4E,eAAiB,SAAU1oE,EAAM9U,GAC7G,IAAI0tK,EAAMztK,KACV,OAAOytK,EAAIG,cAAcK,iBAAgB,WAExCluK,EAAQ8U,KAA+B,qBAAjB9U,EAAQ8U,UAAuB1X,EAAY,GAAK4C,EAAQ8U,KAE9E,IAAIq5J,GAAa,EAAInB,EAAQ/uF,SAASyvF,EAAIlhD,SAAUxsH,GACpDmuK,GAAa,EAAIf,EAAqBnvF,SAASkwF,GAC/C,IAAIC,EAAUH,EAAS5oK,GACnBgpK,EAAUC,EAAOx5J,EAAMs5J,EAASD,GAGpC,OAFAT,EAAIE,WAAW/9J,KAAKw+J,GAEbX,CACR,GACD,CACD,CAGA,SAASY,EAAOx5J,EAAMs5J,EAASpuK,GAI9B,IAAIuuK,EAAU,IAAIH,EAFlBt5J,EAAO,GAAKA,EAEoB9U,GAIhC,IAAKuuK,EAAQC,QACZ,MAAM,IAAIlB,EAAYmB,sBAAsBF,EAAQ9mK,YAAYpC,KAAMyP,GAIvE,IAAIu5J,EAAUE,EAAQD,SAItBD,GAAU,EAAIpB,EAAqBhvF,SAASowF,GAG5C,IAAK,IAAIpvK,EAAI,EAAGA,EAAIovK,EAAQnvK,OAAQD,IACnCovK,EAAQpvK,GAAGe,SAAU,EAAIgtK,EAAQ/uF,SAASj+E,EAASquK,EAAQpvK,GAAGe,SAG/D,OAAOquK,CACR,CAEA,SAASP,IAER,OAAIhB,EAAW7uF,QAAiB,QACxB,UAID5gF,OAAOyJ,KAAKgmK,EAAW7uF,SAAS,EACxC,CAmEA,SAASo9C,EAAOqzC,EAAkBC,EAAW3uK,GAC5C2uK,GAAY,EAAI1B,EAAqBhvF,SAAS0wF,GAE9C,IAAK,IAAI1vK,EAAI,EAAGA,EAAI0vK,EAAUzvK,OAAQD,IACrC0vK,EAAU1vK,GAAGe,SAAU,EAAIgtK,EAAQ/uF,SAASj+E,EAAS2uK,EAAU1vK,GAAGe,UAClE,EAAIktK,EAAajvF,SAAS0wF,EAAU1vK,GAAGe,UAGxC,EAAIktK,EAAajvF,SAASj+E,GAGX,IAAI04H,EADJg2C,EAAiBE,UACJF,EAAiBjoK,QAASkoK,EAAW3uK,GACxDq7H,SAELqzC,EAAiBG,aACpBH,EAAiBG,aAEnB,CAhFArB,EAAI/uK,UAAUuB,QAAU,SAAUA,GAEjC,OADAC,KAAKusH,UAAW,EAAIwgD,EAAQ/uF,SAASh+E,KAAKusH,SAAUxsH,GAC7CC,IACR,EAGAutK,EAAI/uK,UAAUof,MAAQ,SAAU8tF,GAC/B,IAAImjE,EAAS,IAAI9vK,MAAM2sG,EAAO,GAAGl8F,KAAK,KAEtC,OADAxP,KAAK2tK,WAAW/9J,KAAK,CAAEpL,KAAMqqK,IACtB7uK,IACR,EAGAutK,EAAI/uK,UAAU0hF,KAAO,WAWpB,IAAI4uF,EATJ,GAAK9uK,KAAK0tK,kBAUV,IAAK,IAAI1uK,KALJD,MAAM8rF,QAAQ7qF,KAAK0tK,qBACvB1tK,KAAK0tK,kBAAoB,CAAC1tK,KAAK0tK,oBAIlB1tK,KAAK0tK,kBAAmB,CACrCoB,EAAiB9uK,KAAK0tK,kBAAkB1uK,GACxC,IAAIe,GAAU,EAAIgtK,EAAQ/uF,SAASh+E,KAAKusH,SAAUuiD,EAAe/uK,SAE3C,QAAlBA,EAAQgpG,SACXhpG,EAAQgpG,OAAS8kE,KAGlB7tK,KAAK4tK,cAAcK,iBAAgB,WAClC,IAEIG,EAAUC,EAFHtuK,EAAQvC,MACLqvK,EAAW7uF,QAAQj+E,EAAQgpG,OAAOhjB,eACZhmF,GAEpCq7H,EAAO0zC,EAAgBV,EAASruK,EACjC,GACD,CACD,EAGAwtK,EAAI/uK,UAAU48H,OAAS,WACtB,IAAKp7H,KAAK0tK,kBACT,MAAM,IAAIL,EAAY0B,mBAGvB,GAAIhwK,MAAM8rF,QAAQ7qF,KAAK0tK,mBACtB,IAAK,IAAI1uK,EAAI,EAAGA,EAAIgB,KAAK0tK,kBAAkBzuK,OAAQD,IAClDo8H,EAAOp7H,KAAK0tK,kBAAkB1uK,GAAIgB,KAAK2tK,WAAY3tK,KAAKusH,eAGzD6O,EAAOp7H,KAAK0tK,kBAAmB1tK,KAAK2tK,WAAY3tK,KAAKusH,UAGtD,OAAOvsH,IACR,EAEAutK,EAAI/uK,UAAUwwK,UAAY1B,EAAWtvF,QAuBf,qBAAX2B,SACVA,OAAO6tF,UAAYA,GAKE,qBAAXyB,SACVA,OAAO3sK,GAAGkrK,UAAY,SAAUn6D,EAAStzG,GACxC,IAAImvK,EAAe,GAInB,OAHAD,OAAOjvK,MAAMmvK,MAAK,WACjBD,EAAat/J,KAAK5P,KACnB,IACOwtK,EAAU0B,EAAc77D,EAAStzG,EACzC,GAID69E,EAAO1/E,QAAUsvK,6BCzPjBpwK,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAaRU,EAAAA,QARc,SAASkxK,EAAQ5qK,EAAMzE,IAFrC,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAGvJgxK,CAAgBtvK,KAAMovK,GAEtBpvK,KAAKwE,KAAOA,EACZxE,KAAK6U,KAAO9U,EAAQ8U,MAAQrQ,EAC5BxE,KAAKD,QAAUA,CAChB,+BCZA3C,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAEpBwwK,GAI4B/rC,EAJO8rC,IAIc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFgsC,EAAazwK,EAAQ,MAYzB,IAAI0wK,EAAU,SAAUC,GAGvB,SAASD,EAAQtrK,EAAMzE,IAXxB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAYtJgxK,CAAgBtvK,KAAM8vK,GAGtB,IAAI9wD,EAbN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAajOuxK,CAA2BjwK,MAAO8vK,EAAQ3pF,WAAa/oF,OAAO4vI,eAAe8iC,IAAUpxK,KAAKsB,KAAMwE,EAAKoQ,UAAU,GAAI7U,IAKjI,OAHAi/G,EAAMp0B,MAAQpmF,EAAKkC,MAAM,IAAI0L,KAAI,SAAU89J,GAC1C,OAAOA,EAAK3kK,WAAW,EACxB,IACOyzG,CACR,CA8HA,OA/ID,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAK5eC,CAAUP,EAASC,GAcnBR,EAAaO,EAAS,CAAC,CACtBvxK,IAAK,QACLf,MAAO,WAEN,MAAQ,0BAA0BqE,KAAK7B,KAAKwE,KAE7C,GAIE,CACFjG,IAAK,SACLf,MAAO,WACN,IAAIotF,EAAQ5qF,KAAK4qF,MAEbpQ,EAAaoQ,EAAMmP,QAAU,IAE7Bu2E,EAAWT,EAAWU,YAAY/1F,GAEtC,QAAiBr9E,IAAbmzK,EACH,MAAM,IAAIE,WAAW,wDAGc,IAAhCxwK,KAAKywK,wBACR7lF,EAAMoP,QAAQ61E,EAAWa,MAI1B,IAAIC,EAAiBb,EAAQxjK,KAAKs+E,EAAO,EAAG0lF,GAE5C,MAAO,CACNz7J,KAAM7U,KAAK6U,OAAS7U,KAAKwE,KAAOxE,KAAK6U,KAAKhV,QAAQ,gBAAiB,IAAMG,KAAK6U,KAC9ErQ,KAEAsrK,EAAQc,OAAOp2F,GAEfm2F,EAAevpF,OAEf0oF,EAAQc,QAAQD,EAAeE,SAAWr2F,GAAcq1F,EAAWiB,QAEnEhB,EAAQc,OAAOf,EAAWkB,MAE5B,GAIE,CACFxyK,IAAK,uBACLf,MAAO,WACN,IAAIwzK,EAAWhxK,KAAKD,QAAQkxK,SAAU,EAItC,MAHwB,kBAAbD,IACVA,EAAsC,SAA3BA,EAASzzF,eAEdyzF,CACR,IAIG,CAAC,CACJzyK,IAAK,SACLf,MAAO,SAAgBwT,GACtB,OAAO6+J,EAAWqB,KAAKlgK,GAAS6+J,EAAWqB,KAAKlgK,GAAOC,WAAa,EACrE,GAIE,CACF1S,IAAK,eACLf,MAAO,SAAsBotF,EAAOr1E,GACnC,GAAIA,IAAQs6J,EAAWsB,MAAO,CAC7B,IAAIC,EAAWxmF,EAAMmP,QACrB,OAAOq3E,EAAW,GAAKA,EAAW,GAAKA,EAAW,EACnD,CAAO,OAAI77J,IAAQs6J,EAAWwB,MACtBzmF,EAAMmP,QAAU,GAEO,IAAtBnP,EAAMmP,QAAU,IAAWnP,EAAMmP,QAAU,EAErD,GACE,CACFx7F,IAAK,OACLf,MAAO,SAAcotF,EAAOjP,EAAKpmE,GAChC,IAAKq1E,EAAM3rF,OACV,MAAO,CAAEmoF,OAAQ,GAAIypF,SAAU,GAGhC,IAAIS,OAAW,EACXtgK,OAAQ,EAGZ,GAAI45E,EAAM,IAAM,IAAK,CACpB55E,EAAQ45E,EAAMmP,QAAU,IACxB,IAAIw3E,EAAU1B,EAAW2B,KAAKxgK,QAGd7T,IAAZo0K,EACHD,EAAWxB,EAAQxjK,KAAKs+E,EAAOjP,EAAM,EAAG41F,IAKlCh8J,IAAQs6J,EAAWsB,OAAS57J,IAAQs6J,EAAWwB,OAAUrgK,IAAU6+J,EAAW4B,QAElF7mF,EAAM,GAAKr1E,IAAQs6J,EAAWsB,MAAQvmF,EAAM,GAAK,GAAKA,EAAM,GAAK,GAAKA,EAAM,GAAKA,EAAM,GAAK,GAAKA,EAAM,GAAK,GAAKA,EAAM,IAExH0mF,EAAWxB,EAAQxjK,KAAKs+E,EAAOjP,EAAM,EAAGpmE,GAE3C,MAGEvE,EAAQ8+J,EAAQ4B,aAAa9mF,EAAOr1E,GACpC+7J,EAAWxB,EAAQxjK,KAAKs+E,EAAOjP,EAAM,EAAGpmE,GAI1C,IACIo8J,EAAS3gK,EAAQ2qE,EAErB,MAAO,CACNyL,OAJS0oF,EAAQc,OAAO5/J,GAIVsgK,EAASlqF,OACvBypF,SAAUc,EAASL,EAAST,SAE9B,KAGMf,CACR,CA5Ic,CA4IZF,EAAU5xF,SAEZ9/E,EAAAA,QAAkB4xK,+BCpKlB1yK,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfw2B,EAASxyK,EAAQ,MAEjByyK,GAI4BhuC,EAJI+tC,IAIiB/tC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFgsC,EAAazwK,EAAQ,MAUzB,IAAI0yK,EAAW,SAAUC,GAGxB,SAASD,EAAShsF,EAAQ/lF,GAGzB,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAM8xK,GARxB,SAAoC7wF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAO8xK,EAAS3rF,WAAa/oF,OAAO4vI,eAAe8kC,IAAWpzK,KAAKsB,KAAM6vK,EAAWmC,aAAelsF,EAAQ/lF,GAC9I,CASA,OAlBD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUyB,EAAUC,GAQpBxC,EAAauC,EAAU,CAAC,CACvBvzK,IAAK,QACLf,MAAO,WACN,OAAO,IAAIu8E,OAAO,IAAM81F,EAAWoC,QAAU,MAAMpwK,KAAK7B,KAAKwE,KAC9D,KAGMstK,CACR,CAjBe,CAiBbD,EAAO7zF,SAET9/E,EAAAA,QAAkB4zK,+BCvClB10K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfw2B,EAASxyK,EAAQ,MAEjByyK,GAI4BhuC,EAJI+tC,IAIiB/tC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFgsC,EAAazwK,EAAQ,MAUzB,IAAI8yK,EAAW,SAAUH,GAGxB,SAASG,EAASpsF,EAAQ/lF,GAGzB,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMkyK,GARxB,SAAoCjxF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAOkyK,EAAS/rF,WAAa/oF,OAAO4vI,eAAeklC,IAAWxzK,KAAKsB,KAAM6vK,EAAWsC,aAAersF,EAAQ/lF,GAC9I,CASA,OAlBD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAU6B,EAAUH,GAQpBxC,EAAa2C,EAAU,CAAC,CACvB3zK,IAAK,QACLf,MAAO,WACN,OAAO,IAAIu8E,OAAO,IAAM81F,EAAWuC,QAAU,MAAMvwK,KAAK7B,KAAKwE,KAC9D,KAGM0tK,CACR,CAjBe,CAiBbL,EAAO7zF,SAET9/E,EAAAA,QAAkBg0K,+BCvClB90K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfw2B,EAASxyK,EAAQ,MAEjByyK,GAI4BhuC,EAJI+tC,IAIiB/tC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFgsC,EAAazwK,EAAQ,MAUzB,IAAIizK,EAAW,SAAUN,GAGxB,SAASM,EAASvsF,EAAQ/lF,GAGzB,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMqyK,GARxB,SAAoCpxF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAOqyK,EAASlsF,WAAa/oF,OAAO4vI,eAAeqlC,IAAW3zK,KAAKsB,KAAM6vK,EAAWyC,aAAexsF,EAAQ/lF,GAC9I,CASA,OAlBD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUgC,EAAUN,GAQpBxC,EAAa8C,EAAU,CAAC,CACvB9zK,IAAK,QACLf,MAAO,WACN,OAAO,IAAIu8E,OAAO,IAAM81F,EAAW0C,QAAU,MAAM1wK,KAAK7B,KAAKwE,KAC9D,KAGM6tK,CACR,CAjBe,CAiBbR,EAAO7zF,SAET9/E,EAAAA,QAAkBm0K,+BCvClBj1K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAEIq0K,EAAS/E,EAFA1tK,EAAQ,OAMjBozK,EAAS1F,EAFD1tK,EAAQ,OAIpB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAI9F,SAASosC,EAA2BhvF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAI/O,IAAI+zK,EAAc,SAAUV,GAG3B,SAASU,EAAYjuK,EAAMzE,GAI1B,GAbF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMyyK,GAGlB,0BAA0B5wK,KAAK2C,GAClC,IAAIw6G,EAAQixD,EAA2BjwK,MAAOyyK,EAAYtsF,WAAa/oF,OAAO4vI,eAAeylC,IAAc/zK,KAAKsB,MAAM,EAAIwyK,EAAOx0F,SAASx5E,GAAOzE,SAE7Ii/G,EAAQixD,EAA2BjwK,MAAOyyK,EAAYtsF,WAAa/oF,OAAO4vI,eAAeylC,IAAc/zK,KAAKsB,KAAMwE,EAAMzE,IAE7H,OAAOkwK,EAA2BjxD,EACnC,CAEA,OAjBD,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUoC,EAAaV,GAchBU,CACR,CAhBkB,CAgBhBZ,EAAO7zF,SAET9/E,EAAAA,QAAkBu0K,+BCtClBr1K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAIqyK,EAAazwK,EAAQ,MAGrBszK,EAAkB,SAAyB5sF,GAC9C,OAAOA,EAAO9K,MAAM,IAAIjB,OAAO,IAAM81F,EAAWoC,QAAU,MAAM,GAAGhzK,MACpE,EACI0zK,EAAkB,SAAyB7sF,GAC9C,OAAOA,EAAO9K,MAAM,IAAIjB,OAAO,IAAM81F,EAAWuC,QAAU,MAAM,GAAGnzK,MACpE,EACI2zK,EAAY,SAAmB9sF,GAClC,OAAOA,EAAO9K,MAAM,IAAIjB,OAAO,IAAM81F,EAAW0C,QAAU,MAAM,EACjE,EAGA,SAASM,EAAiB/sF,EAAQgtF,GACjC,IAAIC,EAASD,EAAMjD,EAAWoC,QAAUpC,EAAWuC,QAC/CY,EAASltF,EAAO9K,MAAM,IAAIjB,OAAO,KAAOg5F,EAAS,kCAErD,GAAIC,EACH,OAAOA,EAAO,GAAK/xK,OAAOw7E,aAAa,KAAOw2F,EAAgBntF,EAAOlxE,UAAUo+J,EAAO,GAAG/zK,SAG1F,IAAI2B,EAAQklF,EAAO9K,MAAM,IAAIjB,OAAO,IAAMg5F,EAAS,MAAM,GAEzD,OAAInyK,EAAM3B,SAAW6mF,EAAO7mF,OACpB6mF,EAGDllF,EAAQK,OAAOw7E,aAAaq2F,EAAM,IAAM,KAAOD,EAAiB/sF,EAAOlxE,UAAUhU,EAAM3B,SAAU6zK,EACzG,CAGA,SAASG,EAAgBntF,GACxB,IAAIotF,EAASN,EAAU9sF,GACnB7mF,EAASi0K,EAAOj0K,OAEpB,GAAIA,IAAW6mF,EAAO7mF,OACrB,OAAO6mF,EAGRA,EAASA,EAAOlxE,UAAU3V,GAG1B,IAAI6zK,EAAMJ,EAAgB5sF,IAAW6sF,EAAgB7sF,GACrD,OAAOotF,EAASjyK,OAAOw7E,aAAaq2F,EAAM,IAAM,KAAOD,EAAiB/sF,EAAQgtF,EACjF,CAIA50K,EAAAA,QAAkB,SAAU4nF,GAC3B,IAAIqtF,OAAY,EAIhB,GAHcP,EAAU9sF,GAAQ7mF,QAGjB,EACdk0K,EAAYtD,EAAWyC,aAAeW,EAAgBntF,OAChD,CAEN,IAAIgtF,EAAMJ,EAAgB5sF,GAAU6sF,EAAgB7sF,GACpDqtF,GAAaL,EAAMjD,EAAWmC,aAAenC,EAAWsC,cAAgBU,EAAiB/sF,EAAQgtF,EAClG,CAEA,OAAOK,EAAUtzK,QAAQ,6BACzB,SAAUm7E,EAAOk1F,GAChB,OAAOjvK,OAAOw7E,aAAa,KAAOyzF,CACnC,GACD,6BClEA,IAAIkD,EAEJ,SAASC,EAAgBxvC,EAAKtlI,EAAKf,GAAiK,OAApJe,KAAOslI,EAAOzmI,OAAOgY,eAAeyuH,EAAKtlI,EAAK,CAAEf,MAAOA,EAAO6kF,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBshD,EAAItlI,GAAOf,EAAgBqmI,CAAK,CANhNzmI,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAQR,IAAI2zK,EAAQjzK,EAAQizK,MAAQ,EACxBE,EAAQnzK,EAAQmzK,MAAQ,EACxBiC,EAAQp1K,EAAQo1K,MAAQ,EAIxBC,GADQr1K,EAAQuzK,MAAQ,GACdvzK,EAAQq1K,QAAU,KAC5BC,EAAUt1K,EAAQs1K,QAAU,IAC5BC,EAAUv1K,EAAQu1K,QAAU,IACnBv1K,EAAQ4yK,OAAS,IACnB5yK,EAAQ6yK,KAAO,IACf7yK,EAAQwyK,KAAO,IAGRxyK,EAAQqyK,aAAkC8C,EAAnBD,EAAe,CAAC,EAAiCG,EAASpC,GAAQkC,EAAgBD,EAAcI,EAASnC,GAAQgC,EAAgBD,EAAcK,EAASH,GAAQF,GAG9Ll1K,EAAQszK,KAAO,CACzB,IAAKL,EACL,IAAKE,EACL,GAAIiC,GAGcp1K,EAAQ8zK,aAAe/wK,OAAOw7E,aAAa,KAC3Cv+E,EAAQi0K,aAAelxK,OAAOw7E,aAAa,KAC3Cv+E,EAAQo0K,aAAerxK,OAAOw7E,aAAa,KAIhDv+E,EAAQ+zK,QAAU,kBAIlB/zK,EAAQk0K,QAAU,oBAIlBl0K,EAAQq0K,QAAU,uBAKrBr0K,EAAQgzK,KAAO,CAAC,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,WAAa,YAAa,WAAa,WAAa,YAAa,WAAa,WAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,UAAa,YAAa,YAAa,YAAa,UAAa,YAAa,UAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,4CCnD73C9zK,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAETU,EAAQm0K,SAAWn0K,EAAQg0K,SAAWh0K,EAAQ4zK,SAAW5zK,EAAQ4xK,aAAU3yK,EAE3E,IAEIu2K,EAAiB5G,EAFD1tK,EAAQ,OAMxBu0K,EAAa7G,EAFD1tK,EAAQ,OAMpBw0K,EAAa9G,EAFD1tK,EAAQ,OAMpBy0K,EAAa/G,EAFD1tK,EAAQ,OAIxB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAE9F3lI,EAAQ4xK,QAAU4D,EAAe11F,QACjC9/E,EAAQ4zK,SAAW6B,EAAW31F,QAC9B9/E,EAAQg0K,SAAW0B,EAAW51F,QAC9B9/E,EAAQm0K,SAAWwB,EAAW71F,qCC1B9B5gF,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQ41K,YAAS32K,EAEjB,IAMgC0mI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAaxB,IAAI00K,EAAS,SAAU/D,GAGtB,SAAS+D,EAAOtvK,EAAMzE,GAUrB,OApBF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAM8zK,GAEtBtvK,EAAOA,EAAKuhF,cAGRhmF,EAAQg0K,QACXvvK,GAsDH,SAAsBwvK,GACrB,OAAOnvK,EAAWmvK,EACnB,CAxDWC,CA8DX,SAAuBzvK,GAEtB,IADA,IAAIqsK,EAAW,EACN7xK,EAAI,EAAGA,EAAIwF,EAAKvF,OAAQD,IAChC6xK,GAAYmD,EAAexvK,EAAKxF,IAIjC,OADA6xK,GAAsB,EAEvB,CAtEwBqD,CAAc1vK,KAftC,SAAoCy8E,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAkBtOuxK,CAA2BjwK,MAAO8zK,EAAO3tF,WAAa/oF,OAAO4vI,eAAe8mC,IAASp1K,KAAKsB,KAAMwE,EAAMzE,GAC9G,CA4BA,OA7CD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAUyD,EAAQ/D,GAelBR,EAAauE,EAAQ,CAAC,CACrBv1K,IAAK,SACLf,MAAO,WAKN,IAHA,IAAI4pF,EAAS+sF,EAAY,KAGhBn1K,EAAI,EAAGA,EAAIgB,KAAKwE,KAAKvF,OAAQD,IACrCooF,GAAU+sF,EAAYn0K,KAAKwE,KAAKxF,IAAM,IAMvC,MAAO,CACNwF,KAHD4iF,GAAU+sF,EAAY,KAIrBt/J,KAAM7U,KAAK6U,KAEb,GACE,CACFtW,IAAK,QACLf,MAAO,WACN,OAA0D,IAAnDwC,KAAKwE,KAAK80J,OAAO,4BACzB,KAGMwa,CACR,CA3Ca,GATmBjwC,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IAoD3E7lD,SAKRn5E,EAAa,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAIrO6pK,EAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAI9T,SAASyF,EAAYC,GACpB,OAGD,SAAmBJ,GAClB,OAAOtF,EAAUsF,GAAgB/iK,SAAS,EAC3C,CALQojK,CAAUL,EAAeI,GACjC,CAUA,SAASJ,EAAeI,GACvB,OAAOvvK,EAAWkI,QAAQqnK,EAC3B,CAYAl2K,EAAQ41K,OAASA,+BCtGjB12K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfy0B,EAAazwK,EAAQ,MAIrBk1K,EAAYxH,EAFD1tK,EAAQ,OAQvB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAS9F,IAAI0wC,EAAM,SAAUxE,GAGnB,SAASwE,EAAI/vK,EAAMzE,IAVpB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAMu0K,GAGtB,IAAIv1D,EAZN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAYjOuxK,CAA2BjwK,MAAOu0K,EAAIpuF,WAAa/oF,OAAO4vI,eAAeunC,IAAM71K,KAAKsB,KAAMwE,EAAMzE,IAM5G,OAJAi/G,EAAMhP,UAAYjwG,EAAQi4B,MAAQj4B,EAAQiwG,SAA2B,GAAhBjwG,EAAQsoF,MAA6B,GAAhBtoF,EAAQsoF,MAAatoF,EAAQiwG,SAGvGgP,EAAMw1D,YAAcz0K,EAAQuoF,OAAS02B,EAAMhP,SAAW,EAAIjwG,EAAQ00K,WAC3Dz1D,CACR,CA+CA,OAhED,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAUkE,EAAKxE,GAefR,EAAagF,EAAK,CAAC,CAClBh2K,IAAK,SACLf,MAAO,WACN,OAAOwC,KAAKD,QAAQi4B,KAAOh4B,KAAK00K,aAAe10K,KAAK20K,eACrD,GACE,CACFp2K,IAAK,WACLf,MAAO,SAAkByqF,EAAMD,GAC9B,OAAOhoF,KAAK6U,KAAK/T,OAAOmnF,EAAMD,EAC/B,GACE,CACFzpF,IAAK,aACLf,MAAO,SAAoBgH,EAAMowK,GAChC,OAAO,EAAIN,EAAUt2F,SAASx5E,EAAMowK,EACrC,GACE,CACFr2K,IAAK,YACLf,MAAO,SAAmByqF,EAAMD,GAC/B,OAAOhoF,KAAK6U,KAAK/T,OAAOmnF,EAAMD,EAC/B,GACE,CACFzpF,IAAK,cACLf,MAAO,SAAqBgH,EAAMowK,GACjC,OAAO,EAAIN,EAAUt2F,SAASx5E,EAAMowK,EACrC,GACE,CACFr2K,IAAK,gBACLf,MAAO,WACN,IAAIq3K,EAAc,CAAE7kE,SAAUhwG,KAAKgwG,UAC/B8kE,EAAe,CAAExsF,OAAQtoF,KAAKw0K,aAElC,MAAO,CAAC,CAAEhwK,KAAMqrK,EAAWkF,SAAUh1K,QAAS+0K,GAAgB,CAAEtwK,KAAMxE,KAAKg1K,aAAcngK,KAAM7U,KAAKi1K,WAAYl1K,QAAS80K,GAAe,CAAErwK,KAAMqrK,EAAWqF,WAAYn1K,QAAS+0K,GAAgB,CAAEtwK,KAAMxE,KAAKm1K,cAAetgK,KAAM7U,KAAKo1K,YAAar1K,QAAS80K,GAAe,CAAErwK,KAAMqrK,EAAWkF,SAAUh1K,QAAS+0K,GACnT,GACE,CACFv2K,IAAK,aACLf,MAAO,WAGN,MAAO,CACNgH,KAHU,CAACqrK,EAAWkF,SAAU/0K,KAAKg1K,aAAcnF,EAAWqF,WAAYl1K,KAAKm1K,cAAetF,EAAWkF,UAG9FvlK,KAAK,IAChBqF,KAAM7U,KAAK6U,KAEb,KAGM0/J,CACR,CA9DU,CAXMzH,EAFA1tK,EAAQ,OA2EZ4+E,SAEZ9/E,EAAAA,QAAkBq2K,+BCzFlBn3K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAUgCqmI,EAV5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfi6B,EAAO,SAAS//J,EAAIrY,EAAQkuH,EAAUmqD,GAA2B,OAAXr4K,IAAiBA,EAASmF,SAAS5D,WAAW,IAAI++I,EAAOngJ,OAAO2vI,yBAAyB9vI,EAAQkuH,GAAW,QAAahuH,IAATogJ,EAAoB,CAAE,IAAIrwI,EAAS9P,OAAO4vI,eAAe/vI,GAAS,OAAe,OAAXiQ,OAAmB,EAAkCoI,EAAIpI,EAAQi+G,EAAUmqD,EAAa,CAAO,GAAI,UAAW/3B,EAAQ,OAAOA,EAAK//I,MAAgB,IAAI6oJ,EAAS9I,EAAKjoI,IAAK,YAAenY,IAAXkpJ,EAAmDA,EAAO3nJ,KAAK42K,QAAnE,CAAgF,EAErezF,EAAazwK,EAAQ,MAErBm2K,EAAQn2K,EAAQ,MAEhBo2K,GAE4B3xC,EAFG0xC,IAEkB1xC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAWvF,IAAIgtC,EAAW,SAAkB71E,GAOhC,OAAQ,GANEA,EAAOl6F,OAAO,EAAG,IAAI4F,MAAM,IAAI0L,KAAI,SAAUxB,GACtD,OAAQA,CACT,IAAG9J,QAAO,SAAUw9D,EAAK4W,EAAG4tF,GAC3B,OAAOA,EAAM,EAAIxkG,EAAU,EAAJ4W,EAAQ5W,EAAM4W,CACtC,GAAG,GAEgB,IAAM,EAC1B,EAEIu6F,EAAQ,SAAUC,GAGrB,SAASD,EAAMjxK,EAAMzE,IAtBtB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAuBtJgxK,CAAgBtvK,KAAMy1K,IAGc,IAAhCjxK,EAAK80J,OAAO,iBACf90J,GAAQqsK,EAASrsK,IAIlB,IAAIw6G,EA7BN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CA6BjOuxK,CAA2BjwK,MAAOy1K,EAAMtvF,WAAa/oF,OAAO4vI,eAAeyoC,IAAQ/2K,KAAKsB,KAAMwE,EAAMzE,IAGhH,OADAi/G,EAAM22D,SAAW51K,EAAQ41K,SAClB32D,CACR,CA8DA,OA7FD,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAgB5eC,CAAUoF,EAAOC,GAiBjBnG,EAAakG,EAAO,CAAC,CACpBl3K,IAAK,QACLf,MAAO,WACN,OAA4C,IAArCwC,KAAKwE,KAAK80J,OAAO,iBAA0Bt5J,KAAKwE,KAAK,MAAQqsK,EAAS7wK,KAAKwE,KACnF,GACE,CACFjG,IAAK,WACLf,MAAO,WACN,OAAO63K,EAAKI,EAAMj3K,UAAU2nF,WAAa/oF,OAAO4vI,eAAeyoC,EAAMj3K,WAAY,WAAYwB,MAAMtB,KAAKsB,KAAM,EAAG,EAClH,GACE,CACFzB,IAAK,aACLf,MAAO,WACN,IAAIgH,EAAOxE,KAAKwE,KAAK1D,OAAO,EAAG,GAC3B8zK,EAAY/E,EAAW+F,gBAAgB51K,KAAKwE,KAAK,IACrD,OAAO6wK,EAAKI,EAAMj3K,UAAU2nF,WAAa/oF,OAAO4vI,eAAeyoC,EAAMj3K,WAAY,aAAcwB,MAAMtB,KAAKsB,KAAMwE,EAAMowK,EACvH,GACE,CACFr2K,IAAK,YACLf,MAAO,WACN,OAAO63K,EAAKI,EAAMj3K,UAAU2nF,WAAa/oF,OAAO4vI,eAAeyoC,EAAMj3K,WAAY,YAAawB,MAAMtB,KAAKsB,KAAM,EAAG,EACnH,GACE,CACFzB,IAAK,cACLf,MAAO,WACN,IAAIgH,EAAOxE,KAAKwE,KAAK1D,OAAO,EAAG,GAC/B,OAAOu0K,EAAKI,EAAMj3K,UAAU2nF,WAAa/oF,OAAO4vI,eAAeyoC,EAAMj3K,WAAY,cAAewB,MAAMtB,KAAKsB,KAAMwE,EAAM,SACxH,GAIE,CACFjG,IAAK,gBACLf,MAAO,WACN,IAAIgH,EAAO6wK,EAAKI,EAAMj3K,UAAU2nF,WAAa/oF,OAAO4vI,eAAeyoC,EAAMj3K,WAAY,gBAAiBwB,MAAMtB,KAAKsB,MAsBjH,OAnBIA,KAAKD,QAAQ81K,eAChBrxK,EAAKw1F,QAAQ,CACZx1F,KAAM,eACNqQ,KAAM7U,KAAK6U,KAAK/T,OAAO,EAAG,GAC1Bf,QAAS,CAAEixG,UAAW,OAAQhB,SAAUhwG,KAAKgwG,YAG1ChwG,KAAKD,QAAQ41K,WAChBnxK,EAAKoL,KAAK,CACTpL,KAAM,OAEPA,EAAKoL,KAAK,CACTpL,KAAM,QACNqQ,KAAM7U,KAAKD,QAAQ41K,SACnB51K,QAAS,CAAEiwG,SAAUhwG,KAAKgwG,cAKtBxrG,CACR,KAGMixK,CACR,CA/EY,CA+EVD,EAAMx3F,SAER9/E,EAAAA,QAAkBu3K,8BCpHlBr4K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfy0B,EAAazwK,EAAQ,MAIrBk1K,EAAYxH,EAFD1tK,EAAQ,OAQvB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAS9F,IAAIiyC,EAAO,SAAU/F,GAGpB,SAAS+F,EAAKtxK,EAAMzE,GAGnB,OAbF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAM81K,GATxB,SAAoC70F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAWtOuxK,CAA2BjwK,MAAO81K,EAAK3vF,WAAa/oF,OAAO4vI,eAAe8oC,IAAOp3K,KAAKsB,KAAMwE,EAAMzE,GAC1G,CAoBA,OA9BD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAUyF,EAAM/F,GAQhBR,EAAauG,EAAM,CAAC,CACnBv3K,IAAK,QACLf,MAAO,WACN,OAA2C,IAApCwC,KAAKwE,KAAK80J,OAAO,aACzB,GACE,CACF/6J,IAAK,SACLf,MAAO,WAEN,IAAIo3K,EAAY/E,EAAWkG,eAAep5F,SAAS38E,KAAKwE,MAAQ,GAChE,MAAO,CAENA,KAAM,QAAS,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAMowK,EAAW,MAC5D//J,KAAM7U,KAAK6U,KAEb,KAGMihK,CACR,CA5BW,CAXKhJ,EAFA1tK,EAAQ,OAyCZ4+E,SAEZ9/E,EAAAA,QAAkB43K,+BCvDlB14K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfy0B,EAAazwK,EAAQ,MAIrBk1K,EAAYxH,EAFD1tK,EAAQ,OAMnBwwK,EAAY9C,EAFA1tK,EAAQ,OAIxB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAS9F,IASImyC,EAAO,SAAUjG,GAGpB,SAASiG,EAAKxxK,EAAMzE,GAGnB,OAtBF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAoBtJgxK,CAAgBtvK,KAAMg2K,GAlBxB,SAAoC/0F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAoBtOuxK,CAA2BjwK,MAAOg2K,EAAK7vF,WAAa/oF,OAAO4vI,eAAegpC,IAAOt3K,KAAKsB,KAAMwE,EAAMzE,GAC1G,CAkBA,OArCD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAa5eC,CAAU2F,EAAMjG,GAQhBR,EAAayG,EAAM,CAAC,CACnBz3K,IAAK,QACLf,MAAO,WACN,OAA2C,IAApCwC,KAAKwE,KAAK80J,OAAO,aACzB,GACE,CACF/6J,IAAK,SACLf,MAAO,WACN,IA1B8BgH,EA0B1BowK,EAAY/E,EAAWoG,gBA1BGzxK,EA0BqBxE,KAAKwE,KAzB7CA,EAAKkC,MAAM,IAAI0L,KAAI,SAAUxB,GACzC,OAAQA,CACT,IAAG9J,QAAO,SAAUw9D,EAAK4W,EAAG4tF,GAC3B,OAAOA,EAAM,EAAIxkG,EAAU,EAAJ4W,EAAQ5W,EAAU,EAAJ4W,CACtC,GAAG,GACa,KAqBd,MAAO,CACN12E,KAAM,QAAS,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAMowK,EAAW,MAC5D//J,KAAM7U,KAAK6U,KAEb,KAGMmhK,CACR,CA1BW,CA0BTpG,EAAU5xF,SAEZ9/E,EAAAA,QAAkB83K,+BC9DlB54K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfi6B,EAAO,SAAS//J,EAAIrY,EAAQkuH,EAAUmqD,GAA2B,OAAXr4K,IAAiBA,EAASmF,SAAS5D,WAAW,IAAI++I,EAAOngJ,OAAO2vI,yBAAyB9vI,EAAQkuH,GAAW,QAAahuH,IAATogJ,EAAoB,CAAE,IAAIrwI,EAAS9P,OAAO4vI,eAAe/vI,GAAS,OAAe,OAAXiQ,OAAmB,EAAkCoI,EAAIpI,EAAQi+G,EAAUmqD,EAAa,CAAO,GAAI,UAAW/3B,EAAQ,OAAOA,EAAK//I,MAAgB,IAAI6oJ,EAAS9I,EAAKjoI,IAAK,YAAenY,IAAXkpJ,EAAmDA,EAAO3nJ,KAAK42K,QAAnE,CAAgF,EAEreC,EAAQn2K,EAAQ,MAEhBo2K,GAE4B3xC,EAFG0xC,IAEkB1xC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAUvF,IAAIgtC,EAAW,SAAkB71E,GAOhC,OAAQ,GANEA,EAAOl6F,OAAO,EAAG,GAAG4F,MAAM,IAAI0L,KAAI,SAAUxB,GACrD,OAAQA,CACT,IAAG9J,QAAO,SAAUw9D,EAAK4W,EAAG4tF,GAC3B,OAAOA,EAAM,EAAIxkG,EAAM4W,EAAI5W,EAAU,EAAJ4W,CAClC,GAAG,GAEgB,IAAM,EAC1B,EAEIg7F,EAAO,SAAUR,GAGpB,SAASQ,EAAK1xK,EAAMzE,GAQnB,OA7BF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAsBtJgxK,CAAgBtvK,KAAMk2K,IAGa,IAA/B1xK,EAAK80J,OAAO,gBACf90J,GAAQqsK,EAASrsK,IAxBpB,SAAoCy8E,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CA2BtOuxK,CAA2BjwK,MAAOk2K,EAAK/vF,WAAa/oF,OAAO4vI,eAAekpC,IAAOx3K,KAAKsB,KAAMwE,EAAMzE,GAC1G,CA+BA,OAzDD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAe5eC,CAAU6F,EAAMR,GAahBnG,EAAa2G,EAAM,CAAC,CACnB33K,IAAK,QACLf,MAAO,WACN,OAA2C,IAApCwC,KAAKwE,KAAK80J,OAAO,gBAAyBt5J,KAAKwE,KAAK,KAAOqsK,EAAS7wK,KAAKwE,KACjF,GACE,CACFjG,IAAK,WACLf,MAAO,WACN,OAAO63K,EAAKa,EAAK13K,UAAU2nF,WAAa/oF,OAAO4vI,eAAekpC,EAAK13K,WAAY,WAAYwB,MAAMtB,KAAKsB,KAAM,EAAG,EAChH,GACE,CACFzB,IAAK,aACLf,MAAO,WACN,IAAIgH,EAAOxE,KAAKwE,KAAK1D,OAAO,EAAG,GAC/B,OAAOu0K,EAAKa,EAAK13K,UAAU2nF,WAAa/oF,OAAO4vI,eAAekpC,EAAK13K,WAAY,aAAcwB,MAAMtB,KAAKsB,KAAMwE,EAAM,OACrH,GACE,CACFjG,IAAK,YACLf,MAAO,WACN,OAAO63K,EAAKa,EAAK13K,UAAU2nF,WAAa/oF,OAAO4vI,eAAekpC,EAAK13K,WAAY,YAAawB,MAAMtB,KAAKsB,KAAM,EAAG,EACjH,GACE,CACFzB,IAAK,cACLf,MAAO,WACN,IAAIgH,EAAOxE,KAAKwE,KAAK1D,OAAO,EAAG,GAC/B,OAAOu0K,EAAKa,EAAK13K,UAAU2nF,WAAa/oF,OAAO4vI,eAAekpC,EAAK13K,WAAY,cAAewB,MAAMtB,KAAKsB,KAAMwE,EAAM,OACtH,KAGM0xK,CACR,CA5CW,CA4CTV,EAAMx3F,SAER9/E,EAAAA,QAAkBg4K,+BC9ElB94K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEnBl9I,EAAQ2yK,SAAWA,EAEnB,IAEIyD,EAAYxH,EAFD1tK,EAAQ,OAQvB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAS9F,IAAIsyC,EAAM,SAAUpG,GAGnB,SAASoG,EAAI3xK,EAAMzE,IAVpB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAMm2K,IAGc,IAAhC3xK,EAAK80J,OAAO,iBACf90J,GAAQqsK,EAASrsK,IAGlB,IAAIw6G,EAhBN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAgBjOuxK,CAA2BjwK,MAAOm2K,EAAIhwF,WAAa/oF,OAAO4vI,eAAempC,IAAMz3K,KAAKsB,KAAMwE,EAAMzE,IAa5G,OAXAi/G,EAAM62D,aAAe91K,EAAQ81K,aAGzB91K,EAAQiwG,SAA2B,GAAhBjwG,EAAQsoF,MAC9B22B,EAAMhP,SAA2B,GAAhBjwG,EAAQsoF,MAEzB22B,EAAMhP,SAAWjwG,EAAQiwG,SAI1BgP,EAAMw1D,YAAcz0K,EAAQuoF,OAAS02B,EAAMhP,SAAW,EAAIjwG,EAAQ00K,WAC3Dz1D,CACR,CA2FA,OAvHD,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAU8F,EAAKpG,GA0BfR,EAAa4G,EAAK,CAAC,CAClB53K,IAAK,QACLf,MAAO,WACN,OAA4C,IAArCwC,KAAKwE,KAAK80J,OAAO,gBAAyBt5J,KAAKwE,KAAK,KAAOqsK,EAAS7wK,KAAKwE,KACjF,GACE,CACFjG,IAAK,SACLf,MAAO,WACN,OAAIwC,KAAKD,QAAQi4B,KACTh4B,KAAKo2K,eAELp2K,KAAKq2K,iBAEd,GACE,CACF93K,IAAK,eACLf,MAAO,WACN,IAAI4pF,EAAS,GAQb,OANAA,GAAU,MACVA,IAAU,EAAIktF,EAAUt2F,SAASh+E,KAAKwE,KAAK1D,OAAO,EAAG,GAAI,UACzDsmF,GAAU,QACVA,IAAU,EAAIktF,EAAUt2F,SAASh+E,KAAKwE,KAAK1D,OAAO,EAAG,GAAI,UAGlD,CACN0D,KAHD4iF,GAAU,MAITvyE,KAAM7U,KAAK6U,KAEb,GACE,CACFtW,IAAK,kBACLf,MAAO,WACN,IAAI4pF,EAAS,GAoDb,OAjDIpnF,KAAK61K,cACRzuF,EAAOx3E,KAAK,CACXpL,KAAM,WACNqQ,KAAM7U,KAAK6U,KAAK/T,OAAO,EAAG,GAC1Bf,QAAS,CAAEixG,UAAW,OAAQhB,SAAUhwG,KAAKgwG,YAK/C5oB,EAAOx3E,KAAK,CACXpL,KAAM,OAAQ,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAK,GAAI,KACnDzE,QAAS,CAAEuoF,OAAQtoF,KAAKw0K,eAIzBptF,EAAOx3E,KAAK,CACXpL,MAAM,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAK1D,OAAO,EAAG,GAAI,SACrD+T,KAAM7U,KAAK6U,KAAK/T,OAAO,EAAG,GAC1Bf,QAAS,CAAEiwG,SAAUhwG,KAAKgwG,YAI3B5oB,EAAOx3E,KAAK,CACXpL,KAAM,QACNzE,QAAS,CAAEuoF,OAAQtoF,KAAKw0K,eAIzBptF,EAAOx3E,KAAK,CACXpL,MAAM,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAK1D,OAAO,EAAG,GAAI,SACrD+T,KAAM7U,KAAK6U,KAAK/T,OAAO,EAAG,GAC1Bf,QAAS,CAAEiwG,SAAUhwG,KAAKgwG,YAI3B5oB,EAAOx3E,KAAK,CACXpL,MAAM,EAAI8vK,EAAUt2F,SAASh+E,KAAKwE,KAAK,IAAK,KAAO,MACnDzE,QAAS,CAAEuoF,OAAQtoF,KAAKw0K,eAIrBx0K,KAAK61K,cACRzuF,EAAOx3E,KAAK,CACXpL,KAAM,WACNqQ,KAAM7U,KAAK6U,KAAK/T,OAAO,GAAI,GAC3Bf,QAAS,CAAEixG,UAAW,QAAShB,SAAUhwG,KAAKgwG,YAIzC5oB,CACR,KAGM+uF,CACR,CArHU,CAXMrJ,EAFA1tK,EAAQ,OAkIZ4+E,SAMZ,SAAS6yF,EAAS71E,GACjB,IAEIh8F,EAFAooF,EAAS,EAGb,IAAKpoF,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACxBooF,GAAUzK,SAASqe,EAAOh8F,IAE3B,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACxBooF,GAAgC,EAAtBzK,SAASqe,EAAOh8F,IAG3B,OAAQ,GAAKooF,EAAS,IAAM,EAC7B,CAEAlpF,EAAAA,QAAkBi4K,8BClKlB/4K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAIfk5B,EAAYxH,EAFD1tK,EAAQ,OAMnBwwK,EAAY9C,EAFA1tK,EAAQ,OAIpBk3K,EAAOl3K,EAAQ,MAEnB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAI9F,SAASosC,EAA2BhvF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAQ/O,IAAI63K,EAAa,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAE5IC,EAAW,CAAC,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,SAAU,WAE7NC,EAAO,SAAU1G,GAGpB,SAAS0G,EAAKjyK,EAAMzE,IAjBrB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAkBtJgxK,CAAgBtvK,KAAMy2K,GAEtB,IAAIz3D,EAAQixD,EAA2BjwK,MAAOy2K,EAAKtwF,WAAa/oF,OAAO4vI,eAAeypC,IAAO/3K,KAAKsB,KAAMwE,EAAMzE,IAO9G,GADAi/G,EAAM03D,SAAU,GACmB,IAA/BlyK,EAAK80J,OAAO,cACft6C,EAAM23D,aAAenyK,EACrBw6G,EAAM43D,KAAOC,EAAaryK,EAAM,KAChCw6G,EAAMnqG,KAAO9U,EAAQ8U,MAAQ,GAAKmqG,EAAM43D,KAAK,GAAKpyK,EAAOw6G,EAAM43D,KAAK53D,EAAM43D,KAAK33K,OAAS,GACxF+/G,EAAM03D,SAAU,MACV,KAAuC,IAAnClyK,EAAK80J,OAAO,kBAWtB,OAAO2W,EAA2BjxD,GAPlC,GAHAA,EAAM23D,aAAenyK,EAAKoQ,UAAU,EAAGpQ,EAAKvF,OAAS,GACrD+/G,EAAM43D,KAAOC,EAAa73D,EAAM23D,aAAcnyK,EAAK,IAE/Cw6G,EAAM43D,KAAK53D,EAAM43D,KAAK33K,OAAS,KAAOuF,EAAKA,EAAKvF,OAAS,GAI5D,OAAOgxK,EAA2BjxD,GAHlCA,EAAM03D,SAAU,CAOlB,CAaA,OAXA13D,EAAM62D,aAAe91K,EAAQ81K,aAGzB91K,EAAQiwG,SAA2B,GAAhBjwG,EAAQsoF,MAC9B22B,EAAMhP,SAA2B,GAAhBjwG,EAAQsoF,MAEzB22B,EAAMhP,SAAWjwG,EAAQiwG,SAI1BgP,EAAMw1D,YAAcz0K,EAAQuoF,OAAS02B,EAAMhP,SAAW,EAAIjwG,EAAQ00K,WAC3Dz1D,CACR,CAoFA,OA1ID,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAW5eC,CAAUoG,EAAM1G,GA6ChBR,EAAakH,EAAM,CAAC,CACnBl4K,IAAK,QACLf,MAAO,WACN,OAAOwC,KAAK02K,OACb,GACE,CACFn4K,IAAK,SACLf,MAAO,WACN,OAAIwC,KAAKD,QAAQi4B,KACTh4B,KAAKo2K,eAELp2K,KAAKq2K,iBAEd,GACE,CACF93K,IAAK,eACLf,MAAO,WACN,IAAI4pF,EAAS,GAMb,OAJAA,GAAU,MACVA,GAAUpnF,KAAK82K,qBAGR,CACNtyK,KAHD4iF,GAAU,SAITvyE,KAAM7U,KAAK6U,KAEb,GACE,CACFtW,IAAK,kBACLf,MAAO,WACN,IAAI4pF,EAAS,GAuCb,OApCIpnF,KAAK61K,cACRzuF,EAAOx3E,KAAK,CACXpL,KAAM,WACNqQ,KAAM7U,KAAK6U,KAAK,GAChB9U,QAAS,CAAEixG,UAAW,OAAQhB,SAAUhwG,KAAKgwG,YAK/C5oB,EAAOx3E,KAAK,CACXpL,KAAM,MACNzE,QAAS,CAAEuoF,OAAQtoF,KAAKw0K,eAIzBptF,EAAOx3E,KAAK,CACXpL,KAAMxE,KAAK82K,qBACXjiK,KAAM7U,KAAK6U,KAAKD,UAAU,EAAG,GAC7B7U,QAAS,CAAEiwG,SAAUhwG,KAAKgwG,YAI3B5oB,EAAOx3E,KAAK,CACXpL,KAAM,SACNzE,QAAS,CAAEuoF,OAAQtoF,KAAKw0K,eAIrBx0K,KAAK61K,cACRzuF,EAAOx3E,KAAK,CACXpL,KAAM,WACNqQ,KAAM7U,KAAK6U,KAAK,GAChB9U,QAAS,CAAEixG,UAAW,QAAShB,SAAUhwG,KAAKgwG,YAIzC5oB,CACR,GACE,CACF7oF,IAAK,qBACLf,MAAO,WACN,IAAIu5K,EAAe/2K,KAAK42K,KAAK,GACzBI,EAAah3K,KAAK42K,KAAK52K,KAAK42K,KAAK33K,OAAS,GAC1Cg4K,EAAST,EAAS75F,SAASq6F,IAAar6F,SAASo6F,IACrD,OAAO,EAAIzC,EAAUt2F,SAASh+E,KAAK22K,aAAcM,EAClD,KAGMR,CACR,CAjIW,CAiIT7G,EAAU5xF,SAEZ,SAAS64F,EAAaF,EAAcI,GAMnC,IALA,IAAIG,EAAWv6F,SAASg6F,EAAaA,EAAa13K,OAAS,IACvDk4K,EAAYZ,EAAWW,GAEvB9vF,EAAS,GACTgwF,EAAa,EACRp4K,EAAI,EAAGA,EAAIm4K,EAAUl4K,OAAQD,IAAK,CAC1C,IAAIsM,EAAI6rK,EAAUn4K,GAEjBooF,GADS,MAAN97E,EACOqrK,EAAaS,KAEb9rK,CAEZ,CAGA,MAAO,IADP87E,EAAS,GAAK2vF,EAAe3vF,IACR,EAAIkvF,EAAKzF,UAAUzpF,EACzC,CAEAlpF,EAAAA,QAAkBu4K,6BCtLlBr5K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGOU,EAAQ62K,SAAW,MACjB72K,EAAQg3K,WAAa,QAEvBh3K,EAAQm5K,SAAW,CACjC,EAAK,CACL,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACnG,EAAK,CACL,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACnG,EAAK,CACL,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACnG,EAAK,CACL,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACnG,EAAK,CACL,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAI/En5K,EAAQ63K,eAAiB,CAAC,KAAM,KAAM,KAAM,MAG5C73K,EAAQ+3K,eAAiB,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAG1G/3K,EAAQ03K,gBAAkB,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,uCC3B3Ix4K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAIqyK,EAAazwK,EAAQ,MAoBzBlB,EAAAA,QAjBa,SAAgBsG,EAAMowK,EAAW1qD,GAC7C,IAAIkkD,EAAU5pK,EAAKkC,MAAM,IAAI0L,KAAI,SAAUg0H,EAAK0iC,GAC/C,OAAO+G,EAAWwH,SAASzC,EAAU9L,GACtC,IAAG12J,KAAI,SAAUg0H,EAAK0iC,GACrB,OAAO1iC,EAAMA,EAAI5hI,EAAKskK,IAAQ,EAC/B,IAEA,GAAI5+C,EAAW,CACd,IAAI5gB,EAAO9kG,EAAKvF,OAAS,EACzBmvK,EAAUA,EAAQh8J,KAAI,SAAUg0H,EAAK0iC,GACpC,OAAOA,EAAMx/D,EAAO88B,EAAMlc,EAAYkc,CACvC,GACD,CAEA,OAAOgoC,EAAQ5+J,KAAK,GACrB,+BCtBApS,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAETU,EAAQu4K,KAAOv4K,EAAQi4K,IAAMj4K,EAAQ43K,KAAO53K,EAAQ83K,KAAO93K,EAAQg4K,KAAOh4K,EAAQu3K,WAAQt4K,EAE1F,IAEIo4K,EAAQzI,EAFD1tK,EAAQ,OAMfk4K,EAAQxK,EAFA1tK,EAAQ,OAMhBm4K,EAAQzK,EAFA1tK,EAAQ,OAMhBo4K,EAAQ1K,EAFA1tK,EAAQ,MAMhBq4K,EAAQ3K,EAFD1tK,EAAQ,OAMfs4K,EAAS5K,EAFD1tK,EAAQ,MAIpB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAE9F3lI,EAAQu3K,MAAQF,EAAMv3F,QACtB9/E,EAAQg4K,KAAOoB,EAAMt5F,QACrB9/E,EAAQ83K,KAAOuB,EAAMv5F,QACrB9/E,EAAQ43K,KAAO0B,EAAMx5F,QACrB9/E,EAAQi4K,IAAMsB,EAAMz5F,QACpB9/E,EAAQu4K,KAAOiB,EAAO15F,qCCpCtB5gF,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQy5K,oBAAiBx6K,EAEzB,IAMgC0mI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAYxB,IAAIu4K,EAAiB,SAAU5H,GAG9B,SAAS4H,EAAenzK,EAAMzE,GAG7B,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAM23K,GARxB,SAAoC12F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAO23K,EAAexxF,WAAa/oF,OAAO4vI,eAAe2qC,IAAiBj5K,KAAKsB,KAAMwE,EAAMzE,GAC9H,CAuBA,OAhCD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUsH,EAAgB5H,GAW1BR,EAAaoI,EAAgB,CAAC,CAC7Bp5K,IAAK,SACLf,MAAO,WACN,MAAO,CACNgH,KAAM,4CACNqQ,KAAM7U,KAAK6U,KAEb,GAIE,CACFtW,IAAK,QACLf,MAAO,WACN,OAAO,CACR,KAGMm6K,CACR,CA/BqB,GARW9zC,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IAuC3E7lD,SAEZ9/E,EAAQy5K,eAAiBA,+BCpDzBv6K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfy0B,EAAazwK,EAAQ,MAErBuwK,EAAYvwK,EAAQ,MAYxB,IAAIw4K,EAAM,SAAU7H,GAGnB,SAAS6H,IAGR,OAZF,SAAyBvI,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAM43K,GARxB,SAAoC32F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAO43K,EAAIzxF,WAAa/oF,OAAO4vI,eAAe4qC,IAAM9yK,MAAM9E,KAAM+E,WACnG,CAoCA,OA7CD,SAAmBorK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUuH,EAAK7H,GAQfR,EAAaqI,EAAK,CAAC,CAClBr5K,IAAK,QACLf,MAAO,WACN,OAA8C,IAAvCwC,KAAKwE,KAAK80J,OAAO,gBACzB,GACE,CACF/6J,IAAK,SACLf,MAAO,WACN,IAAIq6K,EAAS73K,KAGTouK,EAAUpuK,KAAKwE,KAAKw2E,MAAM,SAAS5oE,KAAI,SAAU0lK,GACpD,OAAOD,EAAOE,WAAWD,EAC1B,IAAGtoK,KAAK,IAER,MAAO,CACNhL,KAAMqrK,EAAWmI,UAAY5J,EAAUyB,EAAWoI,QAClDpjK,KAAM7U,KAAK6U,KAEb,GAIE,CACFtW,IAAK,aACLf,MAAO,SAAoBs6K,GAC1B,IAAI1gD,EAASy4C,EAAWwH,SAASS,EAAK,IAEtC,OAAOjI,EAAWwH,SAASS,EAAK,IAAIpxK,MAAM,IAAI0L,KAAI,SAAUi3F,EAAOy/D,GAClE,OAAkB,MAAVz/D,EAAgB,MAAQ,MAAwB,MAAhB+tB,EAAO0xC,GAAe,MAAQ,IACvE,IAAGt5J,KAAK,GACT,KAGMooK,CACR,CA5CU,GARsB/zC,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IAoD3E7lD,SAEZ9/E,EAAAA,QAAkB05K,+BClElBx6K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEf88B,EAAQ94K,EAAQ,MAEhB+4K,GAE4Bt0C,EAFGq0C,IAEkBr0C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GASvF,IAAIgtC,EAAW,SAAkBrsK,GAChC,IAAI4zK,EAAM5zK,EAAK1D,OAAO,EAAG,IAAI4F,MAAM,IAAI0L,KAAI,SAAUgzC,GACpD,OAAOu3B,SAASv3B,EAAK,GACtB,IAAGt+C,QAAO,SAAUw9D,EAAK1zD,EAAGk4J,GAC3B,OAAOxkG,EAAM1zD,GAAK,EAAIk4J,EAAM,EAAI,EACjC,GAAG,GAEH,OAA6B,GAAtBrrF,KAAKwO,KAAKmsF,EAAM,IAAWA,CACnC,EAEIC,EAAQ,SAAUC,GAGrB,SAASD,EAAM7zK,EAAMzE,GAOpB,OA3BF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAqBtJgxK,CAAgBtvK,KAAMq4K,IAGc,IAAhC7zK,EAAK80J,OAAO,iBACf90J,GAAQqsK,EAASrsK,IAvBpB,SAAoCy8E,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAyBtOuxK,CAA2BjwK,MAAOq4K,EAAMlyF,WAAa/oF,OAAO4vI,eAAeqrC,IAAQ35K,KAAKsB,KAAMwE,EAAMzE,GAC5G,CASA,OAjCD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAc5eC,CAAUgI,EAAOC,GAYjB/I,EAAa8I,EAAO,CAAC,CACpB95K,IAAK,QACLf,MAAO,WACN,OAA4C,IAArCwC,KAAKwE,KAAK80J,OAAO,iBAA0Bt5J,KAAKwE,KAAK,MAAQqsK,EAAS7wK,KAAKwE,KACnF,KAGM6zK,CACR,CArBY,CAqBVF,EAAMn6F,SAER9/E,EAAAA,QAAkBm6K,6BCpDlBj7K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAEQU,EAAQ85K,UAAY,OACtB95K,EAAQ+5K,QAAU,QAEjB/5K,EAAQm5K,SAAW,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,sCCNpHj6K,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAETU,EAAQm6K,MAAQn6K,EAAQ05K,SAAMz6K,EAE9B,IAEI+6K,EAAQpL,EAFD1tK,EAAQ,OAMfm5K,EAAQzL,EAFA1tK,EAAQ,OAIpB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAE9F3lI,EAAQ05K,IAAMM,EAAMl6F,QACpB9/E,EAAQm6K,MAAQE,EAAMv6F,qCChBtB5gF,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAaxB,IAAIo5K,EAAM,SAAUzI,GAGnB,SAASyI,EAAIh0K,EAAMzE,GAGlB,OAbF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAMw4K,GATxB,SAAoCv3F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAWtOuxK,CAA2BjwK,MAAOw4K,EAAIryF,WAAa/oF,OAAO4vI,eAAewrC,IAAM95K,KAAKsB,KAAMwE,EAAMzE,GACxG,CAmCA,OA7CD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAUmI,EAAKzI,GAQfR,EAAaiJ,EAAK,CAAC,CAClBj6K,IAAK,SACLf,MAAO,WAIN,IAFA,IAAIi7K,EAAM,MAEDz5K,EAAI,EAAGA,EAAIgB,KAAKwE,KAAKvF,OAAQD,IAAK,CAE1C,IACI05K,EADQ/7F,SAAS38E,KAAKwE,KAAKxF,IACfiS,SAAS,GACzBynK,EAAMC,EAAUD,EAAK,EAAIA,EAAIz5K,QAG7B,IAAK,IAAIk/E,EAAI,EAAGA,EAAIu6F,EAAIz5K,OAAQk/E,IAC/Bs6F,GAAiB,KAAVC,EAAIv6F,GAAY,MAAQ,KAEjC,CAKA,MAAO,CACN35E,KAHDi0K,GAAO,OAIN5jK,KAAM7U,KAAK6U,KAEb,GACE,CACFtW,IAAK,QACLf,MAAO,WACN,OAAyC,IAAlCwC,KAAKwE,KAAK80J,OAAO,WACzB,KAGMkf,CACR,CA3CU,GATsB30C,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IAoD3E7lD,SAEZ,SAAS26F,EAAU39E,EAAQpqF,GAC1B,IAAK,IAAI5R,EAAI,EAAGA,EAAI4R,EAAG5R,IACtBg8F,EAAS,IAAMA,EAEhB,OAAOA,CACR,CAEA98F,EAAAA,QAAkBs6K,+BCvElBp7K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B+0C,EAAQx5K,EAAQ,MAEhBy5K,GAI4Bh1C,EAJG+0C,IAIkB/0C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFi1C,EAAa15K,EAAQ,MAUzB,IAAI25K,EAAQ,SAAUC,GAGrB,SAASD,EAAMv0K,EAAMzE,GAGpB,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAM+4K,GARxB,SAAoC93F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAO+4K,EAAM5yF,WAAa/oF,OAAO4vI,eAAe+rC,IAAQr6K,KAAKsB,KAAMwE,GAAO,EAAIs0K,EAAWG,OAAOz0K,GAAOzE,GAC1I,CAEA,OAXD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAU0I,EAAOC,GAQVD,CACR,CAVY,CAUVF,EAAM76F,SAER9/E,EAAAA,QAAkB66K,+BC9BlB37K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B+0C,EAAQx5K,EAAQ,MAEhBy5K,GAI4Bh1C,EAJG+0C,IAIkB/0C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFi1C,EAAa15K,EAAQ,MAUzB,IAAI85K,EAAU,SAAUF,GAGvB,SAASE,EAAQ10K,EAAMzE,GAKtB,OAdF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMk5K,GAEtB10K,IAAQ,EAAIs0K,EAAWG,OAAOz0K,GAC9BA,IAAQ,EAAIs0K,EAAWG,OAAOz0K,GAXhC,SAAoCy8E,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAYtOuxK,CAA2BjwK,MAAOk5K,EAAQ/yF,WAAa/oF,OAAO4vI,eAAeksC,IAAUx6K,KAAKsB,KAAMwE,EAAMzE,GAChH,CAEA,OAbD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAU6I,EAASF,GAUZE,CACR,CAZc,CAYZL,EAAM76F,SAER9/E,EAAAA,QAAkBg7K,+BChClB97K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B+0C,EAAQx5K,EAAQ,MAEhBy5K,GAI4Bh1C,EAJG+0C,IAIkB/0C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFi1C,EAAa15K,EAAQ,MAUzB,IAAI+5K,EAAQ,SAAUH,GAGrB,SAASG,EAAM30K,EAAMzE,GAGpB,OAZF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMm5K,GARxB,SAAoCl4F,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAUtOuxK,CAA2BjwK,MAAOm5K,EAAMhzF,WAAa/oF,OAAO4vI,eAAemsC,IAAQz6K,KAAKsB,KAAMwE,GAAO,EAAIs0K,EAAWM,OAAO50K,GAAOzE,GAC1I,CAEA,OAXD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAU8I,EAAOH,GAQVG,CACR,CAVY,CAUVN,EAAM76F,SAER9/E,EAAAA,QAAkBi7K,+BC9BlB/7K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAMgCqmI,EAN5B+0C,EAAQx5K,EAAQ,MAEhBy5K,GAI4Bh1C,EAJG+0C,IAIkB/0C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFi1C,EAAa15K,EAAQ,MAUzB,IAAIi6K,EAAU,SAAUL,GAGvB,SAASK,EAAQ70K,EAAMzE,GAKtB,OAdF,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAUtJgxK,CAAgBtvK,KAAMq5K,GAEtB70K,IAAQ,EAAIs0K,EAAWM,OAAO50K,GAC9BA,IAAQ,EAAIs0K,EAAWG,OAAOz0K,GAXhC,SAAoCy8E,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAYtOuxK,CAA2BjwK,MAAOq5K,EAAQlzF,WAAa/oF,OAAO4vI,eAAeqsC,IAAU36K,KAAKsB,KAAMwE,EAAMzE,GAChH,CAEA,OAbD,SAAmBowK,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAG5eC,CAAUgJ,EAASL,GAUZK,CACR,CAZc,CAYZR,EAAM76F,SAER9/E,EAAAA,QAAkBm7K,6BChClBj8K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQ+6K,MAER,SAAej+E,GAEd,IADA,IAAI12B,EAAM,EACDtlE,EAAI,EAAGA,EAAIg8F,EAAO/7F,OAAQD,IAAK,CACvC,IAAI4R,EAAI+rE,SAASqe,EAAOh8F,KACnBA,EAAIg8F,EAAO/7F,QAAU,IAAM,EAC/BqlE,GAAO1zD,EAEP0zD,GAAW,EAAJ1zD,EAAQ,GAAK6sE,KAAK8H,MAAU,EAAJ30E,EAAQ,GAEzC,CACA,OAAQ,GAAK0zD,EAAM,IAAM,EAC1B,EAZApmE,EAAQk7K,MAcR,SAAep+E,GAGd,IAFA,IAAI12B,EAAM,EACNg1G,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACrBt6K,EAAI,EAAGA,EAAIg8F,EAAO/7F,OAAQD,IAAK,CACvC,IAAI4R,EAAI+rE,SAASqe,EAAOA,EAAO/7F,OAAS,EAAID,IAC5CslE,GAAOg1G,EAAQt6K,EAAIs6K,EAAQr6K,QAAU2R,CACtC,CACA,OAAQ,GAAK0zD,EAAM,IAAM,EAC1B,+BC1BAlnE,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAETU,EAAQm7K,QAAUn7K,EAAQg7K,QAAUh7K,EAAQi7K,MAAQj7K,EAAQ66K,MAAQ76K,EAAQs6K,SAAMr7K,EAElF,IAEIy7K,EAAQ9L,EAFD1tK,EAAQ,OAMfm6K,EAAQzM,EAFA1tK,EAAQ,OAMhBo6K,EAAQ1M,EAFA1tK,EAAQ,OAMhBq6K,EAAQ3M,EAFA1tK,EAAQ,OAMhBs6K,EAAS5M,EAFD1tK,EAAQ,OAIpB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAE9F3lI,EAAQs6K,IAAMI,EAAM56F,QACpB9/E,EAAQ66K,MAAQQ,EAAMv7F,QACtB9/E,EAAQi7K,MAAQK,EAAMx7F,QACtB9/E,EAAQg7K,QAAUO,EAAMz7F,QACxB9/E,EAAQm7K,QAAUK,EAAO17F,qCC/BzB5gF,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQy7K,aAAUx8K,EAElB,IAMgC0mI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAaxB,IAAIu6K,EAAU,SAAU5J,GAGvB,SAAS4J,EAAQn1K,EAAMzE,IAVxB,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAM25K,GAEsB,IAAxCn1K,EAAK80J,OAAO,0BACf90J,EAAO,IAAMA,EAAO,KAGrB,IAAIw6G,EAfN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAejOuxK,CAA2BjwK,MAAO25K,EAAQxzF,WAAa/oF,OAAO4vI,eAAe2sC,IAAUj7K,KAAKsB,KAAMwE,EAAKuhF,cAAehmF,IAGlI,OADAi/G,EAAMnqG,KAAOmqG,EAAMj/G,QAAQ8U,MAAQmqG,EAAMnqG,KAAKhV,QAAQ,SAAU,IACzDm/G,CACR,CAoDA,OArED,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAUsJ,EAAS5J,GAenBR,EAAaoK,EAAS,CAAC,CACtBp7K,IAAK,QACLf,MAAO,WACN,OAA+D,IAAxDwC,KAAKwE,KAAK80J,OAAO,iCACzB,GACE,CACF/6J,IAAK,SACLf,MAAO,WAGN,IAFA,IAAI4pF,EAAS,GACTsnF,EAAY1uK,KAAK45K,eACZ56K,EAAI,EAAGA,EAAIgB,KAAKwE,KAAKvF,OAAQD,IACrCooF,EAAOx3E,KAAK8+J,EAAU1uK,KAAKwE,KAAKq2E,OAAO77E,KAEnCA,IAAMgB,KAAKwE,KAAKvF,OAAS,GAC5BmoF,EAAOx3E,KAAK,KAGd,MAAO,CACNiF,KAAM7U,KAAK6U,KACXrQ,KAAM4iF,EAAO53E,KAAK,IAEpB,GACE,CACFjR,IAAK,eACLf,MAAO,WACN,MAAO,CACN,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,IAAK,YACL,EAAK,YACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,EAAK,aACL,EAAK,aACL,EAAK,aACL,EAAK,aAEP,KAGMm8K,CACR,CAnEc,GATkB91C,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IA4E3E7lD,SAEZ9/E,EAAQy7K,QAAUA,+BCzFlBv8K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAIu0K,EAAQ3yK,EAAQ,MAEhBwyK,EAASxyK,EAAQ,MAEjBy6K,EAAWz6K,EAAQ,MAEnBk5K,EAAOl5K,EAAQ,MAEf45K,EAAO55K,EAAQ,MAEf06K,EAAc16K,EAAQ,MAEtB26K,EAAW36K,EAAQ,MAEnB46K,EAAkB56K,EAAQ,MAE9BlB,EAAAA,QAAkB,CACjB41K,OAAQ/B,EAAM+B,OACdhE,QAAS8B,EAAO9B,QAASgC,SAAUF,EAAOE,SAAUI,SAAUN,EAAOM,SAAUG,SAAUT,EAAOS,SAChGoD,MAAOoE,EAASpE,MAAOS,KAAM2D,EAAS3D,KAAMF,KAAM6D,EAAS7D,KAAMF,KAAM+D,EAAS/D,KAAMK,IAAK0D,EAAS1D,IAAKM,KAAMoD,EAASpD,KACxH4B,MAAOC,EAAKD,MACZT,IAAKU,EAAKV,IACVY,IAAKQ,EAAKR,IAAKO,MAAOC,EAAKD,MAAOI,MAAOH,EAAKG,MAAOD,QAASF,EAAKE,QAASG,QAASL,EAAKK,QAC1FY,WAAYH,EAAYG,WACxBN,QAASI,EAASJ,QAClBhC,eAAgBqC,EAAgBrC,6CC7BjCv6K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQ+7K,gBAAa98K,EAErB,IAMgC0mI,EAN5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEfu0B,EAAYvwK,EAAQ,MAaxB,IAAI66K,EAAa,SAAUlK,GAG1B,SAASkK,EAAWz1K,EAAMzE,IAV3B,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAWtJgxK,CAAgBtvK,KAAMi6K,GAEtB,IAAIj7D,EAXN,SAAoC/9B,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAWjOuxK,CAA2BjwK,MAAOi6K,EAAW9zF,WAAa/oF,OAAO4vI,eAAeitC,IAAav7K,KAAKsB,KAAMwE,EAAMzE,IAG1H,OADAi/G,EAAMhkB,OAASre,SAASn4E,EAAM,IACvBw6G,CACR,CAqCA,OAlDD,SAAmBmxD,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAI5eC,CAAU4J,EAAYlK,GAWtBR,EAAa0K,EAAY,CAAC,CACzB17K,IAAK,SACLf,MAAO,WAMN,IALA,IAAIw3F,EAAIh1F,KAAKg7F,OACT5T,EAAS,IAILtE,MAAMkS,IAAW,GAALA,GACfA,EAAI,IAAM,GAEb5N,EAAS,QAAUA,EACnB4N,GAAKA,EAAI,GAAK,IAGd5N,EAAS,MAAQA,EACjB4N,GAAKA,EAAI,GAAK,GAOhB,MAAO,CACNxwF,KAHD4iF,EAASA,EAAOj3E,MAAM,GAAI,GAIzB0E,KAAM7U,KAAK6U,KAEb,GACE,CACFtW,IAAK,QACLf,MAAO,WACN,OAAOwC,KAAKg7F,QAAU,GAAKh7F,KAAKg7F,QAAU,MAC3C,KAGMi/E,CACR,CAhDiB,GATep2C,EAFO8rC,IAEc9rC,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,IAyD3E7lD,SAEZ9/E,EAAQ+7K,WAAaA,6BCtErB78K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAMnB,IAAI8+B,EAAe,WAClB,SAASA,EAAazM,IALvB,SAAyB4B,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAMtJgxK,CAAgBtvK,KAAMk6K,GAEtBl6K,KAAKytK,IAAMA,CACZ,CAiCA,OA/BA8B,EAAa2K,EAAc,CAAC,CAC3B37K,IAAK,cACLf,MAAO,SAAqBgY,GAE3B,GAAe,0BAAXA,EAAEpQ,KAOL,MAAMoQ,EANN,GAAIxV,KAAKytK,IAAIlhD,SAASgiD,QAAUvuK,KAAKytK,IAAIuB,UAAUT,MAGlD,MAAM/4J,EAAE/L,QAFRzJ,KAAKytK,IAAIlhD,SAASgiD,OAAM,GAQ1BvuK,KAAKytK,IAAIryC,OAAS,WAAa,CAChC,GACE,CACF78H,IAAK,kBACLf,MAAO,SAAyB28K,GAC/B,IACC,IAAI/yF,EAAS+yF,EAAKr1K,WAAM3H,EAAW4H,WAEnC,OADA/E,KAAKytK,IAAIlhD,SAASgiD,OAAM,GACjBnnF,CACR,CAAE,MAAO5xE,GAGR,OAFAxV,KAAKo6K,YAAY5kK,GAEVxV,KAAKytK,GACb,CACD,KAGMyM,CACR,CAvCmB,GAyCnBh8K,EAAAA,QAAkBg8K,6BC/ClB,SAAS5K,EAAgBD,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAExJ,SAAS2xK,EAA2BhvF,EAAMviF,GAAQ,IAAKuiF,EAAQ,MAAM,IAAI+uF,eAAe,6DAAgE,OAAOtxK,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BuiF,EAAPviF,CAAa,CAE/O,SAAS2xK,EAAUF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9xK,UAAU,kEAAoE8xK,GAAeD,EAAS3xK,UAAYpB,OAAOkpF,OAAO8pF,GAAcA,EAAW5xK,UAAW,CAAEgJ,YAAa,CAAEhK,MAAO2yK,EAAU9tF,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe8tF,IAAYhzK,OAAO8oF,eAAiB9oF,OAAO8oF,eAAeiqF,EAAUC,GAAcD,EAAShqF,UAAYiqF,EAAY,CAR7ehzK,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IASR,IAAIgxK,EAAwB,WAG3B,SAASA,EAAsB6L,EAAWz6K,GACzC0vK,EAAgBtvK,KAAMwuK,GAEtB,IAAIxvD,EAAQixD,EAA2BjwK,MAAOwuK,EAAsBroF,WAAa/oF,OAAO4vI,eAAewhC,IAAwB9vK,KAAKsB,OAQpI,OANAg/G,EAAM55G,KAAO,wBAEb45G,EAAMq7D,UAAYA,EAClBr7D,EAAMp/G,MAAQA,EAEdo/G,EAAMv1G,QAAU,IAAMu1G,EAAMp/G,MAAQ,8BAAgCo/G,EAAMq7D,UACnEr7D,CACR,CAEA,OAhBAqxD,EAAU7B,EAiBT9kK,OADM8kK,CACR,CAlB4B,GAoBxB8L,EAA0B,WAG7B,SAASA,IACRhL,EAAgBtvK,KAAMs6K,GAEtB,IAAIzC,EAAS5H,EAA2BjwK,MAAOs6K,EAAwBn0F,WAAa/oF,OAAO4vI,eAAestC,IAA0B57K,KAAKsB,OAIzI,OAFA63K,EAAOzyK,KAAO,0BACdyyK,EAAOpuK,QAAU,kCACVouK,CACR,CAEA,OAZAxH,EAAUiK,EAaT5wK,OADM4wK,CACR,CAd8B,GAgB1BvL,EAAqB,WAGxB,SAASA,IACRO,EAAgBtvK,KAAM+uK,GAEtB,IAAIwL,EAAStK,EAA2BjwK,MAAO+uK,EAAmB5oF,WAAa/oF,OAAO4vI,eAAe+hC,IAAqBrwK,KAAKsB,OAI/H,OAFAu6K,EAAOn1K,KAAO,qBACdm1K,EAAO9wK,QAAU,2BACV8wK,CACR,CAEA,OAZAlK,EAAUtB,EAaTrlK,OADMqlK,CACR,CAdyB,GAgBzB7wK,EAAQswK,sBAAwBA,EAChCtwK,EAAQo8K,wBAA0BA,EAClCp8K,EAAQ6wK,mBAAqBA,6BChE7B3xK,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAAA,QAGA,SAAoB6B,GAOnB,OALAA,EAAQswG,UAAYtwG,EAAQswG,WAAatwG,EAAQm4H,OACjDn4H,EAAQwwG,aAAexwG,EAAQwwG,cAAgBxwG,EAAQm4H,OACvDn4H,EAAQuwG,YAAcvwG,EAAQuwG,aAAevwG,EAAQm4H,OACrDn4H,EAAQywG,WAAazwG,EAAQywG,YAAczwG,EAAQm4H,OAE5Cn4H,CACR,+BCdA3C,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAEI2vK,EAAuBL,EAFD1tK,EAAQ,MAM9BkuK,EAAaR,EAFD1tK,EAAQ,OAIxB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CA0B9F3lI,EAAAA,QAxBA,SAA+BsI,GAC9B,IAAIzG,EAAU,CAAC,EACf,IAAK,IAAIorH,KAAYmiD,EAAWtvF,QAC3BsvF,EAAWtvF,QAAQv/E,eAAe0sH,KAEjC3kH,EAAQkN,aAAa,aAAey3G,EAAS5tC,iBAChDx9E,EAAQorH,GAAY3kH,EAAQmM,aAAa,aAAew4G,EAAS5tC,gBAI9D/2E,EAAQkN,aAAa,QAAUy3G,EAAS5tC,iBAC3Cx9E,EAAQorH,GAAY3kH,EAAQmM,aAAa,QAAUw4G,EAAS5tC,iBAU/D,OALAx9E,EAAe,MAAIyG,EAAQmM,aAAa,oBAAsBnM,EAAQmM,aAAa,cAGnF5S,GAAU,EAAIotK,EAAqBnvF,SAASj+E,EAG7C,+BCpCA3C,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAIomI,EAA4B,oBAAX9iD,QAAoD,kBAApBA,OAAOC,SAAwB,SAAU8iD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAX/iD,QAAyB+iD,EAAIr8H,cAAgBs5E,QAAU+iD,IAAQ/iD,OAAOtiF,UAAY,gBAAkBqlI,CAAK,EAMvQ22C,EAA0B1N,EAFD1tK,EAAQ,OAMjCq7K,EAAc3N,EAFD1tK,EAAQ,OAIrBiuK,EAAcjuK,EAAQ,MAE1B,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAa9F,SAAS62C,EAAoBl0K,GAE5B,GAAuB,kBAAZA,EACV,OA8CF,SAAuCs/E,GACtC,IAAI60F,EAAWl7F,SAASsD,iBAAiB+C,GACzC,GAAwB,IAApB60F,EAAS17K,OACZ,OAGA,IADA,IAAI27K,EAAc,GACT57K,EAAI,EAAGA,EAAI27K,EAAS17K,OAAQD,IACpC47K,EAAYhrK,KAAK8qK,EAAoBC,EAAS37K,KAE/C,OAAO47K,CAET,CAzDSC,CAA8Br0K,GAGjC,GAAIzH,MAAM8rF,QAAQrkF,GAAU,CAE/B,IADA,IAAIo0K,EAAc,GACT57K,EAAI,EAAGA,EAAIwH,EAAQvH,OAAQD,IACnC47K,EAAYhrK,KAAK8qK,EAAoBl0K,EAAQxH,KAE9C,OAAO47K,CACR,CAEK,GAAiC,qBAAtBE,mBAAqCt0K,aAAmBu0K,iBACtE,OA+CJ,SAAmCC,GAClC,IAAI5/D,EAAS37B,SAASrsE,cAAc,UACpC,MAAO,CACN5M,QAAS40G,EACTr7G,SAAS,EAAIy6K,EAAwBx8F,SAASg9F,GAC9CrM,SAAU8L,EAAYz8F,QAAQ26C,eAC9Bi2C,YAAa,WACZoM,EAAWpnK,aAAa,MAAOwnG,EAAOI,YACvC,EAEF,CAzDWy/D,CAA0Bz0K,GAG7B,GAAIA,GAAWA,EAAQsJ,UAA+C,QAAnCtJ,EAAQsJ,SAASytE,eAAiD,qBAAf29F,YAA8B10K,aAAmB00K,WAC1I,MAAO,CACN10K,QAASA,EACTzG,SAAS,EAAIy6K,EAAwBx8F,SAASx3E,GAC9CmoK,SAAU8L,EAAYz8F,QAAQm9F,aAI3B,GAAiC,qBAAtBL,mBAAqCt0K,aAAmBs0K,kBACtE,MAAO,CACNt0K,QAASA,EACTzG,SAAS,EAAIy6K,EAAwBx8F,SAASx3E,GAC9CmoK,SAAU8L,EAAYz8F,QAAQ26C,gBAI3B,GAAInyH,GAAWA,EAAQ80G,WAC1B,MAAO,CACN90G,QAASA,EACTmoK,SAAU8L,EAAYz8F,QAAQ26C,gBAEzB,GAAInyH,GAAiF,YAAlD,qBAAZA,EAA0B,YAAco9H,EAAQp9H,MAA2BA,EAAQsJ,SAChH,MAAO,CACNtJ,QAASA,EACTmoK,SAAU8L,EAAYz8F,QAAQo9F,gBAG/B,MAAM,IAAI/N,EAAYiN,uBAE7B,CA2BAp8K,EAAAA,QAAkBw8K,6BCzGlBt9K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAAA,QAKA,SAA4BwwK,GAC3B,IAAI2M,EAAkB,GActB,OAbA,SAASC,EAAUlN,GAClB,GAAIrvK,MAAM8rF,QAAQujF,GACjB,IAAK,IAAIpvK,EAAI,EAAGA,EAAIovK,EAAQnvK,OAAQD,IACnCs8K,EAAUlN,EAAQpvK,SAGnBovK,EAAQv5J,KAAOu5J,EAAQv5J,MAAQ,GAC/Bu5J,EAAQ5pK,KAAO4pK,EAAQ5pK,MAAQ,GAC/B62K,EAAgBzrK,KAAKw+J,EAEvB,CACAkN,CAAU5M,GAEH2M,CACR,6BCxBAj+K,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAGT,IAAI2J,EAAW/J,OAAOe,QAAU,SAAUC,GAAU,IAAK,IAAIY,EAAI,EAAGA,EAAI+F,UAAU9F,OAAQD,IAAK,CAAE,IAAIX,EAAS0G,UAAU/F,GAAI,IAAK,IAAIT,KAAOF,EAAcjB,OAAOoB,UAAUC,eAAeC,KAAKL,EAAQE,KAAQH,EAAOG,GAAOF,EAAOE,GAAU,CAAE,OAAOH,CAAQ,EAE/PF,EAAAA,QAAkB,SAAUgW,EAAKqnK,GAC/B,OAAOp0K,EAAS,CAAC,EAAG+M,EAAKqnK,EAC3B,4BCRAn+K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAAA,QAIA,SAA4B6B,GAC3B,IAAIy7K,EAAa,CAAC,QAAS,SAAU,aAAc,WAAY,SAAU,YAAa,eAAgB,aAAc,eAEpH,IAAK,IAAIC,KAAaD,EACjBA,EAAW/8K,eAAeg9K,IAEK,kBAAvB17K,EADX07K,EAAYD,EAAWC,MAEtB17K,EAAQ07K,GAAa9+F,SAAS58E,EAAQ07K,GAAY,KAKd,kBAA5B17K,EAAsB,eAChCA,EAAsB,aAA+B,SAA3BA,EAAsB,cAGjD,OAAOA,CACR,6BCxBA3C,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAER,IAAIk+K,EAAW,CACdrzF,MAAO,EACPC,OAAQ,IACRygB,OAAQ,OACR8sE,cAAc,EACd8F,YAAa,GACbrhD,KAAM,YACNzlH,UAAM1X,EACN6zG,UAAW,SACX4qE,aAAc,SACdnH,WAAY,EACZzkE,SAAU,GACVpD,WAAY,UACZivE,UAAW,UACX3jD,OAAQ,GACR7nB,eAAWlzG,EACXozG,kBAAcpzG,EACdqzG,gBAAYrzG,EACZmzG,iBAAanzG,EACboxK,MAAO,WAAkB,GAG1BrwK,EAAAA,QAAkBw9K,+BCzBlBt+K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEf0gC,EAAS18K,EAAQ,MAEjB2tK,GAI4BlpC,EAJKi4C,IAIgBj4C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFk4C,EAAU38K,EAAQ,MAMtB,IAAIu5H,EAAiB,WACpB,SAASA,EAAevd,EAAQszD,EAAW3uK,IAH5C,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAItJgxK,CAAgBtvK,KAAM24H,GAEtB34H,KAAKo7G,OAASA,EACdp7G,KAAK0uK,UAAYA,EACjB1uK,KAAKD,QAAUA,CAChB,CAiIA,OA/HAwvK,EAAa52C,EAAgB,CAAC,CAC7Bp6H,IAAK,SACLf,MAAO,WAEN,IAAKwC,KAAKo7G,OAAOE,WAChB,MAAM,IAAI5xG,MAAM,wCAGjB1J,KAAKg8K,gBACL,IAAK,IAAIh9K,EAAI,EAAGA,EAAIgB,KAAK0uK,UAAUzvK,OAAQD,IAAK,CAC/C,IAAIi9K,GAAkB,EAAIlP,EAAQ/uF,SAASh+E,KAAKD,QAASC,KAAK0uK,UAAU1vK,GAAGe,SAE3EC,KAAKk8K,kBAAkBD,EAAiBj8K,KAAK0uK,UAAU1vK,IACvDgB,KAAKm8K,eAAeF,EAAiBj8K,KAAK0uK,UAAU1vK,IAEpDgB,KAAKo8K,kBAAkBp8K,KAAK0uK,UAAU1vK,GACvC,CAEAgB,KAAKq8K,eACN,GACE,CACF99K,IAAK,gBACLf,MAAO,WAEN,IAAI69G,EAAMr7G,KAAKo7G,OAAOE,WAAW,MAEjCD,EAAI+d,QAEJ,EAAI2iD,EAAQO,6BAA6Bt8K,KAAK0uK,UAAW1uK,KAAKD,QAASs7G,GACvE,IAAIkhE,GAAa,EAAIR,EAAQS,0BAA0Bx8K,KAAK0uK,WACxD+N,GAAY,EAAIV,EAAQW,6BAA6B18K,KAAK0uK,WAE9D1uK,KAAKo7G,OAAO/yB,MAAQk0F,EAAav8K,KAAKD,QAAQywG,WAAaxwG,KAAKD,QAAQuwG,YAExEtwG,KAAKo7G,OAAO9yB,OAASm0F,EAGrBphE,EAAIshE,UAAU,EAAG,EAAG38K,KAAKo7G,OAAO/yB,MAAOroF,KAAKo7G,OAAO9yB,QAC/CtoF,KAAKD,QAAQ6sG,aAChByO,EAAIM,UAAY37G,KAAKD,QAAQ6sG,WAC7ByO,EAAIO,SAAS,EAAG,EAAG57G,KAAKo7G,OAAO/yB,MAAOroF,KAAKo7G,OAAO9yB,SAGnD+yB,EAAI0d,UAAU/4H,KAAKD,QAAQywG,WAAY,EACxC,GACE,CACFjyG,IAAK,oBACLf,MAAO,SAA2BuC,EAAS68K,GAE1C,IAKIC,EALAxhE,EAAMr7G,KAAKo7G,OAAOE,WAAW,MAE7BwhE,EAASF,EAASp4K,KAKrBq4K,EAD2B,OAAxB98K,EAAQ67K,aACH77K,EAAQswG,UAAYtwG,EAAQiwG,SAAWjwG,EAAQ00K,WAE/C10K,EAAQswG,UAGjBgL,EAAIM,UAAY57G,EAAQ87K,UAExB,IAAK,IAAI19F,EAAI,EAAGA,EAAI2+F,EAAO79K,OAAQk/E,IAAK,CACvC,IAAII,EAAIJ,EAAIp+E,EAAQsoF,MAAQu0F,EAASG,eAEnB,MAAdD,EAAO3+F,GACVk9B,EAAIO,SAASr9B,EAAGs+F,EAAO98K,EAAQsoF,MAAOtoF,EAAQuoF,QACpCw0F,EAAO3+F,IACjBk9B,EAAIO,SAASr9B,EAAGs+F,EAAO98K,EAAQsoF,MAAOtoF,EAAQuoF,OAASw0F,EAAO3+F,GAEhE,CACD,GACE,CACF5/E,IAAK,iBACLf,MAAO,SAAwBuC,EAAS68K,GAEvC,IAMKr+F,EAAGH,EANJi9B,EAAMr7G,KAAKo7G,OAAOE,WAAW,MAE7Bgf,EAAOv6H,EAAQ47K,YAAc,IAAM57K,EAAQiwG,SAAW,MAAQjwG,EAAQu6H,KAGtEv6H,EAAQ81K,eAIVz3F,EAD2B,OAAxBr+E,EAAQ67K,aACP77K,EAAQswG,UAAYtwG,EAAQiwG,SAAWjwG,EAAQ00K,WAE/C10K,EAAQuoF,OAASvoF,EAAQ00K,WAAa10K,EAAQswG,UAAYtwG,EAAQiwG,SAGvEqL,EAAIif,KAAOA,EAGc,QAArBv6H,EAAQixG,WAAuB4rE,EAASG,eAAiB,GAC5Dx+F,EAAI,EACJ88B,EAAIrK,UAAY,QACe,SAArBjxG,EAAQixG,WAClBzyB,EAAIq+F,EAASv0F,MAAQ,EACrBgzB,EAAIrK,UAAY,UAIfzyB,EAAIq+F,EAASv0F,MAAQ,EACrBgzB,EAAIrK,UAAY,UAGlBqK,EAAI0e,SAAS6iD,EAAS/nK,KAAM0pE,EAAGH,GAEjC,GACE,CACF7/E,IAAK,oBACLf,MAAO,SAA2Bo/K,GACvB58K,KAAKo7G,OAAOE,WAAW,MAE7Byd,UAAU6jD,EAASv0F,MAAO,EAC/B,GACE,CACF9pF,IAAK,gBACLf,MAAO,WAEIwC,KAAKo7G,OAAOE,WAAW,MAE7Bie,SACL,KAGMZ,CACR,CAzIqB,GA2IrBz6H,EAAAA,QAAkBy6H,+BC3JlBv7H,OAAOgY,eAAelX,EAAS,aAAc,CAC3CV,OAAO,IAGT,IAEIw/K,EAAWlQ,EAFD1tK,EAAQ,OAMlB69K,EAAQnQ,EAFD1tK,EAAQ,OAMf89K,EAAWpQ,EAFD1tK,EAAQ,OAItB,SAAS0tK,EAAuBjpC,GAAO,OAAOA,GAAOA,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,EAAO,CAE9F3lI,EAAAA,QAAkB,CAAEy6H,eAAgBqkD,EAASh/F,QAASm9F,YAAa8B,EAAMj/F,QAASo9F,eAAgB8B,EAASl/F,oCClB3G5gF,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAAI+xK,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAInB,IAAIggC,EAAiB,WACpB,SAASA,EAAen+K,EAAQyxK,EAAW3uK,IAH5C,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAItJgxK,CAAgBtvK,KAAMo7K,GAEtBp7K,KAAK/C,OAASA,EACd+C,KAAK0uK,UAAYA,EACjB1uK,KAAKD,QAAUA,CAChB,CASA,OAPAwvK,EAAa6L,EAAgB,CAAC,CAC7B78K,IAAK,SACLf,MAAO,WACNwC,KAAK/C,OAAOyxK,UAAY1uK,KAAK0uK,SAC9B,KAGM0M,CACR,CAjBqB,GAmBrBl9K,EAAAA,QAAkBk9K,+BC3BlBh+K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAERU,EAAQs+K,yBAA2Bt+K,EAAQo+K,4BAA8Bp+K,EAAQi/K,kBAAoBj/K,EAAQk/K,kBAAoBl/K,EAAQw+K,iCAA8Bv/K,EAEvK,IAIgC0mI,EAJ5Bi4C,EAAS18K,EAAQ,MAEjB2tK,GAE4BlpC,EAFKi4C,IAEgBj4C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAEvF,SAASu5C,EAAkBR,EAAU78K,GACpC,OAAOA,EAAQuoF,QAAUvoF,EAAQ81K,cAAgB+G,EAAS/nK,KAAK5V,OAAS,EAAIc,EAAQiwG,SAAWjwG,EAAQ00K,WAAa,GAAK10K,EAAQswG,UAAYtwG,EAAQwwG,YACtJ,CAEA,SAAS4sE,EAAkBE,EAAWC,EAAcv9K,GACnD,GAAIA,EAAQ81K,cAAgByH,EAAeD,EAAW,CACrD,GAAyB,UAArBt9K,EAAQixG,UACX,OAAOvzB,KAAK8H,OAAO83F,EAAYC,GAAgB,GACzC,GAAyB,QAArBv9K,EAAQixG,UAClB,OAAO,EACD,GAAyB,SAArBjxG,EAAQixG,UAClB,OAAOvzB,KAAK8H,MAAM83F,EAAYC,EAEhC,CACA,OAAO,CACR,CA0CA,SAASC,EAAYz3F,EAAQ/lF,EAASyoF,GACrC,IAAI6yB,EAEJ,GAAI7yB,EACH6yB,EAAM7yB,MACA,IAAwB,qBAAb/I,SAKjB,OAAO,EAJP47B,EAAM57B,SAASrsE,cAAc,UAAUkoG,WAAW,KAKnD,CACAD,EAAIif,KAAOv6H,EAAQ47K,YAAc,IAAM57K,EAAQiwG,SAAW,MAAQjwG,EAAQu6H,KAG1E,IAAIkjD,EAAoBniE,EAAI4e,YAAYn0C,GACxC,OAAK03F,EAMMA,EAAkBn1F,MAFrB,CAIT,CAEAnqF,EAAQw+K,4BApCR,SAAqChO,GAEpC,IADA,IAAI+N,EAAY,EACPz9K,EAAI,EAAGA,EAAI0vK,EAAUzvK,OAAQD,IACjC0vK,EAAU1vK,GAAGspF,OAASm0F,IACzBA,EAAY/N,EAAU1vK,GAAGspF,QAG3B,OAAOm0F,CACR,EA6BAv+K,EAAQk/K,kBAAoBA,EAC5Bl/K,EAAQi/K,kBAAoBA,EAC5Bj/K,EAAQo+K,4BArER,SAAqC5N,EAAW+O,EAAgBj1F,GAC/D,IAAK,IAAIxpF,EAAI,EAAGA,EAAI0vK,EAAUzvK,OAAQD,IAAK,CAC1C,IAIIq+K,EAJAT,EAAWlO,EAAU1vK,GACrBe,GAAU,EAAIgtK,EAAQ/uF,SAASy/F,EAAgBb,EAAS78K,SAK3Ds9K,EADGt9K,EAAQ81K,aACC0H,EAAYX,EAAS/nK,KAAM9U,EAASyoF,GAEpC,EAGb,IAAI80F,EAAeV,EAASp4K,KAAKvF,OAASc,EAAQsoF,MAClDu0F,EAASv0F,MAAQ5K,KAAKwO,KAAKxO,KAAKC,IAAI2/F,EAAWC,IAE/CV,EAASt0F,OAAS80F,EAAkBR,EAAU78K,GAE9C68K,EAASG,eAAiBI,EAAkBE,EAAWC,EAAcv9K,EACtE,CACD,EAkDA7B,EAAQs+K,yBAhDR,SAAkC9N,GAEjC,IADA,IAAI6N,EAAa,EACRv9K,EAAI,EAAGA,EAAI0vK,EAAUzvK,OAAQD,IACrCu9K,GAAc7N,EAAU1vK,GAAGqpF,MAE5B,OAAOk0F,CACR,+BCxDAn/K,OAAOgY,eAAelX,EAAS,aAAc,CAC5CV,OAAO,IAGR,IAQgCqmI,EAR5B0rC,EAAe,WAAc,SAAS95B,EAAiBr3I,EAAQoxK,GAAS,IAAK,IAAIxwK,EAAI,EAAGA,EAAIwwK,EAAMvwK,OAAQD,IAAK,CAAE,IAAI82G,EAAa05D,EAAMxwK,GAAI82G,EAAWzzB,WAAayzB,EAAWzzB,aAAc,EAAOyzB,EAAWxzB,cAAe,EAAU,UAAWwzB,IAAYA,EAAWvzB,UAAW,GAAMnlF,OAAOgY,eAAehX,EAAQ03G,EAAWv3G,IAAKu3G,EAAa,CAAE,CAAE,OAAO,SAAUslC,EAAaq0B,EAAYC,GAAiJ,OAA9HD,GAAYh6B,EAAiB2F,EAAY58I,UAAWixK,GAAiBC,GAAaj6B,EAAiB2F,EAAas0B,GAAqBt0B,CAAa,CAAG,CAA7hB,GAEf0gC,EAAS18K,EAAQ,MAEjB2tK,GAI4BlpC,EAJKi4C,IAIgBj4C,EAAI9lD,WAAa8lD,EAAM,CAAE7lD,QAAS6lD,GAFnFk4C,EAAU38K,EAAQ,MAMtB,IAAIs+K,EAAQ,6BAERvC,EAAc,WACjB,SAASA,EAAYr/D,EAAK4yD,EAAW3uK,IALtC,SAAyBsvK,EAAUj0B,GAAe,KAAMi0B,aAAoBj0B,GAAgB,MAAM,IAAI98I,UAAU,oCAAwC,CAMtJgxK,CAAgBtvK,KAAMm7K,GAEtBn7K,KAAK87G,IAAMA,EACX97G,KAAK0uK,UAAYA,EACjB1uK,KAAKD,QAAUA,EACfC,KAAKy/E,SAAW1/E,EAAQ49K,aAAel+F,QACxC,CA6JA,OA3JA8vF,EAAa4L,EAAa,CAAC,CAC1B58K,IAAK,SACLf,MAAO,WACN,IAAIogL,EAAW59K,KAAKD,QAAQywG,WAE5BxwG,KAAK69K,aACL,IAAK,IAAI7+K,EAAI,EAAGA,EAAIgB,KAAK0uK,UAAUzvK,OAAQD,IAAK,CAC/C,IAAI49K,EAAW58K,KAAK0uK,UAAU1vK,GAC1Bi9K,GAAkB,EAAIlP,EAAQ/uF,SAASh+E,KAAKD,QAAS68K,EAAS78K,SAE9D+9K,EAAQ99K,KAAK+9K,YAAYH,EAAU3B,EAAgB5rE,UAAWrwG,KAAK87G,KAEvE97G,KAAKg+K,gBAAgBF,EAAO7B,GAE5Bj8K,KAAKi+K,eAAeH,EAAO7B,EAAiBW,GAC5C58K,KAAKk+K,YAAYJ,EAAO7B,EAAiBW,GAEzCgB,GAAYhB,EAASv0F,KACtB,CACD,GACE,CACF9pF,IAAK,aACLf,MAAO,WAEN,KAAOwC,KAAK87G,IAAIpwG,YACf1L,KAAK87G,IAAIjuG,YAAY7N,KAAK87G,IAAIpwG,aAG/B,EAAIqwK,EAAQO,6BAA6Bt8K,KAAK0uK,UAAW1uK,KAAKD,SAC9D,IAAIw8K,GAAa,EAAIR,EAAQS,0BAA0Bx8K,KAAK0uK,WACxD+N,GAAY,EAAIV,EAAQW,6BAA6B18K,KAAK0uK,WAE1DrmF,EAAQk0F,EAAav8K,KAAKD,QAAQywG,WAAaxwG,KAAKD,QAAQuwG,YAChEtwG,KAAKm+K,iBAAiB91F,EAAOo0F,GAEzBz8K,KAAKD,QAAQ6sG,YAChB5sG,KAAKo+K,SAAS,EAAG,EAAG/1F,EAAOo0F,EAAWz8K,KAAK87G,KAAKloG,aAAa,QAAS,QAAU5T,KAAKD,QAAQ6sG,WAAa,IAE5G,GACE,CACFruG,IAAK,iBACLf,MAAO,SAAwB0P,EAAQnN,EAAS68K,GAC/C,IAGIC,EAHAC,EAASF,EAASp4K,KAKrBq4K,EAD2B,OAAxB98K,EAAQ67K,aACH77K,EAAQiwG,SAAWjwG,EAAQ00K,WAE3B,EAKT,IAFA,IAAI4J,EAAW,EACX9/F,EAAI,EACCJ,EAAI,EAAGA,EAAI2+F,EAAO79K,OAAQk/E,IAClCI,EAAIJ,EAAIp+E,EAAQsoF,MAAQu0F,EAASG,eAEf,MAAdD,EAAO3+F,GACVkgG,IACUA,EAAW,IACrBr+K,KAAKo+K,SAAS7/F,EAAIx+E,EAAQsoF,MAAQg2F,EAAUxB,EAAO98K,EAAQsoF,MAAQg2F,EAAUt+K,EAAQuoF,OAAQp7E,GAC7FmxK,EAAW,GAKTA,EAAW,GACdr+K,KAAKo+K,SAAS7/F,EAAIx+E,EAAQsoF,OAASg2F,EAAW,GAAIxB,EAAO98K,EAAQsoF,MAAQg2F,EAAUt+K,EAAQuoF,OAAQp7E,EAErG,GACE,CACF3O,IAAK,cACLf,MAAO,SAAqB0P,EAAQnN,EAAS68K,GAC5C,IAIKr+F,EAAGH,EAJJkgG,EAAWt+K,KAAKy/E,SAASn8E,gBAAgBo6K,EAAO,QAGhD39K,EAAQ81K,eAGXyI,EAAS1qK,aAAa,QAAS,QAAU7T,EAAQ47K,YAAc,IAAM57K,EAAQiwG,SAAW,MAAQjwG,EAAQu6H,MAGvGl8C,EAD2B,OAAxBr+E,EAAQ67K,aACP77K,EAAQiwG,SAAWjwG,EAAQ00K,WAE3B10K,EAAQuoF,OAASvoF,EAAQ00K,WAAa10K,EAAQiwG,SAI1B,QAArBjwG,EAAQixG,WAAuB4rE,EAASG,eAAiB,GAC5Dx+F,EAAI,EACJ+/F,EAAS1qK,aAAa,cAAe,UACN,SAArB7T,EAAQixG,WAClBzyB,EAAIq+F,EAASv0F,MAAQ,EACrBi2F,EAAS1qK,aAAa,cAAe,SAIpC2qE,EAAIq+F,EAASv0F,MAAQ,EACrBi2F,EAAS1qK,aAAa,cAAe,WAGvC0qK,EAAS1qK,aAAa,IAAK2qE,GAC3B+/F,EAAS1qK,aAAa,IAAKwqE,GAE3BkgG,EAASj9K,YAAYrB,KAAKy/E,SAASv6E,eAAe03K,EAAS/nK,OAE3D3H,EAAO7L,YAAYi9K,GAErB,GACE,CACF//K,IAAK,mBACLf,MAAO,SAA0B6qF,EAAOC,GACvC,IAAIwzB,EAAM97G,KAAK87G,IACfA,EAAIloG,aAAa,QAASy0E,EAAQ,MAClCyzB,EAAIloG,aAAa,SAAU00E,EAAS,MACpCwzB,EAAIloG,aAAa,IAAK,OACtBkoG,EAAIloG,aAAa,IAAK,OACtBkoG,EAAIloG,aAAa,UAAW,OAASy0E,EAAQ,IAAMC,GAEnDwzB,EAAIloG,aAAa,QAAS8pK,GAC1B5hE,EAAIloG,aAAa,UAAW,OAE5BkoG,EAAIloG,aAAa,QAAS,4BAC3B,GACE,CACFrV,IAAK,cACLf,MAAO,SAAqB+gF,EAAGH,EAAGlxE,GACjC,IAAI4wK,EAAQ99K,KAAKy/E,SAASn8E,gBAAgBo6K,EAAO,KAKjD,OAJAI,EAAMlqK,aAAa,YAAa,aAAe2qE,EAAI,KAAOH,EAAI,KAE9DlxE,EAAO7L,YAAYy8K,GAEZA,CACR,GACE,CACFv/K,IAAK,kBACLf,MAAO,SAAyBsgL,EAAO/9K,GACtC+9K,EAAMlqK,aAAa,QAAS,QAAU7T,EAAQ87K,UAAY,IAC3D,GACE,CACFt9K,IAAK,WACLf,MAAO,SAAkB+gF,EAAGH,EAAGiK,EAAOC,EAAQp7E,GAC7C,IAAIioD,EAAOn1D,KAAKy/E,SAASn8E,gBAAgBo6K,EAAO,QAShD,OAPAvoH,EAAKvhD,aAAa,IAAK2qE,GACvBppB,EAAKvhD,aAAa,IAAKwqE,GACvBjpB,EAAKvhD,aAAa,QAASy0E,GAC3BlzB,EAAKvhD,aAAa,SAAU00E,GAE5Bp7E,EAAO7L,YAAY8zD,GAEZA,CACR,KAGMgmH,CACR,CAtKkB,GAwKlBj9K,EAAAA,QAAkBi9K,sbC9JdoD,EAAK35F,WAAY45F,EAAM9yF,YAAa+yF,EAAMC,WAE1CC,EAAO,IAAIJ,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAgB,EAAG,EAAoB,IAE1IK,EAAO,IAAIL,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAiB,EAAG,IAEjIM,EAAO,IAAIN,EAAG,CAAC,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,KAE7EO,EAAO,SAAUC,EAAIl+K,GAErB,IADA,IAAIs9E,EAAI,IAAIqgG,EAAI,IACPx/K,EAAI,EAAGA,EAAI,KAAMA,EACtBm/E,EAAEn/E,GAAK6B,GAAS,GAAKk+K,EAAG//K,EAAI,GAGhC,IAAIqhF,EAAI,IAAIo+F,EAAItgG,EAAE,KAClB,IAASn/E,EAAI,EAAGA,EAAI,KAAMA,EACtB,IAAK,IAAIigF,EAAId,EAAEn/E,GAAIigF,EAAId,EAAEn/E,EAAI,KAAMigF,EAC/BoB,EAAEpB,GAAOA,EAAId,EAAEn/E,IAAO,EAAKA,EAGnC,MAAO,CAAEm/E,EAAGA,EAAGkC,EAAGA,EACtB,EACImR,EAAKstF,EAAKH,EAAM,GAAIK,EAAKxtF,EAAGrT,EAAG8gG,EAAQztF,EAAGnR,EAE9C2+F,EAAG,IAAM,IAAKC,EAAM,KAAO,GAI3B,IAHA,IAAIngF,EAAKggF,EAAKF,EAAM,GAAIM,EAAKpgF,EAAG3gB,EAAGghG,EAAQrgF,EAAGze,EAE1C++F,EAAM,IAAIZ,EAAI,OACTx/K,EAAI,EAAGA,EAAI,QAASA,EAAG,CAE5B,IAAIu/E,GAAU,MAAJv/E,IAAe,GAAW,MAAJA,IAAe,EAE/Cu/E,GAAU,OADVA,GAAU,MAAJA,IAAe,GAAW,MAAJA,IAAe,KACtB,GAAW,KAAJA,IAAe,EAC3C6gG,EAAIpgL,KAAY,MAAJu/E,IAAe,GAAW,IAAJA,IAAe,IAAO,CAC5D,CAIA,IAAI8gG,EAAQ,SAAUvwD,EAAIwwD,EAAIj/F,GAO1B,IANA,IAAIzF,EAAIk0C,EAAG7vH,OAEPD,EAAI,EAEJyB,EAAI,IAAI+9K,EAAIc,GAETtgL,EAAI47E,IAAK57E,EACR8vH,EAAG9vH,MACDyB,EAAEquH,EAAG9vH,GAAK,GAGpB,IAIIugL,EAJAj0I,EAAK,IAAIkzI,EAAIc,GACjB,IAAKtgL,EAAI,EAAGA,EAAIsgL,IAAMtgL,EAClBssC,EAAGtsC,GAAMssC,EAAGtsC,EAAI,GAAKyB,EAAEzB,EAAI,IAAO,EAGtC,GAAIqhF,EAAG,CAEHk/F,EAAK,IAAIf,EAAI,GAAKc,GAElB,IAAIE,EAAM,GAAKF,EACf,IAAKtgL,EAAI,EAAGA,EAAI47E,IAAK57E,EAEjB,GAAI8vH,EAAG9vH,GAQH,IANA,IAAIygL,EAAMzgL,GAAK,EAAK8vH,EAAG9vH,GAEnB0gL,EAAMJ,EAAKxwD,EAAG9vH,GAEd6R,EAAIy6B,EAAGwjF,EAAG9vH,GAAK,MAAQ0gL,EAElB5iG,EAAIjsE,GAAM,GAAK6uK,GAAO,EAAI7uK,GAAKisE,IAAKjsE,EAEzC0uK,EAAGH,EAAIvuK,IAAM2uK,GAAOC,CAIpC,MAGI,IADAF,EAAK,IAAIf,EAAI5jG,GACR57E,EAAI,EAAGA,EAAI47E,IAAK57E,EACb8vH,EAAG9vH,KACHugL,EAAGvgL,GAAKogL,EAAI9zI,EAAGwjF,EAAG9vH,GAAK,OAAU,GAAK8vH,EAAG9vH,IAIrD,OAAOugL,CACX,EAEII,EAAM,IAAIpB,EAAG,KACjB,IAASv/K,EAAI,EAAGA,EAAI,MAAOA,EACvB2gL,EAAI3gL,GAAK,EACb,IAASA,EAAI,IAAKA,EAAI,MAAOA,EACzB2gL,EAAI3gL,GAAK,EACb,IAASA,EAAI,IAAKA,EAAI,MAAOA,EACzB2gL,EAAI3gL,GAAK,EACb,IAASA,EAAI,IAAKA,EAAI,MAAOA,EACzB2gL,EAAI3gL,GAAK,EAEb,IAAI4gL,EAAM,IAAIrB,EAAG,IACjB,IAASv/K,EAAI,EAAGA,EAAI,KAAMA,EACtB4gL,EAAI5gL,GAAK,EAEb,IAAI6gL,EAAoBR,EAAKM,EAAK,EAAG,GAAIG,EAAqBT,EAAKM,EAAK,EAAG,GAEvEI,EAAoBV,EAAKO,EAAK,EAAG,GAAII,EAAqBX,EAAKO,EAAK,EAAG,GAEvEliG,EAAM,SAAUxC,GAEhB,IADA,IAAI4B,EAAI5B,EAAE,GACDl8E,EAAI,EAAGA,EAAIk8E,EAAEj8E,SAAUD,EACxBk8E,EAAEl8E,GAAK89E,IACPA,EAAI5B,EAAEl8E,IAEd,OAAO89E,CACX,EAEImjG,EAAO,SAAU/hG,EAAGh3E,EAAG41E,GACvB,IAAIe,EAAK32E,EAAI,EAAK,EAClB,OAASg3E,EAAEL,GAAMK,EAAEL,EAAI,IAAM,KAAY,EAAJ32E,GAAU41E,CACnD,EAEIojG,EAAS,SAAUhiG,EAAGh3E,GACtB,IAAI22E,EAAK32E,EAAI,EAAK,EAClB,OAASg3E,EAAEL,GAAMK,EAAEL,EAAI,IAAM,EAAMK,EAAEL,EAAI,IAAM,MAAa,EAAJ32E,EAC5D,EAEIi5K,EAAO,SAAUj5K,GAAK,OAASA,EAAI,GAAK,EAAK,CAAG,EAGhDk5K,EAAM,SAAUvvK,EAAG+pE,EAAGplE,GAMtB,OALS,MAALolE,GAAaA,EAAI,KACjBA,EAAI,IACC,MAALplE,GAAaA,EAAI3E,EAAE5R,UACnBuW,EAAI3E,EAAE5R,QAEH,IAAIs/K,EAAG1tK,EAAEwvK,SAASzlG,EAAGplE,GAChC,EAsBI8qK,EAAK,CACL,iBACA,qBACA,yBACA,mBACA,kBACA,oBAAoB,CAEpB,cACA,qBACA,uBACA,8BACA,oBACA,mBACA,oBAIAj8C,EAAM,SAAUk8C,EAAKh+K,EAAKi+K,GAC1B,IAAIhrK,EAAI,IAAI9L,MAAMnH,GAAO+9K,EAAGC,IAI5B,GAHA/qK,EAAEhM,KAAO+2K,EACL72K,MAAMC,mBACND,MAAMC,kBAAkB6L,EAAG6uH,IAC1Bm8C,EACD,MAAMhrK,EACV,OAAOA,CACX,EAEIirK,EAAQ,SAAUC,EAAKC,EAAI1xK,EAAK2xK,GAEhC,IAAIC,EAAKH,EAAIzhL,OAAQ6hL,EAAKF,EAAOA,EAAK3hL,OAAS,EAC/C,IAAK4hL,GAAMF,EAAGzmG,IAAMymG,EAAGlgL,EACnB,OAAOwO,GAAO,IAAIsvK,EAAG,GACzB,IAAIwC,GAAS9xK,EAET+xK,EAASD,GAAiB,GAARJ,EAAG3hL,EAErBiiL,EAAON,EAAG3hL,EAEV+hL,IACA9xK,EAAM,IAAIsvK,EAAQ,EAALsC,IAEjB,IAAIK,EAAO,SAAUzgL,GACjB,IAAI0gL,EAAKlyK,EAAIhQ,OAEb,GAAIwB,EAAI0gL,EAAI,CAER,IAAIC,EAAO,IAAI7C,EAAG9gG,KAAKC,IAAS,EAALyjG,EAAQ1gL,IACnC2gL,EAAK7rK,IAAItG,GACTA,EAAMmyK,CACV,CACJ,EAEIC,EAAQV,EAAGzmG,GAAK,EAAGyB,EAAMglG,EAAGz5K,GAAK,EAAGo6K,EAAKX,EAAGxiG,GAAK,EAAGojG,EAAKZ,EAAGlgL,EAAG+gL,EAAKb,EAAGziG,EAAGujG,EAAMd,EAAG7jG,EAAG4kG,EAAMf,EAAG/vK,EAE/F+wK,EAAY,EAALd,EACX,EAAG,CACC,IAAKU,EAAI,CAELF,EAAQpB,EAAKS,EAAK/kG,EAAK,GAEvB,IAAImV,EAAOmvF,EAAKS,EAAK/kG,EAAM,EAAG,GAE9B,GADAA,GAAO,GACFmV,EAAM,CAEP,IAAuBrwF,EAAIigL,GAAvB9lG,EAAIulG,EAAKxkG,GAAO,GAAe,GAAM+kG,EAAI9lG,EAAI,IAAM,EAAIrzE,EAAIqzE,EAAIn6E,EACnE,GAAI8G,EAAIs5K,EAAI,CACJI,GACA58C,EAAI,GACR,KACJ,CAEI28C,GACAE,EAAKI,EAAK7gL,GAEdwO,EAAIsG,IAAImrK,EAAIL,SAASzlG,EAAGrzE,GAAI+5K,GAE5BX,EAAGxiG,EAAImjG,GAAM7gL,EAAGkgL,EAAGz5K,EAAIy0E,EAAU,EAAJp0E,EAAOo5K,EAAGzmG,EAAImnG,EAC3C,QACJ,CACK,GAAY,GAARvwF,EACLywF,EAAKzB,EAAM0B,EAAKxB,EAAMyB,EAAM,EAAGC,EAAM,OACpC,GAAY,GAAR5wF,EAAW,CAEhB,IAAI8wF,EAAO3B,EAAKS,EAAK/kG,EAAK,IAAM,IAAKkmG,EAAQ5B,EAAKS,EAAK/kG,EAAM,GAAI,IAAM,EACnEmmG,EAAKF,EAAO3B,EAAKS,EAAK/kG,EAAM,EAAG,IAAM,EACzCA,GAAO,GAKP,IAHA,IAAIomG,EAAM,IAAIxD,EAAGuD,GAEbE,EAAM,IAAIzD,EAAG,IACRv/K,EAAI,EAAGA,EAAI6iL,IAAS7iL,EAEzBgjL,EAAInD,EAAK7/K,IAAMihL,EAAKS,EAAK/kG,EAAU,EAAJ38E,EAAO,GAE1C28E,GAAe,EAARkmG,EAEP,IAAII,EAAMvkG,EAAIskG,GAAME,GAAU,GAAKD,GAAO,EAEtCE,EAAM9C,EAAK2C,EAAKC,EAAK,GACzB,IAASjjL,EAAI,EAAGA,EAAI8iL,GAAK,CACrB,IAIIlnG,EAJAyF,EAAI8hG,EAAIlC,EAAKS,EAAK/kG,EAAKumG,IAM3B,GAJAvmG,GAAW,GAAJ0E,GAEHzF,EAAIyF,GAAK,GAEL,GACJ0hG,EAAI/iL,KAAO47E,MAEV,CAED,IAAItvE,EAAI,EAAGsF,EAAI,EAOf,IANS,IAALgqE,GACAhqE,EAAI,EAAIqvK,EAAKS,EAAK/kG,EAAK,GAAIA,GAAO,EAAGrwE,EAAIy2K,EAAI/iL,EAAI,IACvC,IAAL47E,GACLhqE,EAAI,EAAIqvK,EAAKS,EAAK/kG,EAAK,GAAIA,GAAO,GACxB,IAALf,IACLhqE,EAAI,GAAKqvK,EAAKS,EAAK/kG,EAAK,KAAMA,GAAO,GAClC/qE,KACHmxK,EAAI/iL,KAAOsM,CACnB,CACJ,CAEA,IAAIsK,EAAKmsK,EAAI1B,SAAS,EAAGuB,GAAO57K,EAAK+7K,EAAI1B,SAASuB,GAElDH,EAAM/jG,EAAI9nE,GAEV8rK,EAAMhkG,EAAI13E,GACVu7K,EAAKlC,EAAKzpK,EAAI6rK,EAAK,GACnBD,EAAKnC,EAAKr5K,EAAI07K,EAAK,EACvB,MAEIr9C,EAAI,GACR,GAAI1oD,EAAMgmG,EAAM,CACRV,GACA58C,EAAI,GACR,KACJ,CACJ,CAGI28C,GACAE,EAAKI,EAAK,QAGd,IAFA,IAAIc,GAAO,GAAKX,GAAO,EAAGY,GAAO,GAAKX,GAAO,EACzCY,EAAO3mG,GACH2mG,EAAO3mG,EAAK,CAEhB,IAAoCsjE,IAAhC3zI,EAAIi2K,EAAGrB,EAAOQ,EAAK/kG,GAAOymG,KAAiB,EAE/C,IADAzmG,GAAW,GAAJrwE,GACGq2K,EAAM,CACRV,GACA58C,EAAI,GACR,KACJ,CAGA,GAFK/4H,GACD+4H,EAAI,GACJ4a,GAAM,IACNhwI,EAAIqyK,KAAQriC,OACX,IAAW,KAAPA,GAAY,CACjBqjC,EAAO3mG,EAAK4lG,EAAK,KACjB,KACJ,CAEI,IAAI9+F,GAAMw8D,GAAM,IAEhB,GAAIA,GAAM,IAAK,CAEX,IAAmB9gE,GAAIwgG,EAAnB3/K,EAAIigJ,GAAM,KACdx8D,GAAMw9F,EAAKS,EAAK/kG,GAAM,GAAKwC,IAAK,GAAK6gG,EAAGhgL,GACxC28E,GAAOwC,EACX,CAEA,IAAID,GAAIsjG,EAAGtB,EAAOQ,EAAK/kG,GAAO0mG,GAAME,GAAOrkG,IAAK,EAC3CA,IACDmmD,EAAI,GACR1oD,GAAW,GAAJuC,GACHl4E,EAAKk5K,EAAGqD,IACZ,GAAIA,GAAO,EAAG,CACNpkG,GAAIygG,EAAK2D,IACbv8K,GAAMk6K,EAAOQ,EAAK/kG,IAAQ,GAAKwC,IAAK,EAAGxC,GAAOwC,EAClD,CACA,GAAIxC,EAAMgmG,EAAM,CACRV,GACA58C,EAAI,GACR,KACJ,CACI28C,GACAE,EAAKI,EAAK,QACd,IAAIxlG,GAAMwlG,EAAK7+F,GACf,GAAI6+F,EAAKt7K,EAAI,CACT,IAAI+zF,GAAQ+mF,EAAK96K,EAAIw8K,GAAO/kG,KAAKyD,IAAIl7E,EAAI81E,IAGzC,IAFIie,GAAQunF,EAAK,GACbj9C,EAAI,GACDi9C,EAAKkB,KAAQlB,EAChBryK,EAAIqyK,GAAMV,EAAK7mF,GAAQunF,EAC/B,CACA,KAAOA,EAAKxlG,KAAOwlG,EACfryK,EAAIqyK,GAAMryK,EAAIqyK,EAAKt7K,EAC3B,CACJ,CACA26K,EAAGlgL,EAAI8gL,EAAIZ,EAAGz5K,EAAIo7K,EAAM3B,EAAGxiG,EAAImjG,EAAIX,EAAGzmG,EAAImnG,EACtCE,IACAF,EAAQ,EAAGV,EAAG7jG,EAAI2kG,EAAKd,EAAGziG,EAAIsjG,EAAIb,EAAG/vK,EAAI8wK,EACjD,QAAUL,GAEV,OAAOC,GAAMryK,EAAIhQ,QAAU8hL,EAAQX,EAAInxK,EAAK,EAAGqyK,GAAMryK,EAAIoxK,SAAS,EAAGiB,EACzE,EAEImB,EAAQ,SAAUvkG,EAAGh3E,EAAG2J,GACxBA,IAAU,EAAJ3J,EACN,IAAI22E,EAAK32E,EAAI,EAAK,EAClBg3E,EAAEL,IAAMhtE,EACRqtE,EAAEL,EAAI,IAAMhtE,GAAK,CACrB,EAEI6xK,EAAU,SAAUxkG,EAAGh3E,EAAG2J,GAC1BA,IAAU,EAAJ3J,EACN,IAAI22E,EAAK32E,EAAI,EAAK,EAClBg3E,EAAEL,IAAMhtE,EACRqtE,EAAEL,EAAI,IAAMhtE,GAAK,EACjBqtE,EAAEL,EAAI,IAAMhtE,GAAK,EACrB,EAEI8xK,EAAQ,SAAUzkG,EAAGohG,GAGrB,IADA,IAAI/3K,EAAI,GACCvI,EAAI,EAAGA,EAAIk/E,EAAEj/E,SAAUD,EACxBk/E,EAAEl/E,IACFuI,EAAEqI,KAAK,CAAEgrE,EAAG57E,EAAGk7E,EAAGgE,EAAEl/E,KAE5B,IAAI47E,EAAIrzE,EAAEtI,OACNggG,EAAK13F,EAAE4I,QACX,IAAKyqE,EACD,MAAO,CAAErzE,EAAGq7K,EAAIniL,EAAG,GACvB,GAAS,GAALm6E,EAAQ,CACR,IAAI/pE,EAAI,IAAI0tK,EAAGh3K,EAAE,GAAGqzE,EAAI,GAExB,OADA/pE,EAAEtJ,EAAE,GAAGqzE,GAAK,EACL,CAAErzE,EAAGsJ,EAAGpQ,EAAG,EACtB,CACA8G,EAAEs7K,MAAK,SAAU3nG,EAAGiD,GAAK,OAAOjD,EAAEhB,EAAIiE,EAAEjE,CAAG,IAG3C3yE,EAAEqI,KAAK,CAAEgrE,GAAI,EAAGV,EAAG,QACnB,IAAIz5E,EAAI8G,EAAE,GAAI84E,EAAI94E,EAAE,GAAIu7K,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAO7C,IANAz7K,EAAE,GAAK,CAAEqzE,GAAI,EAAGV,EAAGz5E,EAAEy5E,EAAImG,EAAEnG,EAAGz5E,EAAGA,EAAG4/E,EAAGA,GAMhC0iG,GAAMnoG,EAAI,GACbn6E,EAAI8G,EAAEA,EAAEu7K,GAAI5oG,EAAI3yE,EAAEy7K,GAAI9oG,EAAI4oG,IAAOE,KACjC3iG,EAAI94E,EAAEu7K,GAAMC,GAAMx7K,EAAEu7K,GAAI5oG,EAAI3yE,EAAEy7K,GAAI9oG,EAAI4oG,IAAOE,KAC7Cz7K,EAAEw7K,KAAQ,CAAEnoG,GAAI,EAAGV,EAAGz5E,EAAEy5E,EAAImG,EAAEnG,EAAGz5E,EAAGA,EAAG4/E,EAAGA,GAE9C,IAAI4iG,EAAShkF,EAAG,GAAGrkB,EACnB,IAAS57E,EAAI,EAAGA,EAAI47E,IAAK57E,EACjBigG,EAAGjgG,GAAG47E,EAAIqoG,IACVA,EAAShkF,EAAGjgG,GAAG47E,GAGvB,IAAIsoG,EAAK,IAAI1E,EAAIyE,EAAS,GAEtBE,EAAMC,EAAG77K,EAAEw7K,EAAK,GAAIG,EAAI,GAC5B,GAAIC,EAAM7D,EAAI,CAINtgL,EAAI,EAAR,IAAWgH,EAAK,EAEZq9K,EAAMF,EAAM7D,EAAIgE,EAAM,GAAKD,EAE/B,IADApkF,EAAG4jF,MAAK,SAAU3nG,EAAGiD,GAAK,OAAO+kG,EAAG/kG,EAAEvD,GAAKsoG,EAAGhoG,EAAEN,IAAMM,EAAEhB,EAAIiE,EAAEjE,CAAG,IAC1Dl7E,EAAI47E,IAAK57E,EAAG,CACf,IAAIukL,EAAOtkF,EAAGjgG,GAAG47E,EACjB,KAAIsoG,EAAGK,GAAQjE,GAKX,MAJAt5K,GAAMs9K,GAAO,GAAMH,EAAMD,EAAGK,IAC5BL,EAAGK,GAAQjE,CAInB,CAEA,IADAt5K,IAAOq9K,EACAr9K,EAAK,GAAG,CACX,IAAIw9K,EAAOvkF,EAAGjgG,GAAG47E,EACbsoG,EAAGM,GAAQlE,EACXt5K,GAAM,GAAMs5K,EAAK4D,EAAGM,KAAU,IAE5BxkL,CACV,CACA,KAAOA,GAAK,GAAKgH,IAAMhH,EAAG,CACtB,IAAIykL,EAAOxkF,EAAGjgG,GAAG47E,EACbsoG,EAAGO,IAASnE,MACV4D,EAAGO,KACHz9K,EAEV,CACAm9K,EAAM7D,CACV,CACA,MAAO,CAAE/3K,EAAG,IAAIg3K,EAAG2E,GAAKziL,EAAG0iL,EAC/B,EAEIC,EAAK,SAAUxyK,EAAGnQ,EAAGy9E,GACrB,OAAe,GAARttE,EAAEgqE,EACH6C,KAAKC,IAAI0lG,EAAGxyK,EAAEnQ,EAAGA,EAAGy9E,EAAI,GAAIklG,EAAGxyK,EAAEyvE,EAAG5/E,EAAGy9E,EAAI,IAC1Cz9E,EAAEmQ,EAAEgqE,GAAKsD,CACpB,EAEIwlG,EAAK,SAAUp4K,GAGf,IAFA,IAAIsvE,EAAItvE,EAAErM,OAEH27E,IAAMtvE,IAAIsvE,KAMjB,IAJA,IAAI+oG,EAAK,IAAInF,IAAM5jG,GAEfgpG,EAAM,EAAGC,EAAMv4K,EAAE,GAAIw4K,EAAM,EAC3BxlG,EAAI,SAAUztE,GAAK8yK,EAAGC,KAAS/yK,CAAG,EAC7B7R,EAAI,EAAGA,GAAK47E,IAAK57E,EACtB,GAAIsM,EAAEtM,IAAM6kL,GAAO7kL,GAAK47E,IAClBkpG,MACD,CACD,IAAKD,GAAOC,EAAM,EAAG,CACjB,KAAOA,EAAM,IAAKA,GAAO,IACrBxlG,EAAE,OACFwlG,EAAM,IACNxlG,EAAEwlG,EAAM,GAAOA,EAAM,IAAO,EAAK,MAAUA,EAAM,GAAM,EAAK,OAC5DA,EAAM,EAEd,MACK,GAAIA,EAAM,EAAG,CAEd,IADAxlG,EAAEulG,KAAQC,EACHA,EAAM,EAAGA,GAAO,EACnBxlG,EAAE,MACFwlG,EAAM,IACNxlG,EAAIwlG,EAAM,GAAM,EAAK,MAAOA,EAAM,EAC1C,CACA,KAAOA,KACHxlG,EAAEulG,GACNC,EAAM,EACND,EAAMv4K,EAAEtM,EACZ,CAEJ,MAAO,CAAEsM,EAAGq4K,EAAGtD,SAAS,EAAGuD,GAAMhzK,EAAGgqE,EACxC,EAEImpG,EAAO,SAAUC,EAAIL,GAErB,IADA,IAAIljL,EAAI,EACCzB,EAAI,EAAGA,EAAI2kL,EAAG1kL,SAAUD,EAC7ByB,GAAKujL,EAAGhlL,GAAK2kL,EAAG3kL,GACpB,OAAOyB,CACX,EAGIwjL,EAAQ,SAAUpb,EAAKltF,EAAK+kG,GAE5B,IAAI9lG,EAAI8lG,EAAIzhL,OACR4+E,EAAIsiG,EAAKxkG,EAAM,GACnBktF,EAAIhrF,GAAS,IAAJjD,EACTiuF,EAAIhrF,EAAI,GAAKjD,GAAK,EAClBiuF,EAAIhrF,EAAI,GAAc,IAATgrF,EAAIhrF,GACjBgrF,EAAIhrF,EAAI,GAAkB,IAAbgrF,EAAIhrF,EAAI,GACrB,IAAK,IAAI7+E,EAAI,EAAGA,EAAI47E,IAAK57E,EACrB6pK,EAAIhrF,EAAI7+E,EAAI,GAAK0hL,EAAI1hL,GACzB,OAAqB,GAAb6+E,EAAI,EAAIjD,EACpB,EAEIspG,EAAO,SAAUxD,EAAK7X,EAAKwY,EAAO8C,EAAMC,EAAIC,EAAItF,EAAIuF,EAAItxB,EAAImuB,EAAIj6K,GAChEu7K,EAAM5Z,EAAK3hK,IAAKm6K,KACd+C,EAAG,KAML,IALA,IAAI5yF,EAAKmxF,EAAMyB,EAAI,IAAKG,EAAM/yF,EAAGjqF,EAAGi9K,EAAMhzF,EAAG/wF,EACzCq+F,EAAK6jF,EAAM0B,EAAI,IAAKI,EAAM3lF,EAAGv3F,EAAGm9K,EAAM5lF,EAAGr+F,EACzCgvH,EAAKi0D,EAAGa,GAAMI,EAAOl1D,EAAGnkH,EAAGs5K,EAAMn1D,EAAG7+G,EACpCg/G,EAAK8zD,EAAGe,GAAMI,EAAOj1D,EAAGtkH,EAAGw5K,EAAMl1D,EAAGh/G,EACpCm0K,EAAS,IAAIvG,EAAI,IACZx/K,EAAI,EAAGA,EAAI2lL,EAAK1lL,SAAUD,IAC7B+lL,EAAiB,GAAVJ,EAAK3lL,IAClB,IAASA,EAAI,EAAGA,EAAI6lL,EAAK5lL,SAAUD,IAC7B+lL,EAAiB,GAAVF,EAAK7lL,IAGlB,IAFA,IAAI28H,EAAKgnD,EAAMoC,EAAQ,GAAIC,EAAMrpD,EAAGp0H,EAAG09K,EAAOtpD,EAAGl7H,EAC7CykL,EAAO,GACJA,EAAO,IAAMF,EAAInG,EAAKqG,EAAO,MAAOA,GAE3C,IAKI3D,EAAItxI,EAAIuxI,EAAIV,EALZqE,EAAQhE,EAAK,GAAM,EACnBiE,EAAQrB,EAAKK,EAAIzE,GAAOoE,EAAKM,EAAIzE,GAAOb,EACxCsG,EAAQtB,EAAKK,EAAIG,GAAOR,EAAKM,EAAII,GAAO1F,EAAK,GAAK,EAAImG,EAAOnB,EAAKgB,EAAQC,GAAO,EAAID,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAClI,GAAI/xB,GAAM,GAAKmyB,GAAQC,GAASD,GAAQE,EACpC,OAAOpB,EAAMpb,EAAK3hK,EAAGw5K,EAAIL,SAASrtB,EAAIA,EAAKmuB,IAG/C,GADAsB,EAAM5Z,EAAK3hK,EAAG,GAAKm+K,EAAQD,IAASl+K,GAAK,EACrCm+K,EAAQD,EAAO,CACf7D,EAAKlC,EAAKkF,EAAKC,EAAK,GAAIv0I,EAAKs0I,EAAK/C,EAAKnC,EAAKoF,EAAKC,EAAK,GAAI5D,EAAK2D,EAC/D,IAAIa,EAAMjG,EAAK2F,EAAKC,EAAM,GAC1BxC,EAAM5Z,EAAK3hK,EAAG09K,EAAM,KACpBnC,EAAM5Z,EAAK3hK,EAAI,EAAG49K,EAAM,GACxBrC,EAAM5Z,EAAK3hK,EAAI,GAAIg+K,EAAO,GAC1Bh+K,GAAK,GACL,IAASlI,EAAI,EAAGA,EAAIkmL,IAAQlmL,EACxByjL,EAAM5Z,EAAK3hK,EAAI,EAAIlI,EAAGgmL,EAAInG,EAAK7/K,KACnCkI,GAAK,EAAIg+K,EAET,IADA,IAAIK,EAAO,CAACZ,EAAME,GACTn/I,EAAK,EAAGA,EAAK,IAAKA,EACvB,KAAI8/I,GAAOD,EAAK7/I,GAChB,IAAS1mC,EAAI,EAAGA,EAAIwmL,GAAKvmL,SAAUD,EAAG,CAClC,IAAIuE,GAAgB,GAAViiL,GAAKxmL,GACfyjL,EAAM5Z,EAAK3hK,EAAGo+K,EAAI/hL,KAAO2D,GAAK89K,EAAIzhL,IAC9BA,GAAM,KACNk/K,EAAM5Z,EAAK3hK,EAAIs+K,GAAKxmL,IAAM,EAAK,KAAMkI,GAAKs+K,GAAKxmL,IAAM,GAC7D,CANmB,CAQ3B,MAEIuiL,EAAK1B,EAAK5vI,EAAK0vI,EAAK6B,EAAKzB,EAAKe,EAAKlB,EAEvC,IAAS5gL,EAAI,EAAGA,EAAIslL,IAAMtlL,EAAG,CACzB,IAAIigJ,GAAMklC,EAAKnlL,GACf,GAAIigJ,GAAM,IAAK,CAEXyjC,EAAQ7Z,EAAK3hK,EAAGq6K,GADZh+K,GAAO07I,IAAO,GAAM,IACC,MAAO/3I,GAAK+oC,EAAG1sC,GAAM,KAC1CA,GAAM,IACNk/K,EAAM5Z,EAAK3hK,EAAI+3I,IAAO,GAAM,IAAK/3I,GAAKy3K,EAAKp7K,KAC/C,IAAIkiL,GAAY,GAANxmC,GACVyjC,EAAQ7Z,EAAK3hK,EAAGs6K,EAAGiE,KAAOv+K,GAAK45K,EAAG2E,IAC9BA,GAAM,IACN/C,EAAQ7Z,EAAK3hK,EAAI+3I,IAAO,EAAK,MAAO/3I,GAAK03K,EAAK6G,IACtD,MAEI/C,EAAQ7Z,EAAK3hK,EAAGq6K,EAAGtiC,KAAO/3I,GAAK+oC,EAAGgvG,GAE1C,CAEA,OADAyjC,EAAQ7Z,EAAK3hK,EAAGq6K,EAAG,MACZr6K,EAAI+oC,EAAG,IAClB,EAEIy1I,EAAoB,IAAIjH,EAAI,CAAC,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,UAE/FmE,EAAmB,IAAIrE,EAAG,GAE1BoH,EAAO,SAAUjF,EAAKkF,EAAKC,EAAM73K,EAAKivJ,EAAM0jB,GAC5C,IAAI/lG,EAAI+lG,EAAG3rF,GAAK0rF,EAAIzhL,OAChB4+E,EAAI,IAAI0gG,EAAGvwK,EAAM4sE,EAAI,GAAK,EAAI6C,KAAKwO,KAAKrR,EAAI,MAASqiF,GAErD3+E,EAAIT,EAAEwiG,SAASryK,EAAK6vE,EAAE5+E,OAASg+J,GAC/B6oB,EAAMnF,EAAGlgL,EACTk7E,EAAoB,GAAbglG,EAAGtgG,GAAK,GACnB,GAAIulG,EAAK,CACDjqG,IACA2C,EAAE,GAAKqiG,EAAGtgG,GAAK,GAenB,IAdA,IAAIyiD,EAAM4iD,EAAIE,EAAM,GAChBh1K,EAAIkyH,GAAO,GAAIx3H,EAAU,KAANw3H,EACnBijD,GAAS,GAAKF,GAAQ,EAEtBp1F,EAAOkwF,EAAGz5K,GAAK,IAAIs3K,EAAI,OAAQwH,EAAOrF,EAAGtiG,GAAK,IAAImgG,EAAIuH,EAAQ,GAC9DE,EAAQxoG,KAAKwO,KAAK45F,EAAO,GAAIK,EAAQ,EAAID,EACzCE,EAAM,SAAUnnL,GAAK,OAAQ0hL,EAAI1hL,GAAM0hL,EAAI1hL,EAAI,IAAMinL,EAAUvF,EAAI1hL,EAAI,IAAMknL,GAAUH,CAAO,EAG9F5B,EAAO,IAAI1F,EAAI,MAEf2F,EAAK,IAAI5F,EAAI,KAAM6F,EAAK,IAAI7F,EAAI,IAEhC4H,EAAO,EAAGrH,EAAK,EAAG//K,EAAI2hL,EAAG3hL,GAAK,EAAGslL,EAAK,EAAG+B,EAAK1F,EAAGriG,GAAK,EAAG00E,EAAK,EAC3Dh0J,EAAI,EAAI47E,IAAK57E,EAAG,CAEnB,IAAIsnL,EAAKH,EAAInnL,GAETunL,EAAW,MAAJvnL,EAAWwnL,EAAQR,EAAKM,GAKnC,GAJA71F,EAAK81F,GAAQC,EACbR,EAAKM,GAAMC,EAGPF,GAAMrnL,EAAG,CAET,IAAIynL,EAAM7rG,EAAI57E,EACd,IAAKonL,EAAO,KAAQ9B,EAAK,SAAWmC,EAAM,MAAQX,GAAM,CACpDnqG,EAAMuoG,EAAKxD,EAAKpiG,EAAG,EAAG6lG,EAAMC,EAAIC,EAAItF,EAAIuF,EAAItxB,EAAIh0J,EAAIg0J,EAAIr3E,GACxD2oG,EAAK8B,EAAOrH,EAAK,EAAG/rB,EAAKh0J,EACzB,IAAK,IAAIigF,EAAI,EAAGA,EAAI,MAAOA,EACvBmlG,EAAGnlG,GAAK,EACZ,IAASA,EAAI,EAAGA,EAAI,KAAMA,EACtBolG,EAAGplG,GAAK,CAChB,CAEA,IAAIx+E,EAAI,EAAGy9E,EAAI,EAAGwoG,EAAOp7K,EAAGq7K,EAAMJ,EAAOC,EAAQ,MACjD,GAAIC,EAAM,GAAKH,GAAMH,EAAInnL,EAAI2nL,GAMzB,IALA,IAAIC,EAAOnpG,KAAKyD,IAAItwE,EAAG61K,GAAO,EAC1BI,EAAOppG,KAAKyD,IAAI,MAAOliF,GAGvB8nL,EAAKrpG,KAAKyD,IAAI,IAAKulG,GAChBE,GAAOE,KAAUH,GAAQH,GAAQC,GAAO,CAC3C,GAAI9F,EAAI1hL,EAAIyB,IAAMigL,EAAI1hL,EAAIyB,EAAIkmL,GAAM,CAEhC,IADA,IAAII,EAAK,EACFA,EAAKD,GAAMpG,EAAI1hL,EAAI+nL,IAAOrG,EAAI1hL,EAAI+nL,EAAKJ,KAAQI,GAEtD,GAAIA,EAAKtmL,EAAG,CAGR,GAFAA,EAAIsmL,EAAI7oG,EAAIyoG,EAERI,EAAKH,EACL,MAIJ,IAAII,GAAMvpG,KAAKyD,IAAIylG,EAAKI,EAAK,GACzBE,GAAK,EACT,IAAShoG,EAAI,EAAGA,EAAI+nG,KAAO/nG,EAAG,CAC1B,IAAIioG,GAAKloL,EAAI2nL,EAAM1nG,EAAI,MAEnB6vC,GAAKo4D,GADCz2F,EAAKy2F,IACK,MAChBp4D,GAAKm4D,KACLA,GAAKn4D,GAAI03D,EAAQU,GACzB,CACJ,CACJ,CAGAP,IADAJ,EAAOC,IAAOA,EAAQ/1F,EAAK81F,IACL,KAC1B,CAGJ,GAAIroG,EAAG,CAGHimG,EAAKG,KAAQ,UAAarF,EAAMx+K,IAAM,GAAM0+K,EAAMjhG,GAClD,IAAIipG,GAAiB,GAAXlI,EAAMx+K,GAAS2mL,GAAiB,GAAXjI,EAAMjhG,GACrC6gG,GAAMJ,EAAKwI,IAAOvI,EAAKwI,MACrBhD,EAAG,IAAM+C,MACT9C,EAAG+C,IACLf,EAAKrnL,EAAIyB,IACP2lL,CACN,MAEIjC,EAAKG,KAAQ5D,EAAI1hL,KACfolL,EAAG1D,EAAI1hL,GAEjB,CACJ,CACA,IAAKA,EAAIy+E,KAAKC,IAAI1+E,EAAGqnL,GAAKrnL,EAAI47E,IAAK57E,EAC/BmlL,EAAKG,KAAQ5D,EAAI1hL,KACfolL,EAAG1D,EAAI1hL,IAEb28E,EAAMuoG,EAAKxD,EAAKpiG,EAAGwnG,EAAK3B,EAAMC,EAAIC,EAAItF,EAAIuF,EAAItxB,EAAIh0J,EAAIg0J,EAAIr3E,GACrDmqG,IACDnF,EAAGtgG,EAAW,EAAN1E,EAAW2C,EAAG3C,EAAM,EAAK,IAAM,EAEvCA,GAAO,EACPglG,EAAGtiG,EAAI2nG,EAAMrF,EAAGz5K,EAAIupF,EAAMkwF,EAAG3hL,EAAIA,EAAG2hL,EAAGriG,EAAI+nG,EAEnD,KACK,CACD,IAASrnL,EAAI2hL,EAAGriG,GAAK,EAAGt/E,EAAI47E,EAAIkrG,EAAK9mL,GAAK,MAAO,CAE7C,IAAIwW,GAAIxW,EAAI,MACRwW,IAAKolE,IAEL0D,EAAG3C,EAAM,EAAK,GAAKmqG,EACnBtwK,GAAIolE,GAERe,EAAMsoG,EAAM3lG,EAAG3C,EAAM,EAAG+kG,EAAIL,SAASrhL,EAAGwW,IAC5C,CACAmrK,EAAG3hL,EAAI47E,CACX,CACA,OAAOwlG,EAAIviG,EAAG,EAAG7vE,EAAMmyK,EAAKxkG,GAAOshF,EACvC,EA2BIoqB,EAAQ,WACR,IAAInsG,EAAI,EAAGiD,EAAI,EACf,MAAO,CACHj3E,EAAG,SAAUg3E,GAIT,IAFA,IAAIttE,EAAIsqE,EAAG4B,EAAIqB,EACX19E,EAAe,EAAXy9E,EAAEj/E,OACDD,EAAI,EAAGA,GAAKyB,GAAI,CAErB,IADA,IAAI+U,EAAIioE,KAAKyD,IAAIliF,EAAI,KAAMyB,GACpBzB,EAAIwW,IAAKxW,EACZ89E,GAAKlsE,GAAKstE,EAAEl/E,GAChB4R,GAAS,MAAJA,GAAa,IAAMA,GAAK,IAAKksE,GAAS,MAAJA,GAAa,IAAMA,GAAK,GACnE,CACA5B,EAAItqE,EAAGutE,EAAIrB,CACf,EACAoB,EAAG,WAEC,OAAY,KADZhD,GAAK,SACe,IAAU,MAAJA,IAAe,GAAS,KADtCiD,GAAK,SACyC,EAAKA,GAAK,CACxE,EAER,EAGImpG,EAAO,SAAU5G,EAAK59C,EAAK90H,EAAKivJ,EAAM0jB,GACtC,IAAKA,IACDA,EAAK,CAAElgL,EAAG,GACNqiI,EAAIykD,YAAY,CAChB,IAAI3G,EAAO99C,EAAIykD,WAAWlH,UAAU,OAChCmH,EAAS,IAAIjJ,EAAGqC,EAAK3hL,OAASyhL,EAAIzhL,QACtCuoL,EAAOjyK,IAAIqrK,GACX4G,EAAOjyK,IAAImrK,EAAKE,EAAK3hL,QACrByhL,EAAM8G,EACN7G,EAAGriG,EAAIsiG,EAAK3hL,MAChB,CAEJ,OAAO0mL,EAAKjF,EAAkB,MAAb59C,EAAI+1B,MAAgB,EAAI/1B,EAAI+1B,MAAkB,MAAX/1B,EAAI2kD,IAAe9G,EAAGlgL,EAAIg9E,KAAKwO,KAAuD,IAAlDxO,KAAKC,IAAI,EAAGD,KAAKyD,IAAI,GAAIzD,KAAKiqG,IAAIhH,EAAIzhL,WAAmB,GAAO,GAAK6jI,EAAI2kD,IAAMz5K,EAAKivJ,EAAM0jB,EACtL,EAmJIgH,EAAS,SAAUzpG,EAAGC,EAAGttE,GACzB,KAAOA,IAAKstE,EACRD,EAAEC,GAAKttE,EAAGA,KAAO,CACzB,EAkCI+2K,EAAM,SAAUt8K,EAAGuyE,GACnB,IAAIgqG,EAAKhqG,EAAEg7E,MAAOmmB,EAAW,GAAN6I,EAAU,EAAIA,EAAK,EAAI,EAAU,GAANA,EAAU,EAAI,EAGhE,GAFAv8K,EAAE,GAAK,IAAKA,EAAE,GAAM0zK,GAAM,GAAMnhG,EAAE0pG,YAAc,IAChDj8K,EAAE,IAAM,IAAOA,EAAE,IAAM,EAAKA,EAAE,IAAM,GAChCuyE,EAAE0pG,WAAY,CACd,IAAIlpG,EAAIgpG,IACRhpG,EAAEn3E,EAAE22E,EAAE0pG,YACNI,EAAOr8K,EAAG,EAAG+yE,EAAEH,IACnB,CACJ,EAEI4pG,EAAM,SAAU5pG,EAAG0iG,GAKnB,OAJmB,IAAP,GAAP1iG,EAAE,KAAkBA,EAAE,IAAM,EAAK,IAAOA,EAAE,IAAM,EAAIA,EAAE,IAAM,KAC7DmmD,EAAI,EAAG,sBACNnmD,EAAE,IAAM,EAAI,MAAQ0iG,GACrBv8C,EAAI,EAAG,uBAAgC,GAAPnmD,EAAE,GAAU,OAAS,cAAgB,eAChD,GAAjBA,EAAE,IAAM,EAAI,EACxB,EA+aO,SAAS6pG,EAASvjL,EAAMm8H,GACtBA,IACDA,EAAO,CAAC,GACZ,IAAIzlD,EAAImsG,IACRnsG,EAAEh0E,EAAE1C,GACJ,IAAI05E,EAAIopG,EAAK9iL,EAAMm8H,EAAMA,EAAK4mD,WAAa,EAAI,EAAG,GAClD,OAAOK,EAAI1pG,EAAGyiD,GAAOgnD,EAAOzpG,EAAGA,EAAEj/E,OAAS,EAAGi8E,EAAEgD,KAAMA,CACzD,CAmEO,SAAS8pG,EAAWxjL,EAAMm8H,GAC7B,OAAO8/C,EAAMj8K,EAAK67K,SAASyH,EAAItjL,EAAMm8H,GAAQA,EAAK4mD,aAAc,GAAI,CAAEvoL,EAAG,GAAK2hI,GAAQA,EAAKkoC,IAAKloC,GAAQA,EAAK4mD,WACjH,CAiHA,IAgBIU,EAA2B,oBAAfC,aAA4C,IAAIA,YAGhE,IACID,EAAGhxE,OAAO2rE,EAAI,CAAEuF,QAAQ,GAE5B,CACA,MAAO3yK,IAAK,CAw2BsB,mBAAlB4yK,eAA+BA,eAAsC,mBAAd9nG,YAA2BA,WCh+E3F,IAAI1vE,GAAgB,iBAClB,oBAAuB+uE,OAC1BA,OACA,oBAAuB+vD,EAAAA,EACvBA,EAAAA,EACA,oBAAuBzuD,KACvBA,KACAjhF,IAAA,CAPqB,GCE3B,SAAShB,KACH4R,GAAazK,SAA+C,mBAA7ByK,GAAazK,QAAQuhL,KACtD92K,GAAazK,QAAQuhL,IAAI5iL,MAAM8L,GAAazK,QAASpB,UAAA,CAuBlD,IAAIm2E,GAAU,CACnBwsG,IAAK1oL,GACLoH,KArBF,SAAqBmB,GACfqJ,GAAazK,UAC0B,mBAA9ByK,GAAazK,QAAQC,KAC9BwK,GAAazK,QAAQC,KAAKtB,MAAM8L,GAAazK,QAASpB,WAEtD/F,GAAWN,KAAK,KAAMqG,WAAA,EAiB1BnC,MAZF,SAAsB2E,GAChBqJ,GAAazK,UAC2B,mBAA/ByK,GAAazK,QAAQvD,MAC9BgO,GAAazK,QAAQvD,MAAMkC,MAAM8L,GAAazK,QAASpB,WAEvD/F,GAAWuI,GAAA,GCWjB,SAASs2E,GAASt2E,EAAKiO,EAAM6qE,GAAA,IACvBzvE,EAAM,IAAIoqG,eACdpqG,EAAIqjG,KAAK,MAAO1sG,GAChBqJ,EAAIqqG,aAAe,OACnBrqG,EAAIwrG,OAAS,WACX37G,GAAOmQ,EAAI08G,SAAU93G,EAAM6qE,EAAA,EAE7BzvE,EAAIyrG,QAAU,WACZnhC,GAAQt4E,MAAM,4BAEhBgO,EAAIk9G,MAAA,CAGN,SAASlzC,GAAYrzE,GAAA,IACfiO,EAAM,IAAIwlG,eAEdxlG,EAAIy+F,KAAK,OAAQ1sG,GAAA,GAAK,IAEpBiO,EAAIs4G,MAAA,CACJ,MAAOvmH,GAAA,QACFiO,EAAI63G,QAAU,KAAO73G,EAAI63G,QAAU,IAI5C,SAAS/hH,GAAM/D,GAAA,IAEXA,EAAK8gL,cAAc,IAAIC,WAAW,UAClC,MAAOjoG,GAAA,IACH7qE,EAAMiqE,SAAS8oG,YAAY,eAC/B/yK,EAAIgzK,eACF,YACA,EAEA7oG,OACA,EACA,EACA,EACA,GACA,OACA,GACA,GACA,EAEA,EACA,MAEFp4E,EAAK8gL,cAAc7yK,EAAA,EAIvB,IClFIyoE,GAAMI,GDkFN59E,GACFmQ,GAAQy4H,SAEW,gCAAX1pD,OAAA,aAAAp4E,EAAAA,EAAAA,GAAAo4E,UAAuBA,SAAW/uE,GACtC,aAI2B,oBAAtB63K,mBACL,aAAcA,kBAAkBjqL,UAChC,SAAgB+I,EAAMiO,EAAM6qE,GAAA,IACtBrhF,EAAM4R,GAAQ83K,KAAO93K,GAAQ+3K,UAC7BztG,EAAIuE,SAASrsE,cAAc,KAC/BoC,EAAOA,GAAQjO,EAAKnC,MAAQ,WAE5B81E,EAAE0tG,SAAWpzK,EACb0lE,EAAE2tG,IAAM,WAKY,iBAATthL,GAET2zE,EAAE4wC,KAAOvkH,EACL2zE,EAAE4tG,SAAWz8D,SAASy8D,OACxBluG,GAAYM,EAAE4wC,MACVjuC,GAASt2E,EAAMiO,EAAM6qE,GACrB/0E,GAAM4vE,EAAIA,EAAE98E,OAAS,UAEzBkN,GAAM4vE,KAIRA,EAAE4wC,KAAO9sH,EAAI+pL,gBAAgBxhL,GAC7B+4E,YAAW,WACTthF,EAAIgqL,gBAAgB9tG,EAAE4wC,KAAA,GACrB,KACHxrC,YAAW,WACTh1E,GAAM4vE,EAAA,GACL,KAIT,qBAAsB+G,UACpB,SAAgBzsE,EAAM6qE,EAAMzvE,GAAA,GAC1ByvE,EAAOA,GAAQ7qE,EAAKpQ,MAAQ,WAER,iBAAToQ,EAAA,GACLolE,GAAYplE,GACdqoE,GAASroE,EAAM6qE,EAAMzvE,OAChB,KACD5R,EAAIygF,SAASrsE,cAAc,KAC/BpU,EAAE8sH,KAAOt2G,EACTxW,EAAEZ,OAAS,SACXkiF,YAAW,WACTh1E,GAAMtM,EAAA,SAIVijF,UAAUgnG,iBAjIpB,SAAazzK,EAAM6qE,GAAA,gBACNA,EAAsBA,EAAO,CAAE6oG,SAAA,GACjB,YAAhB3hL,EAAAA,EAAAA,GAAO84E,KACdnF,GAAQ90E,KAAK,sDACbi6E,EAAO,CAAE6oG,SAAU7oG,IAMnBA,EAAK6oG,SACL,6EAA6ErnL,KAC3E2T,EAAKs7E,MAGA,IAAIq4F,KAAK,CAACloL,OAAOw7E,aAAa,OAASjnE,GAAO,CAAEs7E,KAAMt7E,EAAKs7E,OAE7Dt7E,CAAA,CAjBT,CAiIyCA,EAAM5E,GAAOyvE,EAAA,EAIhD,SAAgB7qE,EAAM6qE,EAAMrhF,EAAMk8E,GAAA,IAGhCA,EAAQA,GAAS+4B,KAAK,GAAI,aAExB/4B,EAAMuE,SAAS2pG,MAAQluG,EAAMuE,SAAS+H,KAAK6hG,UACzC,kBAGgB,iBAAT7zK,EAAmB,OAAOqoE,GAASroE,EAAM6qE,EAAMrhF,GAAA,IAEtD47E,EAAsB,6BAAdplE,EAAKs7E,KACbxlF,EACF,eAAezJ,KAAK+O,GAAQ04K,cAAgB14K,GAAQ24K,OAClDtrG,EAAc,eAAep8E,KAAKogF,UAAUC,WAAA,IAG7CjE,GAAgBrD,GAAStvE,IACJ,gCAAfkiH,WAAA,aAAAjmH,EAAAA,EAAAA,GAAAimH,aACP,KAEInvC,EAAS,IAAImvC,WACjBnvC,EAAOmrG,UAAY,eACbjiL,EAAM82E,EAAO+I,OACjB7/E,EAAM02E,EACF12E,EACAA,EAAI1H,QAAQ,eAAgB,yBAC5Bq7E,EAAOA,EAAMmxC,SAASP,KAAOvkH,EAC5B8kH,SAAW9kH,EAChB2zE,EAAQ,MAEVmD,EAAOovC,cAAcj4G,EAAA,KAChB,KACD/U,EAAMmQ,GAAQ83K,KAAO93K,GAAQ+3K,UAC7BzuG,EAAMz5E,EAAIsoL,gBAAgBvzK,GAC1B0lE,EAAOA,EAAMmxC,SAAWnyC,EACvBmyC,SAASP,KAAO5xC,EACrBgB,EAAQ,KACRoF,YAAW,WACT7/E,EAAIuoL,gBAAgB9uG,EAAA,GACnB,QEpLb,SAASA,GAAS3yE,GAAA,IAaZiO,EAZJjO,EAAeA,GAAgB,QAC1BkiL,IAAA,EAGyB,KAA1BliL,EAAaszE,OAAO,KAEtBtzE,EAAeA,EAAazG,OAAO,EAAG,IA2JxCyG,EAjJoB,CAClBmiL,UAAW,SACXC,aAAc,SACdC,KAAM,SACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,eAAgB,SAChB1rF,KAAM,SACN2rF,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,SACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,WAAY,SACZC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNnuF,MAAO,SACPouF,YAAa,SACbC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,SACNC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRhyF,IAAK,SACLiyF,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,MAAO,SACP30B,MAAO,SACP40B,WAAY,SACZC,OAAQ,SACRC,YAAa,UArJf7qL,GADAA,EAAeA,EAAa1H,QAAQ,KAAM,KACd09E,gBAuJkBh2E,EAAA,QAG1C84E,EAAa,CACf,CACEgyG,GAAI,+CACJC,QAAS,CAAC,oBAAqB,oBAC/B5gD,QAAS,SAASnqI,GAAA,MACT,CAACo1E,SAASp1E,EAAK,IAAKo1E,SAASp1E,EAAK,IAAKo1E,SAASp1E,EAAK,OAGhE,CACE8qL,GAAI,0BACJC,QAAS,CAAC,UAAW,UACrB5gD,QAAS,SAASnqI,GAAA,MACT,CACLo1E,SAASp1E,EAAK,GAAI,IAClBo1E,SAASp1E,EAAK,GAAI,IAClBo1E,SAASp1E,EAAK,GAAI,OAIxB,CACE8qL,GAAI,0BACJC,QAAS,CAAC,OAAQ,OAClB5gD,QAAS,SAASnqI,GAAA,MACT,CACLo1E,SAASp1E,EAAK,GAAKA,EAAK,GAAI,IAC5Bo1E,SAASp1E,EAAK,GAAKA,EAAK,GAAI,IAC5Bo1E,SAASp1E,EAAK,GAAKA,EAAK,GAAI,QAO3BqJ,EAAI,EAAGA,EAAIyvE,EAAWphF,OAAQ2R,IAAK,KACtC5R,EAAKqhF,EAAWzvE,GAAGyhL,GACnBn3G,EAAYmF,EAAWzvE,GAAG8gI,QAC1B7zD,EAAO7+E,EAAGg9E,KAAKz0E,GACfs2E,IACFroE,EAAW0lE,EAAU2C,GAAA,KAChBwC,EAAI7qE,EAAS,QACb4qE,EAAI5qE,EAAS,QACb2oE,EAAI3oE,EAAS,QACbi0K,IAAA,EAAK,MAKTppG,EAAIrgF,KAAKqgF,EAAI,GAAKyC,MAAM9iF,KAAKqgF,GAAK,EAAIrgF,KAAKqgF,EAAI,IAAM,IAAMrgF,KAAKqgF,EAAA,KAChED,EAAIpgF,KAAKogF,EAAI,GAAK0C,MAAM9iF,KAAKogF,GAAK,EAAIpgF,KAAKogF,EAAI,IAAM,IAAMpgF,KAAKogF,EAAA,KAChEjC,EAAIn+E,KAAKm+E,EAAI,GAAK2E,MAAM9iF,KAAKm+E,GAAK,EAAIn+E,KAAKm+E,EAAI,IAAM,IAAMn+E,KAAKm+E,EAAA,KAGhEo0G,MAAQ,iBACJ,OAASvyL,KAAKqgF,EAAI,KAAOrgF,KAAKogF,EAAI,KAAOpgF,KAAKm+E,EAAI,UAEtDq0G,MAAQ,eACPjrL,EAAIvH,KAAKqgF,EAAEpvE,SAAS,IACpBuE,EAAIxV,KAAKogF,EAAEnvE,SAAS,IACpBovE,EAAIrgF,KAAKm+E,EAAEltE,SAAS,WACR,GAAZ1J,EAAEtI,SAAasI,EAAI,IAAMA,GACb,GAAZiO,EAAEvW,SAAauW,EAAI,IAAMA,GACb,GAAZ6qE,EAAEphF,SAAaohF,EAAI,IAAMA,GACtB,IAAM94E,EAAIiO,EAAI6qE,CAAA,EChOzB,SAASnC,GAAS32E,EAAGiO,GAAA,IACf6qE,EAAI94E,EAAE,GACRqJ,EAAIrJ,EAAE,GACNvI,EAAIuI,EAAE,GACN2zE,EAAI3zE,EAAE,GAER84E,EAAID,GAAGC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAIkF,GAAGlF,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,IAAK,WAC9BxW,EAAIohF,GAAGphF,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,GAAI,WAC7B5E,EAAIwvE,GAAGxvE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,YAC9B6qE,EAAID,GAAGC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAIkF,GAAGlF,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,GAAI,YAC7BxW,EAAIohF,GAAGphF,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,IAAK,YAC9B5E,EAAIwvE,GAAGxvE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,UAC9B6qE,EAAID,GAAGC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,EAAG,YAC5B0lE,EAAIkF,GAAGlF,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,IAAK,YAC9BxW,EAAIohF,GAAGphF,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,IAAK,OAC/B5E,EAAIwvE,GAAGxvE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,IAAK,YAC/B6qE,EAAID,GAAGC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,IAAK,EAAG,YAC7B0lE,EAAIkF,GAAGlF,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,IAAK,UAC/BxW,EAAIohF,GAAGphF,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,IAAK,YAG/B6qE,EAAIvD,GAAGuD,EAFPzvE,EAAIwvE,GAAGxvE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,GAAI,YAEjBxW,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAI4B,GAAG5B,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,GAAI,YAC7BxW,EAAI89E,GAAG99E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,GAAI,WAC9B5E,EAAIksE,GAAGlsE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,WAC9B6qE,EAAIvD,GAAGuD,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAI4B,GAAG5B,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,EAAG,UAC7BxW,EAAI89E,GAAG99E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,IAAK,WAC/B5E,EAAIksE,GAAGlsE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,WAC9B6qE,EAAIvD,GAAGuD,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,EAAG,WAC5B0lE,EAAI4B,GAAG5B,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,GAAI,YAC9BxW,EAAI89E,GAAG99E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,IAAK,WAC9B5E,EAAIksE,GAAGlsE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,GAAI,YAC7B6qE,EAAIvD,GAAGuD,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,IAAK,GAAI,YAC9B0lE,EAAI4B,GAAG5B,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,GAAI,UAC7BxW,EAAI89E,GAAG99E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,GAAI,YAG7B6qE,EAAIxvE,GAAGwvE,EAFPzvE,EAAIksE,GAAGlsE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,IAAK,YAElBxW,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,QAC7B0lE,EAAIrqE,GAAGqqE,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,IAAK,YAC9BxW,EAAI6R,GAAG7R,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,GAAI,YAC9B5E,EAAIC,GAAGD,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,IAAK,UAC/B6qE,EAAIxvE,GAAGwvE,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,YAC7B0lE,EAAIrqE,GAAGqqE,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,GAAI,YAC7BxW,EAAI6R,GAAG7R,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,IAAK,WAC9B5E,EAAIC,GAAGD,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,IAAK,YAC/B6qE,EAAIxvE,GAAGwvE,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,IAAK,EAAG,WAC7B0lE,EAAIrqE,GAAGqqE,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,IAAK,WAC9BxW,EAAI6R,GAAG7R,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,IAAK,WAC9B5E,EAAIC,GAAGD,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,GAAI,UAC7B6qE,EAAIxvE,GAAGwvE,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAIrqE,GAAGqqE,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,IAAK,WAC/BxW,EAAI6R,GAAG7R,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,GAAI,WAG9B6qE,EAAIlC,GAAGkC,EAFPzvE,EAAIC,GAAGD,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,WAEjBxW,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAIiD,GAAGjD,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,GAAI,YAC7BxW,EAAIm/E,GAAGn/E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,IAAK,YAC/B5E,EAAIutE,GAAGvtE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,UAC9B6qE,EAAIlC,GAAGkC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,IAAK,EAAG,YAC7B0lE,EAAIiD,GAAGjD,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,GAAI,IAAK,YAC9BxW,EAAIm/E,GAAGn/E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,IAAK,IAAK,SAC/B5E,EAAIutE,GAAGvtE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,YAC9B6qE,EAAIlC,GAAGkC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,EAAG,YAC5B0lE,EAAIiD,GAAGjD,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,IAAK,UAC/BxW,EAAIm/E,GAAGn/E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,IAAK,YAC9B5E,EAAIutE,GAAGvtE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,IAAK,GAAI,YAC9B6qE,EAAIlC,GAAGkC,EAAGzvE,EAAG5R,EAAGk8E,EAAG1lE,EAAE,GAAI,GAAI,WAC7B0lE,EAAIiD,GAAGjD,EAAGmF,EAAGzvE,EAAG5R,EAAGwW,EAAE,IAAK,IAAK,YAC/BxW,EAAIm/E,GAAGn/E,EAAGk8E,EAAGmF,EAAGzvE,EAAG4E,EAAE,GAAI,GAAI,WAC7B5E,EAAIutE,GAAGvtE,EAAG5R,EAAGk8E,EAAGmF,EAAG7qE,EAAE,GAAI,IAAK,WAE9BjO,EAAE,GAAKi4E,GAAMa,EAAG94E,EAAE,IAClBA,EAAE,GAAKi4E,GAAM5uE,EAAGrJ,EAAE,IAClBA,EAAE,GAAKi4E,GAAMxgF,EAAGuI,EAAE,IAClBA,EAAE,GAAKi4E,GAAMtE,EAAG3zE,EAAE,IAGpB,SAASL,GAAIK,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,GAAA,OAC1B1lE,EAAIgqE,GAAMA,GAAMhqE,EAAGjO,GAAIi4E,GAAM5uE,EAAGsqE,IACzBsE,GAAOhqE,GAAKxW,EAAMwW,IAAO,GAAKxW,EAAKqhF,EAAA,CAG5C,SAASD,GAAG74E,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAG2C,GAAA,OACrB32E,GAAKsO,EAAI6qE,GAAO7qE,EAAI5E,EAAIrJ,EAAGiO,EAAGxW,EAAGk8E,EAAG2C,EAAA,CAG7C,SAASf,GAAGv1E,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAG2C,GAAA,OACrB32E,GAAKsO,EAAI5E,EAAMyvE,GAAKzvE,EAAIrJ,EAAGiO,EAAGxW,EAAGk8E,EAAG2C,EAAA,CAG7C,SAAShtE,GAAGtJ,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAG2C,GAAA,OACrB32E,GAAIsO,EAAI6qE,EAAIzvE,EAAGrJ,EAAGiO,EAAGxW,EAAGk8E,EAAG2C,EAAA,CAGpC,SAASM,GAAG52E,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAG2C,GAAA,OACrB32E,GAAIm5E,GAAK7qE,GAAK5E,GAAIrJ,EAAGiO,EAAGxW,EAAGk8E,EAAG2C,EAAA,CAGvC,SAASO,GAAK72E,GAAA,IAIViO,EAFE6qE,EAAI94E,EAAEtI,OACR2R,EAAQ,CAAC,YAAa,WAAY,WAAY,eAE3C4E,EAAI,GAAIA,GAAKjO,EAAEtI,OAAQuW,GAAK,GAC/B0oE,GAASttE,EAAO0tE,GAAO/2E,EAAEqN,UAAUY,EAAI,GAAIA,KAE7CjO,EAAIA,EAAEqN,UAAUY,EAAI,QAChBxW,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,OACpDwW,EAAI,EAAGA,EAAIjO,EAAEtI,OAAQuW,IACxBxW,EAAKwW,GAAK,IAAMjO,EAAEgE,WAAWiK,KAAOA,EAAI,GAAK,MAC/CxW,EAAKwW,GAAK,IAAM,MAASA,EAAI,GAAK,GAC9BA,EAAI,GAAI,IACV0oE,GAASttE,EAAO5R,GACXwW,EAAI,EAAGA,EAAI,GAAIA,IAAKxW,EAAKwW,GAAK,SAErCxW,EAAK,IAAU,EAAJqhF,EACXnC,GAASttE,EAAO5R,GACT4R,CAAA,CAkBT,SAAS0tE,GAAO/2E,GAAA,IAGZiO,EADE6qE,EAAU,OAET7qE,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB6qE,EAAQ7qE,GAAK,GACXjO,EAAEgE,WAAWiK,IACZjO,EAAEgE,WAAWiK,EAAI,IAAM,IACvBjO,EAAEgE,WAAWiK,EAAI,IAAM,KACvBjO,EAAEgE,WAAWiK,EAAI,IAAM,WAErB6qE,CAAA,CF1JPpC,GAAOrtE,GAAagvE,KAAK6oD,KAAK73H,IAC9BytE,GAAOztE,GAAa6hL,KAAKhqD,KAAK73H,IE4JhC,IAAI8hL,GAAU,mBAAmBhsL,MAAM,IAEvC,SAAS4xG,GAAK/wG,GAAA,QACRiO,EAAI,GACN6qE,EAAI,EACCA,EAAI,EAAGA,IACZ7qE,GAAKk9K,GAASnrL,GAAU,EAAJ84E,EAAQ,EAAM,IAAQqyG,GAASnrL,GAAU,EAAJ84E,EAAU,WAC9D7qE,CAAA,CAST,SAASy/E,GAAmB1tF,GAAA,OACnBtG,OAAOw7E,aACP,IAAJl1E,GACI,MAAJA,IAAe,GACX,SAAJA,IAAiB,IACb,WAAJA,IAAmB,IAUxB,SAASg3E,GAAOh3E,GAAA,OACM62E,GAAK72E,GALhB6K,IAAI6iF,IAAoBzlF,KAAK,IAaxC,IAAI6vE,GAA2B,oCA9B/B,SAAa93E,GAAA,IACN,IAAIiO,EAAI,EAAGA,EAAIjO,EAAEtI,OAAQuW,IAAKjO,EAAEiO,GAAK8iG,GAAK/wG,EAAEiO,IAAA,OAC1CjO,EAAEiI,KAAK,IAFhB,CA2Ba4uE,GAGM,UAEnB,SAASoB,GAAMj4E,EAAGiO,GAAA,GACZ6pE,GAAU,KAKRgB,GAAW,MAAJ94E,IAAmB,MAAJiO,GAAA,OACjBjO,GAAK,KAAOiO,GAAK,KAAO6qE,GAAO,KACzB,GAAa,MAANA,CAAA,QAOd94E,EAAIiO,EAAK,WCrMrB,SAASmxE,GAAIp/E,EAAKiO,GAAA,IACZ6qE,EAASzvE,EAdC5R,EAAKk8E,EAAA,GAef3zE,IAAQ84E,EAAS,SACfxC,GAhBQ7+E,EAgBGuI,EAhBE2zE,EAgB+B,GAA1B,IAAM3zE,EAAItI,OAAW,GAftC,IAAIF,MAAMm8E,EAAM,GAAG1rE,KAAKxQ,IAgBzB47E,EAAQ,GACHtvE,EAAI,EAAGA,EAAI,IAAKA,IACvBsvE,EAAMtvE,GAAKA,EAAA,IAET2yE,EAAI,MACC3yE,EAAI,EAAGA,EAAI,IAAKA,IAAK,KACxB+yE,EAAIzD,EAAMtvE,GACd2yE,GAAKA,EAAII,EAAIR,EAAEtyE,WAAWD,IAAM,IAChCsvE,EAAMtvE,GAAKsvE,EAAMqD,GACjBrD,EAAMqD,GAAKI,CAAA,CAEbgC,EAAU94E,EACVqJ,EAAYgqE,CAAA,MAEZA,EAAQhqE,EAAA,IAENnQ,EAAS+U,EAAKvW,OACdi7E,EAAI,EACJgE,EAAI,EACJh3E,EAAM,OACDoE,EAAI,EAAGA,EAAI7K,EAAQ6K,IAG1B4yE,GAAKA,GADLG,EAAIzD,EADJV,GAAKA,EAAI,GAAK,OAEA,IACdU,EAAMV,GAAKU,EAAMsD,GACjBtD,EAAMsD,GAAKG,EACXR,EAAIjD,GAAOA,EAAMV,GAAKU,EAAMsD,IAAM,KAClCh3E,GAAOjG,OAAOw7E,aAAajnE,EAAKjK,WAAWD,GAAKuyE,GAAA,OAE3C32E,CAAA,CCxCT,IAAIw1E,GAAoB,CACtBi2G,MAAO,EACPC,OAAQ,EACR7rL,KAAM,iBACS,IAgBjB,SAAS8rL,GAAYtrL,EAAaiO,EAAc6qE,EAAezvE,GAAA,KACxDC,EAAI,OACJwvE,EAAI,MAGLrhF,EAAa,IACjBuI,EAAY63E,SAAQ,SAAS73E,GAAA,YAChBm1E,GAAkBo2G,KAAA,MACrB,IAAIppL,MAAM,uBAAyBnC,GAE3CvI,GAAc09E,GAAkBn1E,EAAA,SAI7B4wH,QACH,yEAEEj9C,GAAsB1lE,EAAexV,KAAKm4H,SAASr3H,OAAO,EAAG,IAC7D+8E,GAAuBwC,EAAgBrgF,KAAKm4H,SAASr3H,OAAO,EAAG,SAE9Do+E,EAAIl/E,KAAK+yL,qBAAqB73G,EAAoB2C,GAAA,KAClD8I,IAA2B,GAAP,IAAb3nF,IAAA,KACPg0L,cAAgBz0G,GACnBrD,EACEl7E,KAAKk/E,EACLl/E,KAAKizL,aAAajzL,KAAK2mF,GACvB3mF,KAAKkzL,WAAWtiL,IAClB9P,OAAO,EAAG,QACPs0F,EAAIzO,GAAI3mF,KAAKgzL,cAAehzL,KAAKm4H,QAAA,CC1DxC,SAAShjC,GAAU5tF,GAAA,GAEb,mBAAmB1F,KAAK0F,GAAA,MAEpB,IAAImC,MACR,4BAA8BnC,EAAM,2CAGpCiO,EAAS,GACX6qE,EAAY94E,EAAItI,OACT2R,EAAI,EAAGA,EAAIyvE,EAAWzvE,IAAK,KAC9B5R,EAAWuI,EAAIgE,WAAWqF,GAuB5B4E,GArBAxW,EAAW,IACE,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,KAAbA,GACa,MAAbA,GACa,MAAbA,GACAA,EAAW,IASD,KAFS,IADNA,EAASiS,SAAS,KACEd,OAAO,GAK9B5I,EAAIqJ,EAAA,QAGX4E,CAAA,CC3BT,SAAS42H,GAAO52H,GAAA,GACS,YAAnBjO,EAAAA,EAAAA,GAAOiO,GAAA,MACH,IAAI9L,MACR,kEAGA22E,EAAS,CAAC,EAAD,KAERsiE,UAAY,SAASp7I,EAAOiO,EAAU5E,GAAA,GACzCA,EAAOA,IAAA,EAEY,iBAAVrJ,GACa,mBAAbiO,GACS,kBAAT5E,EAAA,MAED,IAAIlH,MACR,+DAIC22E,EAAO5hF,eAAe8I,KACzB84E,EAAO94E,GAAS,CAAC,GAAD,IAGdvI,EAAQy+E,KAAKi8D,SAASzoI,SAAS,WACnCovE,EAAO94E,GAAOvI,GAAS,CAACwW,IAAY5E,GAE7B5R,CAAA,OAGJm0L,YAAc,SAAS5rL,GAAA,IACrB,IAAIiO,KAAS6qE,EAAA,GACZA,EAAO7qE,GAAOjO,GAAA,cACT84E,EAAO7qE,GAAOjO,GACqB,IAAtCnK,OAAOyJ,KAAKw5E,EAAO7qE,IAAQvW,eACtBohF,EAAO7qE,IAAA,EAET,QAGJ,OAGJyuI,QAAU,SAAS18I,GAAA,GAClB84E,EAAO5hF,eAAe8I,GAAQ,KAC5BvI,EAAOD,MAAMP,UAAU2R,MAAMzR,KAAKqG,UAAW,GAC/C84E,EAAS,OAEN,IAAIjD,KAASyF,EAAO94E,GAAQ,KAC3B+D,EAAM+0E,EAAO94E,GAAOqzE,GAAA,IAEtBtvE,EAAI,GAAGxG,MAAM0Q,EAASxW,EAAA,CACtB,MAAOuI,GACHqJ,GAAazK,SACf+0E,GAAQt4E,MAAM,qBAAsB2E,EAAGkC,QAASlC,EAAA,CAGhD+D,EAAI,IAAIuyE,EAAOjuE,KAAKgrE,EAAA,CAEtBiD,EAAO5+E,QAAQ4+E,EAAOuB,QAAQp/E,KAAKmzL,YAAA,QAItCC,UAAY,kBACR/yG,CAAA,EAIX,SAASpB,GAAO13E,GAAA,KACRvH,gBAAgBi/E,IAAA,OACb,IAAIA,GAAO13E,GAAA,IAWhBiO,EAAY,yBAAyB9O,MAAM,SAC1C,IAAI25E,KAAK94E,EACRA,EAAW9I,eAAe4hF,IAAM7qE,EAAUzI,QAAQszE,IAAM,SACrDA,GAAK94E,EAAW84E,IAAA,KAOpB5tE,GAAK,QAKL4gL,cAAgB,EAoBvB,SAASn0G,GAAQ33E,EAAQiO,GAAA,KAClB89K,OAAS/rL,EAAA,KACTmqG,OAASl8F,EAAA,KAET/C,GAAK,QACL4gL,cAAgB,EAGvB,SAASl+C,GAAe5tI,EAAMiO,EAAQ6qE,EAAQzvE,EAAQ5R,GAAA,KAC9CgB,gBAAgBm1I,IAAA,OACb,IAAIA,GAAe5tI,EAAMiO,EAAQ6qE,EAAQzvE,EAAQ5R,GAAA,KAIrD8xF,KAAgB,UAATvpF,EAAmB,EAAI,OAC9BgsL,OAAS/9K,EAAA,KACTg+K,OAASnzG,EAEdnB,GAAQxgF,KAAKsB,KAAM4Q,EAAQ5R,EAAA,CAG7B,SAASmgF,GAAc53E,EAAaiO,EAAO6qE,EAAOzvE,EAAQ5R,GAAA,KAClDgB,gBAAgBm/E,IAAA,OACb,IAAIA,GAAc53E,EAAaiO,EAAO6qE,EAAOzvE,EAAQ5R,GAAA,KAGzDy0L,YAAclsL,EAAA,KACdmsL,MAAQl+K,EAAA,KACRm+K,MAAQtzG,EAAA,KAER8nG,OAAS,QAETyL,WAAa,EAElB10G,GAAQxgF,KAAKsB,KAAM4Q,EAAQ5R,EAAA,CAsC7B,SAASk2F,GAAM1/E,GAAA,IAOT6qE,EANArhF,EAAsC,iBAAjB+F,UAAU,GAAkBA,UAAU,GAAK,IAChE84E,EAAO94E,UAAU,GACjB61E,EAAS71E,UAAU,GACnBuG,EAAcvG,UAAU,GACxBk5E,EAAU,GACVC,EAAW,EAEXh3E,EAAiB,GACjBk5E,EAAuB,IACvBtD,EAAoB,KAID,YAAnBv1E,EAAAA,EAAAA,GAFJiO,EAAUA,GAAW,CAAC,KAGpBxW,EAAcwW,EAAQwuH,YACtBnmD,EAAOroE,EAAQylF,MAAQpd,EACvBjD,EAASplE,EAAQuzF,QAAUnuB,EAC3BtvE,EAAckK,EAAQq+K,UAAYr+K,EAAQs+K,aAAexoL,EAE/B,QAD1BwxE,EAAoBtnE,EAAQu+K,YAAc,QAExCj3G,EAAkBk3G,aAAel3G,EAAkBk3G,cAAgB,GACnEl3G,EAAkBm3G,cAAgBn3G,EAAkBm3G,eAAiB,GACrEn3G,EAAkBo3G,gBAChBp3G,EAAkBo3G,iBAAmB,IAEzCh2G,EAC8B,iBAArB1oE,EAAQ2+K,SAAwB12G,KAAK4sB,IAAI70F,EAAQ2+K,UAAY,WAC3D3+K,EAAQ4+K,YACjB/zG,EAAY7qE,EAAQ4+K,gBAAA,IAEX5+K,EAAQ6+K,iBACjBntL,EAAiBsO,EAAQ6+K,gBAE3Bj0G,EAAuB5qE,EAAQ8+K,sBAAwB,KAGzDr2G,EACEzoE,EAAQ++K,WAAA,IAAYjpL,EAAuB,CAAC,eAAiB2yE,GAE/DJ,EAAOA,GAAQ,KACf7+E,GAAe,IAAMA,GAAe,MAAMu+E,cAAA,IACtC1sE,EAAmB2E,EAAQg/K,mBAAA,EAC3Br2G,EAAY,CAAC,EAEbC,EAAM,CACRqlD,SAAU,CAAC,EACXgxD,YAAa,CAAC,GAGhBr2G,EAAIq2G,YAAYC,OAAStoD,GAAA,IAErB9tD,EAAa,MACbo0G,EAAiBt0G,EAAIq2G,YAAYE,cAAgB,kBAC5Cr2G,CAAA,EAGTF,EAAIq2G,YAAYG,cAAgB,SAASrtL,GACvC+2E,EAAa/2E,CAAA,MAIX+wG,EAAc,CAChBu8E,GAAI,CAAC,QAAS,SACdr7F,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,OAAQ,SACboY,GAAI,CAAC,OAAQ,QACbgjF,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,IAAK,CAAC,KAAM,QACZC,GAAI,CAAC,QAAS,SACdxjF,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdwjF,GAAI,CAAC,QAAS,SACdtjF,GAAI,CAAC,OAAQ,SACbujF,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbC,GAAI,CAAC,QAAS,SACd1/F,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdE,GAAI,CAAC,OAAQ,SACbw/F,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbrV,GAAI,CAAC,OAAQ,QACb9mD,OAAQ,CAAC,IAAK,yBACO,CAAC,IAAK,KAC3Bo8D,MAAO,CAAC,IAAK,qBACG,CAAC,IAAK,KACtBC,OAAQ,CAAC,KAAM,KACfC,QAAS,CAAC,IAAK,oBACA,CAAC,IAAK,MAGvBl4G,EAAIq2G,YAAY8B,eAAiB,kBACxBj+E,CAAA,MAGLrjB,EAAiB7W,EAAIq2G,YAAY+B,cAAgB,SAASjvL,GAAA,OACrD+wG,EAAY/wG,EAAA,EAGrBqzE,EAASA,GAAU,SAEf2D,EACM,SADNA,EAEQ,WAERc,EAAUd,EAAQ,SAEbiB,IAAA,KAIFi3G,oBACL7gL,EACE,IAAI8gL,GACF70D,GACA,EACA,GACCA,GACD,EACA80D,KAAkB90D,IAClB5wH,WAAa,YAEZ2lL,YAAY52L,KAAK62L,cAAgBh1D,IAItCzhD,EAAuB,IAEvBf,EAAUd,CAAQ,UAGXoI,IAAA,KACFmwG,uBACL12G,EAAuB,IACvBf,EAAUd,CAAQ,KAUhB7B,EAAiC0B,EAAIq2G,YAAYsC,8BAAgC,SACnFxvL,EACAiO,GAAA,GAGgB,QAAbjO,GAAqC,UAAdiO,GACV,QAAbjO,GAAqC,KAAdiO,GACV,UAAbjO,GAAuC,UAAdiO,GACZ,QAAbjO,GAAqC,UAAdiO,EAAA,MAElB,IAAI9L,MAAM,0DAEd8L,IACFjO,EACgB,KAAdiO,GAAoC,WAAfA,EACH,WAAdjO,EACE,SACA,SACa,KAAdiO,GAAoC,SAAfA,GACR,WAAdjO,GAEe,KAAdiO,EAAoB,OAASA,GAAc,GAAKjO,EADjD,QAGDA,CAAA,EA6BT62E,EAAI44G,YAAc,SAASzvL,GAAA,IACrBiO,EAAW6pE,IAAYd,EAAQ,OAE/B/oE,GACFgqE,EAAY9gF,KAAKsB,MAGC,mBAATuH,IAIXA,EAAKvH,MAEDwV,GACFmxE,EAAUjoF,KAAKsB,OANRA,IAAA,EAqBXo+E,EAAI64G,UAAY,SAAS1vL,GAAA,IACnBiO,EAAW6pE,IAAYd,EAAQ,OAE/B/oE,GACFmxE,EAAUjoF,KAAKsB,MAGG,mBAATuH,IAIXA,EAAKvH,MAEDwV,GACFgqE,EAAY9gF,KAAKsB,OANVA,IAAA,EAiBXo+E,EAAI84G,cAAgB,kBACX73G,IAAYd,CAAQ,MAyBzBW,EAtBAi4G,EAAsB,SAAS5vL,GAAA,GAC7B83E,IAAYd,EAAQ,MAChB,IAAI70E,MACRnC,EAAA,qFAOF6vL,EAAoBh5G,EAAIi5G,iBAAmBj5G,EAAIq2G,YAAY4C,iBAAmB,SAChF9vL,EACAiO,GAAA,IAEI5E,EAAeyvE,GAAa7qE,EAAA,GAC5BstE,MAAMv7E,IAAWu7E,MAAMlyE,GAAA,MACnB,IAAIlH,MAAM,4DAEXnC,EAAO+vL,QAAQ1mL,GAAc/Q,QAAQ,MAAO,KAMnDq/E,EAAMd,EAAIm5G,IAAMn5G,EAAIq2G,YAAY8C,IADJ,iBAAnBrwL,EAC6B,SAASK,GAAA,GACzCu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,+CAEX0tL,EAAiB7vL,EAAQL,EAAA,EAEN,UAAnBA,EAC6B,SAASK,GAAA,GACzCu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,+CAGT0tL,EAAiB7vL,EADtBA,GAAU,GAAKA,EAAS,EACM,GAEA,IAIE,SAASA,GAAA,GACzCu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,+CAEX0tL,EAAiB7vL,EAAQ,SAGhCm1I,EAAMt+D,EAAIo5G,GAAKp5G,EAAIq2G,YAAY+C,GAAK,SAASjwL,GAAA,GAC3Cu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,8CAEX0tL,EAAiB7vL,EAAQ,IAG9BixG,EAAMp6B,EAAIq2G,YAAYgD,GAAK,SAASlwL,GAAA,GAClCu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,8CAEX0tL,EAAiB7vL,EAAQ,IAG9B6tF,EAAShX,EAAIy6C,MAAQz6C,EAAIq2G,YAAY57D,MAAQ,SAAStxH,GAAA,GACpDu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,iDAEd21E,IAAYd,EACPh3E,EAASs6H,GACPxiD,IAAYd,EACdh3E,OAAA,CADF,EAaLmwL,EAAkB,SAASnwL,GAAA,OACtB6tF,EATQ,SAAS7tF,GAAA,OACpB83E,IAAYd,EACPo4G,KAAkBpvL,EAChB83E,IAAYd,EACdh3E,OAAA,CADF,CAMMytF,CAAWztF,GAAA,EAW1B62E,EAAIq2G,YAAYkD,aAAev5G,EAAIu5G,aAAe,SAASpwL,GACtB,iBAAxBo1E,SAASp1E,EAAO,MACzB84E,EAAY1D,SAASp1E,EAAO,UA0D5BqwL,EAtDAr/E,EAAS,mCAETs/E,EAAaz5G,EAAIq2G,YAAYqD,UAAY,kBACpCv/E,CAAA,EAGLw/E,EAAa35G,EAAIq2G,YAAYuD,UAAY,SAASzwL,GAAA,OAElDgxG,OAAA,IADShxG,GAAyB,oBAAoB1F,KAAK0F,GAClDA,EAAMw+E,cAENwyB,EACN7xG,MAAM,IACN0L,KAAI,iBACI,mBAAmByoE,OAAO4C,KAAK8H,MAAsB,GAAhB9H,KAAKi8D,UAAA,IAElDlqI,KAAK,IAGgB,OAAtBstE,IACFm7G,GAAa,IAAIpF,GACf/1G,EAAkBo3G,gBAClBp3G,EAAkBk3G,aAClBl3G,EAAkBm3G,cAClB17E,IAGGA,CAAA,EAWTn6B,EAAI45G,UAAY,SAASzwL,GAAA,OACvBwwL,EAAUxwL,GACHvH,IAAA,EAWTo+E,EAAI05G,UAAY,kBACPD,GAAA,MAKLK,EAAwB95G,EAAIq2G,YAAY0D,qBAAuB,SACjE5wL,GAAA,IAGIiO,EAAWjO,EAAS6wL,oBACtB/3G,EAAS7qE,EAAW,EAAI,IAAM,IAC9B5E,EAAS6sE,KAAK8H,MAAM9H,KAAK4sB,IAAI70F,EAAW,KACxCxW,EAAQy+E,KAAK4sB,IAAI70F,EAAW,IAC5B0lE,EAAiB,CAACmF,EAAQg4G,EAAMznL,GAAS,IAAKynL,EAAMr5L,GAAQ,KAAKwQ,KAAK,UAE/D,CACP,KACAjI,EAAS+wL,cACTD,EAAM9wL,EAASgxL,WAAa,GAC5BF,EAAM9wL,EAASixL,WACfH,EAAM9wL,EAASkxL,YACfJ,EAAM9wL,EAASmxL,cACfL,EAAM9wL,EAASoxL,cACfz9G,GACA1rE,KAAK,KAILopL,EAAwBx6G,EAAIq2G,YAAYoE,qBAAuB,SACjEtxL,GAAA,IAEIiO,EAAOmnE,SAASp1E,EAAYzG,OAAO,EAAG,GAAI,IAC1Cu/E,EAAQ1D,SAASp1E,EAAYzG,OAAO,EAAG,GAAI,IAAM,EACjD8P,EAAO+rE,SAASp1E,EAAYzG,OAAO,EAAG,GAAI,IAC1C9B,EAAO29E,SAASp1E,EAAYzG,OAAO,GAAI,GAAI,IAC3Co6E,EAAUyB,SAASp1E,EAAYzG,OAAO,GAAI,GAAI,IAC9C+8E,EAAUlB,SAASp1E,EAAYzG,OAAO,GAAI,GAAI,WAI9B,IAAIqgF,KAAK3rE,EAAM6qE,EAAOzvE,EAAM5R,EAAMk8E,EAAS2C,EAAS,IAItEi7G,EAAmB16G,EAAIq2G,YAAYsE,gBAAkB,SAASxxL,GAAA,IAC5DiO,EAAA,YAEOjO,IACTA,EAAO,IAAI45E,MAGT55E,aAAgB45E,KAClB3rE,EAAwB0iL,EAAqB3wL,OACxC,KAPoB,kMAOK1F,KAAK0F,GAAA,MAG7B,IAAImC,MAAM,oDAFhB8L,EAAwBjO,CAAA,QAI1BqwL,EAAepiL,CAAA,EAIb6/E,EAAmBjX,EAAIq2G,YAAYuE,gBAAkB,SAASzxL,GAAA,IAC5DiO,EAASoiL,EAAA,MACA,WAATrwL,IACFiO,EAASojL,EAAqBhB,IAEzBpiL,CAAA,EAWT4oE,EAAI26G,gBAAkB,SAASxxL,GAAA,OAC7BuxL,EAAgBvxL,GACTvH,IAAA,EAWTo+E,EAAI46G,gBAAkB,SAASzxL,GAAA,OACtB8tF,EAAgB9tF,EAAA,MAmBrBumI,EAhBAuqD,EAASj6G,EAAIq2G,YAAYwE,MAAQ,SAAS1xL,GAAA,OACpC,IAAMo1E,SAASp1E,IAAS4I,OAAO,IAGrC+oL,EAAY96G,EAAIq2G,YAAY0E,SAAW,SAAS5xL,GAAA,OAE1C,MADRA,EAAYA,EAAU0J,aACInQ,OAAOyG,EAAUtI,OAAA,EAGzC2jL,EAAe,EACfwW,EAAU,GACV5Y,EAAU,GACV96I,EAAgB,EAChB2zJ,EAAoB,GAEpBC,EAAQ,GAER3Y,GAAA,EACA4Y,EAAoB/Y,EAcxBpiG,EAAIq2G,YAAY+E,2BAA6B,SAASjyL,GACpDo5K,GAAA,EACA4Y,EAAoBhyL,CAAA,MAElBkyL,EAAuB,SAASlyL,GAC7Bo5K,IACH4Y,EAAoBhyL,EAAA,EAIxB62E,EAAIq2G,YAAYiF,6BAA+B,WAC7C/Y,GAAA,EACA4Y,EAAoB/Y,CAAA,MAGlB5qK,EAAOwoE,EAAIq2G,YAAY5rB,IAAM,SAASthK,GAAA,OACxCA,EAASA,EAAO0J,WAChBy0B,GAAiBn+B,EAAOtI,OAAS,EACjCs6L,EAAkB3pL,KAAKrI,GAEhBgyL,CAAA,EAGLI,EAASv7G,EAAIq2G,YAAYl8F,MAAQ,SAAShxF,GAAA,OACrCqO,EACgB,IAArB7Q,UAAU9F,OACNsI,EAAM0J,WACNlS,MAAMP,UAAUgR,KAAK9Q,KAAKqG,UAAW,OAIzCiB,GAAkBo4E,EAAIq2G,YAAYmF,eAAiB,SAASryL,GAAA,QAC1DiO,EAAMjO,EAAKtI,OACbohF,EAAK,IAAIsK,YAAYn1E,GACrB5E,EAAK,IAAIg0E,WAAWvE,GAEf7qE,KAAO5E,EAAG4E,GAAOjO,EAAKgE,WAAWiK,GAAA,OACjC6qE,CAAA,EAGL/4E,GAAgB,CAClB,CAAC,YAAa,YAAa,SAAU,mBACrC,CAAC,iBAAkB,YAAa,OAAQ,mBACxC,CAAC,oBAAqB,YAAa,SAAU,mBAC7C,CAAC,wBAAyB,YAAa,aAAc,mBACrD,CAAC,UAAW,UAAW,SAAU,mBACjC,CAAC,eAAgB,UAAW,OAAQ,mBACpC,CAAC,kBAAmB,UAAW,SAAU,mBACzC,CAAC,sBAAuB,UAAW,aAAc,mBACjD,CAAC,cAAe,QAAS,SAAU,mBACnC,CAAC,aAAc,QAAS,OAAQ,mBAChC,CAAC,eAAgB,QAAS,SAAU,mBACpC,CAAC,mBAAoB,QAAS,aAAc,mBAC5C,CAAC,eAAgB,eAAgB,SAAU,MAC3C,CAAC,SAAU,SAAU,SAAU,OAGjC82E,EAAIq2G,YAAYoF,iBAAmB,kBAC1BvyL,EAAA,MAGLqO,GAAiBH,EAAQw6F,UAAY,GAYzC5xB,EAAIq2G,YAAYmC,YAAcx4G,EAAIw4G,YAAc,SAASrvL,GAAA,OAErDoO,GADE0pE,IAAYd,EACGh3E,EAAOs6H,GAEPt6H,EAEZvH,IAAA,MAkDL85L,GAtCAC,GAAe37G,EAAIq2G,YAAYoC,YAAcz4G,EAAIy4G,YAAc,kBAC7Dx3G,IAAYd,EACP5oE,GAEAA,GAAiBksH,EAAA,EAIxBy/C,GAAM9rK,EAAQwkL,MAAA,EAYlB57G,EAAIq2G,YAAYwF,OAAS77G,EAAI67G,OAAS,SAAS1yL,GAAA,OAC7C+5K,GAAM/5K,EACCvH,IAAA,EAYTo+E,EAAIq2G,YAAYyF,OAAS97G,EAAI87G,OAAS,kBAC7B5Y,EAAA,MAkCL6Y,GA7BAC,GAAeh8G,EAAIq2G,YAAY4F,YAAc,SAAS9yL,GAOtD,GAGE,+BAA+B1F,KAAK0F,GACtCuyL,GAAWvyL,OACN,GAAKu7E,MAAMv7E,GAEX,KAAsC,IAbxB,MAAC,EAEpB,KACA,YACA,aACA,WACA,YAOwBwF,QAAQxF,GAAA,MAG1B,IAAImC,MACR,gHACEnC,EACA,wBALJuyL,GAAWvyL,CAAA,MAFXuyL,GAAWn9G,SAASp1E,EAAM,KAY9B62E,EAAIq2G,YAAY6F,YAAc,kBACrBR,EAAA,MA4BLS,GAxBArmJ,GAAekqC,EAAIq2G,YAAY+F,YAAc,SAASjzL,GAAA,IAUlB,GATjB,MAAC,EAEpB,KACA,UACA,cACA,YACA,cAGiBwF,QAAQxF,GAAA,MACnB,IAAImC,MACR,6EACEnC,EACA,wBAGN4yL,GAAW5yL,CAAA,EAGb62E,EAAIq2G,YAAYgG,YAAc,kBACrBN,EAAA,MAILO,GAAiBt8G,EAAIq2G,YAAYkG,cAAgB,SAASpzL,GAAA,IAWnB,GAVlB,MAAC,EAEtB,KACA,aACA,SACA,UACA,WACA,OAGmBwF,QAAQxF,GAAA,MACrB,IAAImC,MACR,sEACEnC,EACA,wBAGNgzL,GAAahzL,CAAA,EAGf62E,EAAIq2G,YAAYmG,cAAgB,kBACvBL,EAAA,EA4BTn8G,EAAIq2G,YAAYoG,eAAiBz8G,EAAIy8G,eAAiB,SACpDtzL,EACAiO,EACA6qE,GAAA,OAEA+5G,GAAY7yL,GACZmzL,GAAcllL,GACd0+B,GAAYmsC,GACLrgF,IAAA,MAGL68E,GAAqB,CACvBusG,MAAO,GACP0R,QAAS,GACTC,OAAQ,GACRC,SAAU,GACVC,QAAS,IAGX78G,EAAIq2G,YAAYyG,oBAAsB,SAAS3zL,GAAA,IACS,IAAlDnK,OAAOyJ,KAAKg2E,IAAoB9vE,QAAQxF,GAAA,MACpC,IAAImC,MAAM,+DAEXmzE,GAAmBt1E,EAAA,EAG5B62E,EAAIq2G,YAAY0G,sBAAwB,kBAC/Bt+G,EAAA,EAaTuB,EAAIq2G,YAAY2G,sBAAwBh9G,EAAIi9G,cAAgBj9G,EAAIg9G,sBAAwB,SACtF7zL,GAAA,IAGK,IAAIiO,KAAYqnE,GACfA,GAAmBp+E,eAAe+W,IAAajO,EAAWiO,KAC5DqnE,GAAmBrnE,GAAYjO,EAAWiO,IAAA,OAGvCxV,IAAA,EAGTo+E,EAAIq2G,YAAY6G,oBAAsB,SAAS/zL,EAAKiO,GAAA,IACI,IAAlDpY,OAAOyJ,KAAKg2E,IAAoB9vE,QAAQxF,GAAA,MACpC,IAAImC,MAAM,gEAEVmzE,GAAmBt1E,GAAOiO,CAAA,MAKhC+lL,GAOA15D,GASA25D,GACAC,GACAC,GApBAC,GAAQ,CAAC,EACTC,GAAU,CAAC,EAEXC,GAAiB,GACjBC,GAAW,CAAC,EACZC,GAAa,CAAC,EACdC,GAAU,CAAC,EACXC,GAAa,CAAC,EACdC,GAAe,KAEfC,GAAO,EACPC,GAAe,GACfC,GAAS,IAAIjwD,GAAOhuD,GACpBk+G,GAAW9mL,EAAQ+mL,UAAY,GAE/BC,GAAgB,CAAC,EACjBC,GAAkB,CAAC,EACnBC,GAAoB,GAsBpBhG,GAAS,SAATnvL,EAAkBiO,EAAI6qE,EAAKzvE,EAAK5R,EAAIk8E,EAAI2C,GAAA,KACpC79E,gBAAgBuH,GAAA,OACb,IAAIA,EAAOiO,EAAI6qE,EAAKzvE,EAAK5R,EAAIk8E,EAAI2C,GAGtCiF,MAAMttE,KAAKA,EAAK,GAChBstE,MAAMzC,KAAMA,EAAM,GAClByC,MAAMlyE,KAAMA,EAAM,GAClBkyE,MAAM9jF,KAAKA,EAAK,GAChB8jF,MAAM5H,KAAKA,EAAK,GAChB4H,MAAMjF,KAAKA,EAAK,QAEf8+G,QAAU,CAACnnL,EAAI6qE,EAAKzvE,EAAK5R,EAAIk8E,EAAI2C,EAAA,EAOxCzgF,OAAOgY,eAAeshL,GAAOl4L,UAAW,KAAM,CAC5C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,MAAO,CAC7C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,MAAO,CAC7C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,KAAM,CAC5C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,KAAM,CAC5C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,KAAM,CAC5C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAItBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,IAAK,CAC3C8W,IAAK,kBACItV,KAAK28L,QAAQ,IAEtBpnL,IAAK,SAAShO,GAAA,KACPo1L,QAAQ,GAAKp1L,CAAA,IAQtBnK,OAAOgY,eAAeshL,GAAOl4L,UAAW,WAAY,CAClD8W,IAAK,kBACImoE,KAAKysB,MAAMlqG,KAAK48L,IAAK58L,KAAK68L,GAAA,IAQrCz/L,OAAOgY,eAAeshL,GAAOl4L,UAAW,SAAU,CAChD8W,IAAK,kBACItV,KAAK88L,YAAYjkE,MAAMgkE,EAAA,IAQlCz/L,OAAOgY,eAAeshL,GAAOl4L,UAAW,SAAU,CAChD8W,IAAK,kBACItV,KAAK88L,YAAYjkE,MAAMkkE,EAAA,IAQlC3/L,OAAOgY,eAAeshL,GAAOl4L,UAAW,aAAc,CACpD8W,IAAK,kBACa,IAAZtV,KAAK68L,IAGQ,IAAb78L,KAAK49D,KAGQ,IAAb59D,KAAK48L,KAGO,IAAZ58L,KAAK+8L,IAGO,IAAZ/8L,KAAKg9L,IAGO,IAAZh9L,KAAKi9L,EAAA,IAebvG,GAAOl4L,UAAUgR,KAAO,SAASjI,GAAA,MACxB,CAACvH,KAAK68L,GAAI78L,KAAK49D,IAAK59D,KAAK48L,IAAK58L,KAAK+8L,GAAI/8L,KAAKg9L,GAAIh9L,KAAKi9L,IACzD7qL,IAAI8sE,GACJ1vE,KAAKjI,EAAA,EAWVmvL,GAAOl4L,UAAU0+L,SAAW,SAAS31L,GAAA,IAC/BiO,EAAKjO,EAAOs1L,GAAK78L,KAAK68L,GAAKt1L,EAAOq2D,IAAM59D,KAAK48L,IAC7Cv8G,EAAM94E,EAAOs1L,GAAK78L,KAAK49D,IAAMr2D,EAAOq2D,IAAM59D,KAAK+8L,GAC/CnsL,EAAMrJ,EAAOq1L,IAAM58L,KAAK68L,GAAKt1L,EAAOw1L,GAAK/8L,KAAK48L,IAC9C59L,EAAKuI,EAAOq1L,IAAM58L,KAAK49D,IAAMr2D,EAAOw1L,GAAK/8L,KAAK+8L,GAC9C7hH,EAAK3zE,EAAOy1L,GAAKh9L,KAAK68L,GAAKt1L,EAAO01L,GAAKj9L,KAAK48L,IAAM58L,KAAKg9L,GACvDn/G,EAAKt2E,EAAOy1L,GAAKh9L,KAAK49D,IAAMr2D,EAAO01L,GAAKj9L,KAAK+8L,GAAK/8L,KAAKi9L,GAAA,OAEpD,IAAIvG,GAAOlhL,EAAI6qE,EAAKzvE,EAAK5R,EAAIk8E,EAAI2C,EAAA,EAO1C64G,GAAOl4L,UAAUs+L,UAAY,eACvBv1L,EAAIvH,KAAK68L,GACTrnL,EAAIxV,KAAK49D,IACTyiB,EAAIrgF,KAAK48L,IACThsL,EAAI5Q,KAAK+8L,GACT/9L,EAAIgB,KAAKg9L,GACT9hH,EAAIl7E,KAAKi9L,GAETp/G,EAASJ,KAAKqtB,KAAKvjG,EAAIA,EAAIiO,EAAIA,GAI/BolE,GAHJrzE,GAAKs2E,GAGWwC,GAFhB7qE,GAAKqoE,GAEmBjtE,EACxByvE,GAAK94E,EAAIqzE,EACThqE,GAAK4E,EAAIolE,EAAA,IAELtvE,EAASmyE,KAAKqtB,KAAKzqB,EAAIA,EAAIzvE,EAAIA,GAAA,OAGnCgqE,GAAStvE,EAEL/D,GAHJqJ,GAAKtF,GAGOkK,GAJZ6qE,GAAK/0E,KAKH/D,GAAKA,EACLiO,GAAKA,EACLolE,GAASA,EACTiD,GAAUA,GAGL,CACLg7C,MAAO,IAAI69D,GAAO74G,EAAQ,EAAG,EAAGvyE,EAAQ,EAAG,GAC3CytH,UAAW,IAAI29D,GAAO,EAAG,EAAG,EAAG,EAAG13L,EAAGk8E,GACrCiiH,OAAQ,IAAIzG,GAAOnvL,EAAGiO,GAAIA,EAAGjO,EAAG,EAAG,GACnC61L,KAAM,IAAI1G,GAAO,EAAG,EAAG97G,EAAO,EAAG,EAAG,KAQxC87G,GAAOl4L,UAAUyS,SAAW,SAAS1J,GAAA,OAC5BvH,KAAKwP,KAAK,MAOnBknL,GAAOl4L,UAAU6+L,SAAW,eACtB91L,EAAIvH,KAAK68L,GACXrnL,EAAIxV,KAAK49D,IACTyiB,EAAIrgF,KAAK48L,IACThsL,EAAI5Q,KAAK+8L,GACT/9L,EAAIgB,KAAKg9L,GACT9hH,EAAIl7E,KAAKi9L,GAEPp/G,EAAO,GAAKt2E,EAAIqJ,EAAI4E,EAAI6qE,GAExBzF,EAAOhqE,EAAIitE,EACXvyE,GAAQkK,EAAIqoE,EACZI,GAAQoC,EAAIxC,EACZQ,EAAO92E,EAAIs2E,EAAA,OAIR,IAAI64G,GAAO97G,EAAMtvE,EAAM2yE,EAAMI,GAHxBzD,EAAO57E,EAAIi/E,EAAO/C,GAClB5vE,EAAOtM,EAAIq/E,EAAOnD,EAAA,EAShCw7G,GAAOl4L,UAAU8+L,aAAe,SAAS/1L,GAAA,IACnCiO,EAAIjO,EAAGg3E,EAAIv+E,KAAK68L,GAAKt1L,EAAG62E,EAAIp+E,KAAK48L,IAAM58L,KAAKg9L,GAC5C38G,EAAI94E,EAAGg3E,EAAIv+E,KAAK49D,IAAMr2D,EAAG62E,EAAIp+E,KAAK+8L,GAAK/8L,KAAKi9L,GAAA,OACzC,IAAIM,GAAM/nL,EAAG6qE,EAAA,EAOtBq2G,GAAOl4L,UAAUg/L,iBAAmB,SAASj2L,GAAA,IACvCiO,EAAMxV,KAAKs9L,aAAa/1L,GACxB84E,EAAMrgF,KAAKs9L,aAAa,IAAIC,GAAMh2L,EAAKg3E,EAAIh3E,EAAK+2E,EAAG/2E,EAAK62E,EAAI72E,EAAK82E,IAAA,OAC9D,IAAIo/G,GAAUjoL,EAAI+oE,EAAG/oE,EAAI4oE,EAAGiC,EAAI9B,EAAI/oE,EAAI+oE,EAAG8B,EAAIjC,EAAI5oE,EAAI4oE,EAAA,EAWhEs4G,GAAOl4L,UAAUgpH,MAAQ,eACnBjgH,EAAKvH,KAAK68L,GACVrnL,EAAMxV,KAAK49D,IACXyiB,EAAMrgF,KAAK48L,IACXhsL,EAAK5Q,KAAK+8L,GACV/9L,EAAKgB,KAAKg9L,GACV9hH,EAAKl7E,KAAKi9L,GAAA,OAEP,IAAIvG,GAAOnvL,EAAIiO,EAAK6qE,EAAKzvE,EAAI5R,EAAIk8E,EAAA,EAG1CkD,EAAIs/G,OAAShH,GAAA,IAST54J,GAAcsgD,EAAIu/G,WAAa,SAASp2L,EAAIiO,GAAA,OACvCA,EAAG0nL,SAAS31L,EAAA,EASjBq2L,GAAiB,IAAIlH,GAAO,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/Ct4G,EAAIy/G,WAAaz/G,EAAI0/G,eAAiBF,GAAA,IAOlCG,GAAa,SAASx2L,EAAKiO,GAAA,IAEzBumL,GAAWx0L,GAAA,KAGX84E,GADS7qE,aAAmB2/H,GAAiB,KAAO,MAC7B/3I,OAAOyJ,KAAKi1L,IAAU78L,OAAS,GAAGgS,SAAS,IACtEuE,EAAQ/C,GAAK4tE,EAEb07G,GAAWx0L,GAAO84E,EAClBy7G,GAASz7G,GAAc7qE,EAEvB6mL,GAAOp4C,QAAQ,aAAczuI,EAAA,GAmB/B4oE,EAAI4/G,eAAiB7oD,GAgBrB/2D,EAAI6/G,cAAgB9+G,GAWpBf,EAAI8/G,kBAAoB,SAAS32L,EAAKiO,GAAA,OACpC2hL,EAAoB,uBAEpB4G,GAAWx2L,EAAKiO,GACTxV,IAAA,EAUTo+E,EAAI+/G,mBAAqB,SAAS52L,GAChC4vL,EAAoB,wBAEpBiH,GACE72L,EAAQksL,YAAY,GACpBlsL,EAAQksL,YAAY,GACpBlsL,EAAQksL,YAAY,GAAKlsL,EAAQksL,YAAY,GAC7ClsL,EAAQksL,YAAY,GAAKlsL,EAAQksL,YAAY,GAC7ClsL,EAAQmqG,OAAA,EAcZtzB,EAAIigH,iBAAmB,SAAS92L,EAAKiO,GACnC2hL,EAAoB,sBAGpB3hL,EAAQ2yK,OAASmR,EAAMxrD,GAAat+H,KAAK,MAEzCuuL,GAAWx2L,EAAKiO,GAEhB6mL,GAAOp4C,QAAQ,mBAAoBzuI,GAGnCknL,GAAkBr/G,MAAMk8C,SAAA,MAu5BKhyH,GAp5B3B+2L,GAAalgH,EAAIq2G,YAAY8J,UAAY,eACvCh3L,EAAMi3L,KAAA,OACVC,GAAuBl3L,GAAA,GAChBA,CAAA,EAILi3L,GAAqBpgH,EAAIq2G,YAAYiK,kBAAoB,kBAC3D9b,IACAwW,EAAQxW,GAAgB,kBACfl9I,CAAA,EAEFk9I,CAAA,EAGL6b,GAAyB,SAASl3L,EAAKiO,GAAA,OACzCA,EAA+B,kBAAbA,GAAyBA,EAC3C4jL,EAAQ7xL,GAAOm+B,EACXlwB,GACFI,EAAIrO,EAAM,UAELA,CAAA,EAMLo3L,GAAuBvgH,EAAIq2G,YAAYmK,oBAAsB,eAE3Dr3L,EAAM,CACRs3L,MAFUL,KAGVnrF,QAAS,WAEXgmF,EAAkBzpL,KAAKrI,GAChBA,CAAA,EAGLu3L,GAAsBN,KACtBO,GAA0BP,KAM1B3rK,GAAqBurD,EAAIq2G,YAAYuK,kBAAoB,SAASz3L,GAAA,IAChEiO,EAAejO,EAAMb,MAAM,QAEL,IAAxB8O,EAAavW,QACQ,MAApBuW,EAAa,IAAkC,MAApBA,EAAa,GAMjB,IAAxBA,EAAavW,QACQ,MAApBuW,EAAa,IAAkC,MAApBA,EAAa,KAOzCA,EAAe,EAJJ,EAAMA,EAAa,KAAO,EAAMA,EAAa,KAC3C,EAAMA,EAAa,KAAO,EAAMA,EAAa,KAC9C,EAAMA,EAAa,KAAO,EAAMA,EAAa,IAEvB,UAblC,KAEI6qE,EAAW4+G,WAAWzpL,EAAa,IACvCA,EAAe,CAAC6qE,EAAUA,EAAUA,EAAU,aAY5CzvE,EAAa,IACR5R,EAAI,EAAGA,EAAI,EAAGA,IACrB4R,IACE,IAAM6sE,KAAK8H,MAAoC,IAA9B05G,WAAWzpL,EAAaxW,KAAWiS,SAAS,KAC7Dd,OAAO,UAEJS,CAAA,EAGLyhL,GAAqBj0G,EAAIq2G,YAAYyK,kBAAoB,SAC3D1pL,GAAA,IAEI6qE,EAEmB,iBAAZ7qE,IACTA,EAAU,CACR2pL,IAAK3pL,IAAA,IAGL5E,EAAM4E,EAAQ2pL,IACdngM,EAAMwW,EAAQ4pL,IACdlkH,EAAM1lE,EAAQ6pL,IACdxhH,EAAMroE,EAAQ8pL,IACd1kH,EACuB,SAAzBplE,EAAQ+pL,aAA0B,CAAC,IAAK,KAAM,KAAO,CAAC,IAAK,KAAM,QAEhD,iBAAR3uL,GAAsC,MAAlBA,EAAIiqE,OAAO,GAAY,KAChDvvE,EAAW,IAAI4uE,GAAStpE,GAAA,GACxBtF,EAASm+K,GACX74K,EAAMtF,EAASknL,aACV,IAAK,cAAc3wL,KAAK+O,GAAA,MACvB,IAAIlH,MACR,kBAAoBkH,EAAM,2CAKb,iBAARA,GAAoB,oBAAoB/O,KAAK+O,KACtDA,EAAM,IAAMA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAG5C,iBAARA,GAAoB,oBAAoB/O,KAAK+O,GAAM,KACxDqtE,EAAMtB,SAAS/rE,EAAI9P,OAAO,GAAI,IAClC8P,EAAOqtE,GAAO,GAAM,IACpBj/E,EAAOi/E,GAAO,EAAK,IACnB/C,EAAY,IAAN+C,CAAA,aAICj/E,QAAA,IACC6+E,GAAuBjtE,IAAQ5R,GAAOA,IAAQk8E,EAAA,GAGnC,iBAARtqE,EACTyvE,EAAQzvE,EAAM,IAAMgqE,EAAY,WAGzB,IADCplE,EAAQ4+K,UAEZ/zG,EAAQq8D,EAAG9rI,EAAM,KAAO,IAAMgqE,EAAY,QAI1CyF,EAAQm4B,EAAG5nG,EAAM,KAAO,IAAMgqE,EAAY,QAG3C,QAAI,IAAOiD,GAAsC,YAAft2E,EAAAA,EAAAA,GAAOs2E,GAAkB,IAE5DA,IAAQiF,MAAMjF,EAAI3C,IAGN,IAAV2C,EAAI3C,EAAA,MACE,CAAC,KAAM,KAAM,KAAMN,EAAY,IAAIprE,KAAK,QAKjC,iBAARoB,EACTyvE,EAAQ,CAACzvE,EAAK5R,EAAKk8E,EAAKN,EAAY,IAAIprE,KAAK,aAGtC,IADCgG,EAAQ4+K,UAEZ/zG,EAAQ,CACNq8D,EAAG9rI,EAAM,KACT8rI,EAAG19I,EAAM,KACT09I,EAAGxhE,EAAM,KACTN,EAAY,IACZprE,KAAK,UAIP6wE,EAAQ,CACNm4B,EAAG5nG,EAAM,KACT4nG,EAAGx5G,EAAM,KACTw5G,EAAGt9B,EAAM,KACTN,EAAY,IACZprE,KAAK,aAKM,iBAARoB,EACTyvE,EAAQ,CAACzvE,EAAK5R,EAAKk8E,EAAK2C,EAAKjD,EAAY,IAAIprE,KAAK,aAG3C,IADCgG,EAAQ4+K,UAEZ/zG,EAAQ,CAACq8D,EAAG9rI,GAAM8rI,EAAG19I,GAAM09I,EAAGxhE,GAAMwhE,EAAG7+D,GAAMjD,EAAY,IAAIprE,KAC3D,UAKF6wE,EAAQ,CAACm4B,EAAG5nG,GAAM4nG,EAAGx5G,GAAMw5G,EAAGt9B,GAAMs9B,EAAG36B,GAAMjD,EAAY,IAAIprE,KAC3D,YAKH6wE,CAAA,EAGL3mC,GAAc0kC,EAAIq2G,YAAY+K,WAAa,kBACtCvhH,CAAA,EAGLwhH,GAAarhH,EAAIq2G,YAAYiL,UAAY,SAASn4L,GAAA,IAEhDiO,GADJjO,EAAUA,GAAW,CAAC,GACH/C,MAAQ,GACvB67E,EAAU94E,EAAQgtL,SAAW76I,KAC7B9oC,EAAwBrJ,EAAQo4L,uBAAyB,GACzD3gM,EAAauI,EAAQq4L,aAAA,EACrB1kH,EAAiB1lE,EAAKvW,OACtB4+E,EAAWt2E,EAAQs4L,SACnBjlH,EAAY,SAASrzE,GAAA,OAChBA,CAAA,KAEiB,OAAtBu1E,QAAA,IAAqCe,EAAA,MACjC,IAAIn0E,MACR,4DAGsB,OAAtBozE,IACFlC,EAAYq9G,GAAW6H,UAAUjiH,EAAU,QAGzCvyE,EAAgB,CAAC,GAAD,IAChB+0E,IACFA,EAAU,CAAC,oBAETpC,EAAY12E,EAAQw4L,qBAAuB,GAM3C1hH,GAJF/yE,OAAA,IADS4pF,GAAMq4E,IAAIyyB,qBACH9qG,GAAMq4E,IAAIyyB,qBAAqBxqL,EAAM6qE,GAErC,CAAE77E,KAAMgR,EAAMyqL,aAAc,KAG9BA,cACblhM,MAAM8rF,QAAQj6E,GACXA,EAAsBpB,KAAK,KAC3BoB,EAAsBK,YAAA,GAEM,IAA9B3F,EAAc9G,KAAKvF,SACrBg/E,EAAUruE,KAAK,CACbrR,IAAK,SACLf,MAAO8N,EAAc9G,KAAKvF,UAAA,IAExBD,GACFi/E,EAAUruE,KAAK,CACbrR,IAAK,UACLf,MAAO09E,KAKgB,GAAzBmD,EAAep/E,OAAA,GACbo/E,EAAe33E,MAAM,KAAKzH,OAAS,GAAM,EAC3Cg/E,EAAUruE,KAAK,CACbrR,IAAK,SACLf,MAAO6gF,QAEJ,CACLJ,EAAUruE,KAAK,CACbrR,IAAK,SACLf,MAAO,IAAM6gF,EAAiB,UAG3B,IAAI59E,EAAI,EAAGA,EAAIw9E,EAAUh/E,OAAQwB,GAAK,EAAG,GACnB,gBAArBw9E,EAAUx9E,GAAGlC,IAAuB,SAClC27E,EAAmB,GAGjBgE,EAAI,EACRA,EAAI5yE,EAAc20L,aAAav5L,MAAM,KAAKzH,OAAS,EACnDi/E,GAAK,EAELhE,EAAiBtqE,KAAK,QAGxBsqE,EAAiBtqE,KAAKquE,EAAUx9E,GAAGjD,OACnCygF,EAAUx9E,GAAGjD,MAAQ,IAAM08E,EAAiB1qE,KAAK,KAAO,KAMhEoG,EAAI,UACC,IAAI1O,EAAI,EAAGA,EAAI+2E,EAAUh/E,OAAQiI,IACpC0O,EAAI,IAAMqoE,EAAU/2E,GAAG3I,IAAM,IAAM0/E,EAAU/2E,GAAG1J,OAElDoY,EAAI,MAC8B,IAA9BtK,EAAc9G,KAAKvF,SACrB2W,EAAI,UACJA,EAAIglE,EAAUtvE,EAAc9G,OAC5BoR,EAAI,eAIJsqL,GAAW9hH,EAAIq2G,YAAY0L,QAAU,SAAS54L,GAAA,IAC5CiO,EAAajO,EAAKyzF,OAClB3a,EAAO94E,EAAK/C,KACZoM,EAAmBrJ,EAAKs3L,MACxB7/L,EAAoBuI,EAAK64L,cAE7B3B,GAAuB7tL,GAAA,GACvBgF,EAAI,iBACJA,EAAI,WAAarO,EAAK84L,oBAAsB,QAC5CzqL,EAAI,cAAgBrO,EAAK+4L,wBAA0B,QACnD1qL,EACE,cACEqpL,WAAW//G,EAAI33E,EAAKg5L,SAASC,cAC7B,IACAvB,WAAW//G,EAAI33E,EAAKg5L,SAASE,cAC7B,IACAvhH,EAAI33E,EAAKg5L,SAASG,WAClB,IACAxhH,EAAI33E,EAAKg5L,SAASI,WAClB,KAEiB,OAAjBp5L,EAAKq5L,SACPhrL,EACE,aACEspE,EAAI33E,EAAKq5L,QAAQJ,aACjB,IACAthH,EAAI33E,EAAKq5L,QAAQH,aACjB,IACAvhH,EAAI33E,EAAKq5L,QAAQF,WACjB,IACAxhH,EAAI33E,EAAKq5L,QAAQD,WACjB,KAIgB,OAAlBp5L,EAAKs5L,UACPjrL,EACE,cACEspE,EAAI33E,EAAKs5L,SAASL,aAClB,IACAthH,EAAI33E,EAAKs5L,SAASJ,aAClB,IACAvhH,EAAI33E,EAAKs5L,SAASH,WAClB,IACAxhH,EAAI33E,EAAKs5L,SAASF,WAClB,KAIe,OAAjBp5L,EAAKu5L,SACPlrL,EACE,aACEspE,EAAI33E,EAAKu5L,QAAQN,aACjB,IACAthH,EAAI33E,EAAKu5L,QAAQL,aACjB,IACAvhH,EAAI33E,EAAKu5L,QAAQJ,WACjB,IACAxhH,EAAI33E,EAAKu5L,QAAQH,WACjB,KAIc,OAAhBp5L,EAAKw5L,QACPnrL,EACE,YACEspE,EAAI33E,EAAKw5L,OAAOP,aAChB,IACAthH,EAAI33E,EAAKw5L,OAAON,aAChB,IACAvhH,EAAI33E,EAAKw5L,OAAOL,WAChB,IACAxhH,EAAI33E,EAAKw5L,OAAOJ,WAChB,KAIuB,iBAAlBp5L,EAAK4sL,UAA2C,IAAlB5sL,EAAK4sL,UAC5Cv+K,EAAI,aAAerO,EAAK4sL,UAG1BkI,GAAOp4C,QAAQ,UAAW,CACxB46C,MAAOjuL,EACPowL,YAAa5E,GAAa5mL,GAC1ByrL,WAAYzrL,EACZ4tH,KAAM/iD,IAERzqE,EAAI,aAAe5W,EAAoB,QACvC4W,EAAI,MACJA,EAAI,cAEAslE,EAAcmF,EAAK7wE,KAAK,aAExB6vE,IAAYd,IAEdrD,GAAe,OAGjBujH,GAAuBz/L,GAAA,GACvBygM,GAAU,CACRj7L,KAAM02E,EACNq5G,QAAS76I,KACTmmJ,SAAU7gM,IAEZ4W,EAAI,UACGhF,CAAA,EAGLswL,GAAY9iH,EAAIq2G,YAAY0M,SAAW,eACrC55L,EACFiO,EACA6qE,EAAoB,OAEjB94E,EAAI,EAAGA,GAAK40L,GAAM50L,IACrB60L,GAAa70L,GAAGs3L,MAAQL,KACxBpC,GAAa70L,GAAG64L,cAAgB5B,KAAA,IAG7Bj3L,EAAI,EAAGA,GAAK40L,GAAM50L,IACrB84E,EAAkBzwE,KAChBswL,GAAQ,CACNllG,OAAQzzF,EACR/C,KAAM80L,EAAM/xL,GACZs3L,MAAOzC,GAAa70L,GAAGs3L,MACvBuB,cAAehE,GAAa70L,GAAG64L,cAC/BG,SAAUnE,GAAa70L,GAAGg5L,SAC1BK,QAASxE,GAAa70L,GAAGq5L,QACzBC,SAAUzE,GAAa70L,GAAGs5L,SAC1BC,QAAS1E,GAAa70L,GAAGu5L,QACzBC,OAAQ3E,GAAa70L,GAAGw5L,OACxB5M,SAAUiI,GAAa70L,GAAG4sL,SAC1BkM,oBAAqBvB,GACrBwB,wBAAyBvB,MAI/BN,GAAuBK,IAAA,GACvBlpL,EAAI,sBACAhF,EAAO,cACN4E,EAAI,EAAGA,EAAI2mL,GAAM3mL,IACpB5E,GAAQyvE,EAAkB7qE,GAAK,QAEjCI,EAAIhF,EAAO,KACXgF,EAAI,UAAYumL,IAChBvmL,EAAI,MACJA,EAAI,UACJymL,GAAOp4C,QAAQ,iBAGbm9C,GAAU,SAAS75L,GACrB80L,GAAOp4C,QAAQ,UAAW,CACxB3pB,KAAM/yH,EACNshK,IAAKjzJ,EACL2oL,UAAWD,GACXoB,UAAWD,MAAA,IAGTl4L,EAAK85L,kBACP95L,EAAK8rL,aAAeiL,KACpB1oL,EAAI,MACJA,EAAI,eACJA,EAAI,cAAgBu/E,GAAU5tF,EAAK+5L,iBACnC1rL,EAAI,mBACyB,iBAAlBrO,EAAKq1K,UACdhnK,EAAI,cAAgBrO,EAAKq1K,UAE3BhnK,EAAI,iBACJA,EAAI,iBACJA,EAAI,MACJA,EAAI,YAiBJ2rL,GAAa,SAASh6L,GACxBA,EAAQ8rL,aAAeiL,KAAA,IAEnB9oL,EAAU,GACdA,EAAQ5F,KAAK,CAAErR,IAAK,OAAQf,MAAO,aACnCgY,EAAQ5F,KAAK,CAAErR,IAAK,UAAWf,MAAO,UACtCgY,EAAQ5F,KAAK,CACXrR,IAAK,OACLf,MACE,IACA,CACE0hF,EAAI33E,EAAQg3E,GACZW,EAAI33E,EAAQ62E,GACZc,EAAI33E,EAAQg3E,EAAIh3E,EAAQ8gF,OACxBnJ,EAAI33E,EAAQ62E,EAAI72E,EAAQ+gF,SACxB94E,KAAK,KACP,MAEJgG,EAAQ5F,KAAK,CACXrR,IAAK,SACLf,MAAO,IAAM+J,EAAQmqG,OAAOzgG,WAAa,UAIvCovE,EAAS94E,EAAQi6L,MAAM,GAAGhyL,KAAK,MACnCiwL,GAAU,CACRj7L,KAAM67E,EACN0/G,oBAAqBvqL,EACrBqqL,SAAUt4L,EAAQ8rL,eAEpBz9K,EAAI,WAuDF6rL,GAAoB,SAASl6L,EAASiO,GASxCA,IAAkBA,EAAgB,QAC9B6qE,EAAmBi+G,KACnB1tL,EAvD8B,SAASrJ,EAAQiO,GAAA,IAE/C6qE,EADAzvE,EAAU,GAEV5R,EAAK,GAAOwW,EAAgB,OAC3B6qE,EAAI,EAAKA,EAAI,EAAKA,GAAKrhF,EAC1B4R,EAAQhB,KAAKywE,GAAA,GAEfzvE,EAAQhB,KAAK,GAEW,GAApBrI,EAAO,GAAGmN,OAAe,KACvBwmE,EAAK,CACPxmE,OAAQ,EACR4pF,MAAO/2F,EAAO,GAAG+2F,OAEnB/2F,EAAOyyF,QAAQ9e,EAAA,IAEuB,GAApC3zE,EAAOA,EAAOtI,OAAS,GAAGyV,OAAe,KACvCmpE,EAAK,CACPnpE,OAAQ,EACR4pF,MAAO/2F,EAAOA,EAAOtI,OAAS,GAAGq/F,OAEnC/2F,EAAOqI,KAAKiuE,EAAA,SAEVjD,EAAM,GACNtvE,EAAQ,EAEH2yE,EAAI,EAAGA,EAAIrtE,EAAQ3R,OAAQg/E,IAAK,KACvCoC,EAAIzvE,EAAQqtE,GACLoC,EAAI94E,EAAO+D,EAAQ,GAAGoJ,QAAQpJ,IAAA,IACjC+yE,EAAI92E,EAAO+D,GAAOoJ,OAElBjU,GAAK4/E,EAAIhC,IADL92E,EAAO+D,EAAQ,GAAGoJ,OACH2pE,GAEnBnE,EAAS3yE,EAAO+D,GAAOgzF,MACvBpgB,EAAS32E,EAAO+D,EAAQ,GAAGgzF,MAE/B1jB,GACEs+G,EAASz7G,KAAKkhB,OAAO,EAAIl+F,GAAKy5E,EAAO,GAAKz5E,EAAIy9E,EAAO,IAAIjtE,SAAS,KAClEioL,EAASz7G,KAAKkhB,OAAO,EAAIl+F,GAAKy5E,EAAO,GAAKz5E,EAAIy9E,EAAO,IAAIjtE,SAAS,KAClEioL,EAASz7G,KAAKkhB,OAAO,EAAIl+F,GAAKy5E,EAAO,GAAKz5E,EAAIy9E,EAAO,IAAIjtE,SAAS,YAE/D2pE,EAAI2iC,MAAA,CAcEjyE,CAA8B/jC,EAAQisL,OAAQh+K,GAEvDxW,EAAU,GACdA,EAAQ4Q,KAAK,CAAErR,IAAK,eAAgBf,MAAO,MAC3CwB,EAAQ4Q,KAAK,CAAErR,IAAK,SAAUf,MAAO,cACrCwB,EAAQ4Q,KAAK,CAAErR,IAAK,OAAQf,MAAO,IAAMgY,EAAgB,MACzDxW,EAAQ4Q,KAAK,CAAErR,IAAK,gBAAiBf,MAAO,MAC5CwB,EAAQ4Q,KAAK,CAAErR,IAAK,QAASf,MAAO,8BACpCwB,EAAQ4Q,KAAK,CAAErR,IAAK,SAAUf,MAAO,8BAErCiiM,GAAU,CACRj7L,KAAMoM,EACNmvL,oBAAqB/gM,EACrB2gM,sBAAuB,CAAC,mBACxBE,SAAUx/G,IAEZzqE,EAAI,UAEJrO,EAAQ8rL,aAAeiL,KACvB1oL,EAAI,mBAAqBrO,EAAQupF,MACjCl7E,EAAI,8BACAslE,EACF,YACAgE,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACAr0G,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACmB,IAAjBhsL,EAAQupF,KAEV5V,GACEgE,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACAr0G,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAGhCr4G,GACEgE,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACAr0G,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACAr0G,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAC9B,IACAr0G,EAAI+/G,WAAW13L,EAAQgsL,OAAO,KAGlC39K,EADAslE,GAAU,KAGN3zE,EAAQmqG,QACV97F,EAAI,YAAcrO,EAAQmqG,OAAOzgG,WAAa,KAEhD2E,EAAI,aAAeyqE,EAAmB,QACtCzqE,EAAI,uBACJA,EAAI,MACJA,EAAI,WAGF8rL,GAAmB,SAASn6L,EAASiO,GAAA,IACnC6qE,EAAoBm+G,KACpB5tL,EAAkB0tL,KAEtB9oL,EAA8B5F,KAAK,CACjC+xL,aAActhH,EACduhH,UAAWhxL,IAGbrJ,EAAQ8rL,aAAeziL,EAAA,IACnB5R,EAAU,GACdA,EAAQ4Q,KAAK,CAAErR,IAAK,OAAQf,MAAO,aACnCwB,EAAQ4Q,KAAK,CAAErR,IAAK,cAAef,MAAO,MAC1CwB,EAAQ4Q,KAAK,CAAErR,IAAK,YAAaf,MAAO,MACxCwB,EAAQ4Q,KAAK,CAAErR,IAAK,aAAcf,MAAO,MACzCwB,EAAQ4Q,KAAK,CACXrR,IAAK,OACLf,MAAO,IAAM+J,EAAQksL,YAAYrhL,IAAI8sE,GAAK1vE,KAAK,KAAO,MAExDxQ,EAAQ4Q,KAAK,CAAErR,IAAK,QAASf,MAAO0hF,EAAI33E,EAAQmsL,SAChD10L,EAAQ4Q,KAAK,CAAErR,IAAK,QAASf,MAAO0hF,EAAI33E,EAAQosL,SAChD30L,EAAQ4Q,KAAK,CAAErR,IAAK,YAAaf,MAAO6iF,EAAoB,SACxD94E,EAAQmqG,QACV1yG,EAAQ4Q,KAAK,CACXrR,IAAK,SACLf,MAAO,IAAM+J,EAAQmqG,OAAOzgG,WAAa,MAI7CwuL,GAAU,CACRj7L,KAAM+C,EAAQ4gL,OACd4X,oBAAqB/gM,EACrB6gM,SAAUt4L,EAAQ8rL,eAEpBz9K,EAAI,WAgBFmlB,GAAY,SAASxzB,GAAA,IAGlB,IAAIiO,KAFTjO,EAAO8rL,aAAeiL,KACtB1oL,EAAI,MACUrO,EAAA,OACJiO,GAAA,IACD,UACHI,EAAI,OAAS8mI,EAAGn1I,EAAOiO,KAAA,UAEpB,iBACHI,EAAI,OAAS8mI,EAAGn1I,EAAOiO,KAI7BI,EAAI,MACJA,EAAI,WAyHFisL,GAAwB,SAASt6L,GACnCk3L,GAAuBl3L,EAAUo6L,cAAA,GACjC/rL,EAAI,MACJA,EAAI,iDA7EY,eAGX,IAAIrO,KAFTqO,EAAI,YAEgB+lL,GACdA,GAAMl9L,eAAe8I,MAAA,IAErBsJ,IAAA,IACCA,GAA6BstE,EAAU1/E,eAAe8I,KAEvDqO,EAAI,IAAMrO,EAAU,IAAMo0L,GAAMp0L,GAAS8rL,aAAe,QAI9Dz9K,EAAI,MAiEJksL,GA9D0B,cACtB1kM,OAAOyJ,KAAKi1L,IAAU78L,OAAS,EAAG,KAE/B,IAAIsI,KADTqO,EAAI,eACmBkmL,GAEnBA,GAASr9L,eAAe8I,IACxBu0L,GAASv0L,aAAuB4tI,IAChC2mD,GAASv0L,GAAY8rL,cAAgB,GAErCz9K,EACE,IAAMrO,EAAa,IAAMu0L,GAASv0L,GAAY8rL,aAAe,QAKnEgJ,GAAOp4C,QAAQ,yBACfruI,EAAI,OA+CNmsL,GA3CyB,SAASx6L,GAAA,GAC9BnK,OAAOyJ,KAAKi1L,IAAU78L,OAAS,EAAG,KAE/B,IAAIuW,KADTI,EAAI,eACmBkmL,GAEnBA,GAASr9L,eAAe+W,IACxBsmL,GAAStmL,aAAuB4oE,EAAI6/G,eACpCnC,GAAStmL,GAAY69K,cAAgB,GACrCyI,GAAStmL,GAAY69K,aAAe9rL,GAEpCqO,EACE,IAAMJ,EAAa,IAAMsmL,GAAStmL,GAAY69K,aAAe,QAInEgJ,GAAOp4C,QAAQ,wBACfruI,EAAI,OA4BNosL,CAAqBz6L,EAAUq6L,WAxBZ,cACfxkM,OAAOyJ,KAAKm1L,IAAS/8L,OAAS,EAAG,KAC/BsI,EAAA,IAECA,KADLqO,EAAI,iBACcomL,GAEdA,GAAQv9L,eAAe8I,IACvBy0L,GAAQz0L,GAAW8rL,cAAgB,GAEnCz9K,EAAI,IAAMrO,EAAY,IAAMy0L,GAAQz0L,GAAW8rL,aAAe,QAIlEgJ,GAAOp4C,QAAQ,iBACfruI,EAAI,OAWNqsL,GApHmB,eAEd,IAAI16L,KADTqO,EAAI,eACmB4mL,GAEnBA,GAAc/9L,eAAe8I,IAC7Bi1L,GAAcj1L,GAAY8rL,cAAgB,GAE1Cz9K,EACE,IACErO,EACA,IACAi1L,GAAcj1L,GAAY8rL,aAC1B,QAMRgJ,GAAOp4C,QAAQ,kBACfruI,EAAI,MAkGJssL,GACAtsL,EAAI,MACJA,EAAI,WAGFusL,GAAe,eAab56L,EAAgC,IAxXvB,eACR,IAAIA,KAAWo0L,GACdA,GAAMl9L,eAAe8I,MAAA,IAErBsJ,IAAA,IACCA,GAA6BstE,EAAU1/E,eAAe8I,KAEvD65L,GAAQzF,GAAMp0L,GAAA,EAmXpB66L,GAlJe,eACX76L,EAAA,IACCA,KAAay0L,GACZA,GAAQv9L,eAAe8I,IACzBwzB,GAAUihK,GAAQz0L,GAAA,CA+ItB86L,GA7UgB,eACX,IAAI96L,KAAci1L,GACjBA,GAAc/9L,eAAe8I,IAC/Bg6L,GAAW/E,GAAcj1L,GAAA,CA2U7B+6L,GAlLgB,SAAS/6L,GAAA,IACrBiO,EAAA,IACCA,KAAcsmL,GACbA,GAASr9L,eAAe+W,KACtBsmL,GAAStmL,aAAuB2/H,GAClCssD,GAAkB3F,GAAStmL,IAClBsmL,GAAStmL,aAAuB2pE,IACzCuiH,GAAiB5F,GAAStmL,GAAajO,GAAA,CA4K7Cg7L,CAAYh7L,GAEZ80L,GAAOp4C,QAAQ,gBACf18I,EAA8B63E,QAAQyiH,IACtCA,GAAsB,CACpBF,aAAc5C,GACd6C,UAAW57D,OAAOkU,mBAEpBmiD,GAAOp4C,QAAQ,qBAcbtoB,GAA0B,SAASp0H,GACrCq0L,GAAQr0L,EAAKi7L,UAAY5G,GAAQr0L,EAAKi7L,WAAa,CAAC,EACpD5G,GAAQr0L,EAAKi7L,UAAUj7L,EAAK4rG,WAAa5rG,EAAKkL,EAAA,EAG5CgwL,GAAU,SACZl7L,EACAiO,EACA6qE,EACAzvE,EACA5R,GAAA,IAEIk8E,EAAO,CACTzoE,GAAI,KAAOrV,OAAOyJ,KAAK80L,IAAO18L,OAAS,GAAGgS,SAAS,IACnDqwL,eAAgB/5L,EAChBi7L,SAAUhtL,EACV29F,UAAW9yB,EACXu8F,SAAUhsK,EACV8xL,eAAgB1jM,IAAA,EAChB+0I,SAAU,CAAC,GAAD,OAGZsoD,GAAOp4C,QAAQ,UAAW,CACxB3pB,KAAMp/C,EACNm0F,SAAUrvK,OAGZ27L,GAAMzgH,EAAKzoE,IAAMyoE,EACjBygD,GAAwBzgD,GACjBA,EAAKzoE,EAAA,EA8MVkwL,GAAavkH,EAAIq2G,YAAYmO,UAAYxkH,EAAIwkH,UAAY,SAC3Dr7L,EACAiO,GAAA,OAzJiB,SAASjO,EAAMiO,GAAA,IAiD5B6qE,EACFzvE,EACA5R,EACAk8E,EACA2C,EACAjD,EACAtvE,EACA2yE,EACAI,EAAA,GAGFr/E,GADAwW,EAAQA,GAAS,CAAC,GACKqtL,gBAAkB,UACzChlH,EAAiBroE,EAAMstL,gBAYpBttL,EAAMutL,YAAcllH,IACrB89G,GAAMJ,IAAexnD,UACrB4nD,GAAMJ,IAAexnD,SAAS/0I,IAC9B28L,GAAMJ,IAAexnD,SAAS/0I,GAAgB49K,WAE9C1hG,EAAgBygH,GAAMJ,IAAexnD,SAAS/0I,GAAgB49K,UAGzD/+F,GAAkB89G,GAAMJ,IAAe3e,WAC1C/+F,EAAiB89G,GAAMJ,IAAe3e,WAInC/+F,GAAkB3C,EAAc8nH,YACnCnlH,EAAiB3C,EAAc8nH,UAAU,IAGb,iBAAnBnlH,IACTA,EAAiB3C,EAAc2C,IAK7BA,GAAgB,KAClBvyE,GAAA,EACAsvE,EAAU,GACLyF,EAAI,EAAGzvE,EAAIrJ,EAAKtI,OAAQohF,EAAIzvE,EAAGyvE,KAClCpC,EAAKJ,EAAet2E,EAAKgE,WAAW80E,KAElCzF,EAAQhrE,KAAK3O,OAAOw7E,aAAawB,IAEjCrD,EAAQhrE,KAAKrI,EAAK84E,IAKhBzF,EAAQyF,GAAG90E,WAAW,IAAM,IAE9BD,GAAA,GAGJ/D,EAAOqzE,EAAQprE,KAAK,QAIxB6wE,EAAI94E,EAAKtI,YAAA,IAEFqM,GAAiC,IAAN+0E,GAC5B94E,EAAKgE,WAAW80E,EAAI,IAAM,IAE5B/0E,GAAA,GAEF+0E,IAAA,IAEG/0E,EAAA,OACI/D,EAAA,IAGTqzE,EAAUplE,EAAMytL,MAAQ,GAAK,CAAC,IAAK,KAC9B5iH,EAAI,EAAGzvE,EAAIrJ,EAAKtI,OAAQohF,EAAIzvE,EAAGyvE,IAAK,KAEvChC,GADAJ,EAAK12E,EAAKgE,WAAW80E,KACT,IACD,EAAG,MAEN,IAAI32E,MACR,yBACE22E,EACA,eACA94E,EACA,qDAGNqzE,EAAQhrE,KAAKyuE,GACbzD,EAAQhrE,KAAKquE,GAAMI,GAAO,WAErBp9E,OAAOw7E,aAAa33E,WAAA,EAAiB81E,EAAA,CAoBrCsoH,CAAa37L,EAAMiO,GACvB3V,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,QAGhBsjM,GAAa/kH,EAAIq2G,YAAY2O,UAAY,SAAS77L,GACpD+xL,IAAQ6C,IAAQ,GAChBC,GAAaD,IAAQ,CACnB0C,MAAO,EACPuB,cAAe,EACfjM,SAAUnuD,OAAO9nD,GACjB6iH,OAAQ,KACRF,SAAU,KACVD,QAAS,KACTE,QAAS,KACTP,SAAU,CACRC,YAAa,EACbC,YAAa,EACbC,UAAW16D,OAAOz+H,EAAO,IACzBo5L,UAAW36D,OAAOz+H,EAAO,MAG7B87L,GAASlH,IACT1C,EAAqBH,EAAMxrD,GAAA,EAGzBw1D,GAAW,SAAS/7L,EAAYiO,GAAA,IAC9B6qE,EAAYzvE,EAAOitE,EAAA,OAEvB7+E,EAAcwW,GAAmBxW,EAEP,iBAAfuI,IACT84E,EAAa4U,EAAc1tF,EAAWg2E,eAClCx+E,MAAM8rF,QAAQxK,KAChBzvE,EAAQyvE,EAAW,GACnBxC,EAASwC,EAAW,KAIpBthF,MAAM8rF,QAAQtjF,KAChBqJ,EAAQrJ,EAAW,GAAKs6H,GACxBhkD,EAASt2E,EAAW,GAAKs6H,IAGvB/+C,MAAMlyE,KACRA,EAAQgqE,EAAO,GACfiD,EAASjD,EAAO,KAGdhqE,EAAQ,OAASitE,EAAS,SAC5B3C,GAAQ90E,KACN,0GAEFwK,EAAQ6sE,KAAKyD,IAAI,MAAOtwE,GACxBitE,EAASJ,KAAKyD,IAAI,MAAOrD,IAG3BjD,EAAS,CAAChqE,EAAOitE,GAET7+E,EAAY8B,OAAO,EAAG,QACvB,IACC+8E,EAASjtE,IACXgqE,EAAS,CAACiD,EAAQjtE,IAAA,UAGjB,IACCA,EAAQitE,IACVjD,EAAS,CAACiD,EAAQjtE,IAKxBuyL,GAAUvoH,GAGVtsB,GAAai1I,IAEb3tL,EAAI4tL,IAEc,IAAdC,IACF7tL,EAAI6tL,GAAY,MAEC,IAAfC,IACF9tL,EAAI8tL,GAAa,MAEnBrH,GAAOp4C,QAAQ,UAAW,CACxBg9C,WAAY9E,IAAA,EAIZwH,GAAc,SAASp8L,GACrBA,EAAI,GAAKA,GAAK40L,KAChB7C,EAAM1+F,OAAOrzF,EAAG,GAChB60L,GAAaxhG,OAAOrzF,EAAG,GACvB40L,KACIruD,EAAcquD,KAChBruD,EAAcquD,IAAA,KAEX54D,QAAQuK,GAAA,EAIbu1D,GAAW,SAAS97L,GAClBA,EAAI,GAAKA,GAAK40L,KAChBruD,EAAcvmI,EAAA,EAIdq8L,GAAoBxlH,EAAIq2G,YAAY/wD,iBAAmBtlD,EAAIslD,iBAAmB,kBACzE41D,EAAMr6L,OAAS,GAiBpB4kM,GAAU,SAASt8L,EAAUiO,EAAW6qE,GAAA,IAExCzvE,EADE5R,OAAA,EAAM,OAEVqhF,EAAUA,GAAW,CAAC,EAEtB94E,OAAA,IACEA,EAAyBA,EAAWo0L,GAAMJ,IAAeiH,SAC3DhtL,OAAA,IACEA,EAA0BA,EAAYmmL,GAAMJ,IAAepoF,UAC7DviG,EAAoBrJ,EAASg2E,mBAAA,IAG3Bq+G,GAAQhrL,SAAA,IACRgrL,GAAQhrL,GAAmB4E,GAE3BxW,EAAM48L,GAAQhrL,GAAmB4E,QAAA,IAEjComL,GAAQr0L,SAAA,IACRq0L,GAAQr0L,GAAUiO,GAElBxW,EAAM48L,GAAQr0L,GAAUiO,IAAA,IAEpB6qE,EAAQyjH,gBACV5oH,GAAQ90E,KACN,0CACEmB,EACA,OACAiO,EACA,kDAKHxW,GAAQqhF,EAAQ0jH,YAER,OADX/kM,EAAM48L,GAAO/yH,MAAUrzD,MAErBxW,EAAM48L,GAAO/yH,MAAPm7H,QAGHhlM,CAAA,EAGLilM,GAAW7lH,EAAIq2G,YAAYyP,QAAU,eACnC38L,EAAW+2L,KACX9oL,EAAY,SAASjO,GAAA,OAChBA,CAAA,MAOJ,IAAI84E,KALiB,OAAtBvD,IACFtnE,EAAYyiL,GAAW6H,UAAUv4L,EAAU,IAE7CqO,EAAI,MACJA,EAAI,cAAgB+sL,GAAUntL,EAAU,SAAW0/E,GAAMxjF,UAAY,KACrDmrE,GACVA,GAAmBp+E,eAAe4hF,IAAQxD,GAAmBwD,IAC/DzqE,EACE,IACEyqE,EAAIv/E,OAAO,EAAG,GAAGilF,cACjB1F,EAAIv/E,OAAO,GACX,KACA6hM,GAAUntL,EAAUqnE,GAAmBwD,KACvC,KAIRzqE,EAAI,kBAAoB+sL,GAAUntL,EAAUoiL,IAAiB,KAC7DhiL,EAAI,MACJA,EAAI,WAGFk/C,GAAcspB,EAAIq2G,YAAY0P,WAAa,SAAS58L,GAAA,IAElDiO,GADJjO,EAAUA,GAAW,CAAC,GAEZ84L,qBAAuBvB,GAAA,OACjCR,KACA1oL,EAAI,MACJA,EAAI,kBACJA,EAAI,UAAYJ,EAAyB,QAEpCskL,KAAUA,GAAW,aAClBA,IAAA,IACD,YACHlkL,EAAI,4CAED,aACHA,EAAI,4CAED,WACHA,EAAI,sCAED,WACHA,EAAI,0DAGAyqE,EAAM,GAAKy5G,GACoB,MAA/Bz5G,EAAIv/E,OAAOu/E,EAAIphF,OAAS,KAC1B66L,GAAWn9G,SAASm9G,IAAY,KACV,iBAAbA,IACTlkL,EAAI,qCAAuC8mI,EAAGo9C,IAAY,YAG3DS,KAAYA,GAAa,cACtBA,IAAA,IACD,aACH3kL,EAAI,oCAED,SACHA,EAAI,qCAED,UACA,UACHA,EAAI,wCAED,WACHA,EAAI,+BAGJukL,IAQFvkL,EAAI,cAAgBukL,IAEtBkC,GAAOp4C,QAAQ,cACfruI,EAAI,MACJA,EAAI,WAGFwuL,GAAchmH,EAAIq2G,YAAY4P,WAAa,WAC7CzuL,EAAI,WACJA,EAAI,MACJA,EAAI,UAAYgtK,EAAe,IAE/BhtK,EAAI,SAAWgtK,EAAe,QAC9BhtK,EAAI,UAAYgtK,EAAe,GAAK,QACV,OAAtB9lG,GACFlnE,EAAI,YAAcqiL,GAAWqM,IAAM,QAErC1uL,EAAI,UAAY2iG,EAAS,MAAQA,EAAS,OAC1C3iG,EAAI,OAGF2uL,GAAanmH,EAAIq2G,YAAY+P,UAAY,WAC3C5uL,EAAI,QAAU0oE,GACd1oE,EAAI,sBAGF6uL,GAAWrmH,EAAIq2G,YAAYiQ,QAAU,eACnCn9L,EAAI,aAERqO,EAAI,QACJA,EAAI,MAAQgtK,EAAe,IAC3BhtK,EAAI,2BACC,IAAIJ,EAAI,EAAGA,GAAKotK,EAAcptK,IAEX,mBADT4jL,EAAQ5jL,GAEnBI,GAAKrO,EAAI6xL,EAAQ5jL,MAAMrF,OAAO,IAAM,sBAEzBipL,EAAQ5jL,GACjBI,GAAKrO,EAAI6xL,EAAQ5jL,IAAIrF,OAAO,IAAM,aAElCyF,EAAI,wBAMR+uL,GAAiBvmH,EAAIq2G,YAAYmQ,cAAgB,WAxrEnDhiB,EAAe,EACfl9I,EAAgB,EAChB86I,EAAU,GACV4Y,EAAU,GACVC,EAAoB,GAEpByF,GAAsBN,KACtBO,GAA0BP,KAmrE1B/E,EAAqBjZ,GAErB6b,GAAOp4C,QAAQ,iBAEfsgD,KACArD,KAvjByB,WACzB7E,GAAOp4C,QAAQ,4BACV,IAAI18I,EAAI,EAAGA,EAAI8xL,EAAkBp6L,OAAQsI,IAAK,KAC7CiO,EAAM6jL,EAAkB9xL,GAC5Bk3L,GAAuBjpL,EAAIqpL,OAAA,GAC3BjpL,EAAIJ,EAAI69F,SACRz9F,EAAI,UAENymL,GAAOp4C,QAAQ,4BAgjBf4gD,GACA1C,KAC0B,OAAtBrlH,IA1rBJm7G,GAAWqM,IAAMhG,KACjB1oL,EAAI,MACJA,EAAI,qBACJA,EAAI,MAAQqiL,GAAWpnL,GACvB+E,EAAI,MAAQqiL,GAAW53G,GACvBzqE,EAAI,OAASqiL,GAAW6M,YAAY7M,GAAW7iG,GAAK,KACpDx/E,EAAI,OAASqiL,GAAW6M,YAAY7M,GAAW/4G,GAAK,KACpDtpE,EAAI,MAAQqiL,GAAWtxG,GACvB/wE,EAAI,MACJA,EAAI,WAkrBJquL,KACAnvI,KAAA,IAEIvtD,EAAem+B,EAAA,OACnB++J,KACAL,KACAxuL,EAAI,aACJA,EAAI,GAAKrO,GACTqO,EAAI,SAEJ6jL,EAAqBH,EAAMxrD,IAEpB0yC,EAAQhxK,KAAK,OAGlBu1L,GAAW3mH,EAAIq2G,YAAYuQ,QAAU,SAASz9L,GAAA,OACzC,IAAI4hL,KAAK,CAACnjL,GAAeuB,IAAQ,CACtCupF,KAAM,qBA4BNm0G,GAAU7mH,EAAIyG,OAASzG,EAAIq2G,YAAY5vG,QAjiBZt9E,GAiiB0B,SACvDA,EACAiO,GAAA,OAIuB,iBAFvBA,EAAUA,GAAW,CAAC,GAGpBA,EAAU,CACR4xH,SAAU5xH,GAGZA,EAAQ4xH,SAAW5xH,EAAQ4xH,UAAY,gBAGjC7/H,GAAA,YACD,OACIo9L,KAAA,IACJ,OACHvmH,EAAIg7C,KAAK5jH,EAAQ4xH,UAAA,UAEd,qBACIphI,GAAe2+L,MAAA,IACnB,cACII,GAAQJ,MAAA,IACZ,cACA,sBAGM/zL,GAAa83K,KACwB,mBAArC93K,GAAa83K,IAAIK,gBAAA,OAGrBn4K,GAAa83K,KACZ93K,GAAa83K,IAAIK,gBAAgBgc,GAAQJ,aAAA,EAI7CzpH,GAAQ90E,KACN,oHAID,oBACA,oBACCi6E,EAAU,GACVrhF,EAAc2lM,KAAA,IAEhBtkH,EAAUhC,GAAKr/E,EAAA,CACf,MAAOuI,GACP84E,EAAUhC,GAAK6mH,SAAS5oF,mBAAmBt9G,IAAA,OAG3C,iCACAwW,EAAQ4xH,SACR,WACA/mD,EAAA,IAEC,wBAEgD,oBAAjDjjF,OAAOoB,UAAUyS,SAASvS,KAAKkS,IAC/B,KACIitE,EACF,0EACEjD,EACF,uIAEEplE,EAAQ2vL,eACVtnH,EAAeroE,EAAQ2vL,aACvBvqH,EAAY,QAGVtvE,EACF,kIAEAuyE,EACA,IACAjD,EACA,wCACA56E,KAAK6kF,OAAO,iBACZ,MACA+hD,KAAKC,UAAUrxH,GACf,6BACEyoE,EAAKrtE,GAAaqjG,OAAA,OAEX,OAAPh2B,GACFA,EAAGwB,SAAS8Y,MAAMjtF,GAEb2yE,CAAA,OAED,IAAIv0E,MACR,0EAGD,oBAEgD,oBAAjDtM,OAAOoB,UAAUyS,SAASvS,KAAKkS,IAC/B,KAEInQ,EACF,kJAFa+U,EAAQ4vL,UAAY,mCAMjC,uBACA5vL,EAAQ4xH,SALR,kDAQEltD,EAAiBtpE,GAAaqjG,OAAA,GAEX,OAAnB/5B,EAAyB,CAC3BA,EAAeuF,SAAS8Y,MAAM93F,GAAA,IAC1By9E,EAAQl+E,KACZk6E,EAAeuF,SAAStwE,gBAAgB2wE,cACtC,cACAs8B,OAAS,WACTliC,EAAeuF,SAAS2pG,MAAQ5zK,EAAQ4xH,SACxCltD,EAAeuF,SAAStwE,gBACrB2wE,cAAc,cACd+gC,cAAcwkF,qBAAqBpxF,KAClC/1B,EAAM2G,OAAO,oBAId3K,CAAA,OAED,IAAIxwE,MACR,sEAGD,sBAEgD,oBAAjDtM,OAAOoB,UAAUyS,SAASvS,KAAKkS,IAAA,MAkBzB,IAAIlH,MACR,wEAjBExC,EACF,kIAIAlH,KAAK6kF,OAAO,gBAAiBrvE,GAJ7B,4BAOE4qE,EAAmBxvE,GAAaqjG,OAAA,GACX,OAArB7zB,IACFA,EAAiBX,SAAS8Y,MAAMrxF,GAChCk5E,EAAiBX,SAAS2pG,MAAQ5zK,EAAQ4xH,UAExChnD,GAAsC,oBAAXmpG,OAC7B,OAAOnpG,EAAA,UAOR,cACA,iBACKxvE,GAAa6uE,SAAS4sC,SAASP,KAAO9rH,KAAK6kF,OACjD,gBACArvE,GAAA,eAGK,OAjsBXjO,GAAGwkI,IAAM,sBAEExkI,GAAGzC,MAAM9E,KAAM+E,UAAA,CACtB,MAAOwC,IAAA,IACHiO,EAAQjO,GAAEwtH,OAAS,IAClBv/G,EAAMzI,QAAQ,UAASyI,EAAQA,EAAM9O,MAAM,QAAQ,QACpD25E,EACF,qBACA7qE,EAAM9O,MAAM,MAAM,GAAGA,MAAM,KAAK,GAChC,KACAa,GAAEkC,QAAA,IACAmH,GAAazK,QAAA,MAIT,IAAIuD,MAAM22E,GAHhBzvE,GAAazK,QAAQvD,MAAMy9E,EAAG94E,IAC1BqJ,GAAa00L,OAAOA,MAAMjlH,EAAA,GAMpC94E,GAAGwkI,IAAIw5D,IAAMh+L,GACNA,GAAGwkI,KAsrBRy5D,GAAY,SAASj+L,GAAA,WAErBxI,MAAM8rF,QAAQyxG,KAAsBA,GAASvvL,QAAQxF,IAAe,UAIhEs2E,GAAA,IACD,KACHgkD,GAAc,YAEX,KACHA,GAAc,GAAK,eAEhB,KACHA,GAAc,GAAK,eAEhB,KACHA,GAAc,aAEX,KAEDA,GAD6B,GAA3B2jE,GAAU,cACE,IAEA,GAAK,aAGlB,SAGA,KACH3jE,GAAc,aAEX,KACHA,GAAc,mBAGM,iBAAThkD,EAAA,MAGH,IAAIn0E,MAAM,iBAAmBm0E,GAFnCgkD,GAAchkD,EAAA,IAMhBo6G,GAAa,KACjBa,IACAf,IAAA,IAcI0N,GAAernH,EAAIq2G,YAAYiR,YAActnH,EAAIsnH,YAAc,SACjEn+L,GAAA,GAEIu7E,MAAMv7E,IAAuBA,EAAqB,GAAM,EAAG,MACvD,IAAImC,MAAM,sDAGX,CACLm1L,MAFUzC,GAAa70L,GAAoBs3L,MAG3CoC,WAAY15L,EACZy5L,YAAa5E,GAAa70L,GAAA,EAI1Bo+L,GAAsBvnH,EAAIq2G,YAAYmR,mBAAqB,SAC7Dr+L,GAAA,GAEIu7E,MAAMv7E,IAAUA,EAAQ,GAAM,EAAG,MAC7B,IAAImC,MAAM,2DAEb,IAAI8L,KAAc4mL,GAAA,GACjBA,GAAa5mL,GAAYqpL,QAAUt3L,EAAA,aAIlCk+L,GAAYjwL,EAAA,EAGjBqwL,GAAsBznH,EAAIq2G,YAAYqR,mBAAqB1nH,EAAI0nH,mBAAqB,iBAC/E,CACLjH,MAAOzC,GAAatuD,GAAa+wD,MACjCoC,WAAYnzD,EACZkzD,YAAa5E,GAAatuD,GAAA,EAgB9B1vD,EAAIgqD,QAAU,kBACZk7D,GAASx+L,MAAM9E,KAAM+E,WACd/E,IAAA,EAmBTo+E,EAAImlD,QAAU,kBACZ8/D,GAASv+L,MAAM9E,KAAM+E,WACrB00L,EAAqB/6L,KAAKsB,KAAMs5L,EAAMxrD,IAC/B9tI,IAAA,EAYTo+E,EAAI2nH,WAAa,SAASx+L,GAAA,YACnB6gI,UAAA,KACA49D,SAASl4D,EAAavmI,GACpBvH,IAAA,EAYTo+E,EAAI4nH,SAAW,SAASz+L,EAAYiO,GAAA,IAC9B6qE,EAAUzvE,EAAA,GACVrJ,EAAaiO,EAAY,CAC3B6qE,EAAWi5G,EAAM/xL,GACjBqJ,EAAkBwrL,GAAa70L,GAAA,IAC1B,IAAIvI,EAAIuI,EAAYvI,EAAIwW,EAAYxW,IACvCs6L,EAAMt6L,GAAKs6L,EAAMt6L,EAAI,GACrBo9L,GAAap9L,GAAKo9L,GAAap9L,EAAI,GAErCs6L,EAAM9jL,GAAc6qE,EACpB+7G,GAAa5mL,GAAc5E,EAAA,KACtB2yH,QAAQ/tH,EAAA,MACR,GAAIjO,EAAaiO,EAAY,CAClC6qE,EAAWi5G,EAAM/xL,GACjBqJ,EAAkBwrL,GAAa70L,GAAA,IAC1B,IAAI2zE,EAAI3zE,EAAY2zE,EAAI1lE,EAAY0lE,IACvCo+G,EAAMp+G,GAAKo+G,EAAMp+G,EAAI,GACrBkhH,GAAalhH,GAAKkhH,GAAalhH,EAAI,GAErCo+G,EAAM9jL,GAAc6qE,EACpB+7G,GAAa5mL,GAAc5E,EAAA,KACtB2yH,QAAQ/tH,EAAA,QAERxV,IAAA,EAYTo+E,EAAI6nH,WAAa,kBACftC,GAAY7+L,MAAM9E,KAAM+E,WACjB/E,IAAA,EAuCTo+E,EAAIq2G,YAAY5/K,KAAOupE,EAAIvpE,KAAO,SAASW,EAAM6qE,EAAGzvE,EAAG5R,EAASk8E,GAAA,IAe1D2C,EAASjD,EAAItvE,EAAO2yE,EAAOI,EAAW59E,EAAUy5E,EAAOgE,EAkBvDh3E,EAnBAk5E,GADJphF,EAAUA,GAAW,CAAC,GACFknM,OAASlmM,KAAA,GASX,iBAATwV,GACM,iBAAN6qE,IACO,iBAANzvE,GAAkB7R,MAAM8rF,QAAQj6E,IACxC,KACIksE,EAAMlsE,EACVA,EAAIyvE,EACJA,EAAI7qE,EACJA,EAAOsnE,CAAA,IAKL/3E,UAAU,aAAc2xL,IAAA,GAE1BprL,EAAQvG,UAAU,GAClBk5E,EAAQl5E,UAAU,GAEG,YAAjBwC,EAAAA,EAAAA,GAJJ2yE,EAAQn1E,UAAU,KAIyB,OAAVm1E,IACV,iBAAV5uE,IACT2yE,EAAQ3yE,EACRA,EAAQ,MAEW,iBAAV4uE,IACT+D,EAAQ/D,EACRA,EAAQ,MAEW,iBAAVA,IACT5uE,EAAQ4uE,EACRA,EAAQ,MAEVl7E,EAAU,CACRg6F,MAAO9e,EACPliE,MAAO1M,EACP66L,MAAOloH,MAIXk5G,EACE,yDAEFjwL,EAAuBg0E,GAGrB4H,MAAMzC,IAAMyC,MAAMlyE,IAAlB,MAA+B4E,EAAA,MAC3B,IAAI9L,MAAM,6CAGE,IAAhB8L,EAAKvW,OAAA,OACAmhF,EAAA,IAILhC,EADAvtE,EAAO,GAEPytE,EACkC,iBAA7Bt/E,EAAQonM,iBACXpnM,EAAQonM,iBACRC,GACF3T,EAActyG,EAAMqjD,SAAS6iE,YAAA,SAExBhuF,EAAI/wG,GAAA,OACXA,EAAIA,EAAEb,MAAM,MAAM8I,KAAKzQ,MAAMC,EAAQunM,QAAU,GAAG/2L,KAAK,MAChDmzL,GAAUp7L,EAAG2yE,EAAA,UAGb+a,EAA4B1tF,GAAA,QAK/BiO,EAHA6qE,EAAK94E,EAAKy6E,SACVpxE,EAAK,GACL5R,EAAMqhF,EAAGphF,OAIND,KAEgB,iBADrBwW,EAAQ6qE,EAAG0Z,SAETnpF,EAAGhB,KAAK4F,GAGNzW,MAAM8rF,QAAQtjF,KACI,IAAjBiO,EAAMvW,aAAA,IACJuW,EAAM,aAAoBA,EAAM,IAEnC5E,EAAGhB,KAAK4F,EAAM,IAEd5E,EAAGhB,KAAK,CAAC4F,EAAM,GAAIA,EAAM,GAAIA,EAAM,YAIlC5E,CAAA,UAGA4uE,EAAsBj4E,EAAMiO,GAAA,IAC/B6qE,EAAA,GACgB,iBAAT94E,EACT84E,EAAS7qE,EAAmBjO,GAAM,QAC7B,GAAIxI,MAAM8rF,QAAQtjF,GAAO,SAK1BqJ,EACA5R,EAJAk8E,EAAK3zE,EAAKy6E,SACVnE,EAAK,GACLjD,EAAMM,EAAGj8E,OAKN27E,KAEgB,iBADrBhqE,EAAQsqE,EAAG6e,SAETlc,EAAGjuE,KAAK4F,EAAmB5E,GAAO,IACzB7R,MAAM8rF,QAAQj6E,IAA8B,iBAAbA,EAAM,KAC9C5R,EAAYwW,EAAmB5E,EAAM,GAAIA,EAAM,GAAIA,EAAM,IACzDitE,EAAGjuE,KAAK,CAAC5Q,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAGnDqhF,EAASxC,CAAA,QAEJwC,CAAA,KAILsG,GAAA,EACAjK,GAAA,EAAwB,GAER,iBAATlnE,EACTmxE,GAAA,OACK,GAAI5nF,MAAM8rF,QAAQr1E,GAAO,KAE1Bq9K,EAAKr9K,EAAKwsE,SACdpH,EAAK,WAEDua,EADAi3C,EAAMymD,EAAG5zL,OAINmtI,MAGc,iBAFnBj3C,EAAQ09F,EAAG94F,UAGRh7F,MAAM8rF,QAAQsK,IAA8B,iBAAbA,EAAM,MAEtCzY,GAAA,GAGJiK,EAAqBjK,CAAA,SAEnBiK,EAAA,MACI,IAAIj9E,MACR,0CACE8L,EACA,wBAWc,iBAATA,IAEPA,EADEA,EAAKwlE,MAAM,WACNxlE,EAAK9O,MAAM,eAEX,CAAC8O,IAAA,IAKRypE,EAAStpE,GAAiByqE,EAAMqjD,SAAS6iE,YACzCnxD,EAAUl2D,GAAUX,EAAa,UAE7Bt/E,EAAQs5H,UAAA,IACT,SACH1nH,GAAKukI,EAAA,UAEF,MACHvkI,GAAKquE,EAASk2D,EAAA,UAEX,UACHvkI,GAAKquE,EAAS,EAAIk2D,EAAA,UAEf,SACHvkI,GAAKquE,EAAS,EAAIk2D,EAAA,IAUtB10I,EAAWzB,EAAQwnM,UAAY,GAEhB,IACO,iBAAThxL,EACTA,EAAO4qE,EAAMqmH,gBAAgBjxL,EAAM/U,GACe,mBAAzCrD,OAAOoB,UAAUyS,SAASvS,KAAK8W,KACxCA,EAAOA,EAAK1O,QAAO,SAASS,EAAKiO,GAAA,OACxBjO,EAAIy6E,OAAO5B,EAAMqmH,gBAAgBjxL,EAAU/U,GAAA,GACjD,MAKPo9E,EAAU,CACRhpE,KAAMW,EACN+oE,EAAG8B,EACHjC,EAAGxtE,EACH7Q,QAASf,EACT0nM,MAAO,CACL9D,UAAWD,GACXgE,cAAepL,GACfx0E,MAAO40E,GACPiL,eAAgBjxL,KAGpB0mL,GAAOp4C,QAAQ,iBAAkBpmE,GAEjCroE,EAAOqoE,EAAQhpE,KAIfvJ,GAHAtM,EAAU6+E,EAAQ99E,SAGFiY,MAGd9Q,aAAgCwvL,IAAA,GAChCprL,GACiB,iBAAVA,EACP,CACAA,GAASmyE,KAAKkgB,GAAK,IAEe,IAA9B3+F,EAAQ6nM,oBACVv7L,GAASA,GAGP+zE,IAAYd,IACdjzE,GAASA,GAAA,IAGP6zE,EAAI1B,KAAK8sB,IAAIj/F,GACb4pF,EAAIzX,KAAK6sB,IAAIh/F,GACjBpE,EAAuB,IAAIwvL,GAAOv3G,EAAG+V,GAAIA,EAAG/V,EAAG,EAAG,QACzC7zE,GAASA,aAAiBorL,KACnCxvL,EAAuBoE,GAGrB+zE,IAAYd,GAAqBr3E,IACnCA,EAAuB02L,SAAA,KAKzBv/G,EAAYr/E,EAAQ8nM,WAAanlE,MAG/B9wH,GAAQquE,EAAIkW,EAAM/W,IAAc,aAC3B0oH,aAAa/mM,KAAKgnM,gBAAkB,cAG3C9oH,EAAkBl/E,EAAQioM,mBAExBp2L,GAAQquE,EAAsB,IAAlBhB,GAAyB,SAK5Bl/E,EAAQgC,KAAA,IAOfo2L,GAAiB,EACjB16C,OAAA,IACK19I,EAAQkoM,cACXloM,EAAQkoM,cACRloM,EAAQ0gI,OACVlnB,EAAcp4B,EAAMqjD,SAASqiE,qBAAqB9E,YAAA,OAE9CtkD,GAAA,KACD,SACA,IACA,OACH06C,EAAgB,aAEb,SACA,IACA,SACHA,EAAgB,aAEb,MACA,iBACHA,EAAgB,aAEb,MACA,YACHA,EAAgB,aAEb,MACA,wBACHA,EAAgB,aAEb,MACA,8BACHA,EAAgB,aAEb,MACA,wCACHA,EAAgB,aAEb,MACA,uBACHA,EAAgB,MAIhBpiG,OAAA,IACKwjB,EAAY2uF,kBACf3uF,EAAY2uF,mBACX,GAIgB,IAAnB/P,EACFvmL,GAAQumL,EAAgB,SAGQ,IAAvBpiG,IACTnkF,GAAQ,WAGa,IAAnBumL,IACF5+E,EAAY2uF,kBAAoB/P,GAIlCn5G,EAAQj/E,EAAQmnM,OAAS,WAOrBzO,EANAE,EAAUjiL,GAAiB2oE,EAC3Bi6B,EAAYn4B,EAAMqjD,SAASN,SAASikE,WACpCvP,EAAa8D,GAAMJ,IACvBl9G,EAAYr/E,EAAQ8nM,WAAanlE,GACjClhI,EAAWzB,EAAQwnM,UAAY,EAG/BtsH,EAAQ98E,OAAOe,OAAO,CAAE4kM,YAAA,EAAkBE,OAAA,GAAejkM,EAAQg6F,OAAA,IAE7D++F,EAAqB,GACrBG,EAAY,SAAS3wL,GAAA,OAEpB64E,EAAMinH,mBAAmB9/L,EAAG,CAC3B+yH,KAAMu9D,EACNiP,UAAWzoH,EACX2xB,SAAUr6F,GACV2xL,WAAA,IAEA3xL,GACF+8K,CAAA,KAGyC,mBAAzCt1L,OAAOoB,UAAUyS,SAASvS,KAAK8W,GAA4B,KAEzDojL,EADJh+G,EAAKqa,EAA4Bz/E,GAEnB,SAAVyoE,IACFy5G,EAAa98G,EAAGxoE,IAAI8lL,IAAA,IAMlBY,EADAzjG,EAAY,KAEF,UAAVpX,EAAmB,CAGrBoC,GAAKq3G,EAAW,GAChBliL,EAAO,GACP42H,EAAMxxD,EAAG37E,OAAA,IACJ,IAAI6uI,EAAI,EAAGA,EAAI1B,EAAK0B,IACb,IAANA,GACFgrD,EAAOyO,GAAwBlnH,GAC/Bu4G,EAAO4O,GAAsB52L,KAE7BkoL,EAAO1jG,EAAMC,EAAYqiG,EAAW5pD,IACpC8qD,GAAQhB,GAEVpiL,EAAK5F,KAAK,CAACgrE,EAAGkzD,GAAIgrD,EAAMF,IACxBvjG,EAAYqiG,EAAW5pD,EAAA,MAEpB,GAAc,WAAV7vD,EAAoB,CAG7BoC,GAAKq3G,EAAW,GAAK,EACrBliL,EAAO,GACP42H,EAAMxxD,EAAG37E,OAAA,IACJ,IAAIo5L,GAAI,EAAGA,GAAIjsD,EAAKisD,KACb,IAANA,IACFS,EAAOyO,GAAwBlnH,GAC/Bu4G,EAAO4O,GAAsB52L,KAE7BkoL,EAAO1jG,GAAOC,EAAYqiG,EAAWW,KAAM,GAC3CO,GAAQhB,GAEVpiL,EAAK5F,KAAK,CAACgrE,EAAGy9G,IAAIS,EAAMF,IACxBvjG,EAAYqiG,EAAWW,GAAA,MAEpB,GAAc,SAAVp6G,EAAkB,CAC3BzoE,EAAO,GACP42H,EAAMxxD,EAAG37E,OAAA,IACJ,IAAIi6L,GAAI,EAAGA,GAAI9sD,EAAK8sD,KACvB1jL,EAAK5F,KAAKgrE,EAAGs+G,IAAA,MAEV,GAAc,YAAVj7G,GAA+C,eAAxB45G,EAAWjb,SAA2B,CAEtEpnK,EAAO,GACP42H,EAAMxxD,EAAG37E,OACTwB,EAAwB,IAAbA,EAAiBA,EAAW83G,EAAA,QACnCqqE,GAAe,EACVwW,GAAI,EAAGA,GAAIhtD,EAAKgtD,KAAA,GACvBR,EAAa,IAANQ,GAAUoO,GAAsB52L,IAAMgnL,EAC7CkB,EAAa,IAANM,GAAUmO,GAAwBlnH,GAAKuiG,GAC1CwW,GAAIhtD,EAAM,EAAG,KACXo0C,GAAUprF,GACX30F,EAAWi3L,EAAW0B,MAAOx+G,EAAGw+G,IAAG1yL,MAAM,KAAKzH,OAAS,IAEtDymC,GAAQk1C,EAAGw+G,IAAG1yL,MAAM,KACxB8O,EAAK5F,KAAK,CAAC81B,GAAM,GAAK,IAAKozJ,EAAMF,IACjChW,GAAe,MACV,IAAIyW,GAAI,EAAGA,GAAI3zJ,GAAMzmC,OAAQo6L,KAAK,KACjCC,IACDpB,EAAUxyJ,GAAM2zJ,GAAI,GAAK,IAAM3zJ,GAAM2zJ,KACpCnB,EAAUxyJ,GAAM2zJ,MAChB3G,EACFlS,GACE6Y,IAAK3zJ,GAAMzmC,OAAS,EAAGuW,EAAK5F,KAAK,CAAC81B,GAAM2zJ,IAAIC,GAAa,IACxD9jL,EAAK5F,KAAK,CAAC81B,GAAM2zJ,IAAK,IAAKC,GAAa,IAC7C1W,IAAgB0W,EAAA,OAGlB9jL,EAAK5F,KAAK,CAACgrE,EAAGw+G,IAAIN,EAAMF,IAG5BpjL,EAAK5F,KAAK,CAAC,GAAIgzK,GAAc,QACxB,IAAc,YAAV3kG,EAAA,MAqBH,IAAIv0E,MACR,8EAnBqC,IAFvC8L,EAAO,GACP42H,EAAMxxD,EAAG37E,OACTwB,EAAwB,IAAbA,EAAiBA,EAAW83G,EAC9B6gF,GAAI,EAAGA,GAAIhtD,EAAKgtD,KACvBR,EAAa,IAANQ,GAAUoO,GAAsB52L,IAAMgnL,EAC7CkB,EAAa,IAANM,GAAUmO,GAAwBlnH,GAAK,EAC1C+4G,GAAIhtD,EAAM,EACZ2rD,EAAmBnoL,KACjBsvE,EACEkW,GACG30F,EAAWi3L,EAAW0B,MAAOx+G,EAAGw+G,IAAG1yL,MAAM,KAAKzH,OAAS,MAK9D84L,EAAmBnoL,KAAK,GAE1B4F,EAAK5F,KAAK,CAACgrE,EAAGw+G,IAAIN,EAAMF,GAAA,GAUqC,KAA1B,kBAAhB55L,EAAQg7L,IAAoBh7L,EAAQg7L,IAAM1Y,MAEjE9rK,EAAOgqE,EAAsBhqE,GAAM,SAASjO,EAAMiO,EAAM6qE,GAAA,MAC/C,CACL94E,EACGb,MAAM,IACNuoH,UACAz/G,KAAK,IACRgG,EACA6qE,EAAA,KAMNxC,EAAU,CACRhpE,KAAMW,EACN+oE,EAAG8B,EACHjC,EAAGxtE,EACH7Q,QAASf,EACT0nM,MAAO,CACL9D,UAAWD,GACXgE,cAAepL,GACfx0E,MAAO40E,GACPiL,eAAgBjxL,KAGpB0mL,GAAOp4C,QAAQ,kBAAmBpmE,GAElCroE,EAAOqoE,EAAQhpE,KACfupE,EAAQP,EAAQ6oH,MAAMlxG,QAAA,EAAS,IAG3B+jG,GAAqBoC,GAAMJ,IAAe3e,SAGrB,oBAAvB2c,IACuB,qBAAvBA,KAEA/jL,EAAOgqE,EAAsBhqE,GAAM,SAASjO,EAAMiO,EAAM6qE,GAAA,MAC/C,CAACi4B,EAAI/wG,GAAOiO,EAAM6qE,EAAA,KAI7BzF,EAAKqa,EAA4Bz/E,GAEjCA,EAAO,WAIHiyL,GACAhO,GACAE,GAHAG,GAAU/6L,MAAM8rF,QAAQjQ,EAAG,IADnB,EADC,EAMTm/G,GAAc,GAEdI,GAAmB,SACrB5yL,EACAiO,EACA6qE,GAAA,IAEIzvE,EAAW,UACXyvE,aAAoCq2G,IAKpCr2G,EAD2B,iBAAlBrhF,EAAQgZ,MACU8lB,GACzBuiD,EACA,IAAIq2G,GAAO,EAAG,EAAG,EAAG,EAAGnvL,EAAUiO,IAGRsoB,GACzB,IAAI44J,GAAO,EAAG,EAAG,EAAG,EAAGnvL,EAAUiO,GACjC6qE,GAIAhB,IAAYd,IACd8B,EAA2BviD,GACzB,IAAI44J,GAAO,EAAG,EAAG,GAAI,EAAG,EAAG,GAC3Br2G,IAIJzvE,EAAWyvE,EAAyB7wE,KAAK,KAAO,SAEhDoB,EAAWsuE,EAAI33E,GAAY,IAAM23E,EAAI1pE,GAAY,QAE5C5E,CAAA,EAGAwpL,GAAY,EAAGA,GAAYx/G,EAAG37E,OAAQm7L,KAAa,QAC1DL,GAAc,GAEND,IAAA,KA9CE,EAgDNH,IACGv7G,EAAQ,IAAM,KAAOxD,EAAGw/G,IAAW,IAAMh8G,EAAQ,IAAM,KAC1DqpH,GAAOxI,WAAWrkH,EAAGw/G,IAAW,IAChCX,GAAOwF,WAAWrkH,EAAGw/G,IAAW,eApDzB,EAuDPT,IAAWv7G,EAAQ,IAAM,KAAOxD,EAAGw/G,KAAch8G,EAAQ,IAAM,KAC/DqpH,GAAOF,GAAwBlnH,GAC/Bo5G,GAAO+N,GAAsB52L,QAAA,IAKxBmnL,QAAA,IACAA,EAAmBqC,MAE1BL,GAAchC,EAAmBqC,IAAa,SAG9B,IAAdA,GACF5kL,EAAK5F,KACHmqL,GACEI,GAAiBsN,GAAMhO,GAAMvyL,GAC7ByyL,IAxEK,IA0EAG,GACTtkL,EAAK5F,KAAKmqL,GAAcJ,IA1EhB,IA2ECG,IACTtkL,EAAK5F,KACHmqL,GACEI,GAAiBsN,GAAMhO,GAAMvyL,GAC7ByyL,GAAA,CAKRnkL,EArFa,IAqFNskL,GAAqBtkL,EAAKhG,KAAK,YAAcgG,EAAKhG,KAAK,SAC9DgG,GAAQ,YAEJ+kL,GAAS,eACbA,IAAUgB,GAAgB,IAAM5lL,GAAiB,QACjD4kL,IAAUr7G,EAAIvpE,GAAiB2oE,GAAc,QAC7Ci8G,IAAUmN,GAAY,KACtBnN,IAAU1pL,EACV0pL,IAAU/kL,EAGVI,EAFA2kL,IAAU,MAGVp8G,EAAUo9G,KAAA,EACHn7G,CAAA,MA6BLunH,GAAQvpH,EAAIq2G,YAAYn7D,KAAOl7C,EAAIk7C,KAAO,SAAS/xH,GAAA,OAInDqO,EADE,YAAcrO,EACZ,KAEA,KAECvH,IAAA,EAaTo+E,EAAIwpH,YAAc,kBACTD,GAAK,YAYdvpH,EAAIq2G,YAAYoT,YAAczpH,EAAIypH,YAAc,kBAC9CjyL,EAAI,KACG5V,IAAA,MAGL8nM,GAAgB1pH,EAAIq2G,YAAYsT,aAAe,SAASxgM,GAAA,IAetDiO,GAAA,EAAS,OAC8B,IAflB,MAAC,EAExB,KACA,IACA,IACA,IACA,KACA,KACA,IACA,KACA,IACA,KACA,KAGqBzI,QAAQxF,KAC7BiO,GAAA,GAEKA,CAAA,EAGT4oE,EAAIq2G,YAAYuT,wBAA0B5pH,EAAI4pH,wBAA0B,SACtEzgM,GAAA,OAEIugM,GAAavgM,KACf64E,EAAuB74E,GAElBvH,IAAA,MAGLkjL,GAAY9kG,EAAIq2G,YAAYwT,SAAW7pH,EAAI6pH,SAAW,SAAS1gM,GAAA,IAE7DiO,EAAK4qE,EAAA,OAED74E,GAAA,IACD,QACA,IACHiO,EAAK,cAEF,IACHA,EAAK,cAEF,SACA,KACHA,EAAK,cAEF,QACA,SACA,QACA,KAQHA,EAAKjO,EAAA,OAGFiO,CAAA,EAWL0yL,GAAS9pH,EAAI81B,MAAQ,kBACvBt+F,EAAI,KACG5V,IAAA,EAWTo+E,EAAIshD,OAAS,kBACX9pH,EAAI,KACG5V,IAAA,EAaTo+E,EAAIi9C,KAAO,SAAS9zH,GAAA,OAClB4gM,GAAwB,IAAK5gM,GACtBvH,IAAA,EAaTo+E,EAAIgqH,YAAc,SAAS7gM,GAAA,OACzB4gM,GAAwB,KAAM5gM,GACvBvH,IAAA,EAaTo+E,EAAIiqH,WAAa,SAAS9gM,GAAA,OACxB4gM,GAAwB,IAAK5gM,GACtBvH,IAAA,EAaTo+E,EAAIkqH,kBAAoB,SAAS/gM,GAAA,OAC/B4gM,GAAwB,KAAM5gM,GACvBvH,IAAA,MAGLmoM,GAA0B,SAAS3yL,EAAO6qE,GACrB,YAAnB94E,EAAAA,EAAAA,GAAO84E,GACT8H,GAAgB9H,EAAS7qE,GAEzBI,EAAIJ,EAAA,EAIJ+yL,GAAW,SAAShhM,GAEV,OAAVA,GACC83E,IAAYd,QAAQ,IAAYh3E,IAKnCA,EAAQ27K,GAAS37K,GAGjBqO,EAAIrO,GAAA,WAGGihM,GAAmBjhM,EAAYiO,EAAa6qE,EAAOzvE,EAAO5R,GAAA,IAC7Dk8E,EAAQ,IAAIiE,GACd3pE,GAAexV,KAAKyzL,YACpBpzG,GAASrgF,KAAK0zL,MACd9iL,GAAS5Q,KAAK2zL,MACd3zL,KAAKszL,OACLt0L,GAAUgB,KAAK0xG,QAEjBx2B,EAAMitG,OAASnoL,KAAKmoL,OAAA,IAChBtqG,EAAMt2E,EAAa,KAAOvH,KAAK4zL,aAAe,YAClDmK,GAAWlgH,EAAK3C,GACTA,CAAA,KAGLiN,GAAkB,SAAS5gF,EAAaiO,GAAA,IACtC6qE,EAAY07G,GAAWx0L,EAAYhJ,KACnCqS,EAAUkrL,GAASz7G,GAAA,GAEnBzvE,aAAmBukI,GACrBv/H,EAAI,KAEJA,EAAI+zC,GAAkBn0C,IAElB5E,EAAQ0iL,QACVl1G,EAAIqqH,UAAU73L,EAAQ0iL,QAExB19K,EAAIrO,EAAYmqG,OAAOzgG,WAAa,OACpC2E,EAAI,IAAMyqE,EAAY,OACtBzqE,EAAI,UACC,GAAIhF,aAAmBuuE,GAAe,KAGvCngF,EAAS,IAAI03L,GAAO,EAAG,EAAG,GAAI,EAAG,EAAGC,MAEpCpvL,EAAYmqG,SACd1yG,EAASA,EAAOk+L,SAAS31L,EAAYmqG,QAAUksF,IAG/Cv9G,EAAYmoH,GAAmB9pM,KAC7BkS,EACArJ,EAAYhJ,IACZgJ,EAAYksL,YACZlsL,EAAYmsL,MACZnsL,EAAYosL,MACZ30L,GACAyT,IAGJmD,EAAI,KACJA,EAAI,eACJA,EAAI,IAAMyqE,EAAY,QAElBzvE,EAAQ0iL,QACVl1G,EAAIqqH,UAAU73L,EAAQ0iL,QAGxB19K,EAAIJ,GACJI,EAAI,OAIJ+zC,GAAoB,SAASpiD,GAAA,OACvBA,GAAA,IACD,QACA,IAYI,IACJ,UACI,MAbA,IACJ,WACI,WACJ,IAGI,IAIJ,UACI,MAPA,IACJ,WACI,OAOA,EAcTmhM,GAAUtqH,EAAIk+C,OAAS,SAAS/0H,EAAGiO,GAAA,OACrCI,EAAIspE,EAAIkW,EAAM7tF,IAAM,IAAM23E,EAAIw4G,EAAgBliL,IAAM,MAC7CxV,IAAA,EAcL2oM,GAAUvqH,EAAIm+C,OAAS,SAASh1H,EAAGiO,GAAA,OACrCI,EAAIspE,EAAIkW,EAAM7tF,IAAM,IAAM23E,EAAIw4G,EAAgBliL,IAAM,MAC7CxV,IAAA,EAmBL4oM,GAAWxqH,EAAIyqH,QAAU,SAASthM,EAAIiO,EAAI6qE,EAAIzvE,EAAI5R,EAAIk8E,GAAA,OACxDtlE,EACE,CACEspE,EAAIkW,EAAM7tF,IACV23E,EAAIw4G,EAAgBliL,IACpB0pE,EAAIkW,EAAM/U,IACVnB,EAAIw4G,EAAgB9mL,IACpBsuE,EAAIkW,EAAMp2F,IACVkgF,EAAIw4G,EAAgBx8G,IACpB,KACA1rE,KAAK,MAEFxP,IAAA,EAiBTo+E,EAAIq2G,YAAY5hF,KAAOz0B,EAAIy0B,KAAO,SAAStrG,EAAIiO,EAAI6qE,EAAIzvE,EAAI5R,GAAA,GAEvD8jF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,KACLk3L,GAAa9oM,GAAA,MAER,IAAI0K,MAAM,iDAEd21E,IAAYd,EACPv+E,KAAK4oK,MAAM,CAAC,CAACvoF,EAAK94E,EAAIqJ,EAAK4E,IAAMjO,EAAIiO,EAAI,CAAC,EAAG,GAAIxW,GAAS,KAE1DgB,KAAK4oK,MAAM,CAAC,CAACvoF,EAAK94E,EAAIqJ,EAAK4E,IAAMjO,EAAIiO,EAAI,CAAC,EAAG,IAAIkqH,QAAA,EAuC5DthD,EAAIq2G,YAAY7rB,MAAQxqF,EAAIwqF,MAAQ,SAClCrhK,EACAiO,EACA6qE,EACAzvE,EACA5R,EACAk8E,GAAA,IAEI2C,EAAQjD,EAAQtvE,EAAG2yE,EAAGI,EAAK59E,EAAIy5E,EAAIgE,EAAIh3E,EAAIk5E,EAAItD,EAAIjsE,EAAA,GAOlC,iBAAVtJ,IACTsJ,EAAMwvE,EACNA,EAAI7qE,EACJA,EAAIjO,EACJA,EAAQsJ,GAGVD,EAAQA,GAAS,CAAC,EAAG,GACrBsqE,EAASA,IAAA,EAGP4H,MAAMttE,IACNstE,MAAMzC,KACLthF,MAAM8rF,QAAQtjF,KACdxI,MAAM8rF,QAAQj6E,KACdk3L,GAAa9oM,IACI,kBAAXk8E,EAAA,MAED,IAAIxxE,MAAM,+CAIlBg/L,GAAOlzL,EAAG6qE,GAEVxC,EAASjtE,EAAM,GACfgqE,EAAShqE,EAAM,GACfqtE,EAAI12E,EAAMtI,OAIVmhF,EAAK5qE,EACLsnE,EAAKuD,EAEA/0E,EAAI,EAAGA,EAAI2yE,EAAG3yE,IAEE,KADnB+yE,EAAM92E,EAAM+D,IACJrM,QAENmhF,EAAK/B,EAAI,GAAKR,EAASuC,EACvBtD,EAAKuB,EAAI,GAAKzD,EAASkC,EACvB6rH,GAAOvoH,EAAItD,KAGXr8E,EAAK49E,EAAI,GAAKR,EAASuC,EACvBlG,EAAKmE,EAAI,GAAKzD,EAASkC,EACvBoB,EAAKG,EAAI,GAAKR,EAASuC,EACvBl5E,EAAKm3E,EAAI,GAAKzD,EAASkC,EACvBsD,EAAK/B,EAAI,GAAKR,EAASuC,EACvBtD,EAAKuB,EAAI,GAAKzD,EAASkC,EACvB8rH,GAAQnoM,EAAIy5E,EAAIgE,EAAIh3E,EAAIk5E,EAAItD,IAAA,OAI5B5B,GACFgtH,KAGFK,GAASvpM,GACFgB,IAAA,EAaTo+E,EAAI+wC,KAAO,SAAS5nH,GAAA,IACb,IAAIiO,EAAI,EAAGA,EAAIjO,EAAMtI,OAAQuW,IAAK,KACjC6qE,EAAM94E,EAAMiO,GACZ5E,EAASyvE,EAAI/0E,EAAA,OACT+0E,EAAIyH,IAAA,IACL,IACH4gH,GAAO93L,EAAO,GAAIA,EAAO,cAEtB,IACH+3L,GAAO/3L,EAAO,GAAIA,EAAO,cAEtB,IACHg4L,GAAQ9jM,MAAM9E,KAAM4Q,GAAA,UAEjB,IACHs3L,KAAA,QAKCloM,IAAA,EAwBTo+E,EAAIq2G,YAAYt/H,KAAOipB,EAAIjpB,KAAO,SAAS5tD,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,GAAA,GACjD8jF,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,KAAOk3L,GAAa9oM,GAAA,MAC1D,IAAI0K,MAAM,iDAEd21E,IAAYd,IACd3tE,GAAKA,GAGPgF,EACE,CACEspE,EAAIkW,EAAM7tF,IACV23E,EAAIw4G,EAAgBliL,IACpB0pE,EAAIkW,EAAM/U,IACVnB,EAAIkW,EAAMxkF,IACV,MACApB,KAAK,MAGT+4L,GAASvpM,GACFgB,IAAA,EA0BTo+E,EAAIq2G,YAAY5qH,SAAWuU,EAAIvU,SAAW,SACxCtiE,EACAiO,EACA6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,GAAA,GAGEiF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,IACNkyE,MAAM9jF,IACN8jF,MAAM5H,KACL4sH,GAAajqH,GAAA,MAER,IAAIn0E,MAAM,0DAEbk/J,MACH,CACE,CAACvoF,EAAK94E,EAAIqJ,EAAK4E,GAAA,CACdxW,EAAKqhF,EAAInF,EAAKtqE,GAAA,CACdrJ,EAAKvI,EAAIwW,EAAK0lE,IAEjB3zE,EACAiO,EAAA,CACC,EAAG,GACJqoE,GAAA,GAGK79E,IAAA,EA0BTo+E,EAAIq2G,YAAYqU,YAAc1qH,EAAI0qH,YAAc,SAC9CvhM,EACAiO,EACA6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,GAAA,GAGEiF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,IACNkyE,MAAM9jF,IACN8jF,MAAM5H,KACL4sH,GAAajqH,GAAA,MAER,IAAIn0E,MAAM,qDAEdkxE,EAAS,EAAI,GAAM6C,KAAKsrH,MAAQ,UAEpC/pM,EAAKy+E,KAAKyD,IAAIliF,EAAQ,GAAJqhF,GAClBnF,EAAKuC,KAAKyD,IAAIhG,EAAQ,GAAJtqE,GAAA,KAEbg4J,MACH,CACE,CAACvoF,EAAI,EAAIrhF,EAAI,GACb,CAACA,EAAK47E,EAAO,EAAG57E,EAAIk8E,EAAKA,EAAKN,EAAO57E,EAAIk8E,GACzC,CAAC,EAAGtqE,EAAI,EAAIsqE,GACZ,CAAC,EAAGA,EAAKN,GAAS57E,EAAK47E,EAAQM,GAAKl8E,EAAIk8E,GACxC,CAAM,EAAIl8E,EAARqhF,EAAY,GACd,EAAGrhF,EAAK47E,EAAQ,GAAI57E,GAAMk8E,EAAKN,GAAS57E,GAAKk8E,GAC7C,CAAC,EAAQ,EAAIA,EAARtqE,GACL,CAAC,GAAKsqE,EAAKN,EAAQ57E,EAAK47E,GAAQM,EAAIl8E,GAAKk8E,IAE3C3zE,EAAIvI,EACJwW,EAAA,CACC,EAAG,GACJqoE,GAAA,GAGK79E,IAAA,EAwBTo+E,EAAIq2G,YAAYuU,QAAU5qH,EAAI4qH,QAAU,SAASzhM,EAAGiO,EAAG6qE,EAAIzvE,EAAI5R,GAAA,GAE3D8jF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,KACLk3L,GAAa9oM,GAAA,MAER,IAAI0K,MAAM,iDAEdwxE,EAAM,EAAI,GAAMuC,KAAKsrH,MAAQ,GAAK1oH,EACpCxC,EAAM,EAAI,GAAMJ,KAAKsrH,MAAQ,GAAKn4L,EAAA,OAEpC83L,GAAOnhM,EAAI84E,EAAI7qE,GACfozL,GAAQrhM,EAAI84E,EAAI7qE,EAAIqoE,EAAIt2E,EAAI2zE,EAAI1lE,EAAI5E,EAAIrJ,EAAGiO,EAAI5E,GAC/Cg4L,GAAQrhM,EAAI2zE,EAAI1lE,EAAI5E,EAAIrJ,EAAI84E,EAAI7qE,EAAIqoE,EAAIt2E,EAAI84E,EAAI7qE,GAChDozL,GAAQrhM,EAAI84E,EAAI7qE,EAAIqoE,EAAIt2E,EAAI2zE,EAAI1lE,EAAI5E,EAAIrJ,EAAGiO,EAAI5E,GAC/Cg4L,GAAQrhM,EAAI2zE,EAAI1lE,EAAI5E,EAAIrJ,EAAI84E,EAAI7qE,EAAIqoE,EAAIt2E,EAAI84E,EAAI7qE,GAEhD+yL,GAASvpM,GACFgB,IAAA,EAuBTo+E,EAAIq2G,YAAYwU,OAAS7qH,EAAI6qH,OAAS,SAAS1hM,EAAGiO,EAAG6qE,EAAGzvE,GAAA,GAClDkyE,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,KAAOynH,GAAal3L,GAAA,MAC9C,IAAIlH,MAAM,mDAEX1J,KAAKgpM,QAAQzhM,EAAGiO,EAAG6qE,EAAGA,EAAGzvE,EAAA,EAgBlCwtE,EAAI8qH,QAAU,SAAS3hM,EAAUiO,EAAW6qE,GAAA,OACtCA,IACF7qE,EAAYknE,EAA8BlnE,EAAW6qE,IAEvDk7G,GAAgBsI,GAAQt8L,EAAUiO,EAAW,CAC3CsuL,gBAAA,IAEK9jM,IAAA,MAYLmpM,GAAgB/qH,EAAIq2G,YAAY2U,QAAUhrH,EAAIgrH,QAAU,kBACnDzN,GAAMkI,GAAQ/+L,MAAMs5E,EAAKr5E,WAAA,EAclCq5E,EAAIq2G,YAAY4U,YAAcjrH,EAAIirH,YAAc,eAE5C9hM,EACAiO,EAFE6qE,EAAO,CAAC,EAAD,IAIN94E,KAAYq0L,GAAA,GACXA,GAAQn9L,eAAe8I,GAAA,IAEpBiO,KADL6qE,EAAK94E,GAAY,GACCq0L,GAAQr0L,GACpBq0L,GAAQr0L,GAAU9I,eAAe+W,IACnC6qE,EAAK94E,GAAUqI,KAAK4F,GAAA,OAKrB6qE,CAAA,EAiBTjC,EAAIkrH,QAAU,SACZ/hM,EACAiO,EACA6qE,EACAzvE,EACA5R,GAAA,IAEIk8E,EAAkB,CACpB,mBACA,mBACA,aACA,0BAEEn2E,UAAU,KAAiD,IAA3Cm2E,EAAgBnuE,QAAQhI,UAAU,IAEpD/F,EAAW+F,UAAU,GACZA,UAAU,KAAgD,GAA1Cm2E,EAAgBnuE,QAAQhI,UAAU,MAC3Ds7E,EAAY3D,EAA8B2D,EAAWzvE,IAGhD6xL,GAAQ/jM,KAAKsB,KAAMuH,EAAgBiO,EAAU6qE,EADpDrhF,EAAWA,GAAY,aACwC,MAuE7DqnM,GApEA9C,GAAY/tL,EAAQslH,WAAa,QAUjCyuE,GAAgBnrH,EAAIq2G,YAAY+U,aAAeprH,EAAIorH,aAAe,kBAC7DjG,EAAA,EAaLj1I,GAAgB8vB,EAAIq2G,YAAYgV,aAAerrH,EAAIqrH,aAAe,SACpEliM,GAAA,OAEAg8L,GAAYh8L,EACZqO,EAAIspE,EAAIkW,EAAM7tF,IAAU,MACjBvH,IAAA,EAiBTo+E,EAAIq2G,YAAYj1D,YAActqC,GAAMq4E,IAAI/tC,YAActqC,GAAMq4E,IAAIm8B,mBAAqB,SACnFniM,EACAiO,GAAA,GAEAjO,EAAYA,GAAa,GACzBiO,EAAYA,GAAa,EAErBstE,MAAMttE,KAAezW,MAAM8rF,QAAQtjF,GAAA,MAC/B,IAAImC,MAAM,wDAGlBnC,EAAYA,EACT6K,KAAI,SAAS7K,GAAA,OACL23E,EAAIkW,EAAM7tF,GAAA,IAElBiI,KAAK,KACRgG,EAAY0pE,EAAIkW,EAAM5/E,IAEtBI,EAAI,IAAMrO,EAAY,KAAOiO,EAAY,MAClCxV,IAAA,MAKL2pM,GAAiBvrH,EAAIq2G,YAAYmV,cAAgBxrH,EAAIwrH,cAAgB,kBAChEj0L,GAAiB0wL,EAAA,EAG1BjoH,EAAIq2G,YAAYmV,cAAgBxrH,EAAIwrH,cAAgB,kBAC3Cj0L,GAAiB0wL,EAAA,MAatBwD,GAAuBzrH,EAAIq2G,YAAYqV,oBAAsB1rH,EAAI0rH,oBAAsB,SACzFviM,GAAA,MAGqB,iBADrBA,EAAQA,GAAS,QAEf8+L,GAAmB9+L,GAEdvH,IAAA,EAYL+pM,GAAuB3rH,EAAIq2G,YAAYuV,oBAAsB5rH,EAAI4rH,oBAAsB,kBAClF3D,EAAA,EAGTwD,GAAoBr0L,EAAQs6F,YAAA,IAExBy3F,GAA2BnpH,EAAIq2G,YAAYwV,wBAA0B,SACvE1iM,GAAA,OAEO6tF,EAAM7tF,EAAA,EAGXigM,GAAyBppH,EAAIq2G,YAAYyV,sBAAwB,SACnE3iM,GAAA,OAEI83E,IAAYd,EACPh3E,EAGL60L,GAAatuD,GAAayyD,SAASI,UACnCvE,GAAatuD,GAAayyD,SAASE,YACjBrrG,EAAM7tF,EAAA,EAI1B0tE,GAAiCmJ,EAAIq2G,YAAY0V,8BAAgC/rH,EAAI+rH,8BAAgC,SACvH5iM,GAAA,OAEO23E,EAAIqoH,GAAwBhgM,GAAA,EAGjC6iM,GAA+BhsH,EAAIq2G,YAAY4V,4BAA8BjsH,EAAIisH,4BAA8B,SACjH9iM,GAAA,OAEO23E,EAAIsoH,GAAsBjgM,GAAA,EAG/Bi8L,GAAchuL,EAAQ80L,aAAe,MAWzClsH,EAAIq2G,YAAY8V,eAAiBnsH,EAAIosH,aAAe,kBAC3C33K,GAAkB2wK,GAAA,EAyC3BplH,EAAIq2G,YAAYgW,eAAiBrsH,EAAIssH,aAAe,SAClDnjM,EACAiO,EACA6qE,EACAzvE,GAAA,OAWA4yL,GAAcnR,GATA,CACZ8M,IAAK53L,EACL63L,IAAK5pL,EACL6pL,IAAKh/G,EACLi/G,IAAK1uL,EACL2uL,aAAc,OACdnL,UAAW,IAIbx+K,EAAI4tL,IACGxjM,IAAA,MAGL2qM,GAAYn1L,EAAQo1L,WAAa,MAWrCxsH,EAAIq2G,YAAYoW,aAAezsH,EAAIysH,aAAe,kBACzCh4K,GAAkB83K,GAAA,EAyC3BvsH,EAAIq2G,YAAYqW,aAAe1sH,EAAI0sH,aAAe,SAChDvjM,EACAiO,EACA6qE,EACAzvE,GAAA,OAWA+5L,GAAYtY,GATE,CACZ8M,IAAK53L,EACL63L,IAAK5pL,EACL6pL,IAAKh/G,EACLi/G,IAAK1uL,EACL2uL,aAAc,OACdnL,UAAW,IAIbx+K,EAAI+0L,IACG3qM,IAAA,MAGL0nM,GAAYlyL,EAAQu1L,WAAa,MAUjCC,GAAgB5sH,EAAIq2G,YAAYwW,aAAe7sH,EAAI6sH,aAAe,kBAC7Dp4K,GAAkB60K,GAAA,EAwC3BtpH,EAAIq2G,YAAYyW,aAAe9sH,EAAI8sH,aAAe,SAChD3jM,EACAiO,EACA6qE,EACAzvE,GAAA,OAUA82L,GAAYrV,GARE,CACZ8M,IAAK53L,EACL63L,IAAK5pL,EACL6pL,IAAKh/G,EACLi/G,IAAK1uL,EACL2uL,aAAc,OACdnL,UAAW,IAINp0L,IAAA,MAGL2hI,GAAkBnsH,EAAQsxL,UAW1Bz4I,GAAgB+vB,EAAIq2G,YAAYuS,aAAe5oH,EAAI4oH,aAAe,kBAC7D/H,WAAWt9D,IAAmB,IAavCvjD,EAAIq2G,YAAYsS,aAAe3oH,EAAI2oH,aAAe,SAASx/L,GAAA,GACrDu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,wDAElBi4H,GAAkBp6H,EACXvH,IAAA,MAGLyjM,GAAY,EAShBrlH,EAAI+sH,cAAgB,GACf,EACHC,KAAM,EACNC,IAAK,EACLC,MAAO,IACJ,EACH3sG,MAAO,EACP4sG,QAAS,EACTtC,OAAQ,IACL,EACHuC,WAAY,EACZC,QAAS,EACT1qI,OAAQ,EACR2qI,MAAO,GAcTttH,EAAIq2G,YAAYkX,WAAavtH,EAAIutH,WAAa,SAASpkM,GAAA,IACjDiO,EAAK4oE,EAAI+sH,cAAc5jM,GAAA,YACvBiO,EAAA,MACI,IAAI9L,MACR,sBACEnC,EACA,sFAGNk8L,GAAYjuL,EACZI,EAAIJ,EAAK,MAEFxV,IAAA,MAGL0jM,GAAa,EAYjBtlH,EAAIq2G,YAAYmX,YAAcxtH,EAAIwtH,YAAc,SAASrkM,GAAA,IACnDiO,EAAK4oE,EAAI+sH,cAAc5jM,GAAA,YACvBiO,EAAA,MACI,IAAI9L,MACR,uBACEnC,EACA,sFAGNm8L,GAAaluL,EACbI,EAAIJ,EAAK,MAEFxV,IAAA,EAcTo+E,EAAIq2G,YAAYoX,kBAAoBztH,EAAIq2G,YAAYqX,cAAgB1tH,EAAIytH,kBAAoBztH,EAAI0tH,cAAgB,SAC9GvkM,GAAA,GAEAA,EAASA,GAAU,EACfu7E,MAAMv7E,GAAA,MACF,IAAImC,MAAM,6DAElBkM,EAAIspE,EAAIkW,EAAM7tF,IAAW,MAElBvH,IAAA,EAcTo+E,EAAI2tH,OAAS9sH,GAWbb,EAAIqqH,UAAY,SAASlhM,IAErBA,EADoB,iBAAXA,EACAy0L,GAAQC,GAAW10L,IAEnBykM,GAAU,KAAMzkM,IAGfiuB,OAAO0mK,MACjBtmL,EAAI,IAAMrO,EAAOkL,GAAK,OACtBypL,GAAe30L,EAAA,MASfykM,GAAY,SAASzkM,EAAKiO,GAAA,IAExBjO,IAAO00L,GAAW10L,GAAA,KAClB84E,GAAA,EAAY,IACX,IAAIzvE,KAAKorL,GAAA,GACRA,GAAQv9L,eAAemS,IACrBorL,GAAQprL,GAAG4kB,OAAOhgB,GAAS,CAC7B6qE,GAAA,EAAY,SAMdA,EACF7qE,EAASwmL,GAAQprL,OACZ,KACD5R,EAAY,MAAQ5B,OAAOyJ,KAAKm1L,IAAS/8L,OAAS,GAAGgS,SAAS,IAClE+qL,GAAQh9L,GAAawW,EACrBA,EAAO/C,GAAKzT,CAAA,QAIduI,IAAQ00L,GAAW10L,GAAOiO,EAAO/C,IAEjC4pL,GAAOp4C,QAAQ,YAAazuI,GAErBA,CAAA,GAcT4oE,EAAI6tH,UAAY,SAAS1kM,EAAKiO,GAAA,OAC5Bw2L,GAAUzkM,EAAKiO,GACRxV,IAAA,EAYTo+E,EAAIq4G,kBAAoB,kBACtB7gL,EAAI,KAEJimL,GAAejsL,KAAK,CAClBrR,IAAKg9L,GACL7vF,KAAM/1F,GACN2oF,MAAOopG,KAEF1nM,IAAA,EAUTo+E,EAAI04G,qBAAuB,WACzBlhL,EAAI,SAGArO,EAAYs0L,GAAex+G,MAAA,OAC/Bk+G,GAAgBh0L,EAAUhJ,IAC1BoX,GAAiBpO,EAAUmkG,KAC3Bg8F,GAAYngM,EAAU+2F,MAEtB49F,GAAe,KAERl8L,IAAA,EAYTo+E,EAAI8tH,+BAAiC,SAAS3kM,GAAA,OAC5CqO,EAAIrO,EAAO0J,WAAa,OACjBjR,IAAA,EAYTo+E,EAAI94E,QAAU,SAASiC,GAAA,OACrBqO,EAAI,IAAMrO,GACHvH,IAAA,MAMLu9L,GAAQ,SAASh2L,EAAGiO,GAAA,IAClB6qE,EAAK94E,GAAK,EACdnK,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GACPu7E,MAAMv7E,KACT84E,EAAK4+G,WAAW13L,GAAA,QAKlBqJ,EAAK4E,GAAK,EACdpY,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACI1E,CAAA,EAET2E,IAAK,SAAShO,GACPu7E,MAAMv7E,KACTqJ,EAAKquL,WAAW13L,GAAA,QAKlBvI,EAAQ,YACZ5B,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACA/sE,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GACZvI,EAAQuI,EAAM0J,UAAA,IAGXjR,IAAA,EAMLy9L,GAAY,SAASl2L,EAAGiO,EAAG6qE,EAAGzvE,GAChC2sL,GAAM7+L,KAAKsB,KAAMuH,EAAGiO,GAAA,KACfs7E,KAAO,WAER9xF,EAAKqhF,GAAK,EACdjjF,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GACPu7E,MAAMv7E,KACTvI,EAAKigM,WAAW13L,GAAA,QAKlB2zE,EAAKtqE,GAAK,SACdxT,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACI4lE,CAAA,EAET3lE,IAAK,SAAShO,GACPu7E,MAAMv7E,KACT2zE,EAAK+jH,WAAW13L,GAAA,IAKfvH,IAAA,EAOL0pD,GAAe,gBACZ05E,KAAO+4D,GAAA,KACPgQ,YAAcr+D,EAAA,KACd0zD,MAAQlI,EAAMnpL,MAAM,QACpBi8L,aAAehQ,GAAajsL,MAAM,QAClCouE,EAAIi9G,GAAA,KACJp9G,EAAIq9G,GAAA,KACJ/pF,OAASgqF,GAAA,KACTrzG,MAAQgkH,GAAav+D,GAAA,KACrBxlD,OAASquG,GAAc7oD,GAAA,KACvBw+D,kBAAoB/S,EAAA,KAEpB9mL,GAAK,QACL4gL,cAAgB,GAGvB3pI,GAAalrD,UAAU+6H,QAAU,WAC/B4iE,GAAOn8L,KAAKojI,KACZ0K,EAAc9tI,KAAKmsM,YACnB/P,GAAep8L,KAAKosM,aACpB9S,EAAQt5L,KAAKwhM,MACbhG,GAAQx7L,KAAKu+E,EACbk9G,GAAQz7L,KAAKo+E,EACbs9G,GAAa17L,KAAK0xG,OAClB66F,GAAaz+D,EAAa9tI,KAAKqoF,OAC/BmkH,GAAc1+D,EAAa9tI,KAAKsoF,QAChCixG,EAAoBv5L,KAAKssM,iBAAA,MAGvBlO,GAAuB,SAAS72L,EAAGiO,EAAG6qE,EAAOzvE,EAAQ5R,GAEvD09L,GAAkB9sL,KAAK,IAAI85C,IAG3ByyI,GAAOruD,EAAc,EACrBwrD,EAAQ,GACRkC,GAAQj0L,EACRk0L,GAAQjmL,EAERkmL,GAAa18L,EAEbmkM,GAAU,CAAC9iH,EAAOzvE,GAAA,EAsBM,IAoIrB,IAAI67L,MAhHTruH,EAAIsuH,gBAAkB,SAASnlM,EAAGiO,EAAG6qE,EAAOzvE,EAAQ5R,GAAA,OAQlDo/L,GAAqB72L,EAAGiO,EAAG6qE,EAAOzvE,EAAQ5R,GACnCgB,IAAA,EAWTo+E,EAAIuuH,cAAgB,SAASplM,GAAA,OA3DT,SAASA,GAAA,GAEvBk1L,GAAgBl1L,GAClBm1L,GAAkBr/G,MAAMk8C,cAAA,KAKtB/jH,EAAa,IAAIk0C,GAEjB22B,EAAY,MAAQjjF,OAAOyJ,KAAK21L,IAAev9L,OAAS,GAAGgS,SAAS,IACxEuE,EAAW/C,GAAK4tE,EAEhBo8G,GAAgBl1L,GAAO84E,EACvBm8G,GAAcn8G,GAAa7qE,EAE3B6mL,GAAOp4C,QAAQ,gBAAiBzuI,GAGhCknL,GAAkBr/G,MAAMk8C,SAAA,EAyCxBqzE,CAAcrlM,GACPvH,IAAA,EAeTo+E,EAAIyuH,aAAe,SAAStlM,EAAKiO,GAAA,IAC3B6qE,EAAUm8G,GAAcC,GAAgBl1L,IAAA,OAC5CqO,EAAI,KACJA,EAAIJ,EAAOvE,WAAa,OACxB2E,EAAI,IAAMyqE,EAAQ5tE,GAAK,OACvBmD,EAAI,KACG5V,IAAA,EAYTo+E,EAAI0uH,cAAgB,SAASvlM,GAAA,IACvBiO,EAAUgnL,GAAcC,GAAgBl1L,IAAA,MACrC,CACLg3E,EAAG/oE,EAAQ+oE,EACXH,EAAG5oE,EAAQ4oE,EACXiK,MAAO7yE,EAAQ6yE,MACfC,OAAQ9yE,EAAQ8yE,OAChBopB,OAAQl8F,EAAQk8F,OAAA,EAepBtzB,EAAIg7C,KAAO,SAAS7xH,EAAUiO,GAAA,OAC5BjO,EAAWA,GAAY,iBAEvBiO,EAAUA,GAAW,CAAC,GACdu3L,cAAgBv3L,EAAQu3L,gBAAA,GAAiB,IAE7Cv3L,EAAQu3L,eACVtsM,GAAOskM,GAAQJ,MAAkBp9L,GACJ,mBAAlB9G,GAAOusM,QACZp8L,GAAa0vE,YACfA,WAAW7/E,GAAOusM,OAAQ,KAGvBhtM,MAEA,IAAI+mF,SAAQ,SAASvxE,EAAS6qE,GAAA,QAE7BrhF,EAASyB,GAAOskM,GAAQJ,MAAkBp9L,GACjB,mBAAlB9G,GAAOusM,QACZp8L,GAAa0vE,YACfA,WAAW7/E,GAAOusM,OAAQ,KAG9Bx3L,EAAQxW,EAAA,CACR,MAAOuI,GACP84E,EAAO94E,EAAEkC,QAAA,MAUEyrF,GAAMq4E,IACnBr4E,GAAMq4E,IAAI9uK,eAAeguM,MACZ,WAAXA,IAAuBv3G,GAAMq4E,IAAI0/B,OAAOhuM,OAAA,SAChCsI,EAAQiO,GAAA,IAMZ6qE,EAAWzvE,EAAkB5R,EAAA,IAE5BA,EAAIwW,EAAUvW,OAAS,GAAU,IAAPD,EAAUA,IAMvCqhF,EAAY7qE,EAAUxW,GAAG,GACzB4R,EAAmB4E,EAAUxW,GAAG,GAChCuI,EAAOo7I,UAAU79I,MACfyC,EACA,CAAC84E,GAAW2B,OACkB,mBAArBpxE,EACH,CAACA,GACDA,GAAA,CAtB8B,CA0BvCyrL,GAAQnnG,GAAMq4E,IAAI0/B,QAErB7uH,EAAIquH,IAAUv3G,GAAMq4E,IAAIk/B,KAAA,IAK1BJ,GAAgBjuH,EAAI8uH,aAAe,SAAS3lM,GAAA,OAG3C60L,GAFH70L,EAAaA,GAAcumI,GAECyyD,SAASG,UACjCtE,GAAa70L,GAAYg5L,SAASC,aACpC3+D,EAAA,EAIA0qE,GAAgBnuH,EAAI+uH,aAAe,SAAS5lM,EAAYiO,GAC1D4mL,GAAa70L,GAAYg5L,SAASG,UAChClrL,EAAQqsH,GAAcu6D,GAAa70L,GAAYg5L,SAASC,WAAA,EAGxD7J,GAAiBv4G,EAAIgvH,cAAgB,SAAS7lM,GAAA,OAG7C60L,GAFH70L,EAAaA,GAAcumI,GAECyyD,SAASI,UACjCvE,GAAa70L,GAAYg5L,SAASE,aACpC5+D,EAAA,EAIA2qE,GAAiBpuH,EAAIivH,cAAgB,SAAS9lM,EAAYiO,GAC5D4mL,GAAa70L,GAAYg5L,SAASI,UAChCnrL,EAAQqsH,GAAcu6D,GAAa70L,GAAYg5L,SAASE,WAAA,SAQ5DriH,EAAIqlD,SAAW,CACbm/D,UAAWD,GACXsF,SAAU/kB,GACVkmB,QAASD,GACTtS,YAAakD,GACbiN,aAAc34I,GACd48I,aAAcD,GACdpB,cAAeD,GACfK,oBAAqBD,GACrBP,aAAcD,GACdhxG,MAAOohG,EACPsQ,wBAAyB1C,GACzB2C,sBAAuB1C,GACvB8F,oBAAqBr4H,GACrBo1H,4BAA6BD,GAC7BmD,YAAa,CAAC,EACdhP,UAAWD,GACXM,oBAAqBD,GACrBD,kBAAmBF,GACnBgP,uBAAwB/O,GACxBe,WAAY9lJ,GACZgmJ,UAAWD,GACXwN,OAAQ5Q,GACRiK,YAAazkE,GACbsB,SAAU,CACRikE,SAAU,kBACDiF,GAAav+D,EAAA,EAEtB2/D,SAAU,SAASlmM,GACjBglM,GAAaz+D,EAAavmI,EAAA,EAE5BmmM,UAAW,kBACF/W,GAAc7oD,EAAA,EAEvB6/D,UAAW,SAASpmM,GAClBilM,GAAc1+D,EAAavmI,EAAA,GAG/BqmM,kBAAmB9wH,EACnBi3G,WAAYkE,GACZ4V,aAvsFiB,SAAStmM,GAAA,OACA,OAAtBu1E,EACKm7G,GAAW6H,UAAUv4L,EAAU,GAEjC,SAASA,GAAA,OACPA,CAAA,GAmsFTs9E,OAAQogH,GACRvhE,iBAAkBkgE,GAClBpC,MAAOlI,EACPzwB,IAAKjzJ,EACL4hL,GAAI96C,EACJ+6C,GAAIj/E,EACJktF,YAAaD,GACbG,mBAAoBD,GACpBG,mBAAoBD,GACpBiI,cAAepb,EACfqb,MAAOxQ,GACPyQ,UAAWvQ,GACXC,OAAQhH,GACRuX,UAAWzI,IAGbpoM,OAAOgY,eAAegpE,EAAIqlD,SAASN,SAAU,QAAS,CACpD7tH,IAAK,kBACI+2L,GAAav+D,EAAA,EAEtBv4H,IAAK,SAAShO,GACZglM,GAAaz+D,EAAavmI,EAAA,EAE5B86E,YAAA,EACAC,cAAA,IAEFllF,OAAOgY,eAAegpE,EAAIqlD,SAASN,SAAU,SAAU,CACrD7tH,IAAK,kBACIqhL,GAAc7oD,EAAA,EAEvBv4H,IAAK,SAAShO,GACZilM,GAAc1+D,EAAavmI,EAAA,EAE7B86E,YAAA,EACAC,cAAA,IAhgHa,SAAS/6E,GAAA,IACjB,IAAIiO,EAAI,EAAG6qE,EAAI/4E,GAAcrI,OAAQuW,EAAI6qE,EAAG7qE,IAAK,KAChD5E,EAAU6xL,GAAQ/jM,KACpBsB,KACAuH,EAAaiO,GAAG,GAChBjO,EAAaiO,GAAG,GAChBjO,EAAaiO,GAAG,GAChBlO,GAAckO,GAAG,QACjB,IAGE3E,IACFstE,EAAUvtE,IAAA,GAAW,IAGnB5R,EAAQuI,EAAaiO,GAAG,GAAG9O,MAAM,KACrCi1H,GAAwB,CACtBlpH,GAAI7B,EACJ4xL,SAAUxjM,EAAM,GAChBm0G,UAAWn0G,EAAM,IAAM,KAG3Bq9L,GAAOp4C,QAAQ,WAAY,CACzBl9B,MAAO40E,GACPpU,WAAYqU,IAAA,EA++GPl9L,KAAK0/E,EAAK92E,IACnBi0L,GAAgB,KAChB+H,GAAS1oH,EAAQ57E,GAEjBq9L,GAAOp4C,QAAQ,eACR7lE,CAAA,CF51LTy0G,GAAYr0L,UAAUy0L,aAAe,SAAS1rL,GAAA,OACrCtG,OAAOw7E,aACE,IAAbl1E,EACAA,GAAQ,EAAK,IACbA,GAAQ,GAAM,IACdA,GAAQ,GAAM,MAYnBsrL,GAAYr0L,UAAUsmM,YAAc,SAASv9L,GAAA,OACpCA,EACJb,MAAM,IACN0L,KAAI,SAAS7K,GAAA,OACJ,KAA4B,IAArBA,EAAKgE,WAAW,IAAW0F,SAAS,KAAKd,OAAO,MAEhEX,KAAK,KAWVqjL,GAAYr0L,UAAU00L,WAAa,SAAS3rL,GAAA,IACrC,IAAIiO,EAAQ,GAAI6qE,EAAI,EAAGA,EAAI94E,EAAItI,OAAQohF,GAAK,EAC/C7qE,EAAM5F,KAAK3O,OAAOw7E,aAAaE,SAASp1E,EAAIzG,OAAOu/E,EAAG,GAAI,aACrD7qE,EAAMhG,KAAK,KAYpBqjL,GAAYr0L,UAAUu0L,qBAAuB,SAC3CxrL,EACAiO,GAAA,OAGOmxE,GADGpI,GAAO/oE,GAAqB1U,OAAO,EAAG,GAChCyG,EAAA,EAiBlBsrL,GAAYr0L,UAAUshM,UAAY,SAASv4L,EAAUiO,GAAA,IAC/C6qE,EAAM9B,GACRv+E,KAAKgzL,cACH/xL,OAAOw7E,aACM,IAAXl1E,EACCA,GAAY,EAAK,IACjBA,GAAY,GAAM,IACN,IAAbiO,EACCA,GAAc,EAAK,MAExB1U,OAAO,EAAG,WACL,SAASyG,GAAA,OACPo/E,GAAItG,EAAK94E,EAAA,GExCpB03E,GAAOzgF,UAAUg3B,OAAS,SAAgBhgB,GAAA,IAEpC6qE,EADAzvE,EAAS,6BAER4E,IAASjO,EAAAA,EAAAA,GAAOiO,MAAAjO,EAAAA,EAAAA,GAAiBvH,MAAM,OAAO,MAC/ChB,EAAQ,MACPqhF,KAAKrgF,KAAM,KACV4Q,EAAO7D,QAAQszE,IAAM,OACrBrgF,KAAKvB,eAAe4hF,KAAO7qE,EAAM/W,eAAe4hF,GAAI,OAAO,KAC3DrgF,KAAKqgF,KAAO7qE,EAAM6qE,GAAI,OAAO,EACjCrhF,GAAA,KAEGqhF,KAAK7qE,EACJA,EAAM/W,eAAe4hF,IAAMzvE,EAAO7D,QAAQszE,GAAK,GAAGrhF,IAAA,OAEvC,IAAVA,CAAA,EA6zLTk2F,GAAMq4E,IAAM,CACV0/B,OAAQ,IAQV/3G,GAAMxjF,QAAU,QCz7LhB,IAAIylL,GAAWjiG,GAAMq4E,IACjB6pB,GAAc,EAEd16C,GAAY,SAASn1I,GAAA,OAChBA,EACJ1H,QAAQ,MAAO,QACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,QAEhB24G,GAAc,SAASjxG,GAAA,OAClBA,EACJ1H,QAAQ,QAAS,MACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAGlBu1F,GAAK,SAAS7tF,GAAA,OACTA,EAAO+vL,QAAQ,IAGpBtiG,GAAK,SAASztF,GAAA,OACTA,EAAO+vL,QAAQ,IAGxBH,GAAS+W,aAAe,CAAC,EACzB,IAAIxW,GAAU,SAASnwL,EAAOiO,GAC5BjO,EAAM/I,UAAYpB,OAAOkpF,OAAO9wE,EAAOhX,WACvC+I,EAAM/I,UAAUgJ,YAAcD,CAAA,EAG5BqwL,GAAQ,SAASrwL,GAAA,OACZA,EAAI6vL,EAAA,EAGT7+E,GAAoB,SAAShxG,GAAA,IAC3BiO,EAAO,IAAIiyL,GACXpnH,EAASq6G,GAAmBj3D,SAASiqE,UAAUnmM,IAAe,EAC9DqJ,EAAQ8pL,GAAmBj3D,SAAS2jE,SAAS7/L,IAAe,SAChEiO,EAAK24L,KAAO,CAAC,EAAG,EAAGnoE,OAAO5wC,GAAGxkF,IAASo1H,OAAO5wC,GAAG/U,KACzC7qE,CAAA,EAMLqiL,GAAUV,GAAS+W,aAAaE,OAAS,SAAS7mM,EAAQiO,GAAA,GAC5DjO,EAASA,GAAU,EACnBiO,EAAcA,GAAe,EAEzBstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,oEAKJnC,EAFc,GAAKiO,CAAA,EAOjBuiL,GAAYZ,GAAS+W,aAAaG,SAAW,SAAS9mM,EAAQiO,GAAA,GAChEjO,EAASA,GAAU,EACnBiO,EAAcA,GAAe,EAEzBstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,sEAKJnC,IAFc,GAAKiO,EAAA,EAOjB0iL,GAAUf,GAAS+W,aAAaI,OAAS,SAAS/mM,EAAQiO,GAAA,GACxDstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,oEAGqC,IAAjCnC,EAAU,GAAKiO,GAAsB,EAAI,GAM/CojL,GAAgBzB,GAAS+W,aAAaK,aAAe,SACvDhnM,EACAiO,GAAA,GAEIstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,0EAGGwuL,GAAO3wL,EAAQiO,EAAc,IAGlCsjL,GAAgB3B,GAAS+W,aAAaM,aAAe,SACvDjnM,EACAiO,GAAA,GAEIstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,0EAGGmuL,GAAOtwL,EAAQiO,EAAc,IAGlC6/E,GAAkB8hG,GAAS+W,aAAaO,eAAiB,SAC3DlnM,EACAiO,GAAA,GAEIstE,MAAMv7E,IAAWu7E,MAAMttE,GAAA,MACnB,IAAI9L,MACR,4EAGGquL,GAASxwL,EAAQiO,EAAc,IAGpCs4H,GAAwBqpD,GAAS+W,aAAaQ,qBAAuB,SACvEnnM,EACAiO,GAAA,IAEI6qE,EAA0B7qE,EAAMiuH,SAASwmE,wBACzCr5L,EAAwB4E,EAAMiuH,SAASymE,sBACvClrM,EAAIuI,EAAK,GACT2zE,EAAI3zE,EAAK,GACTs2E,EAAIt2E,EAAK,GACTqzE,EAAIrzE,EAAK,GAET+D,EAAc,CAAC,EAAD,OAElBA,EAAYqjM,YAActuH,EAAwBrhF,IAAM,EACxDsM,EAAYsjM,YAAch+L,EAAsBsqE,EAAIN,IAAM,EAC1DtvE,EAAYujM,aAAexuH,EAAwBrhF,EAAI6+E,IAAM,EAC7DvyE,EAAYwjM,aAAel+L,EAAsBsqE,IAAM,EAEhD,CACL8qD,OAAO5wC,GAAG9pF,EAAYqjM,cACtB3oE,OAAO5wC,GAAG9pF,EAAYsjM,cACtB5oE,OAAO5wC,GAAG9pF,EAAYujM,eACtB7oE,OAAO5wC,GAAG9pF,EAAYwjM,eAAA,EAItBzW,GAA4B,SAAS9wL,GAAA,GACnCA,EAAWwnM,wBAAA,OACNxnM,EAAWwnM,wBAAA,GAGfxnM,EAAWgxG,GAAMhxG,EAAWynM,GAAA,KAM7Bx5L,EAAS,GACT6qE,EAAO94E,EAAW0nM,IAAM1nM,EAAWynM,GACnCp+L,EAAUsoL,GAAW3xL,EAAY84E,GACjCrhF,EAAUuI,EAAW2+L,MAAMziE,SAAS2lE,QACtC7hM,EAAWi7L,SACXj7L,EAAW4rG,WACX1gG,GAGF+C,EAAO5F,KAAK,WACZ4F,EAAO5F,KAAK,KACZ4F,EAAO5F,KAAK,MACZ4F,EAAO5F,KAAKrI,EAAW2+L,MAAMzR,YAAYyK,kBAAkB33L,EAAW+2F,QACtE9oF,EAAO5F,KAAK,IAAM5Q,EAAU,IAAMo2F,GAAGxkF,EAAQo/F,UAAY,OACzDx6F,EAAO5F,KAAK,kBACZ4F,EAAO5F,KAAKgB,EAAQiE,MACpBW,EAAO5F,KAAK,MACZ4F,EAAO5F,KAAK,KACZ4F,EAAO5F,KAAK,WAERsrE,EAA0Bq9B,GAAkBhxG,GAAA,OAChD2zE,EAAwBgrH,MAAQ3+L,EAAW2+L,MAC3ChrH,EAAwBitG,OAAS3yK,EAAOhG,KAAK,MACtC0rE,CAAA,GAGLg+G,GAAa,SAAS3xL,EAAYiO,GAAA,IAChC6qE,EACsB,IAAxB94E,EAAWyoG,SAAiBzoG,EAAW2nM,YAAc3nM,EAAWyoG,SAC9Dp/F,EAAc,CAChBiE,KAAM,GACNm7F,SAAU,IASRhxG,GALJwW,EACkC,MAFlCA,EAA4B,KAArBA,EAAK1U,OAAO,EAAG,GAAY0U,EAAK1U,OAAO,GAAK0U,GAE5C1U,OAAO0U,EAAKvW,OAAS,GACtBuW,EAAK1U,OAAO,EAAG0U,EAAKvW,OAAS,GAC7BuW,GAEe9O,MAAM,KAEzB1H,EADEuI,EAAW+wI,UACDt5I,EAAUoT,KAAI,SAAA7K,GAAA,OAAQA,EAAKb,MAAM,SAEjC1H,EAAUoT,KAAI,SAAA7K,GAAA,MAAQ,CAACA,EAAA,QAGjC2zE,EAAWmF,EAIXxC,EAAS68G,GAAmBj3D,SAASiqE,UAAUnmM,IAAe,EAClEs2E,EAASA,EAAS,GAAKA,EAASA,EAAA,IAC5BjD,EAAQ8/G,GAAmBj3D,SAAS2jE,SAAS7/L,IAAe,EAChEqzE,EAAQA,EAAQ,GAAKA,EAAQA,EAAA,IAEzBtvE,EAAqB,SAASkK,EAAG6qE,EAAUzvE,GAAA,GACzC4E,EAAI,EAAIxW,EAAUC,OAAQ,KACxBi8E,EAAMmF,EAAW,IAAMrhF,EAAUwW,EAAI,GAAG,UAC5BotK,GAAmB1nG,EAAK3zE,EAAYqJ,GAAUy3E,OAC7CzN,EAAQ,UAGlB,EAIXM,IACA3zE,EAAU,KAAO2zE,EAAW,GAAG,CAC7B1lE,EAAO,GACP0lE,IAAA,IAMI+C,EAKAI,EAVA59E,EAAamiL,GAAmB,IAAKr7K,EAAY2zE,GAAUoN,OAC3DpO,EAAS3yE,EAAW+wI,UACpBz6D,EAAS3C,GACR2C,EAASp9E,GAAc,EAIxBy9E,EAHJhE,GA3BgB,EA+BZhzE,EAAkB,EACpBk5E,EAAiB,EAEftD,EAAW,KAEX5B,GAAY,EAAG,CAGjB1lE,EAAO,aACPA,GACE,oBACAotK,GAAmBptK,EAAMjO,EAJ3B2zE,EAAW,IAIsCmN,MAC/C,gBACAzN,EACA,WAME,IAAK,IAFP/pE,EAAW,GACXstE,EAAY,EACDC,EAAI,EAAGA,EAAIp/E,EAAUC,OAAQm/E,IAAA,GACtCp/E,EAAUP,eAAe2/E,GAAA,KACvBE,GAAA,EAAgB,GACQ,IAAxBt/E,EAAUo/E,GAAGn/E,QAAgB69E,IAAa99E,EAAUo/E,GAAGn/E,OAAS,EAAG,KAElEwB,EAxDO,IAwDsB09E,EAAY,GAxDlC,EAyDRN,EAAA,SAESt2E,EAGXsJ,GAAY7R,EAAUo/E,GAAGtB,GACzBwB,GAAA,EACA8B,EAAiBhC,EACjBA,GAAA,KACK,CAELvtE,EAC0C,MAF1CA,GAAY7R,EAAUo/E,GAAGtB,GAAY,KAE1Bh8E,OAAO+P,EAAS5R,OAAS,GAC9B4R,EAAS/P,OAAO,EAAG+P,EAAS5R,OAAS,GACrC4R,EAAA,IACF6hL,EAAM/1G,SAASyB,GACfk6B,EAAoBhtG,EAAmBonL,EAAK7hL,EAAUqqE,GACtD+Z,EAAa7W,GAAKp/E,EAAUC,OAAS,KAErCq5G,IAAsBrjB,EAAY,CACpCpkF,GAAY,IACZisE,EAAW,WAEN,GAAKw7B,GAAsBrjB,GAe3B,GAAIA,EACT7U,EAAiBsyG,OAAA,GAGfnrL,EAAW+wI,YACV73I,EApGK,IAoGwB09E,EAAY,GApGpC,EAqGJN,EAAA,SAGOt2E,MAxBiC,KACvCA,EAAW+wI,UAAA,SACL/wI,EAAA,IAGN9G,EArFG,IAqF0B09E,EAAY,GArFtC,EAsFJN,EAAA,SAISt2E,EAEX64E,EAAiBsyG,CAAA,UAkBnBn0G,EAAO,GAEFc,EAAIn4E,EAAiBm4E,GAAKe,EAAgBf,IAAK,KAClDG,EAAWxgF,EAAUqgF,GAAA,GACrB93E,EAAW+wI,UAAW,IACpBj5D,IAAMe,EAAgB,CACxB7B,GAAQiB,EAAS1C,GAAY,IAC7BA,GAAYA,EAAW,GAAK0C,EAASvgF,OAAA,YAGnCogF,IAAMn4E,EAAiB,CACzBq3E,GAAQiB,EAASA,EAASvgF,OAAS,GAAK,cAI5Cs/E,GAAQiB,EAAS,GAAK,WAIxBjB,EACkC,KAAhCA,EAAKz9E,OAAOy9E,EAAKt/E,OAAS,GACtBs/E,EAAKz9E,OAAO,EAAGy9E,EAAKt/E,OAAS,GAC7Bs/E,EAENF,EAAaukG,GAAmBrkG,EAAMh3E,EAAY2zE,GAAUmN,MAGpD9gF,EAAWypG,WAAA,IACZ,QACH/yB,EAASrD,EAAQyD,EA1IP,YA4IP,SACHJ,GAAUrD,EAAQyD,GAAc,QAE7B,QAEHJ,EAjJU,EAoJdzoE,GAAQ4/E,GAAGnX,GAAU,IAAMmX,GAAGlX,GAAS,QACvC1oE,GAAQ,IAAMknI,GAAUn+D,GAAQ,SAEhC/oE,IAAS4/E,GAAGnX,GAAU,UAGtBC,IAAUhD,EA3JE,GA8JZmD,EAAa,EACbn3E,EAAkBo3E,EAAgB8B,EAAiBA,EAAiB,EACpEjC,IAEAttE,EAAW,gBAOjBD,EAAYiE,KAAOW,EACnB5E,EAAYo/F,SAAW90B,EAEhBtqE,CAAA,EAULgyK,GAAqB,SAASr7K,EAAMiO,EAAY6qE,GAAA,IAC9CzvE,EAAO4E,EAAW0wL,MAAMziE,SAAS2lE,QACnC5zL,EAAWgtL,SACXhtL,EAAW29F,WAETn0G,EACFwW,EAAW0wL,MAAMmB,mBAAmB9/L,EAAM,CACxC+yH,KAAM1pH,EACNo/F,SAAUivF,WAAW5+G,GACrBymH,UAAW,IACR7H,WAAW5+G,GAAA,MASX,CAAEiI,OAPP9yE,EAAW0wL,MAAMmB,mBAAmB,IAAK,CACvC/sE,KAAM1pH,EACNo/F,SAAUivF,WAAW5+G,GACrBymH,UAAW,IAEb7H,WAAW5+G,GACX,IACuBgI,MAAOrpF,EAAA,EAG9Bo6L,GAAyB,CAC3B+V,OAAQ,GACRC,OAAQ,GAMRC,uBAAwB,KAMxBC,YAAA,EACA7rE,SAAU,KACV8rE,eAAA,GAmCE/uB,GAA4B,SAASj5K,EAAQiO,GAAA,IAC3C6qE,EAAU,CACZyQ,KAAM,YACN7zF,OAAQsK,QAAA,IAMRiO,EAAMiuH,SACHiiE,YAAYn+L,EAAO67H,MACnB49D,YAAYwO,YAAY7wM,MANb,SAAS4I,GAAA,OAChBA,EAAMupF,OAASzQ,EAAQyQ,MAAQvpF,EAAMtK,SAAWojF,EAAQpjF,MAAA,KAO/DuY,EAAMiuH,SACHiiE,YAAYn+L,EAAO67H,MACnB49D,YAAYwO,YAAY5/L,KAAKywE,EAAA,EAmLhCg5G,GAAqB,SAAS7jL,EAAO6qE,GAAA,GACvCA,EAAW6lH,MAAQ1wL,OAAA,IAEjBA,EAAMiuH,gBAAA,IACLjuH,EAAMiuH,SAASgsE,iBAAA,IACdj6L,EAAMiuH,SAASgsE,eAAeF,eAChC,IACA35L,GAAc85L,SAAW,EACzBl6L,EAAMiuH,SAASgsE,eAAiB7oE,KAAKjkI,MACnCikI,KAAKC,UAAUuyD,KAEb5jL,EAAMiuH,SAASgsE,eAAeJ,uBAAA,MAC1B,IAAI3lM,MAAM,+CAElB0tL,GAAc5hL,EAAMiuH,SAAS6iE,YAE7B9wL,EAAMiuH,SAASgsE,eAAeJ,uBAAyB,IAAI5V,GAC3DjkL,EAAMiuH,SAASgsE,eAAeJ,uBAAuBnJ,MAAQ1wL,EAG7DA,EAAMiuH,SAASgsE,eAAeJ,uBAAuBM,SAAWn6L,EAAMiuH,SAASwpE,OAAOtqD,UACpF,oBACA,WA7K2B,IAASp7I,KA8KPiO,GA5K3BiuH,SAASwpE,OAAO9Z,YACpB5rL,EAAMk8H,SAASgsE,eAAeJ,uBAAuBM,iBAEhDpoM,EAAMk8H,SAASgsE,eAAeJ,uBAAuBM,SAC5DpoM,EAAMk8H,SAASgsE,eAAeH,YAAA,CAwKG,IAI/B95L,EAAMiuH,SAASwpE,OAAOtqD,UAAU,iBAAiB,YA7PxB,SAASp7I,GAEpCA,EAAMk8H,SAASgsE,eAAeJ,uBAAuBxQ,WAAA,EAAQ,IACzDrpL,EAASjO,EAAMk8H,SAASgsE,eAAeJ,uBAAuBO,OAAA,IAC7D,IAAIvvH,KAAK7qE,EAAA,GACRA,EAAO/W,eAAe4hF,GAAI,KACxBzvE,EAAa4E,EAAO6qE,GAExBzvE,EAAWiuL,WAAA,EAEPjuL,EAAWi/L,eAGbrvB,GAA0B5vK,EAAYrJ,EAAA,EAbjB,CA8PAiO,EAAA,IAMzBA,EAAMiuH,SAASwpE,OAAOtqD,UAAU,cAAc,YA/MzB,SAASp7I,GAAA,YAGvBA,EAAMk8H,SAASgsE,eAAeJ,uBAAA,MAW/B,IAAI3lM,MAAM,qCARhBnC,EAAMk8H,SAASlrC,MACb,aACEhxF,EAAMk8H,SAASgsE,eAAeJ,uBAAuBxQ,MADvD,QAPmB,CAgNArpL,EAAA,IAIrBA,EAAMiuH,SAASwpE,OAAOtqD,UAAU,gBAAgB,SAAStiE,IA/KnC,SAAS7qE,EAAY6qE,GAAA,IACzCzvE,GAAkB4E,EAAA,IAgBjB,IAAIxW,KAdJwW,IAIH6qE,EAAMojD,SAAS+pE,uBACbntH,EAAMojD,SAASgsE,eAAeJ,uBAAuBxQ,OAAA,GAGvDx+G,EAAMojD,SAASgsE,eAAeJ,uBAAuB3P,aAGvDlqL,EACEA,GAAc6qE,EAAMojD,SAASgsE,eAAeJ,uBAAuBS,KAAA,GAG/Dt6L,EAAW/W,eAAeO,GAAI,KAC5Bk8E,EAAc1lE,EAAWxW,GACzB6+E,EAAe,GACfjD,EAAUM,EAAY60H,KAAA,GAEtB70H,EAAY60H,OACd70H,EAAY60H,KAAOjiE,GAAqB5yD,EAAY60H,KAAM1vH,IAI5DA,EAAMojD,SAAS+pE,uBAAuBtyH,EAAY2jH,OAAA,GAElD3jH,EAAY80H,GAAKtV,GAAmBuV,8BAClC/0H,GAIuB,YAAvB3zE,EAAAA,EAAAA,GAAO2zE,IACyC,mBAAzCA,EAAYg1H,2BAEnBryH,EAAe3C,EAAYg1H,4BAG7Bh1H,EAAY60H,KAAOn1H,EAGjBM,EAAYi1H,sBACXj1H,EAAY6zH,wBACb,KAEIzjM,EAAa+sL,GAA0Bn9G,GAC3C2C,EAAajuE,KAAK,CAAErR,IAAK,KAAMf,MAAO,QAAU8N,EAAa,OAE7D+0E,EAAMojD,SAASgsE,eAAeL,OAAOx/L,KAAKtE,EAAA,IAKxC4vE,EAAY6zH,wBAAyB,KACnC9wH,EAAyB,OAExB,IAAII,KAAKnD,EAAY6zH,wBAAA,GACpB7zH,EAAY6zH,wBAAwBtwM,eAAe4/E,GAAI,KACrD59E,EAAQy6E,EAAY6zH,wBAAwB1wH,GAAA,GAChDJ,GAA0B,IAAMI,EAAI,IACpCJ,GAA0B,KACtB7gF,OAAOyJ,KAAKpG,GAAOxB,QAAU,GAAKF,MAAM8rF,QAAQpqF,IAAA,IAE7C,IAAIzB,KAAKyB,EAAA,GACRA,EAAMhC,eAAeO,GAAI,KACvBk7E,EAAMz5E,EAAMzB,GACG,mBAARk7E,IAGTA,EAAMA,EAAIx7E,KAAK2hF,EAAOnF,IAExB+C,GAA0B,IAAMj/E,EAAI,IAAMk7E,EAAM,IAI1CmG,EAAMojD,SAASgsE,eAAeL,OAAOriM,QAAQmtE,IAAQ,GACzDmG,EAAMojD,SAASgsE,eAAeL,OAAOx/L,KAAKsqE,EAAA,MAK7B,mBADnBA,EAAMz5E,KAIJy5E,EAAMA,EAAIx7E,KAAK2hF,EAAOnF,IAExB+C,GAA0B,IAAMj/E,EAAI,IAAMk7E,EACpCmG,EAAMojD,SAASgsE,eAAeL,OAAOriM,QAAQmtE,IAAQ,GACzDmG,EAAMojD,SAASgsE,eAAeL,OAAOx/L,KAAKsqE,GAE9C+D,GAA0B,KAK9BJ,EAAajuE,KAAK,CAChBrR,IAAK,KACLf,MAAO,OAASygF,EAAyB,OAI7CoC,EAAMojD,SAASi8D,UAAU,CACvBK,oBAAqBliH,EACrBgiH,SAAU3kH,EAAY2jH,QAGxBx+G,EAAMojD,SAASolC,IAAI,UAGnBj4J,GAK0B,SAAS4E,EAAY6qE,GAAA,IAC9C,IAAIzvE,KAAK4E,EAAA,GACRA,EAAW/W,eAAemS,GAAI,KAC5B5R,EAAM4R,EACNsqE,EAAc1lE,EAAW5E,GAE7ByvE,EAAMojD,SAAS+pE,uBAAuBtyH,EAAY2jH,OAAA,GAGzB,YAAvBt3L,EAAAA,EAAAA,GAAO2zE,IAC0B,mBAA1BA,EAAYwkH,WAEnBxkH,EAAYwkH,mBAEPlqL,EAAWxW,EAAA,EAlBpB0mC,CAA0B26C,EAAMojD,SAASgsE,eAAeL,OAAQ/uH,EAAA,CAjH1C,CAgLAA,EAAY7qE,EAAA,IAGlCA,EAAMiuH,SAASgsE,eAAeF,eAAA,CAAgB,GAK9CjW,GAAmBnC,GAAS+W,aAAakC,gBAAkB,SAC7D56L,EACA6qE,EACAzvE,GAAA,IAEI5R,EAAY,SAASuI,GAAA,OAChBA,CAAA,KAELxI,MAAM8rF,QAAQr1E,GAAQ,SACpB0lE,EAAU,IACL2C,EAAI,EAAGA,EAAIroE,EAAMvW,OAAQ4+E,IAAA,OACtB,IAANA,IACF3C,GAAW,MAAA3zE,EAAAA,EAAAA,GAEEiO,EAAMqoE,KAAA,IACd,cACA,aACA,SACH3C,GAAW1lE,EAAMqoE,GAAG5sE,WAAA,UAEjB,SAC2B,MAA1BuE,EAAMqoE,GAAG/8E,OAAO,EAAG,aACVu/E,GAAyBzvE,IAClC5R,EAAY4R,EAAM6yH,SAASoqE,aAAaxtH,IAC1CnF,GAAW,IAAMwhE,GAAU19I,EAAUwW,EAAMqoE,GAAG5sE,aAAe,KAE7DiqE,GAAW1lE,EAAMqoE,GAAG5sE,WAAA,OAK5BiqE,EAAW,UAGP,IAAIxxE,MACR,kEAoBAi3K,GAAc,SAASp5K,EAAQiO,EAAO6qE,GAAA,IACpCzvE,EAAY,SAASrJ,GAAA,OAChBA,CAAA,kBAEEiO,GAAyB6qE,IAClCzvE,EAAYyvE,EAAMojD,SAASoqE,aAAar4L,KAC1CjO,EAASA,GAAU,IACZ0J,WACE,IAAMyrI,GAAU9rI,EAAUrJ,IAAW,KAY5CgyL,GAAoB,gBACjB8W,YAAA,EAAS,KACTC,YAAA,EAMLlzM,OAAOgY,eAAepV,KAAM,QAAS,CACnCsV,IAAK,uBACQtV,KAAKqwM,OAAwB,aAC3BrwM,KAAKkmM,MAAA,YAGXmK,OAASrwM,KAAKkmM,MAAMziE,SAASi7D,mBAAA,QAE7B1+L,KAAKqwM,MAAA,EAEd96L,IAAK,SAAShO,GAAA,KACP8oM,OAAS9oM,CAAA,IAGlBnK,OAAOgY,eAAepV,KAAM,QAAS,CACnCxC,MAAOwC,KAAKswM,OACZ/tH,UAAA,GAAU,EAOdg3G,GAAkB/6L,UAAUyS,SAAW,kBAC9BjR,KAAK6+L,MAAQ,QAGtBtF,GAAkB/6L,UAAUkhM,UAAY,eAClCn4L,EAAevH,KAAKkwM,2BAAA,KACnBhK,MAAMziE,SAASi8D,UAAU,CAC5Bl7L,KAAMxE,KAAKmoL,OACX4X,oBAAqBx4L,EACrBs4L,SAAU7/L,KAAK6+L,QAAA,KAEZqH,MAAMziE,SAASolC,IAAI,WAS1B0wB,GAAkB/6L,UAAU0xM,yBAA2B,eACjD3oM,EAAe,GACfiO,EAAOpY,OAAO85I,oBAAoBl3I,MAAM2G,QAAO,SAASY,GAAA,MAEjD,WAAPA,GACO,2BAAPA,GACO,SAAPA,GACO,SAAPA,GACuB,KAAvBA,EAAIqN,UAAU,EAAG,UAIhB,IAAIyrE,KAAK7qE,EAAA,QACRpY,OAAO2vI,yBAAyB/sI,KAAMwV,EAAK6qE,IAAIiC,aAAwB,KACrE1xE,EAAM4E,EAAK6qE,GACXrhF,EAAQgB,KAAK4Q,GAEb5R,IACED,MAAM8rF,QAAQ7rF,GAChBuI,EAAaqI,KAAK,CAChBrR,IAAKqS,EACLpT,MAAO87L,GAAgBt6L,EAAOgB,KAAK6+L,MAAO7+L,KAAKkmM,SAExClnM,aAAiBu6L,IAG1Bv6L,EAAMknM,MAAQlmM,KAAKkmM,MACnB3+L,EAAaqI,KAAK,CAAErR,IAAKqS,EAAKpT,MAAOwB,EAAM6/L,MAAQ,UACzB,mBAAV7/L,GAChBuI,EAAaqI,KAAK,CAAErR,IAAKqS,EAAKpT,MAAOwB,IAAA,QAKtCuI,CAAA,EAGT,IAAIkgM,GAAkB,WACpBlO,GAAkB76L,KAAKsB,MAEvB5C,OAAOgY,eAAepV,KAAM,OAAQ,CAClCxC,MAAO,WACP8kF,cAAA,EACAC,UAAA,IAGFnlF,OAAOgY,eAAepV,KAAM,UAAW,CACrCxC,MAAO,QACP8kF,cAAA,EACAC,UAAA,IAGFnlF,OAAOgY,eAAepV,KAAM,WAAY,CACtCxC,MAAO,EACP8kF,cAAA,EACAC,UAAA,IAAU,IAoBRh7E,EAjBAiO,EAAQ,GACZpY,OAAOgY,eAAepV,KAAM,OAAQ,CAClCsiF,cAAA,EACAhtE,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GACZiO,EAAQjO,CAAA,IAIZnK,OAAOgY,eAAepV,KAAM,YAAa,CACvCxC,MAAO,QACP8kF,cAAA,EACAC,UAAA,IAIFnlF,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACAC,cAAA,EACA/sE,IAAK,SAASC,GACZjO,EAAUiO,EAAM+nG,MAAA,EAElBjoG,IAAK,kBACC/N,GAGK,SAMfmwL,GAAQ+P,GAAiBlO,IAEzB,IAAIE,GAAqB,WACvBF,GAAkB76L,KAAKsB,MAAA,IAwBnBuH,EAtBAiO,EAAQ,GAEZpY,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACCE,EAAMvW,OAAS,EACVuW,OAAA,KAMbpY,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIE,CAAA,IAMXpY,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACE/N,EAAA,KAGDiO,EAAY,SAASjO,GAAA,OAChBA,CAAA,SAELvH,KAAKkmM,QAAO1wL,EAAYxV,KAAKkmM,MAAMziE,SAASoqE,aAAa7tM,KAAK6+L,QAC3D,IAAMniD,GAAUlnI,EAAUjO,IAAQ,MAE3CgO,IAAK,SAASC,GACZjO,EAAMiO,CAAA,KAKZkiL,GAAQ+B,GAAoBF,IAQ5B,IAAI3jL,GAAgB,SAAhBrO,IACFgyL,GAAkB76L,KAAKsB,MAAA,IAGnBwV,EAAK,EACTpY,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GAAA,GACPu7E,MAAMv7E,GAAA,MAGH,IAAImC,MACR,kBAAoBnC,EAAQ,+BAH9BiO,EAAKjO,CAAA,IAiBXnK,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAapjL,EAAI,KAElCD,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACL4tF,EAAI2jG,GAAatjL,EAAI,QAErB2/E,EAAIE,GAAe7/E,EAAI,UAK9B6qE,EAAM,EACVjjF,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GAAA,GACPu7E,MAAMv7E,GAAA,MAGH,IAAImC,MACR,kBAAoBnC,EAAQ,gCAH9B84E,EAAM94E,CAAA,QASRqJ,EAAQ,GACZxT,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACkB,IAAjB1E,EAAM3R,OAAA,OAGH2R,CAAA,EAET2E,IAAK,SAAShO,GAEVqJ,OAAA,IADSrJ,EACDA,EAEA,MAYdnK,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACE1E,GAASkyE,MAAMlyE,EAAM,IACjB,EAEFA,EAAM,IAEf2E,IAAK,SAAShO,GACZqJ,EAAM,GAAKrJ,CAAA,IAWfnK,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACE1E,GAASkyE,MAAMlyE,EAAM,IACjB,EAEFA,EAAM,IAEf2E,IAAK,SAAShO,GACZqJ,EAAM,GAAKrJ,CAAA,IAWfnK,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACE1E,GAASkyE,MAAMlyE,EAAM,IACjB,EAEFA,EAAM,IAEf2E,IAAK,SAAShO,GACZqJ,EAAM,GAAKrJ,CAAA,IAWfnK,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACE1E,GAASkyE,MAAMlyE,EAAM,IACjB,EAEFA,EAAM,IAEf2E,IAAK,SAAShO,GACZqJ,EAAM,GAAKrJ,CAAA,QAIXvI,EAAM,GACV5B,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GAAA,OACJA,GAAA,IACD,WACA,UACA,UACA,OACHvI,EAAMuI,EAAA,oBAGA,IAAImC,MACR,kBAAoBnC,EAAQ,wCAMlC2zE,EAAK,KAET99E,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,eACE4lE,GAAMA,EAAGj8E,OAAS,EAAG,IAEpBe,gBAAgBm6L,GAAA,OAGpBj/G,EAAK,cAAgB3zE,EAAcmoM,UAAA,KAEjCl6L,EAAY,SAASjO,GAAA,OAChBA,CAAA,SAELvH,KAAKkmM,QAAO1wL,EAAYxV,KAAKkmM,MAAMziE,SAASoqE,aAAa7tM,KAAK6+L,QAC3D,IAAMniD,GAAUlnI,EAAU0lE,IAAO,KAE1C3lE,IAAK,SAAShO,GACZ2zE,EAAK3zE,EAAM0J,UAAA,IAWf7T,OAAOgY,eAAepV,KAAM,YAAa,CACvCsiF,cAAA,EACAD,YAAA,EACA/sE,IAAK,kBACI4lE,CAAA,EAET3lE,IAAK,SAAShO,GACZ2zE,EAAK3zE,CAAA,QAILs2E,EAAY,YAQhBzgF,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIuoE,CAAA,EAETtoE,IAAK,SAAShO,GACZs2E,EAAYt2E,CAAA,QAIZqzE,EAAa,SAQjBx9E,OAAOgY,eAAepV,KAAM,YAAa,CACvCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIslE,CAAA,EAETrlE,IAAK,SAAShO,GACZqzE,EAAarzE,CAAA,QAIb+D,EAAY,EAQhBlO,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIhK,CAAA,EAETiK,IAAK,SAAShO,GACZ+D,EAAY/D,CAAA,QAIZ02E,OAAA,EAQJ7gF,OAAOgY,eAAepV,KAAM,cAAe,CACzCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,2BACC2oE,EAGK,GAAKm5G,GAELn5G,CAAA,EAGX1oE,IAAK,SAAShO,GACZ02E,EAAe12E,CAAA,QAIf82E,EAAS,QAQbjhF,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI+oE,CAAA,EAET9oE,IAAK,SAAShO,GACZ82E,EAAS92E,CAAA,QAIT9G,EAAM,eAEVrD,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,iBAEA7U,GACDT,gBAAgBm6L,IAChBn6L,gBAAgBu6L,IAAA,OAIX5Z,GAAYlgL,EAAKT,KAAK6+L,MAAO7+L,KAAKkmM,MAAA,EAE3C3wL,IAAK,SAAShO,GACZA,EAAQA,EAAM0J,WACdxQ,EAAM8G,CAAA,QAIN2yE,EAAM,KACV98E,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACE4kE,EAAA,OAGDl6E,gBAAgB85L,IAAA,EACXnZ,GAAYzmG,EAAKl6E,KAAK6+L,MAAO7+L,KAAKkmM,OAEpChsH,CAAA,EAET3kE,IAAK,SAAShO,GACZA,EAAQA,EAAM0J,WAGVipE,EAFAl6E,gBAAgB85L,IAAA,EACS,MAAvBvyL,EAAMzG,OAAO,EAAG,GACZ03G,GAAYjxG,EAAMzG,OAAO,EAAGyG,EAAMtI,OAAS,IAE3Cu5G,GAAYjxG,GAGdA,CAAA,IAYZnK,OAAOgY,eAAepV,KAAM,eAAgB,CAC1CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACCtV,gBAAgB85L,IAAA,EACXthF,GAAYt+B,EAAIp5E,OAAO,EAAGo5E,EAAIj7E,OAAS,IAEvCi7E,CAAA,EAGX3kE,IAAK,SAAShO,GACZA,EAAQA,EAAM0J,WAEZipE,EADEl6E,gBAAgB85L,IAAA,EACZ,IAAMvyL,EAENA,CAAA,QAKR22E,EAAK,KACT9gF,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACE4oE,EAAA,OAGEA,CAAA,EAET3oE,IAAK,SAAShO,GAAA,KACPgxG,EAAIhxG,CAAA,IAGbnK,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACE4oE,EAAA,OAGDl+E,gBAAgB85L,IAAA,EACXnZ,GAAYziG,EAAIl+E,KAAK6+L,MAAO7+L,KAAKkmM,OAEnChoH,CAAA,EAET3oE,IAAK,SAAShO,GACZA,EAAQA,EAAM0J,WAGVitE,EAFAl+E,gBAAgB85L,IAAA,EACS,MAAvBvyL,EAAMzG,OAAO,EAAG,GACb03G,GAAYjxG,EAAMzG,OAAO,EAAGyG,EAAMtI,OAAS,IAE3Cu5G,GAAYjxG,GAGdA,CAAA,IAYXnK,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACCtV,gBAAgB85L,IAAA,EACXthF,GAAYt6B,EAAGp9E,OAAO,EAAGo9E,EAAGj/E,OAAS,IAErCi/E,CAAA,EAGX3oE,IAAK,SAAShO,GACZA,EAAQA,EAAM0J,WAEZitE,EADEl+E,gBAAgB85L,IAAA,EACb,IAAMvyL,EAENA,CAAA,IAYXnK,OAAOgY,eAAepV,KAAM,gBAAiB,CAC3CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItV,KAAK+vM,IAAA,IAIhB3yM,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItV,KAAK6vM,cAAgB,SAAW,QAI3CzyM,OAAOgY,eAAepV,KAAM,UAAW,CACrCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItV,KAAK6vM,cAAgB,UAAY,YA8BxC3oM,EA1BAk5E,GAAA,EAQJhjF,OAAOgY,eAAepV,KAAM,sBAAuB,CACjDqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI8qE,CAAA,EAET7qE,IAAK,SAAShO,GACZA,EAAQykI,QAAQzkI,GAChB64E,EAAuB74E,CAAA,IAW3BnK,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACEpO,EAAA,OAGEA,CAAA,EAETqO,IAAK,SAAShO,GACZL,EAAQK,CAAA,IAWZnK,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,KAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,QAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,MAYxCnzM,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,KAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,QAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,MAYxCnzM,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,KAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,QAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,UAKpCzzH,EAAK,KACT1/E,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,cACQ,OAAPwnE,EAAA,OAGGA,CAAA,EAETvnE,IAAK,SAAShO,GAAA,IACsB,IAA9B,CAAC,EAAG,EAAG,GAAGwF,QAAQxF,GAAA,MAGd,IAAImC,MACR,kBAAoBnC,EAAQ,+BAH9Bu1E,EAAKv1E,CAAA,IAiBXnK,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,eACC/N,EAAA,OACIu1E,GAAA,KACD,UAEHv1E,EAAS,kBAEN,EACHA,EAAS,oBAEN,EACHA,EAAS,eAGNA,CAAA,EAET+6E,cAAA,EACAD,YAAA,EACA9sE,IAAK,SAAShO,GAAA,OACJA,GAAA,IACD,aACA,EACHu1E,EAAK,YAEF,cACA,EACHA,EAAK,QAGF,QAEHA,EAAK,OAMf46G,GAAQ9hL,GAAe2jL,IAAA,IAMnBI,GAAsB,WACxB/jL,GAAclX,KAAKsB,MAAAA,KAEdwwM,GAAK,WAELj4F,EAAI,UAEJiqF,SAAW,mBAEZj7L,EAAM,EAEVnK,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACZjO,EAAMiO,CAAA,IAWVpY,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACZjO,EAAMiO,CAAA,QAINA,EAAO,GACXpY,OAAOgY,eAAepV,KAAM,MAAO,CACjCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIgkL,GAAgB9jL,EAAMxV,KAAK6+L,MAAO7+L,KAAKkmM,MAAA,EAEhD3wL,IAAK,SAAShO,GA97BU,IAAS84E,EAC/BzvE,EAAAA,EAAS,GACQ,iBAFcyvE,EA+7BF94E,KA57B/BqJ,EAZJ,SAAoBrJ,EAAQiO,EAAO6qE,GACjCA,IAAUA,EAAQ,WAEdzvE,EADA5R,EAAU,GAEN4R,EAAQ4E,EAAMwmE,KAAKz0E,IACzBvI,EAAQ4Q,KAAKgB,EAAMyvE,IAAA,OAEdrhF,CAAA,CAPT,CAYwBqhF,EAAO,eA47BzB7qE,EA17BG5E,CAAA,SAq8BF6/L,WAAa,kBACTj7L,CAAA,OAUJk7L,WAAa,SAASnpM,GACzBiO,EAAOjO,EACHvH,KAAK6iL,MACPrtK,EAAKqtK,MAAA,OAWJ8tB,UAAY,SAASppM,GAExBA,GADAA,EAAQA,GAAS,IACH0J,WACduE,EAAK5F,KAAKrI,GACNvH,KAAK6iL,MACPrtK,EAAKqtK,MAAA,OAYJ+tB,aAAe,SAASrpM,EAAO84E,GAAA,IAClCA,EAAaA,IAAA,EAEb94E,GADAA,EAAQA,GAAS,IACH0J,YAEkB,IAAzBuE,EAAKzI,QAAQxF,KAClBiO,EAAKolF,OAAOplF,EAAKzI,QAAQxF,GAAQ,QAC7B84E,KAAA,EAaRjjF,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAYxCnzM,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IAERvH,KAAK6wM,SAAA,IACH7kE,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,QAa1CnzM,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,IAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,IAChC/6L,EAAKqtK,QAAA,KAEA0tB,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAYxCnzM,OAAOgY,eAAepV,KAAM,cAAe,CACzCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAYxCnzM,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAaxCnzM,OAAOgY,eAAepV,KAAM,oBAAqB,CAC/CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,YAKnCJ,qBAAA,CAAsB,EAE7BzY,GAAQiC,GAAqB/jL,IAAA,IAOzB5P,GAAkB,WACpB2zL,GAAoBj7L,KAAKsB,MAAAA,KACpBwiM,SAAW,iBAGXqO,OAAA,CAAQ,EAEfnZ,GAAQ1xL,GAAiB2zL,IAAA,IAQrBryL,GAAmB,WACrBtB,GAAgBtH,KAAKsB,MAAAA,KAChB6wM,OAAA,CAAQ,EAEfnZ,GAAQpwL,GAAkBtB,IAAA,IAStB2P,GAAkB,WACpBrO,GAAiB5I,KAAKsB,MAAAA,KACjB8wM,MAAA,CAAO,EAEdpZ,GAAQ/hL,GAAiBrO,IAAA,IAMrBwyL,GAAiB,WACnBlkL,GAAclX,KAAKsB,MAAAA,KACdwwM,GAAK,OAQVpzM,OAAOgY,eAAepV,KAAM,gBAAiB,CAC3CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,aAAc,CACxCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,gBAAiB,CAC3CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,WAyDpC/6L,EApDA6qE,EAAM,CAAC,EACXjjF,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,eACC/N,EAAY,SAASA,GAAA,OAChBA,CAAA,KAELvH,KAAKkmM,QAAO3+L,EAAYvH,KAAKkmM,MAAMziE,SAASoqE,aAAa7tM,KAAK6+L,QAClC,IAA5BzhM,OAAOyJ,KAAKw5E,GAAKphF,OAAc,KAG7BuW,EAFA5E,EAAS,OAGR4E,KAFL5E,EAAOhB,KAAK,MAEAywE,EACVzvE,EAAOhB,KAAK,IAAM4F,EAAM,KAAOknI,GAAUn1I,EAAU84E,EAAI7qE,KAAS,YAElE5E,EAAOhB,KAAK,MACLgB,EAAOpB,KAAK,QAIvB+F,IAAK,SAASC,GACS,YAAjBjO,EAAAA,EAAAA,GAAOiO,KACT6qE,EAAM7qE,EAAA,IAgBZpY,OAAOgY,eAAepV,KAAM,UAAW,CACrCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI+qE,EAAI0wH,IAAM,IAEnBx7L,IAAK,SAAShO,GACS,iBAAVA,IACT84E,EAAI0wH,GAAKxpM,EAAA,IAMfnK,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GACZiO,EAAMjO,CAAA,IAUVnK,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIE,EAAI1U,OAAO,EAAG0U,EAAIvW,OAAS,IAEpCsW,IAAK,SAAShO,GACZiO,EAAM,IAAMjO,CAAA,KAIlBmwL,GAAQoC,GAAgBlkL,IAAA,IAOpBmkL,GAAqB,WACvBD,GAAep7L,KAAKsB,MAAAA,KACfgxM,YAAA,CAAa,EAEpBtZ,GAAQqC,GAAoBD,IAAA,IAOxBxY,GAAsB,WACxBwY,GAAep7L,KAAKsB,MAAAA,KACfixM,OAAA,EAAQ,KACRD,YAAA,EAAa,IAEdzpM,EAAQ,GACZnK,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GAEVjO,OAAA,IADSiO,EACDA,EAEA,OAKhBkiL,GAAQpW,GAAqBwY,IAS7B,IAAIK,GAAqB,eAGnB3kL,EAYA6qE,EAdJzqE,GAAclX,KAAKsB,MAGnB5C,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GACZiO,EAAUjO,CAAA,IAKdnK,OAAOgY,eAAepV,KAAM,aAAc,CACxCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GACZ84E,EAAc94E,CAAA,QAqDdqJ,EAjDA5R,EAAM,CAAC,EACX5B,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,eACC/N,EAAY,SAASA,GAAA,OAChBA,CAAA,EAELvH,KAAKkmM,QAAO3+L,EAAYvH,KAAKkmM,MAAMziE,SAASoqE,aAAa7tM,KAAK6+L,QAAA,IAG9DrpL,EAFA6qE,EAAS,OAGR7qE,KAFL6qE,EAAOzwE,KAAK,MAEA5Q,EACVqhF,EAAOzwE,KAAK,IAAM4F,EAAM,KAAOknI,GAAUn1I,EAAUvI,EAAIwW,KAAS,YAElE6qE,EAAOzwE,KAAK,MACLywE,EAAO7wE,KAAK,OAErB+F,IAAK,SAASC,GACS,YAAjBjO,EAAAA,EAAAA,GAAOiO,KACTxW,EAAMwW,EAAA,IAgBZpY,OAAOgY,eAAepV,KAAM,UAAW,CACrCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItW,EAAI+xM,IAAM,IAEnBx7L,IAAK,SAAShO,GACS,iBAAVA,IACTvI,EAAI+xM,GAAKxpM,EAAA,IAMfnK,OAAOgY,eAAepV,KAAM,KAAM,CAChCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI1E,CAAA,EAET2E,IAAK,SAAShO,GACZqJ,EAAMrJ,CAAA,IAUVnK,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI1E,EAAI9P,OAAO,EAAG8P,EAAI3R,OAAS,IAEpCsW,IAAK,SAAShO,GACZqJ,EAAM,IAAMrJ,CAAA,SAGX2pM,QAAU,SACVC,gBAAkB,WAGlBC,gBAAkB1W,GAAmB2W,YAAYC,OAAA,KAEjDvC,wBAA0B/uM,KAAKoxM,gBAAgBG,uBAClDvxM,KAAKwxM,WAAA,EAGT9Z,GAAQyC,GAAoBvkL,IAE5B0rK,GAAoB9iL,UAAUizM,cAAgB,SAASlqM,GAAA,KAC/C,2BAA4BA,MAAc,UAAWA,GAAA,MACnD,IAAImC,MACR,0EAGC,IAAI8L,KAASxV,KAAK8vM,KAAA,GACjB9vM,KAAK8vM,KAAKrxM,eAAe+W,GAAQ,KAC/B6qE,EAAQrgF,KAAK8vM,KAAKt6L,GACtB6qE,EAAM0uH,wBAA0BxnM,EAAWgqM,uBACzClxH,EAAMmxH,YAERnxH,EAAM6wH,QAAU3pM,EAAWmqM,OAAA,GAKjCpwB,GAAoB9iL,UAAUmzM,aAAe,SAASpqM,GAAA,IAEhDiO,EAAQ,IAAI2kL,GAAA,OAChB3kL,EAAMo8L,OAAS5xM,KACfwV,EAAMg8L,WAAajqM,EAAA,KAEduoM,KAAKlgM,KAAK4F,GAEfqnE,GAASn+E,KAAKsB,KAAKkmM,MAAO1wL,GAEnBA,CAAA,MAQL4kL,GAAmB,WACrBN,GAAep7L,KAAKsB,MAAAA,KAEfwiM,SAAW,oBACX0O,QAAU,SACVC,gBAAkB,UAClB3zM,MAAQ,UACRwzG,UAAY,cACZ+9F,wBAA0BrU,GAAmBmX,SAASN,wBAAA,EAE7D7Z,GAAQ0C,GAAkBN,IAAA,IAMtBS,GAAoB,WACtB3kL,GAAclX,KAAKsB,MAAAA,KACdwwM,GAAK,MAQVpzM,OAAOgY,eAAepV,KAAM,YAAa,CACvCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,aAAc,CACxCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,cAAe,CACzCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,OAWxCnzM,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,WAKpChpM,EAAU,KACdnK,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACZjO,EAAUiO,CAAA,IAUdpY,OAAOgY,eAAepV,KAAM,YAAa,CACvCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACRwwH,OAAO8rE,UAAUt8L,KACnBjO,EAAUiO,EAAA,IAKhBpY,OAAOgY,eAAepV,KAAM,sBAAuB,CACjDqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACItV,KAAKu4G,GAAKv4G,KAAKgvM,EAAA,KAI5BtX,GAAQ6C,GAAmB3kL,IAAA,IAOvBs+B,GAAwB,WAC1BqmJ,GAAkB77L,KAAKsB,MASvB5C,OAAOgY,eAAepV,KAAM,WAAY,CACtCqiF,YAAA,EACAC,cAAA,EACAhtE,IAAK,kBACI02H,QAAQ4sD,GAAa54L,KAAKuwM,GAAI,MAEvCh7L,IAAK,SAAShO,IAAA,IACRykI,QAAQzkI,GAAA,KACLgpM,GAAKzX,GAAa94L,KAAKuwM,GAAI,SAE3BA,GAAKl7G,GAAer1F,KAAKuwM,GAAI,YAInCwB,UAAA,CAAW,EAElBra,GAAQxjJ,GAAuBqmJ,IAAA,IAG3BG,GAAqB,CACvBmX,SAAU,CACRN,uBAAwB,iBACL,CACf7e,EAAG,CACDsf,GAAItX,GAAmBmX,SAASI,WAElC7a,EAAG,CACD4a,GAAItX,GAAmBmX,SAASK,YAChCC,IAAKzX,GAAmBmX,SAASO,aAAA,EAWvCF,YAAa,SAAS3qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,GACTzvE,EAAUrJ,EAAW2+L,MAAMziE,SAAS2lE,QACtC7hM,EAAWi7L,SACXj7L,EAAW4rG,WACX1gG,GACEzT,EAAeuI,EAAW2+L,MAAMzR,YAAYyK,kBAC9C33L,EAAW+2F,OAETpjB,EAAUg+G,GAAW3xL,EAAYA,EAAW2pM,SAAA,OAChD7wH,EAAOzwE,KAAK,cACZywE,EAAOzwE,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,IACxC,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,IACzC,OAEJ84E,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,OACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,YACZywE,EAAOzwE,KACL,IAAMgB,EAAU,IAAMwkF,GAAGla,EAAQ80B,UAAY,OAAShxG,GAExDqhF,EAAOzwE,KAAK,MACZywE,EAAOzwE,KAAKsrE,EAAQrmE,MACpBwrE,EAAOzwE,KAAK,MACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,OACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,EAGTy8L,UAAW,SAAS1qM,GAAA,IACdiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAU94E,EAAW2+L,MAAMziE,SAAS2lE,QACtC7hM,EAAWi7L,SACXj7L,EAAW4rG,WACX1gG,GACE7B,EAAerJ,EAAW2+L,MAAMzR,YAAYyK,kBAC9C33L,EAAW+2F,OAETt/F,EAAS,GACTk8E,EAASw/G,GAAmBj3D,SAASiqE,UAAUnmM,GAC/Cs2E,EAAQ68G,GAAmBj3D,SAAS2jE,SAAS7/L,GAC7CqzE,EAAUs+G,GAAW3xL,EAAYA,EAAW2pM,SAAA,OAChDlyM,EAAO4Q,KAAK,OACZ5Q,EAAO4Q,KAAK,OAASwlF,GAAGvX,GAAS,IAAMuX,GAAGla,GAAU,OACpDl8E,EAAO4Q,KAAK,KACZ5Q,EAAO4Q,KAAK,KACZ5Q,EAAO4Q,KAAK,YACZ5Q,EAAO4Q,KAAK,OAASwlF,GAAGvX,EAAQ,GAAK,IAAMuX,GAAGla,EAAS,GAAK,OAC5Dl8E,EAAO4Q,KAAK,KACZ5Q,EAAO4Q,KAAK,KACZ5Q,EAAO4Q,KAAK,OACZ5Q,EAAO4Q,KAAK,MACZ5Q,EAAO4Q,KACL,IAAMywE,EAAU,IAAM+U,GAAGxa,EAAQo1B,UAAY,OAASp/F,GAExD5R,EAAO4Q,KAAKgrE,EAAQ/lE,MACpB7V,EAAO4Q,KAAK,MACZ5Q,EAAO4Q,KAAK,KACZ4F,EAAK2yK,OAASnpL,EAAOwQ,KAAK,MACnBgG,CAAA,EAQT48L,YAAa,SAAS7qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,UACbA,EAAOzwE,KAAK,cACZywE,EAAOzwE,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,IACxC,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,IACzC,OAEJ84E,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,GAIX67L,YAAa,CACXC,OAAQ,CACNC,uBAAwB,SAAShqM,GAAA,IAC3BiO,EAA0B,CAC5B4hL,EAAG,CACD+a,IAAKzX,GAAmB2W,YAAYC,OAAOc,aAE7C1f,EAAG,CAAC,GAAD,OAELl9K,EAAwBk9K,EAAEnrL,GACxBmzL,GAAmB2W,YAAYC,OAAOW,UACxCz8L,EAAwB4hL,EAAE7vL,GACxBmzL,GAAmB2W,YAAYC,OAAOY,YACjC18L,CAAA,EAETk8L,MAAO,iBACE,KAGTO,UAAW,SAAS1qM,GAAA,IACdiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,GAETzvE,EACF8pL,GAAmBj3D,SAAS2jE,SAAS7/L,IACrCmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAClCmzL,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,EACnDmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,EAE1DqJ,EAAYo1H,QAAoB,GAAZp1H,GAAiB0mL,QAAQ,QACzCt4L,EAAI07L,GAAmBj3D,SAAS4uE,SAChCn3H,EAAkB8qD,QAAQp1H,EAAY5R,GAAGs4L,QAAQ,WAIrDj3G,EAAOzwE,KAAK,KACZywE,EAAOzwE,KACL,WACEolF,GAAG0lG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACAytF,GAAG0lG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJ84E,EAAOzwE,KAAKgB,EAAY,QACxByvE,EAAOzwE,KACLgB,EACE,IACAsqE,EACA,IACAA,EACA,IACAtqE,EACA,MACAA,EACA,MAEJyvE,EAAOzwE,KACL,IACEsrE,EACA,IACAtqE,EACA,KACAA,EACA,IACAsqE,EACA,KACAtqE,EACA,QAEJyvE,EAAOzwE,KACL,IACEgB,EACA,KACAsqE,EACA,KACAA,EACA,KACAtqE,EACA,OACAA,EACA,MAEJyvE,EAAOzwE,KACLsrE,EACE,KACAtqE,EACA,IACAA,EACA,KACAsqE,EACA,IACAtqE,EACA,QAEJyvE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,EAET08L,YAAa,SAAS3qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,GACTzvE,EACF8pL,GAAmBj3D,SAAS2jE,SAAS7/L,IACrCmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAClCmzL,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,EACnDmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,EAE1DqJ,EAAYo1H,QAAoB,GAAZp1H,GAAiB0mL,QAAQ,QAGzCt4L,EAAIgnI,QAAoB,EAAZp1H,GAAe0mL,QAAQ,IACnCp8G,EAAK8qD,QAAQhnI,EAAI07L,GAAmBj3D,SAAS4uE,UAAU/a,QAAQ,IAC/Dz5G,EAAKmoD,QACNp1H,EAAY8pL,GAAmBj3D,SAAS4uE,UAAU/a,QAAQ,WAG7Dj3G,EAAOzwE,KAAK,cACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KACL,WACEolF,GAAG0lG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACAytF,GAAG0lG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJ84E,EAAOzwE,KAAK5Q,EAAI,QAChBqhF,EAAOzwE,KAAK5Q,EAAI,IAAMk8E,EAAK,IAAMA,EAAK,IAAMl8E,EAAI,MAAQA,EAAI,MAC5DqhF,EAAOzwE,KACL,IAAMsrE,EAAK,IAAMl8E,EAAI,KAAOA,EAAI,IAAMk8E,EAAK,KAAOl8E,EAAI,QAExDqhF,EAAOzwE,KACL,IAAM5Q,EAAI,KAAOk8E,EAAK,KAAOA,EAAK,KAAOl8E,EAAI,OAASA,EAAI,MAE5DqhF,EAAOzwE,KAAKsrE,EAAK,KAAOl8E,EAAI,IAAMA,EAAI,KAAOk8E,EAAK,IAAMl8E,EAAI,QAC5DqhF,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,OACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KACL,WACEolF,GAAG0lG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACAytF,GAAG0lG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJ84E,EAAOzwE,KAAKgB,EAAY,QACxByvE,EAAOzwE,KAEHgB,EACA,IACAitE,EACA,IACAA,EACA,IACAjtE,EACA,MACAA,EACA,MAEJyvE,EAAOzwE,KACL,IACEiuE,EACA,IACAjtE,EACA,KACAA,EACA,IACAitE,EACA,KACAjtE,EACA,QAEJyvE,EAAOzwE,KACL,IACEgB,EACA,KACAitE,EACA,KACAA,EACA,KACAjtE,EACA,OACAA,EACA,MAEJyvE,EAAOzwE,KACLiuE,EACE,KACAjtE,EACA,IACAA,EACA,KACAitE,EACA,IACAjtE,EACA,QAEJyvE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,EAET48L,YAAa,SAAS7qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,GACTzvE,EACF8pL,GAAmBj3D,SAAS2jE,SAAS7/L,IACrCmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAClCmzL,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,EACnDmzL,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,EAE1DqJ,EAAYo1H,QAAoB,GAAZp1H,GAAiB0mL,QAAQ,QAGzCt4L,EAAIgnI,QAAoB,EAAZp1H,GAAe0mL,QAAQ,IACnCp8G,EAAK8qD,QAAQhnI,EAAI07L,GAAmBj3D,SAAS4uE,UAAU/a,QAAQ,WAEnEj3G,EAAOzwE,KAAK,cACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KACL,WACEolF,GAAG0lG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACAytF,GAAG0lG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJ84E,EAAOzwE,KAAK5Q,EAAI,QAChBqhF,EAAOzwE,KAAK5Q,EAAI,IAAMk8E,EAAK,IAAMA,EAAK,IAAMl8E,EAAI,MAAQA,EAAI,MAC5DqhF,EAAOzwE,KACL,IAAMsrE,EAAK,IAAMl8E,EAAI,KAAOA,EAAI,IAAMk8E,EAAK,KAAOl8E,EAAI,QAExDqhF,EAAOzwE,KACL,IAAM5Q,EAAI,KAAOk8E,EAAK,KAAOA,EAAK,KAAOl8E,EAAI,OAASA,EAAI,MAE5DqhF,EAAOzwE,KAAKsrE,EAAK,KAAOl8E,EAAI,IAAMA,EAAI,KAAOk8E,EAAK,IAAMl8E,EAAI,QAC5DqhF,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,GAIX0S,MAAO,CAQLqpL,uBAAwB,SAAShqM,GAAA,IAC3BiO,EAA0B,CAC5B4hL,EAAG,CACD+a,IAAKzX,GAAmB2W,YAAYnpL,MAAMkqL,aAE5C1f,EAAG,CAAC,GAAD,OAELl9K,EAAwBk9K,EAAEnrL,GACxBmzL,GAAmB2W,YAAYnpL,MAAM+pL,UACvCz8L,EAAwB4hL,EAAE7vL,GACxBmzL,GAAmB2W,YAAYnpL,MAAMgqL,YAChC18L,CAAA,EAETk8L,MAAO,iBACE,KAGTO,UAAW,SAAS1qM,GAAA,IACdiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,GACTzvE,EAAQ8pL,GAAmBj3D,SAAS6uE,eAAe/qM,GAAA,OACvD84E,EAAOzwE,KAAK,KACZywE,EAAOzwE,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJ84E,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAKwlF,GAAGxkF,EAAMssH,GAAG3+C,GAAK,IAAM6W,GAAGxkF,EAAMssH,GAAG9+C,GAAK,MACpDiC,EAAOzwE,KAAKwlF,GAAGxkF,EAAM2hM,GAAGh0H,GAAK,IAAM6W,GAAGxkF,EAAM2hM,GAAGn0H,GAAK,MACpDiC,EAAOzwE,KAAKwlF,GAAGxkF,EAAM4hM,GAAGj0H,GAAK,IAAM6W,GAAGxkF,EAAM4hM,GAAGp0H,GAAK,MACpDiC,EAAOzwE,KAAKwlF,GAAGxkF,EAAM6hM,GAAGl0H,GAAK,IAAM6W,GAAGxkF,EAAM6hM,GAAGr0H,GAAK,MACpDiC,EAAOzwE,KAAK,KACZywE,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,EAET08L,YAAa,SAAS3qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAQq6G,GAAmBj3D,SAAS6uE,eAAe/qM,GACnDqJ,EAAS,UACbA,EAAOhB,KAAK,cACZgB,EAAOhB,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,IACxC,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,IACzC,OAEJqJ,EAAOhB,KAAK,KACZgB,EAAOhB,KAAK,KACZgB,EAAOhB,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,GAAc,GACtD,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,GAAc,GACvD,OAEJqJ,EAAOhB,KAAK,KACZgB,EAAOhB,KAAK,KACZgB,EAAOhB,KAAKwlF,GAAG/U,EAAM68C,GAAG3+C,GAAK,IAAM6W,GAAG/U,EAAM68C,GAAG9+C,GAAK,MACpDxtE,EAAOhB,KAAKwlF,GAAG/U,EAAMkyH,GAAGh0H,GAAK,IAAM6W,GAAG/U,EAAMkyH,GAAGn0H,GAAK,MACpDxtE,EAAOhB,KAAKwlF,GAAG/U,EAAMmyH,GAAGj0H,GAAK,IAAM6W,GAAG/U,EAAMmyH,GAAGp0H,GAAK,MACpDxtE,EAAOhB,KAAKwlF,GAAG/U,EAAMoyH,GAAGl0H,GAAK,IAAM6W,GAAG/U,EAAMoyH,GAAGr0H,GAAK,MACpDxtE,EAAOhB,KAAK,KACZgB,EAAOhB,KAAK,KACZ4F,EAAK2yK,OAASv3K,EAAOpB,KAAK,MACnBgG,CAAA,EAET48L,YAAa,SAAS7qM,GAAA,IAChBiO,EAAO+iG,GAAkBhxG,GAC7BiO,EAAK0wL,MAAQ3+L,EAAW2+L,MAAA,IACpB7lH,EAAS,UACbA,EAAOzwE,KAAK,cACZywE,EAAOzwE,KACL,OACEwlF,GAAGslG,GAAmBj3D,SAAS2jE,SAAS7/L,IACxC,IACA6tF,GAAGslG,GAAmBj3D,SAASiqE,UAAUnmM,IACzC,OAEJ84E,EAAOzwE,KAAK,KACZ4F,EAAK2yK,OAAS9nG,EAAO7wE,KAAK,MACnBgG,CAAA,IAUby6L,8BAA+B,SAAS1oM,GAAA,IAGlCiO,EAAUjO,EAAW2+L,MAAMziE,SAAS2lE,QACtC7hM,EAAWi7L,SACXj7L,EAAW4rG,WACX1gG,GACE4tE,EAAe94E,EAAW2+L,MAAMzR,YAAYyK,kBAC9C33L,EAAW+2F,OAAA,MAGA,IAAM9oF,EAAU,IADdjO,EAAWyoG,SACoB,OAAS3vB,CAAA,GAK3Dq6G,GAAmBj3D,SAAW,CAC5B4uE,SAAU,cAEVC,eAAgB,SAAS/qM,GAAA,IACnBiO,EAAQklL,GAAmBj3D,SAAS2jE,SAAS7/L,GAC7C84E,EAASq6G,GAAmBj3D,SAASiqE,UAAUnmM,GAC/CqJ,EAAI6sE,KAAKyD,IAAI1rE,EAAO6qE,GAAA,MAEZ,CACV68C,GAAI,CAEF3+C,GAAI/oE,EAAQ5E,GAAK,EACjBwtE,GAAIiC,EAASzvE,GAAK,EAAIA,GAExB2hM,GAAI,CAEFh0H,GAAI/oE,EAAQ5E,GAAK,EAAIA,EACrBwtE,GAAIiC,EAASzvE,GAAK,GAEpB6hM,GAAI,CAEFl0H,GAAI/oE,EAAQ5E,GAAK,EACjBwtE,GAAIiC,EAASzvE,GAAK,GAEpB4hM,GAAI,CAEFj0H,GAAI/oE,EAAQ5E,GAAK,EAAIA,EACrBwtE,GAAIiC,EAASzvE,GAAK,EAAIA,GAAA,GAO9B8pL,GAAmBj3D,SAAS2jE,SAAW,SAAS5xL,GAAA,IAC1C6qE,EAAS,QACa,YAAtB94E,EAAAA,EAAAA,GAAOiO,KACT6qE,EAASu3G,GAAMpiL,EAAWu6L,KAAK,KAE1B1vH,CAAA,EAETq6G,GAAmBj3D,SAASiqE,UAAY,SAASl4L,GAAA,IAC3C6qE,EAAS,QACa,YAAtB94E,EAAAA,EAAAA,GAAOiO,KACT6qE,EAASu3G,GAAMpiL,EAAWu6L,KAAK,KAE1B1vH,CAAA,EAcT,IAAIxD,GAAYs6G,GAASub,SAAW,SAASnrM,GAAA,GAC3C8xL,GAAmBr5L,KAAMuH,KAErBA,aAAuBqO,IAAA,MAGnB,IAAIlM,MAAM,8CAvlFN,IAAS8L,EAAA,OAAAA,EAqlFXjO,GAplFK2+L,MAAMziE,SAASgsE,eAAeH,aAC3C95L,EAAW0wL,MAAMziE,SAASgsE,eAAeH,YAAA,EACzC95L,EAAW0wL,MAAMziE,SAASgsE,eAAeJ,uBAAyB,MAEpE75L,EAAW0wL,MAAMziE,SAASgsE,eAAeJ,uBAAuBO,OAAOhgM,KACrE4F,GAmlFFjO,EAAY67H,KAAO77H,EAAY2+L,MAAMziE,SAASqiE,qBAAqB7E,WAC5DjhM,IAAA,EAGTm3L,GAASwb,oBAAsBhZ,GAC/BxC,GAASyb,gBAAkB5sM,GAC3BmxL,GAAS0b,iBAAmBvrM,GAC5B6vL,GAAS2b,gBAAkBn9L,GAC3BwhL,GAAS4b,eAAiBjZ,GAC1B3C,GAAS6b,mBAAqBjZ,GAC9B5C,GAAS8b,oBAAsB3xB,GAC/B6V,GAAS+b,iBAAmB9Y,GAC5BjD,GAASgc,kBAAoB5Y,GAC7BpD,GAASic,sBAAwBl/J,GACjCijJ,GAASkc,mBAAqB3Y,GAE9BvD,GAASmc,SAAW,CAClBC,YAAa5Z,GACb6Z,QAASxtM,GACTytM,SAAUnsM,GACVosM,QAAS/9L,GACTg+L,OAAQ7Z,GACR8Z,WAAY7Z,GACZsX,YAAa/vB,GACbuwB,SAAUzX,GACVyZ,UAAWtZ,GACXuZ,cAAe5/J,GACf6/J,WAAYrZ,IAGdxlG,GAAMo+G,SAAW,CACfC,YAAa5Z,GACb6Z,QAASxtM,GACTytM,SAAUnsM,GACVosM,QAAS/9L,GACTg+L,OAAQ7Z,GACR8Z,WAAY7Z,GACZsX,YAAa/vB,GACbuwB,SAAUzX,GACVyZ,UAAWtZ,GACXuZ,cAAe5/J,GACf6/J,WAAYrZ,IAAA,IAGVa,GAAWrmG,GAAMo+G,SCzlGrB,SAASzxE,GAASt6H,GAAA,OACTA,EAAIT,QAAO,SAASS,EAAQiO,EAAM6qE,GAAA,OACvC94E,EAAOiO,GAAQ6qE,EAER94E,CAAA,GACN,CAAC,EAAD,ECgCL,SAAUiO,GAIRA,EAASw+L,aAAe,CAAC,EAAD,IAEpB3zH,EAAU,UAOVzvE,EAAuB,CACzBqjM,IAAK,CAAC,CAAC,IAAM,GAAM,GAAM,KACzBC,KAAM,CACJ,CAAC,GAAM,GAAM,EAAM,KAClB,GAAM,GAAM,GAAM,IAErBC,KAAM,CACJ,CACE,IACA,IACA,IACA,gBACA,EAEA,GACA,GACA,GACA,GACA,IAGA,IACA,IACA,IACA,gBACA,EAEA,GACA,IACA,IACA,IACA,EACA,IAED,IAAM,IAAM,IAAM,MAClB,IAAM,IAAM,IAAM,MAErBC,SAAU,CAAC,CAAC,EAAM,EAAM,EAAM,GAAM,IAAM,GAAM,GAAM,KACtDC,OAAQ,CAAC,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,KACxCC,OAAQ,CAAC,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,KACxCC,KAAM,CACJ,CACE,GACA,GACA,GACA,eACA,OACA,OACA,EAEA,GACA,GACA,GACA,KAGJC,IAAK,CACH,CAAC,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,KACN,GAAM,MAiBPx1M,EAA+BwW,EAASw+L,aAAaS,4BAA8B,SACrFltM,EACAiO,GAAA,IAGIxW,EACAk8E,EAEA2C,EACAjD,EACAtvE,EAHA2yE,EAASoC,EAAA,GAMQ,UATrB7qE,EAAiBA,GAAkB6qE,SAAA,IAUhC94E,EAAU/C,MACT+C,EAAU/C,gBAAgBq8I,mBAC1B,WAAYt5I,GACZ,UAAWA,EAAA,MAEN,UAGLg3E,EAAkBh3E,GAAA,IACf+D,KAAYsF,EAAA,IACfitE,EAAiBjtE,EAAqBtF,GACjCtM,EAAI,EAAGA,EAAI6+E,EAAe5+E,OAAQD,GAAK,EAAG,KAC7C47E,GAAA,EACKM,EAAI,EAAGA,EAAI2C,EAAe7+E,GAAGC,OAAQi8E,GAAK,EAAG,QAAH,IACzC2C,EAAe7+E,GAAGk8E,IAGlB2C,EAAe7+E,GAAGk8E,KAAO3zE,EAAU2zE,GAAI,CACzCN,GAAA,EAAgB,cAIhBA,EAAwB,CAC1BqD,EAAS3yE,EAAA,gBAMVA,KAAYsF,EAAA,IACfitE,EAAiBjtE,EAAqBtF,GACjCtM,EAAI,EAAGA,EAAI6+E,EAAe5+E,OAAQD,GAAK,EAAG,KAC7C47E,GAAA,EACKM,EAAI,EAAGA,EAAI2C,EAAe7+E,GAAGC,OAAQi8E,GAAK,EAAG,QAAH,IACzC2C,EAAe7+E,GAAGk8E,IAGlB2C,EAAe7+E,GAAGk8E,KAAO3zE,EAAUgE,WAAW2vE,GAAI,CACpDN,GAAA,EAAgB,cAIhBA,EAAwB,CAC1BqD,EAAS3yE,EAAA,cAOb2yE,IAAWoC,GAAW7qE,IAAmB6qE,IAC3CpC,EAASzoE,GAEJyoE,CAAA,EAIL/C,EAAW,SAAX3zE,EAAoBiO,GAAA,QAClB6qE,EAAMrgF,KAAKyjI,SAASlrC,MACpB3nF,EAAY5Q,KAAKyjI,SAASi8D,UAG1B1gM,GAAA,EAFagB,KAAKyjI,SAAS+7D,eAGW,IAAnCxgM,EAAO+N,QAAQ,gBACpB/N,EAAO47F,OAAO57F,EAAO+N,QAAQ,eAAgB,GAG/CyI,EAAMqqL,SAAW7/L,KAAKyjI,SAAS86D,YAAA,IAE3BrjH,EAAsB,MAC1BA,EAAoBtrE,KAAK,CAAErR,IAAK,OAAQf,MAAO,aAC/C09E,EAAoBtrE,KAAK,CAAErR,IAAK,UAAWf,MAAO,WAClD09E,EAAoBtrE,KAAK,CAAErR,IAAK,QAASf,MAAOgY,EAAM6yE,QACtDnN,EAAoBtrE,KAAK,CAAErR,IAAK,SAAUf,MAAOgY,EAAM8yE,SAEnD9yE,EAAMk/L,aAAev2H,EAAaw2H,QACpCz5H,EAAoBtrE,KAAK,CACvBrR,IAAK,aACLf,MACE,yBAECgY,EAAMo/L,QAAQ31M,OAAS,EAAI,GAC5B,KACC,UAAWuW,QAAA,IAAgBA,EAAMq/L,MAC9Br/L,EAAMqqL,SAAW,EACjBrqL,EAAMqqL,SAAW,GACrB,WAGJ3kH,EAAoBtrE,KAAK,CACvBrR,IAAK,aACLf,MAAO,IAAMgY,EAAMk/L,aAEjBl/L,EAAMk/L,aAAev2H,EAAa22H,aACpC55H,EAAoBtrE,KAAK,CAAErR,IAAK,SAAUf,MAAO,uBAGrD09E,EAAoBtrE,KAAK,CACvBrR,IAAK,mBACLf,MAAOgY,EAAMu/L,mBAGb,qBAAsBv/L,QAAA,IACfA,EAAMw/L,kBAEb95H,EAAoBtrE,KAAK,CACvBrR,IAAK,cACLf,MAAO,KAAOgY,EAAMw/L,iBAAmB,OAGvC,iBAAkBx/L,GAASzW,MAAM8rF,QAAQr1E,EAAMy/L,cAAe,SAC5Dp3H,EAAe,GACjBjD,EAAI,EACJtvE,EAAMkK,EAAMy/L,aAAah2M,OACpB27E,EAAItvE,EAAKsvE,IACdiD,GACEroE,EAAMy/L,aAAar6H,GAAK,IAAMplE,EAAMy/L,aAAar6H,GAAK,IAE1DM,EAAoBtrE,KAAK,CACvBrR,IAAK,OACLf,MAAO,IAAMqgF,EAAe,eAGrBroE,EAAMq/L,OACf35H,EAAoBtrE,KAAK,CACvBrR,IAAK,QACLf,MAAOgY,EAAMqqL,SAAW,EAAI,aAI5B5hH,OAAA,IACKzoE,EAAM7O,OAAyB,CAAC,IAAM6O,EAAM7O,aAAA,EAAU,GAE/DiK,EAAU,CACRpM,KAAMgR,EAAMhR,KACZu7L,oBAAqB7kH,EACrBykH,sBAAuB1hH,EACvB4hH,SAAUrqL,EAAMqqL,WAGlBx/G,EAAI,UAGA,UAAW7qE,QAAA,IAAgBA,EAAMq/L,MAAuB,KACtDx2H,EACF,cACA7oE,EAAM0/L,UACN,gCACA1/L,EAAMu/L,iBACN,aACAv/L,EAAM6yE,MACJ5nF,EAAQ,CACV4nF,MAAO7yE,EAAM6yE,MACbC,OAAQ9yE,EAAM8yE,OACdosH,WAAY,aACZK,iBAAkBv/L,EAAMu/L,iBACxBC,iBAAkB32H,EAClB75E,KAAMgR,EAAMq/L,OAEV,WAAYr/L,IACd/U,EAAMkG,OAAS6O,EAAM7O,QAEvBY,EAAS7I,KAAKsB,KAAMS,EAAA,IAIlB+U,EAAMk/L,aAAev2H,EAAaw2H,QAAS,KACzCz6H,EAAQl6E,KAAKyjI,SAAS86D,YAG1B3tL,EAAU,CACRpM,KAAMg7E,EAA0B,IAAIoF,WAAWpvE,EAAMo/L,UACrD/U,SAAU3lH,IAEZmG,EAAI,YAGJxC,EAAuB,eACrBt2E,EAASvH,KAAKyjI,SAAS8pE,YAAd4H,gBAAA,IACR,IAAI3/L,KAAKjO,EACZ2zE,EAASx8E,KAAKsB,KAAMuH,EAAOiO,GAAA,EAG3BolE,EAA0B,eAG1BrzE,EAFEiO,EAASxV,KAAKyjI,SAAS8pE,YAAd4H,gBACX90H,EAAMrgF,KAAKyjI,SAASlrC,MAAA,IAEjB,IAAI3nF,KAAK4E,EAEZ6qE,EAAI,MADJ94E,EAAQiO,EAAO5E,IACEI,MAAOzJ,EAAMs4L,SAAU,IAAK,MAS7Cv0L,EAAa,WACVtL,KAAKyjI,SAAS8pE,YAAd4H,kBAAAn1M,KACEyjI,SAAS8pE,YAAd4H,gBAAkD,CAAC,EAAD,KAC7C1xE,SAASwpE,OAAOtqD,UAAU,eAAgB9kE,GAAA,KAC1C4lD,SAASwpE,OAAOtqD,UAAU,iBAAkB/nE,GAAA,EAIjDyD,EAAY,eACV92E,EAASvH,KAAKyjI,SAAS8pE,YAAd4H,gBAAA,OACb7pM,EAAW5M,KAAKsB,MACTuH,CAAA,EAEL9G,EAAgB,kBACXrD,OAAOyJ,KAAK7G,KAAKyjI,SAAS8pE,YAAd4H,iBAAiDl2M,MAAA,EAelEi7E,EAAuB,SAAS3yE,GAAA,MACyB,mBAA7CiO,EAAS,UAAYjO,EAAKw+E,cAAA,EAGtC7H,EAAe,SAAS1oE,GAAA,MACD,YAAlBjO,EAAAA,EAAAA,GAAOiO,IAA2C,IAApBA,EAAO/I,QAAA,EAG1CvF,EAA0B,SAASK,EAAS84E,GAAA,GAErB,QAArB94E,EAAQuI,UAAsBvI,EAAQmM,aAAa,OAAQ,KACzD9C,EAAM,GAAKrJ,EAAQoL,aAAa,UAGD,IAA/B/B,EAAI7D,QAAQ,sBACPkxE,GACLinH,SAASt0L,GACNlK,MAAM,WACN22E,OAAA,IAKHr+E,EAAewW,EAAS4/L,SAASxkM,GAAA,GAAK,YACtC5R,EAAA,OACKA,CAAA,IAIc,WAArBuI,EAAQuI,SAAuB,IACX,IAAlBvI,EAAQ8gF,OAAkC,IAAnB9gF,EAAQ+gF,OAAA,MAC3B,IAAI5+E,MACR,8CACEnC,EAAQ8gF,MACR,aACA9gF,EAAQ+gF,QAAA,IAGVpN,EAAA,OACImF,GAAA,IACD,MACHnF,EAAW,sBAER,OACHA,EAAW,mBAGR,QAEHA,EAAW,oBAGR+C,GACL12E,EACGi0G,UAAUtgC,EAAU,GACpBx0E,MAAM,WACN22E,MAAA,GAKL+C,EAAsB,SAAS74E,GAAA,IAC7BiO,EAASxV,KAAKyjI,SAAS8pE,YAAd4H,gBAAA,GACT3/L,EAAA,IACG,IAAI6qE,KAAK7qE,EAAA,GACRjO,IAAUiO,EAAO6qE,GAAGg1H,MAAA,OACf7/L,EAAO6qE,EAAA,EAMlBvD,EAA0B,SAASv1E,EAAOiO,EAAQ6qE,GAAA,OAC/C94E,GAAUiO,IACbjO,GAAS,GACTiO,GAAU,IAERjO,EAAQ,IACVA,GAAU,EAAI84E,EAAMgI,MAAQ,GAAM9gF,EAAQvH,KAAKyjI,SAAS6iE,aAEtD9wL,EAAS,IACXA,GAAW,EAAI6qE,EAAMiI,OAAS,GAAM9yE,EAASxV,KAAKyjI,SAAS6iE,aAE/C,IAAV/+L,IACFA,EAASiO,EAAS6qE,EAAMgI,MAAShI,EAAMiI,QAE1B,IAAX9yE,IACFA,EAAUjO,EAAQ84E,EAAMiI,OAAUjI,EAAMgI,OAGnC,CAAC9gF,EAAOiO,EAAA,EAGb3E,EAAkB,SAAStJ,EAAGiO,EAAG6qE,EAAOzvE,EAAQ5R,EAAOk8E,GAAA,IACrD2C,EAAOf,EAAwBp+E,KAAKsB,KAAMqgF,EAAOzvE,EAAQ5R,GAC3D47E,EAAQ56E,KAAKyjI,SAAS6pE,oBACtBhiM,EAAStL,KAAKyjI,SAAS4mE,4BAErBpsH,EAASI,EAAU3/E,KAAKsB,MAAA,GAE5BqgF,EAAQxC,EAAK,GACbjtE,EAASitE,EAAK,GACdI,EAAOj/E,EAAMgS,OAAShS,EAElBk8E,EAAU,CACZA,GAAYuC,KAAKkgB,GAAK,QAClBl9F,EAAIg9E,KAAK8sB,IAAIrvB,GACbhB,EAAIuD,KAAK6sB,IAAIpvB,GAEbgD,EAAK,SAAS32E,GAAA,OACTA,EAAO+vL,QAAQ,IAEpBpwL,EAA+B,CACjCg3E,EAAGz9E,GACHy9E,EAAGhE,GACHgE,GAAQ,EAALhE,GACHgE,EAAGz9E,GACH,EACA,EACA,WAGCgjI,SAASlrC,MAAM,KAChBrd,GAAA,KACGuoD,SAASlrC,MACZ,CAAC,EAAG,IAAK,IAAK,EAAG3d,EAAMrzE,GAAI+D,EAAOkK,EAAI5E,GAAS,MAAMpB,KAAK,WAEvDi0H,SAASlrC,MAAMrxF,EAA6BsI,KAAK,WACjDi0H,SAASlrC,MACZ,CAAC3d,EAAMyF,GAAQ,IAAK,IAAKzF,EAAMhqE,GAAS,IAAK,IAAK,MAAMpB,KAAK,YAG1Di0H,SAASlrC,MACZ,CACE3d,EAAMyF,GACN,IACA,IACAzF,EAAMhqE,GACNgqE,EAAMrzE,GACN+D,EAAOkK,EAAI5E,GACX,MACApB,KAAK,MAIPxP,KAAKk3L,iBAAA,KAEFzzD,SAASlrC,MAAM,CAAC,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,MAAM/oF,KAAK,WAGhDi0H,SAASlrC,MAAM,KAAOv5F,EAAMgS,MAAQ,YACpCyyH,SAASlrC,MAAM,MAMlBpa,EAAgB3oE,EAAS8/L,aAAe,CAC1CC,WAAY,YACZC,YAAa,aACbV,YAAa,aACbW,SAAU,UACVC,QAAS,SACTC,IAAK,MACLC,UAAW,WACXjB,QAAS,UACTkB,QAAS,UACTC,WAAY,aACZC,SAAU,WAMZvgM,EAASyhG,OAAS,CAChB++F,WAAY,YACZC,aAAc,cACdC,WAAY,YACZC,WAAY,YACZC,aAAc,cACdC,eAAgB,gBAChBC,iBAAkB,iBAClBC,kBAAmB,kBACnBC,iBAAkB,sBAMhBp4H,EAAqB5oE,EAASihM,kBAAoB,CACpDC,KAAM,OACNC,KAAM,OACNC,OAAQ,SACRC,KAAM,QASJv4H,EAAa9oE,EAASw+L,aAAa8C,UAAY,SAASvvM,GAAA,IAExDiO,EACA6qE,EAFEzvE,EAAO,KAIS,iBAATrJ,EAAA,IACT84E,EAAM94E,EAAKtI,OACNuW,EAAI,EAAGA,EAAI6qE,EAAK7qE,IACnB5E,GAAQA,GAAQ,GAAKA,EAAOrJ,EAAKgE,WAAWiK,GAC5C5E,GAAQ,OAEL,GAAI2tE,EAAkBh3E,GAAA,IAC3B84E,EAAM94E,EAAKg8E,WAAa,EACnB/tE,EAAI,EAAGA,EAAI6qE,EAAK7qE,IACnB5E,GAAQA,GAAQ,GAAKA,EAAOrJ,EAAKiO,GACjC5E,GAAQ,SAGLA,CAAA,EAaL8hL,EAA0Bl9K,EAASw+L,aAAa+C,uBAAyB,SAC3ExvM,IAEAA,EAAuBA,GAAwB,IAC1B0J,WAAWssG,OAAA,IAE5B/nG,GAAA,EAAS,OAEuB,IAAhCjO,EAAqBtI,SACvBuW,GAAA,GAGEjO,EAAqBtI,OAAS,GAAM,IACtCuW,GAAA,IAAS,IAIT,mBAAmB3T,KACjB0F,EAAqBzG,OAAO,EAAGyG,EAAqBtI,OAAS,MAG/DuW,GAAA,IAAS,IAIT,gDAAgD3T,KAC9C0F,EAAqBzG,QAAQ,MAG/B0U,GAAA,GAEKA,CAAA,EAeL8iG,EAA2B9iG,EAASw+L,aAAagD,wBAA0B,SAC7EzvM,GAAA,IAGIiO,GADJjO,EAAUA,GAAW,IACMb,MAAM,WAC7B25E,EAAS,QAEe,IAAxB7qE,EAAavW,OAAc,KACzB2R,EAAgB,sDAAsDorE,KACxExmE,EAAa,IAEXzW,MAAM8rF,QAAQj6E,KAChByvE,EAAS,CACP7+E,SAAUoP,EAAc,GACxBqmM,QAASrmM,EAAc,GACvBpM,KAAMgR,EAAa,YAIlB6qE,CAAA,EAUL4U,EAAuBz/E,EAASw+L,aAAakD,oBAAsB,iBAE5C,oBAAhBvsH,aAAqD,oBAAf/F,UAAA,EAajDpvE,EAASw+L,aAAamD,cAAgB,SAAS5vM,GAAA,OACtC0tF,KAAyB1tF,aAAkBojF,WAAA,MAWhDpM,EAAqB/oE,EAASw+L,aAAaoD,kBAAoB,SACjE7vM,GAAA,OAGE0tF,KACuB,oBAAhBrJ,cACNrkF,aAAkB8vM,WACjB9vM,aAAkBq9E,YACY,oBAAtBi8D,mBACNt5I,aAAkBs5I,mBACpBt5I,aAAkB+vM,YAClB/vM,aAAkBmkF,aAClBnkF,aAAkBm3K,YAClBn3K,aAAkBqkF,aAClBrkF,aAAkBgwM,cAClBhwM,aAAkBiwM,aAAA,EAapBn4H,EAA4B7pE,EAASw+L,aAAayD,yBAA2B,SAC/ElwM,GAAA,QAEIiO,EAAMjO,EAActI,OACpBohF,EAAQ,IAAIuE,WAAWpvE,GAClB5E,EAAI,EAAGA,EAAI4E,EAAK5E,IACvByvE,EAAMzvE,GAAKrJ,EAAcgE,WAAWqF,GAAA,OAE/ByvE,CAAA,EAaLb,EAA6BhqE,EAASw+L,aAAa0D,0BAA4B,SACjFnwM,GAAA,QAEIiO,EAAM,GAGN6qE,EAAM9B,EAAkBh3E,GAAUA,EAAS,IAAIq9E,WAAWr9E,GACrDqJ,EAAI,EAAGA,EAAIyvE,EAAIphF,OAAQ2R,GAzsBV,KA6sBpB4E,GAAOvU,OAAOw7E,aAAa33E,MACzB,KACAu7E,EAAIggG,SAASzvK,EAAGA,EA/sBE,cAktBf4E,CAAA,EA8BTA,EAASy3F,SAAW,eACdz3F,EAAW5E,EAAQ5R,EAAGk8E,EAAG2C,EAAGjD,EAAGqD,EAAOI,EAAa59E,EAAA,GAG3B,iBAAjBsE,UAAU,IACnB6L,EAASyvE,EACTrhF,EAAI+F,UAAU,GACdm2E,EAAIn2E,UAAU,GACd84E,EAAI94E,UAAU,GACd61E,EAAI71E,UAAU,GACdk5E,EAAQl5E,UAAU,GAClBs5E,EAAct5E,UAAU,GACxBtE,EAAWsE,UAAU,KAErB6L,EAAS7L,UAAU,GACnB/F,EAAI+F,UAAU,GACdm2E,EAAIn2E,UAAU,GACd84E,EAAI94E,UAAU,GACd61E,EAAI71E,UAAU,GACdk5E,EAAQl5E,UAAU,GAClBs5E,EAAct5E,UAAU,GACxBtE,EAAWsE,UAAU,IAIA,YAArBwC,EAAAA,EAAAA,GAtBFiO,EAAYzQ,UAAU,MAuBnBm5E,EAAa1oE,IACd,cAAeA,EACf,KACI0kE,EAAU1kE,EAEdA,EAAY0kE,EAAQy9H,UACpB/mM,EAASspE,EAAQ6uB,QAAUn4F,GAAUyvE,EACrCrhF,EAAIk7E,EAAQqE,GAAKv/E,GAAK,EACtBk8E,EAAIhB,EAAQkE,GAAKlD,GAAK,EACtB2C,EAAI3D,EAAQoE,GAAKpE,EAAQmO,OAASxK,EAClCjD,EAAIV,EAAQmE,GAAKnE,EAAQoO,QAAU1N,EACnCqD,EAAQ/D,EAAQm7H,OAASp3H,EACzBI,EAAcnE,EAAQ09H,aAAev5H,EACrC59E,EAAWy5E,EAAQ29H,UAAY39H,EAAQliE,OAASvX,CAAA,KAI9CyG,EAASlH,KAAKyjI,SAAS+7D,aAAA,YACvBnhH,IAAgE,IAAnCn3E,EAAO6F,QAAQ,iBAC9CsxE,EAAc,QAGZyE,MAAM9jF,IAAM8jF,MAAM5H,GAAA,MACd,IAAIxxE,MAAM,gDAGlB4B,EAAW5M,KAAKsB,MAAA,IAEZogF,EAAQuG,EAAiBjoF,KAC3BsB,KACAwV,EACA5E,EACAqtE,EACAI,GAAA,OAGFxtE,EAAgBnS,KAAKsB,KAAMhB,EAAGk8E,EAAG2C,EAAGjD,EAAGwF,EAAO3/E,GAEvCT,IAAA,MAGL2mF,EAAmB,SAASp/E,EAAWqJ,EAAQsqE,EAAO2C,GAAA,IACpDjD,EAAQtvE,EA/fY2yE,EAAA,GAkgBD,iBAAd12E,GACPvI,EAA4BuI,KAAe84E,EAC3C,CACA94E,EAAY29L,SAAS39L,GAAA,IACjB82E,EAAe3B,EAA4Bn1E,GAAA,IAE1B,KAAjB82E,QAAA,KAGFA,EAAe7oE,EAAS4/L,SAAS7tM,GAAA,OAFjCA,EAAY82E,EAAA,IASZH,EAAa32E,KACfA,EAAYL,EAAwBK,EAAWqJ,IAGjDA,EAAS5R,EAA4BuI,EAAWqJ,IAC3CspE,EAAqBtpE,GAAA,MAClB,IAAIlH,MACR,4CACEkH,EACA,uCACAA,EACA,2BA5hBC,OADiBqtE,EAmiBT/C,IAliB2D,IAAjB+C,EAAMh/E,UAmiB7Di8E,EAjiB6B,SAAS3zE,GAAA,MACf,iBAAdA,GAA0Bg3E,EAAkBh3E,GAC9C+2E,EAAU/2E,GACRg3E,EAAkBh3E,EAAU/C,MAC9B85E,EAAU/2E,EAAU/C,MAGtB,KAPwB,CAiiBM+C,KAErCqzE,EAASwF,EAAoB1hF,KAAKsB,KAAMk7E,MAGlC+Z,MAEI1tF,aAAqBq9E,YAA0B,SAAXh0E,IACxCtF,EAAqB/D,EACrBA,EAAY83E,EAAyB93E,KAIzCqzE,EAAS56E,KAAK,UAAY4Q,EAAOm1E,eAC/Bx+E,EACA9G,EAAc/B,KAAKsB,MACnBk7E,EAzkBmB,SAAS3zE,GAAA,OAC5BA,GAA0B,iBAAVA,IAAoBA,EAAQA,EAAMw+E,eAC/Cx+E,KAASiO,EAASihM,kBAAoBlvM,EAAQ62E,EAAkBs4H,IAAA,CAFhD,CA0kBA74H,GACnBvyE,KAICsvE,EAAA,MACG,IAAIlxE,MAAM,iEAEXkxE,CAAA,EASL8B,EAA+BlnE,EAASw+L,aAAa8D,4BAA8B,SACrFvwM,EACAiO,GAAA,IAGI6qE,EADJ7qE,EAAmC,kBAAfA,GAA2BA,EAAA,IAG3C5E,EADA5R,EAAY,MAGU,iBAAfuI,EAAyB,CAElCqJ,EAAyB,QADzByvE,EAAai4B,EAAwB/wG,IACL84E,EAAW77E,KAAO+C,EAAA,IAGhDvI,EAAYi/E,GAAKrtE,EAAA,CACjB,MAAOrJ,GAAA,GACHiO,EAAA,MACGk9K,EAAuB9hL,GAKpB,IAAIlH,MACR,mDAAqDnC,EAAEkC,SALnD,IAAIC,MACR,yFAUH1K,CAAA,EASTwW,EAASuiM,mBAAqB,SAASxwM,GAAA,IACjCqJ,EAEAsqE,EADA2C,EAAe,MAGfK,EAAa32E,KACfA,EAAYL,EAAwBK,IAIf,iBAAdA,GACPvI,EAA4BuI,KAAe84E,IAItB,MAFrBxC,EAAenB,EAA4Bn1E,GAAA,MAGzCs2E,EAAeroE,EAAS4/L,SAAS7tM,IAAc,IAEjDA,EAAYs2E,GAGd3C,EAASl8E,EAA4BuI,IAChC2yE,EAAqBgB,GAAA,MAClB,IAAIxxE,MACR,4CACEwxE,EACA,uCACAA,EACA,2BAIF+Z,KAA2B1tF,aAAqBq9E,aAClDr9E,EAAY83E,EAAyB93E,MAGvCqJ,EAAQ5Q,KAAK,UAAYk7E,EAAO6K,eAAex+E,IAAA,MAGvC,IAAImC,MAAM,gEAGlBkH,EAAMonM,SAAW98H,EAEVtqE,CAAA,EAx9BX,CA09BGskF,GAAMq4E,KCt8BT,SAAUhmK,GAAA,IAGJiO,EAAW,SAASjO,GAAA,YACXA,GACE,IAAPA,EAAA,QACK,EAKb2tF,GAAMq4E,IAAI0/B,OAAOr9L,KAAK,CACpB,UACA,SAASrI,GACQvH,KAAKyjI,SAASiiE,YAAYn+L,EAAY05L,YAC5CD,YAAYwO,YAAc,MAIvCjoM,EAAS0lM,OAAOr9L,KAAK,CACnB,UACA,SAASrI,GAAA,QAOH84E,EAAMzvE,EAAM5R,EANZk8E,EAAgCl7E,KAAKyjI,SAAS6pE,oBAC9CzvH,EAA8B79E,KAAKyjI,SACpC4mE,4BACCzvH,EAAW56E,KAAKyjI,SAASmiE,mBAAmBr+L,EAAYs3L,OACxDvzL,EAAY/D,EAAYy5L,YAAYwO,YAGpCvxH,GAAA,EACKI,EAAI,EAAGA,EAAI/yE,EAAUrM,SAAWg/E,EAAOI,IAAA,QAC9CgC,EAAO/0E,EAAU+yE,IACJyS,MAAA,IACN,QAEDt7E,EAAS6qE,EAAKtgF,QAAQgtG,MACtBv3F,EAAS6qE,EAAKtgF,QAAQkhM,eAEtBhjH,GAAA,GAAQ,UAGP,gBACA,WACA,WACHA,GAAA,EAAQ,GAID,GAATA,EAAA,MAICwlD,SAASlrC,MAAM,iBACf,IAAI93F,EAAI,EAAGA,EAAI6K,EAAUrM,OAAQwB,IAAK,CACzC4/E,EAAO/0E,EAAU7K,GAAA,IACby5E,EAASl6E,KAAKyjI,SAASm/D,UACvB1kH,EAAYl+E,KAAKyjI,SAASoqE,aAAatmM,EAAYs3L,OAAA,OAE/Cx+G,EAAKyQ,MAAA,IACN,iBAEE2yC,SAASlrC,MAAM,IAAMlY,EAAKpjF,OAAO4hM,MAAQ,mBAE3C,WAEC33L,EAAUlH,KAAKyjI,SAASm7D,sBACxBx+G,EAAWpgF,KAAKyjI,SAASm7D,sBACzB9hH,EAAgB98E,KAAKyjI,SAASoqE,aAAa3mM,EAAQ23L,OAEnDhuL,EAAQwvE,EAAK+oG,OAAS,OAY1BpqL,EACE,kCAZF4R,EACE,UACAsqE,EAA8BmF,EAAKw2B,OAAOt4B,GAC1C,IACAV,EAA4BwC,EAAKw2B,OAAOz4B,EAAIiC,EAAKw2B,OAAOx4B,GACxD,IACAnD,EAA8BmF,EAAKw2B,OAAOt4B,EAAI8B,EAAKw2B,OAAOv4B,GAC1D,IACAT,EAA4BwC,EAAKw2B,OAAOz4B,GACxC,MAOA,cACAlE,EAAO4C,EAAcuD,EAAK43H,WAC1B,IACFj5M,GAAQ,WAAaohF,EAASy+G,MAAQ,OACtC7/L,GAAQ,OAAS47E,EAASikH,MAAQ,OAClC7/L,GAAQ,QAAUk7E,EAAO4C,EAAcjsE,IAAU,OACjD3J,EAAQmsG,QAAUr0G,EAAA,IAEdm/E,EAASj3E,EAAQ23L,MAAQ,OAc7B7/L,EACE,mCAbF4R,EACE,UACAsqE,EAA8BmF,EAAKw2B,OAAOt4B,EAH/B,IAIX,IACAV,EAA4BwC,EAAKw2B,OAAOz4B,EAAIiC,EAAKw2B,OAAOx4B,GACxD,IACAnD,EACEmF,EAAKw2B,OAAOt4B,EAAI8B,EAAKw2B,OAAOv4B,EARnB,IAUX,IACAT,EAA4BwC,EAAKw2B,OAAOz4B,GACxC,MAMA,YACAD,EACEkC,EAAK4zB,OACPj1G,GAAQ,eAEVA,GAAQ,MACRohF,EAASizB,QAAUr0G,EAAA,KAEdykI,SAASlrC,MAAMrxF,EAAQ23L,MAAO,MAAOz+G,EAASy+G,MAAO,iBAGvD,WACHjuL,EACE,UACAsqE,EAA8BmF,EAAKw2B,OAAOt4B,GAC1C,IACAV,EAA4BwC,EAAKw2B,OAAOz4B,GACxC,IACAlD,EAA8BmF,EAAKw2B,OAAOt4B,EAAI8B,EAAKw2B,OAAOv4B,GAC1D,IACAT,EAA4BwC,EAAKw2B,OAAOz4B,EAAIiC,EAAKw2B,OAAOx4B,GACxD,SACED,EAAQiC,EAAKie,OAAS,UAC1Bt/F,EACE,qCAGA4R,EACA,cACAspE,EAAOgE,EAAUmC,EAAK43H,WACtB,IACFj5M,GACE,mEACAo/E,EACA,IACFp/E,GAAQ,mBACRA,GAAQ,WACHykI,SAASlrC,MAAMv5F,GAAA,UAEjB,UACCqhF,EAAKtgF,QAAQqF,KAAM,KACjBk5E,EAAMt+E,KAAKwvM,YAAY0I,SAAS73H,EAAKtgF,QAAQqF,MACjDi7E,EAAKtgF,QAAQkhM,WAAa3iH,EAAI8kD,KAC9B/iD,EAAKtgF,QAAQopE,IAAMmV,EAAIF,CAAA,MAElBiC,EAAKtgF,QAAQopE,MAChBkX,EAAKtgF,QAAQopE,IAAM,MAIvBv4D,EACE,UACAyvE,EAAK83H,YAAY55H,EACjB,IACA8B,EAAK83H,YAAY/5H,EACjB,IACAiC,EAAK83H,YAAY75H,EACjB,IACA+B,EAAK83H,YAAY95H,EACjB,KAEFr/E,EAAO,GACHqhF,EAAKtgF,QAAQgtG,IACf/tG,EACE,iCACA4R,EACA,sCACAspE,EAAOgE,EAAUmC,EAAKtgF,QAAQgtG,MAC9B,YACG,GAAI1sB,EAAKtgF,QAAQkhM,WAAY,OAGlCjiM,EACE,iCACA4R,EACA,0BAJS5Q,KAAKyjI,SAASiiE,YAAYrlH,EAAKtgF,QAAQkhM,YAK3CpC,MACL,OACFx+G,EAAKtgF,QAAQq4M,UAAY/3H,EAAKtgF,QAAQq4M,WAAa,MAC3C/3H,EAAKtgF,QAAQq4M,WAAA,IACd,MACHp5M,GAAQ,mBAEL,OACHA,GAAQ,UAAYqhF,EAAKtgF,QAAQopE,IAAM,cAEpC,OACHkX,EAAKtgF,QAAQujF,KAAOjD,EAAKtgF,QAAQujF,MAAQ,EACzCtkF,GAAQ,UAAYqhF,EAAKtgF,QAAQujF,KAAO,UAErC,YAECovG,EAAM70G,EAA4BwC,EAAKtgF,QAAQopE,KACnDkX,EAAKtgF,QAAQujF,KAAOjD,EAAKtgF,QAAQujF,MAAQ,WAE9BjD,EAAKtgF,QAAQs4M,OACtBh4H,EAAKtgF,QAAQs4M,KAAO,GAEtBr5M,GACE,SACAqhF,EAAKtgF,QAAQujF,KACb,IACAovG,EACA,IACAryG,EAAKtgF,QAAQs4M,KACb,IAKI,IAARr5M,IACFA,GAAQ,WACHykI,SAASlrC,MAAMv5F,IAAA,MAKvBykI,SAASlrC,MAAM,SASxBhxF,EAAS+wM,iBAAmB,SAAS/wM,GAAA,IAC/BiO,EAAWxV,KAAKyjI,SAASqiE,qBAAA,OACrBv+L,EAAQupF,MAAA,IACT,YACE86B,KACHrkH,EAAQsvG,OAAOt4B,EACfh3E,EAAQsvG,OAAOz4B,EACf72E,EAAQsvG,OAAOv4B,EACf/2E,EAAQsvG,OAAOx4B,EACf92E,GAAA,UAGC,WACA,WACHiO,EAASwrL,YAAYwO,YAAY5/L,KAAKrI,GAAA,EAmB5CA,EAASqkH,KAAO,SAASrkH,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,GAAA,IAC/Bk8E,EAAWl7E,KAAKyjI,SAASqiE,qBACzBjoH,EAAgC79E,KAAKyjI,SAAS6pE,oBAC9C1yH,EAA8B56E,KAAKyjI,SAAS4mE,4BAEhDnvH,EAAS8lH,YAAYwO,YAAY5/L,KAAK,CACpCuoM,YAAa,CACX55H,EAAGV,EAA8Bt2E,GACjC62E,EAAGxD,EAA4BplE,GAC/B8oE,EAAGT,EAA8Bt2E,EAAI84E,GACrChC,EAAGzD,EAA4BplE,EAAI5E,IAErC7Q,QAASf,EACT8xF,KAAM,UAgBVvpF,EAASgxM,aAAe,SAAShxM,EAAMiO,EAAG6qE,EAAGzvE,GAAA,IAGvC5R,EAAYk8E,EAFZ2C,EAAiB79E,KAAKw4M,aAAajxM,GACnCqzE,EAAa56E,KAAKyjI,SAASmmE,gBAAkB5pM,KAAKyjI,SAAS6iE,YAAA,YAI3D11L,EAAQ41L,SAAwB,CAElCtrH,EADmBtqE,EAAb41L,SAAA,IAEFl7L,EAAatL,KAAKymM,gBAAgBl/L,EAAM2zE,GAAWj8E,OACvDD,EAAay+E,KAAKwO,KAAKrR,EAAatvE,EAAA,MAEpC4vE,EAAY2C,EACZ7+E,EAAa47E,EAAA,YAGV/lE,KAAKtN,EAAMiO,EAAG6qE,EAAGzvE,GAItByvE,GAAkB,GAAbzF,EAEiB,WAAlBhqE,EAAQu1L,QACV3wL,GAAQqoE,EAAiB,GAEL,UAAlBjtE,EAAQu1L,QACV3wL,GAAQqoE,GAAA,KAEL+tC,KAAKp2G,EAAG6qE,EAAIzF,EAAYM,EAAWl8E,EAAY4R,GAC7CitE,CAAA,EAUTt2E,EAASixM,aAAe,SAASjxM,GAAA,IAC3BiO,EAAWxV,KAAKyjI,SAASozD,cAAA,OAE1B72L,KAAKqnM,mBAAmB9/L,GAAQiO,EAAYxV,KAAKyjI,SAAS6iE,WAAA,EAvVjE,CA4VGpxG,GAAMq4E,KCrYT,SAAUhmK,GAAA,IAOJiO,EAAoB,MACd,CAAC,YACD,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAO,YACxB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,YACD,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,QASf6qE,EAAY,OACN,OACE,YACA,YACA,YACA,aAEF,OACE,YACA,YACA,YACA,aAEF,OAAU,OAAU,OAAU,cAC9B,MACE,WACA,WACA,WACA,WACA,QAIRzvE,EAAoB,MAChB,WACA,WACA,WACA,WACA,OAGJ5R,EAAY,CAAC,KAAM,KAAM,KAAM,MAQnCuI,EAASkxM,iBAAmB,CAAC,EAAD,IAGxBv9H,EAA2B3zE,EAASkxM,iBAAiBC,wBAA0B,SACjFnxM,GAAA,gBAEciO,EAAkBjO,EAAOgE,WAAW,KAGhDsyE,EAAkBt2E,EAASkxM,iBAAiBE,eAAiB,SAC/DpxM,GAAA,MAGoB,iBAAXA,GACP,yEAAyE1F,KACvE0F,EAAA,EAKFqzE,EAAqBrzE,EAASkxM,iBAAiBG,kBAAoB,SACrErxM,GAAA,OAGEs2E,EAAet2E,IACf2zE,EAAwB3zE,IACxBiO,EAAkBjO,EAAOgE,WAAW,IAAItM,QAAU,GAIlDqM,EAAqB/D,EAASkxM,iBAAiBI,kBAAoB,SACrEtxM,GAAA,OAGEs2E,EAAet2E,IAAWvI,EAAU+N,QAAQxF,EAAOgE,WAAW,KAAO,GAIzEhE,EAASkxM,iBAAiBK,4BAA8B,SAASvxM,GAAA,OAE7Ds2E,EAAet2E,IACf2zE,EAAwB3zE,IACxBiO,EAAkBjO,EAAOgE,WAAW,IAAItM,QAAU,OAIlDg/E,EAA4B12E,EAASkxM,iBAAiBM,yBAA2B,SACnFxxM,GAAA,OAGEs2E,EAAet2E,IACf2zE,EAAwB3zE,IACxBiO,EAAkBjO,EAAOgE,WAAW,IAAItM,QAAU,GAItDsI,EAASkxM,iBAAiBO,2BAA6B,SAASzxM,GAAA,OAE5Ds2E,EAAet2E,IACf2zE,EAAwB3zE,IACxBiO,EAAkBjO,EAAOgE,WAAW,IAAItM,QAAU,OAIlDo/E,EAA6B92E,EAASkxM,iBAAiBQ,0BAA4B,SACrF1xM,GAAA,OAGEs2E,EAAet2E,IACf2zE,EAAwB3zE,IAC0B,GAAlDiO,EAAkBjO,EAAOgE,WAAW,IAAItM,MAAA,EAIxCwB,EAAoB8G,EAASkxM,iBAAiBS,iBAAmB,SACnE3xM,GAAA,IAEIiO,EAAI,EACJ5E,EAAeyvE,EACfrhF,EAAS,GACTk8E,EAAkB,MAEjB1lE,EAAI,EAAGA,EAAIjO,EAAQtI,OAAQuW,GAAK,OAAG,IAC3B5E,EAAarJ,EAAQgE,WAAWiK,KACzC0lE,IAG4B,iBAF5BtqE,EAAeA,EAAarJ,EAAQgE,WAAWiK,OAG7CxW,GAAUiC,OAAOw7E,aAAa7rE,GAC9BA,EAAeyvE,EACfnF,EAAkB,GAEhB1lE,IAAMjO,EAAQtI,OAAS,IACzB2R,EAAeyvE,EACfrhF,GAAUuI,EAAQszE,OAAOrlE,GAAK0lE,EAAkB,IAChD1lE,GAAS0lE,EAAkB,EAC3BA,EAAkB,KAGpBtqE,EAAeyvE,EACfrhF,GAAUuI,EAAQszE,OAAOrlE,EAAI0lE,GAC7B1lE,GAAQ0lE,EACRA,EAAkB,UAIfl8E,CAAA,EAGTuI,EAASkxM,iBAAiBU,kBAAoB,SAAS5xM,GAAA,gBAEnDA,QAAA,IACAqJ,EAAkBrJ,EAAOgE,WAAW,SAIpC2uE,EAAkB3yE,EAASkxM,iBAAiBW,eAAiB,SAC/D7xM,EACAiO,EACA6qE,GAAA,OAEKxC,EAAet2E,IAAA,IAIhB2zE,EAAwB3zE,IAnIT,GAuIhB02E,EAAyB12E,KACxBs2E,EAAeroE,KAAgBqoE,EAAewC,KAC9CxC,EAAewC,IAAazF,EAAkBplE,IAC/ColE,EAAkBrzE,KAAiBs2E,EAAeroE,IAClDolE,EAAkBrzE,IAAgB+D,EAAkBkK,IACpDolE,EAAkBrzE,IAAgBqzE,EAAkBplE,GA3ItC,EAiJf6oE,EAA0B92E,IAC1Bs2E,EAAeroE,KACdolE,EAAkBplE,IACnBqoE,EAAewC,IACfpC,EAAyBoC,GAlJZ,EAuJXzF,EAAkBrzE,KAAiBs2E,EAAewC,GAzJxC,EACE,GA6HN,GAuCRnC,EAAc,SAAS32E,GAAA,IAIrB84E,EAAI,EACJzvE,EAAI,EACJ5R,EAAW,EACXk8E,EAAgB,GAChBN,EAAa,GACbtvE,EAAa,GAEb2yE,GAVJ12E,EAAOA,GAAQ,IAUEb,MAAM,QACnB23E,EAAW,OACVgC,EAAI,EAAGA,EAAIpC,EAAMh/E,OAAQohF,GAAK,EAAG,KACpChC,EAASzuE,KAAK,IACTgB,EAAI,EAAGA,EAAIqtE,EAAMoC,GAAGphF,OAAQ2R,GAAK,EACpCsqE,EAAgB+C,EAAMoC,GAAGzvE,GACzBgqE,EAAaqD,EAAMoC,GAAGzvE,EAAI,GAC1BtF,EAAa2yE,EAAMoC,GAAGzvE,EAAI,GACtBitE,EAAe3C,IACjBl8E,EAAWk7E,EAAegB,EAAeN,EAAYtvE,GAEnD+yE,EAASgC,KADO,IAAdrhF,EACaiC,OAAOw7E,aACpBjnE,EAAkB0lE,EAAc3vE,WAAW,IAAIvM,IAGlCk8E,GAGjBmD,EAASgC,IAAMnF,EAInBmD,EAASgC,GAAK5/E,EAAiB49E,EAASgC,GAAA,QAEjChC,EAAS7uE,KAAK,MAKrBtI,EAAiBK,EAASkxM,iBAAiBY,cAAgB9xM,EAAS8xM,cAAgB,eAIlF9xM,EAHAiO,EACsB,iBAAjBzQ,UAAU,GAAkBA,UAAU,GAAKA,UAAU,GAAG8P,KAC7DwrE,EAAU,MAGVthF,MAAM8rF,QAAQr1E,GAAO,KACnB5E,EAAI,MACRyvE,EAAU,GACLzvE,EAAI,EAAGA,EAAI4E,EAAKvW,OAAQ2R,GAAK,EAC5B7R,MAAM8rF,QAAQr1E,EAAK5E,IACrByvE,EAAQzwE,KAAK,CAACsuE,EAAY1oE,EAAK5E,GAAG,IAAK4E,EAAK5E,GAAG,GAAI4E,EAAK5E,GAAG,KAE3DyvE,EAAQzwE,KAAK,CAACsuE,EAAY1oE,EAAK5E,MAGnCrJ,EAAS84E,CAAA,MAET94E,EAAS22E,EAAY1oE,GAAA,MAEK,iBAAjBzQ,UAAU,GACZwC,GAEPxC,UAAU,GAAG8P,KAAOtN,EACbxC,UAAU,KAIrBwC,EAAS0lM,OAAOr9L,KAAK,CAAC,iBAAkB1I,GAAA,CAxW1C,CAyWGguF,GAAMq4E,KC9TNr4E,GAAMq4E,IA9BE+rC,UAAY,SAAS/xM,GAAA,IAExBiO,EAAA,GAKG,iBAJPjO,EAAUA,GAAW,CAAC,GACd4yH,QAAU5yH,EAAQ4yH,SAAW,cAE7B5yH,EAAQ4yH,SACT,KAEEo/E,MAAM,mBAER,KAEE91E,SAASwpE,OAAOtqD,UAAU,oBAAoB,WACjDntI,EAAkBxV,KAAKyjI,SAAS86D,YAAA,KAC3B96D,SAASolC,IAAI,WACbplC,SAASolC,IAAI,kBACbplC,SAASolC,IAAI,sBACbplC,SAASolC,IAAI,kBACbplC,SAASolC,IAAI,WACbplC,SAASolC,IAAI,kBAGfplC,SAASwpE,OAAOtqD,UAAU,cAAc,gBACtClf,SAASolC,IAAI,eAAiBrzJ,EAAkB,kBAIpDxV,IAAA,ECvCX,SAAUuH,GAAA,IAOJiO,EAAS,eACPjO,OAAA,EACJnK,OAAOgY,eAAepV,KAAM,MAAO,CACjCsV,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACZjO,EAAgBiO,CAAA,QAIhBA,EAAS,IAObpY,OAAOgY,eAAepV,KAAM,QAAS,CACnCsV,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GAEViO,EADEstE,MAAMv7E,KAAA,IAAUy+H,OAAO8rE,UAAUvqM,IAAoBA,EAAQ,EACtD,IAEAA,EAEPvH,KAAKs7G,WAAW,MAAMk+F,mBAAA,KACnBl+F,WAAW,MAAMm+F,UAAYjkM,EAAS,UAK7C6qE,EAAU,IAOdjjF,OAAOgY,eAAepV,KAAM,SAAU,CACpCsV,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GAEV84E,EADEyC,MAAMv7E,KAAA,IAAUy+H,OAAO8rE,UAAUvqM,IAAoBA,EAAQ,EACrD,IAEAA,EAERvH,KAAKs7G,WAAW,MAAMo+F,mBAAA,KACnBp+F,WAAW,MAAMq+F,UAAYt5H,EAAU,UAK9CzvE,EAAc,GAClBxT,OAAOgY,eAAepV,KAAM,aAAc,CACxCsV,IAAK,kBACI1E,CAAA,EAET2E,IAAK,SAAShO,GACZqJ,EAAcrJ,CAAA,QAIdvI,EAAS,CAAC,EACd5B,OAAOgY,eAAepV,KAAM,QAAS,CACnCsV,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GACZvI,EAASuI,CAAA,IAIbnK,OAAOgY,eAAepV,KAAM,aAAc,CAAC,EAAD,EAW5CwV,EAAOhX,UAAU88G,WAAa,SAAS/zG,EAAaiO,GAAA,IAE9C6qE,EAAA,GAEgB,QAHpB94E,EAAcA,GAAe,aAIpB,SAEJ84E,KAAO7qE,EACNxV,KAAKsjI,IAAIs2E,UAAUn7M,eAAe4hF,KAAA,KAC/BijD,IAAIs2E,UAAUv5H,GAAO7qE,EAAkB6qE,IAAA,YAG3CijD,IAAIs2E,UAAUC,QAAU75M,KACtBA,KAAKsjI,IAAIs2E,SAAA,EASlBpkM,EAAOhX,UAAUg9G,UAAY,iBACrB,IAAI9xG,MAAM,kCAGlBnC,EAAS0lM,OAAOr9L,KAAK,CACnB,cACA,gBACOwrG,OAAS,IAAI5lG,EAAA,KACb4lG,OAAOkoB,IAAMtjI,IAAA,IA7HxB,CAkIGk1F,GAAMq4E,KC/GT,SAAU/3J,GAAA,IAGJ6qE,EAAa,CAAEiD,KAAM,EAAGna,IAAK,EAAG3qD,OAAQ,EAAGopH,MAAO,GAGlDh3H,GAAA,EAEA5R,EAAc,oBACLgB,KAAKyjI,SAASq2E,WAAA,KAClBr2E,SAASq2E,SAAW,CAAC,EAAD,KACpBr2E,SAASq2E,SAAS3hF,QAAU,OAC5BsL,SAASq2E,SAASC,oBAAA,EAAiB,KACnCt2E,SAASq2E,SAASE,QAAU58M,OAAOe,OAAO,CAAC,EAAGkiF,GAAA,KAC9CojD,SAASq2E,SAASE,QAAQ3xH,MAAQroF,KAAKktM,eAC5ChyH,EAAOx8E,KAAKsB,MAAA,EAIZk7E,EAAS,gBACNuoD,SAASq2E,SAASG,SAAW,IAAIp8H,EAAA,KACjC4lD,SAASq2E,SAAStY,MAAQ,GAG7B3jH,EAAO,eACLt2E,EAAKxC,UAAU,GACnB3H,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACI/N,CAAA,EAETgO,IAAK,SAASC,GACZjO,EAAKiO,CAAA,QAGLA,EAAKzQ,UAAU,GACnB3H,OAAOgY,eAAepV,KAAM,IAAK,CAC/BqiF,YAAA,EACA/sE,IAAK,kBACIE,CAAA,EAETD,IAAK,SAAShO,GACZiO,EAAKjO,CAAA,QAGL84E,EAASt7E,UAAU,GACvB3H,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACA/sE,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GACZ84E,EAAS94E,CAAA,QAGTqJ,EAAU7L,UAAU,GACxB3H,OAAOgY,eAAepV,KAAM,SAAU,CACpCqiF,YAAA,EACA/sE,IAAK,kBACI1E,CAAA,EAET2E,IAAK,SAAShO,GACZqJ,EAAUrJ,CAAA,QAGVvI,EAAQ+F,UAAU,GACtB3H,OAAOgY,eAAepV,KAAM,OAAQ,CAClCqiF,YAAA,EACA/sE,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GACZvI,EAAQuI,CAAA,QAGR2zE,EAAcn2E,UAAU,GAC5B3H,OAAOgY,eAAepV,KAAM,aAAc,CACxCqiF,YAAA,EACA/sE,IAAK,kBACI4lE,CAAA,EAET3lE,IAAK,SAAShO,GACZ2zE,EAAc3zE,CAAA,QAGds2E,EAAS94E,UAAU,UACvB3H,OAAOgY,eAAepV,KAAM,QAAS,CACnCqiF,YAAA,EACA/sE,IAAK,kBACIuoE,CAAA,EAETtoE,IAAK,SAAShO,GACZs2E,EAASt2E,CAAA,IAINvH,IAAA,EAGT69E,EAAKr/E,UAAUgpH,MAAQ,kBACd,IAAI3pC,EACT79E,KAAKu+E,EACLv+E,KAAKo+E,EACLp+E,KAAKqoF,MACLroF,KAAKsoF,OACLtoF,KAAK6U,KACL7U,KAAKM,WACLN,KAAKmmM,MAAA,EAITtoH,EAAKr/E,UAAU07M,QAAU,iBAChB,CACLl6M,KAAKu+E,EACLv+E,KAAKo+E,EACLp+E,KAAKqoF,MACLroF,KAAKsoF,OACLtoF,KAAK6U,KACL7U,KAAKM,WACLN,KAAKmmM,MAAA,EAST3wL,EAAS2kM,kBAAoB,SAAS5yM,GAAA,OACpCvI,EAAYN,KAAKsB,MAAAA,KACZyjI,SAASq2E,SAASC,eACL,mBAATxyM,EAAsBA,OAAA,EACxBvH,IAAA,EASTwV,EAAS4kM,kBAAoB,SAAS7yM,EAAMiO,GAC1CxW,EAAYN,KAAKsB,MAAA,IAEbqgF,GADJ7qE,EAAUA,GAAW,CAAC,GACCw6F,UAAYhwG,KAAK62L,cACpCjmL,EAAO4E,EAAQ8kH,MAAQt6H,KAAKopM,UAC5BluH,EAAc1lE,EAAQ8wL,aAAetmM,KAAKyjI,SAAS6iE,YACnDzoH,EAAQ,EACRjD,EAAgB,EAEhBtvE,EAAY,EACZ2yE,EAAQj+E,KAAA,IAEPjB,MAAM8rF,QAAQtjF,IAAyB,iBAATA,EAAmB,IAChC,iBAATA,EAAA,MAGH,IAAImC,MACR,wGAHFnC,EAAOtG,OAAOsG,EAAA,KAQZ82E,EAAW7oE,EAAQgxL,SACrBnoH,EAAW,EACO,iBAAT92E,EACTA,EAAOvH,KAAKymM,gBAAgBl/L,EAAM82E,GACgB,mBAAzCjhF,OAAOoB,UAAUyS,SAASvS,KAAK6I,KACxCA,EAAOA,EAAKT,QAAO,SAASS,EAAKiO,GAAA,OACxBjO,EAAIy6E,OAAO/D,EAAMwoH,gBAAgBjxL,EAAU6oE,GAAA,GACjD,KAIL92E,EAAOxI,MAAM8rF,QAAQtjF,GAAQA,EAAO,CAACA,GAAA,IAGlC,IAAI9G,EAAI,EAAGA,EAAI8G,EAAKtI,OAAQwB,IAE3Bo9E,GADJvyE,EAAYtL,KAAKqnM,mBAAmB9/L,EAAK9G,GAAI,CAAE65H,KAAM1pH,IAAUyvE,KAE7DxC,EAAQvyE,GAAA,OAIE,IAAVuyE,IACFjD,EAAgBrzE,EAAKtI,QAUhB,CAAEq/E,EAPTT,GAAgB3C,EAOGmD,EANVZ,KAAKC,KACX9C,EAAgByF,EAAWrgF,KAAKgqM,sBAC/B3pH,GAAYrgF,KAAKgqM,sBAAwB,IACzC9uH,EACF,KASJ1lE,EAAS6kM,YAAc,WACrBr7M,EAAYN,KAAKsB,MAAAA,KAEZooI,UAAA,IAED7gI,EAAUvH,KAAKyjI,SAASq2E,SAASE,SAAW35H,EAAA,YAC3CojD,SAASq2E,SAASG,SAAW,IAAIp8H,EACpCt2E,EAAQ+7E,KACR/7E,EAAQ4hE,SAAA,OACR,GACA,KAEGs6D,SAASq2E,SAAStY,OAAS,EAEzBxhM,IAAA,MAeL46E,EAAQplE,EAAS8kM,KAAO,eACtB/yM,EAGFA,EADExC,UAAU,aAAc84E,EACZ94E,UAAU,GAEV,IAAI84E,EAChB94E,UAAU,GACVA,UAAU,GACVA,UAAU,GACVA,UAAU,GACVA,UAAU,GACVA,UAAU,IAGd/F,EAAYN,KAAKsB,MAAA,IACbwV,EAAWxV,KAAKyjI,SAASq2E,SAASG,SAClC/+H,EAAUl7E,KAAKyjI,SAASq2E,SAAS3hF,QACjCv9C,EAAU56E,KAAKyjI,SAASq2E,SAASE,SAAW35H,EAC5C/0E,EAAiBtL,KAAKyjI,SAASq2E,SAASS,eACxCt8H,EAAej+E,KAAKyjI,SAASq2E,SAASU,aAAA,gBAE/BhlM,EAASlV,aACdkV,EAASlV,aAAeiH,EAAYjH,YAEtCiH,EAAYg3E,GAAK/oE,EAAS+oE,GAAK,IAAM/oE,EAAS6yE,OAAS,GACvD9gF,EAAY62E,EAAI5oE,EAAS4oE,GAAK,GAI5B5oE,EAAS4oE,EAAI5oE,EAAS8yE,OAAS/gF,EAAY+gF,OAAS1N,EAAQp8D,OAC5Dxe,KAAKotM,iBAAA,KAEAiN,cACL9yM,EAAY62E,EAAIxD,EAAQzR,IACpB8U,GAAgB3yE,IAAA,KACbmvM,eAAelzM,EAAYjH,YAAA,GAChCiH,EAAY62E,GAAK9yE,EAAe,GAAGg9E,SAGrC/gF,EAAY62E,EAAI5oE,EAAS4oE,EAAI5oE,EAAS8yE,QAAU/gF,EAAY62E,QAAA,IAKvD72E,EAAYsN,KAAK,UACrBsgD,KACH5tD,EAAYg3E,EACZh3E,EAAY62E,EACZ72E,EAAY8gF,MACZ9gF,EAAY+gF,QAAA,IACZ13E,EAA6B,UAAO,GAEZ,UAAtBrJ,EAAY4+L,MAAA,KACTtxL,KACHtN,EAAYsN,KACZtN,EAAYg3E,EAAIh3E,EAAY8gF,MAAQnN,EACpC3zE,EAAY62E,EAAIlD,EAChB,CAAEirH,MAAO,QAAS7tE,SAAU,QAEC,WAAtB/wH,EAAY4+L,MAAA,KAChBtxL,KACHtN,EAAYsN,KACZtN,EAAYg3E,EAAIh3E,EAAY8gF,MAAQ,EACpC9gF,EAAY62E,EAAIlD,EAChB,CACEirH,MAAO,SACP7tE,SAAU,MACVkuE,SAAUj/L,EAAY8gF,MAAQnN,EAAUA,IAAA,KAIvCrmE,KACHtN,EAAYsN,KACZtN,EAAYg3E,EAAIrD,EAChB3zE,EAAY62E,EAAIlD,EAChB,CACEirH,MAAO,OACP7tE,SAAU,MACVkuE,SAAUj/L,EAAY8gF,MAAQnN,EAAUA,KAAA,KAK3CuoD,SAASq2E,SAASG,SAAW1yM,EAC3BvH,IAAA,EAwBTwV,EAASklM,MAAQ,SAASllM,EAAG5E,EAAGqtE,EAAMI,EAAS59E,GAAA,GAC7CzB,EAAYN,KAAKsB,OACZi+E,EAAA,MACG,IAAIv0E,MAAM,8BAQhBwwE,EAGAgE,EAEAh3E,EA4DIk5E,EApEFtD,EAAc,GAChBjsE,EAAe,GACfstE,EAAe,GAEfC,EAAe,CAAC,EAChBE,EAAe,CAAC,EAEhBo0G,EAAkB,GAElBp6E,EAAqB,GAErBrjB,GAbFx0F,EAASA,GAAU,CAAC,GAaAk6M,WAAA,EAClBp8H,GAAA,IAAe99E,EAAO+5M,aACtBn7H,EACE5+E,EAAOsnH,UAAA,IAActnH,EAAOsnH,IAAI,aACF,GAA1BtnH,EAAOsnH,IAAI,aACXtnH,EAAOuvG,UAAY,GACzBxwB,EACE/+E,EAAOu5M,SACP58M,OAAOe,OAAO,CAAEkqF,MAAOroF,KAAKktM,gBAAkB7sH,GAChDsG,EAAoC,iBAAnBlmF,EAAO03H,QAAuB13H,EAAO03H,QAAU,EAChEz7C,EAAwBj8E,EAAOm6M,uBAAyB,UACxD/nB,EAAkBpyL,EAAOo6M,iBAAmB,UAE9C3/H,EAAOx8E,KAAKsB,MAAAA,KAEPyjI,SAASq2E,SAASU,aAAej8H,EAAA,KACjCklD,SAASq2E,SAASE,QAAUx6H,EAAA,KAC5BikD,SAASq2E,SAASgB,gBAAkBz7H,EAAA,KACpCokD,SAASq2E,SAAS3hF,QAAUxxC,EAAA,KAC5B88C,SAASq2E,SAASc,sBAAwBl+H,EAAA,KAC1C+mD,SAASq2E,SAASe,gBAAkBhoB,EAAA,KACpC+D,YAAYv3G,GAGb,MAAAhB,EAGFxtE,EADAisE,EAAc1/E,OAAOyJ,KAAKo3E,EAAK,IAE/BE,EAAerB,EAAY1qE,KAAI,iBACtB,eAEJ,GAAIrT,MAAM8rF,QAAQxM,IAAkC,YAAtB92E,EAAAA,EAAAA,GAAO82E,EAAQ,QAClDvB,EAAcuB,EAAQjsE,KAAI,SAAS7K,GAAA,OAC1BA,EAAOnC,IAAA,IAEhByL,EAAewtE,EAAQjsE,KAAI,SAAS7K,GAAA,OAC3BA,EAAOwzM,QAAUxzM,EAAOnC,MAAQ,MAEzC+4E,EAAeE,EAAQjsE,KAAI,SAAS7K,GAAA,OAC3BA,EAAO4+L,OAAS,UAGpBjsH,EAAI,EAAGA,EAAImE,EAAQp/E,OAAQi7E,GAAK,EACnCoE,EAAaD,EAAQnE,GAAG90E,MAAQi5E,EAAQnE,GAAGmO,OA7YpC,UAAiB,WA+YjBtpF,MAAM8rF,QAAQxM,IAAkC,iBAAfA,EAAQ,KAElDxtE,EADAisE,EAAcuB,EAEdF,EAAerB,EAAY1qE,KAAI,iBACtB,cAKT6iF,GACCl2F,MAAM8rF,QAAQxM,IAAkC,iBAAfA,EAAQ,OAGrCnE,EAAI,EAAGA,EAAI4C,EAAY79E,OAAQi7E,GAAK,EAAG,KAK1CkE,EAJAgC,EAAatD,EAAY5C,IAIE+D,EAAK7rE,KAAI,SAAS7K,GAAA,OACpCA,EAAI64E,EAAA,SAIR8oH,aAAA,EAAmB,QACxBxW,EAAgB9iL,KACd5P,KAAKo6M,kBAAkBvpM,EAAaqpE,GAAI,CACtC81B,SAAUhwG,KAAKyjI,SAASq2E,SAASgB,gBACjCxU,YAAatmM,KAAKyjI,SAAS6iE,cAC1BhoH,GAELJ,EAASE,EAAagC,GAAA,KAGjB8oH,aAAA,EAAmB,UACnBhiM,EAAI,EAAGA,EAAIg3E,EAAOj/E,OAAQiI,GAAK,EAClCwrL,EAAgB9iL,KACd5P,KAAKo6M,kBAAkBl8H,EAAOh3E,GAAI,CAChC8oG,SAAUhwG,KAAKyjI,SAASq2E,SAASgB,gBACjCxU,YAAatmM,KAAKyjI,SAAS6iE,cAC1BhoH,GAKPA,EAAa8B,GACX3C,KAAKC,IAAI54E,MAAM,KAAM4tL,GAAmB/rG,EAAUA,EAGpD+rG,EAAkB,MAMlBn0G,EAAc,KACZ4W,EAAM,CAAC,EAAD,IACLjb,EAAI,EAAGA,EAAI4C,EAAY79E,OAAQi7E,GAAK,EACvCib,EAAIrY,EAAY5C,IAAM,CAAC,EACvBib,EAAIrY,EAAY5C,IAAIrlE,KAAOhE,EAAaqpE,GACxCib,EAAIrY,EAAY5C,IAAIisH,MAAQhoH,EAAajE,GAAA,IAGvCkyD,EAAY9gI,EAAoB5M,KAAKsB,KAAMm1F,EAAK7W,GAGpDg6B,EAAqBx7B,EAAY1qE,KAAI,SAAS7K,GAAA,OACrC,IAAIs2E,EACTroE,EACA5E,EACA0tE,EAAa/2E,GACb6kI,EACAj3C,EAAI5tF,GAAOsN,UAAA,EAEXsgF,EAAI5tF,GAAO4+L,MAAA,SAKV6U,kBAAkB1iG,GAAA,KAGlBmiG,eAAe,GAAG,OAKrBx7H,EAAQZ,EAAQv3E,QAAO,SAASS,EAAIiO,GAAA,OACtCjO,EAAGiO,EAAGpQ,MAAQoQ,EAAG2wL,MACV5+L,CAAA,GACN,CAAC,GAAD,IACE2yE,EAAI,EAAGA,EAAI+D,EAAKh/E,OAAQi7E,GAAK,EAAG,CAC/B,aAAcz5E,GAAUA,EAAOw6M,oBAAoB74M,UACrD3B,EAAOw6M,SACL,CACEC,IAAKhhI,EACL11E,KAAMy5E,EAAK/D,IAEbl6E,MAAA,IAGAk/E,EAAa5zE,EAAoB5M,KAAKsB,KAAMi+E,EAAK/D,GAAIoE,GAAA,IAEpDp3E,EAAI,EAAGA,EAAI41E,EAAY79E,OAAQiI,GAAK,EAAG,KACtCiuI,EAAWl3D,EAAK/D,GAAG4C,EAAY51E,IAC/B,cAAezG,GAAUA,EAAO06M,qBAAqB/4M,UACvD3B,EAAO06M,UACL,CACED,IAAKhhI,EACLkhI,IAAKl0M,EACL1C,KAAM2wI,GAERn1I,MAGJ46E,EAAKl8E,KACHsB,KACA,IAAI69E,EACFroE,EACA5E,EACA0tE,EAAaxB,EAAY51E,IACzBg4E,EACAi2D,EACAj7D,EAAI,EACJ+E,EAAMnC,EAAY51E,KAAA,cAKrBu8H,SAASq2E,SAASuB,QAAU7lM,EAAA,KAC5BiuH,SAASq2E,SAASwB,QAAU1qM,EAC1B5Q,IAAA,MAaLsL,EAAsB,SAA6B/D,EAAOiO,GAAA,IACxD6qE,EAAUrgF,KAAKyjI,SAASq2E,SAAS3hF,QACjCvnH,EAAW5Q,KAAKyjI,SAASq2E,SAASgB,gBAClC97M,EAAcgB,KAAKyjI,SAAS6iE,YAAA,OAEzBlpM,OAAOyJ,KAAKU,GAChB6K,KAAI,SAASxB,GAAA,IACR5R,EAAQuI,EAAMqJ,GAAA,OACX5Q,KAAKymM,gBACVznM,EAAMP,eAAe,QAAUO,EAAM6V,KAAO7V,EAC5CwW,EAAa5E,GAAOyvE,EAAUA,EAAA,GAE/BrgF,MACFoS,KAAI,SAAS7K,GAAA,OAETvH,KAAKgqM,sBAAwBziM,EAAMtI,OAAS2R,EAAY5R,EACzDqhF,EACAA,CAAA,GAEDrgF,MACF8G,QAAO,SAASS,EAAIiO,GAAA,OACZioE,KAAKC,IAAIn2E,EAAIiO,EAAA,GACnB,IAYPA,EAASwlM,kBAAoB,SAASzzM,GACpCvI,EAAYN,KAAKsB,MAAAA,KACZyjI,SAASq2E,SAASS,eAAiBhzM,CAAA,EAW1CiO,EAASilM,eAAiB,SAASlzM,EAAYiO,GAAA,GAC7CxW,EAAYN,KAAKsB,OACZA,KAAKyjI,SAASq2E,SAASS,eAAA,MACpB,IAAI7wM,MAAM,+CAGd22E,EAAA,GAEJzvE,GAAA,EACqD,mBAA1C5Q,KAAKyjI,SAASq2E,SAASC,eAA+B,KAC3D7+H,EAAWl7E,KAAKyjI,SAASq2E,SAASC,eACpC/5M,KACAA,KAAKyjI,SAASq2E,SAAStY,OAAA,KAEpB/9D,SAASq2E,SAASG,SAAW,IAAIp8H,EACpC3C,EAAS,GACTA,EAAS,GACTA,EAAS,GACTA,EAAS,WAER,QAGAguH,aAAA,EAAmB,gBAEpB59L,EAAiB,GACZ2yE,EAAI,EAAGA,EAAIj+E,KAAKyjI,SAASq2E,SAASS,eAAet7M,OAAQg/E,GAAK,EAAG,CACxEoC,EAAkBrgF,KAAKyjI,SAASq2E,SAASS,eAAet8H,GAAGupC,QACvDhyG,IACF6qE,EAAgBjC,EAAIp+E,KAAKyjI,SAASq2E,SAASE,QAAQ7wI,KAAO,EAC1D79D,EAAesE,KAAKywE,IAEtBA,EAAgB//E,WAAaiH,EAAA,IACzB82E,EAAmBr+E,KAAKirM,eAAA,KACvBC,aAAalrM,KAAKyjI,SAASq2E,SAASe,iBAAA,KACpC/P,aAAa9qM,KAAKyjI,SAASq2E,SAASc,uBACzChgI,EAAKl8E,KAAKsB,KAAMqgF,GAAA,KACX6qH,aAAa7sH,EAAA,CAEhB/yE,EAAerM,OAAS,QACrB+7M,kBAAkB1vM,GAAA,KAEpB49L,aAAA,EAAmB,UACxBt4L,GAAA,CAAoB,EA7nBxB,CA+nBGskF,GAAMq4E,KN5pBT,IAAIiuB,GAAiB,CACnB+f,OAAQ,CAAC,SAAU,UAAW,UAC9BC,QAAS,CAAC,UAAW,SAAU,UAC/BxX,OAAQ,CAAC,SAAU,UAAW,WAG5BvI,GAAmB,CACrB,kBACA,kBACA,YACA,iBACA,SACA,gBACA,WACA,iBACA,kBAKEC,GAAoB75D,GAAS45D,IAE7BE,GAAc,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvDC,GAAoB/5D,GAAS85D,IAsC1B,SAASE,GAAkBt0L,GAAA,IAC5BiO,EAASjO,EAASk0M,OAAO57M,QAAQ,OAAQ,IAAI09E,cAE7C8C,EAjCN,SAA4B94E,GAAA,OAGnBi0L,GAFPj0L,EAAQA,GAAS,UAEcA,EAAQ,SAHzC,CAiCiCA,EAASonG,OACpC/9F,EA5BN,SAA6BrJ,GAAA,OACtBA,EAIiB,iBAAXA,EAEFA,GAAU,KAAOA,GAAU,KAAOA,EAAS,KAAQ,EAAIA,EAAS,IAGrE,SAAS1F,KAAK0F,GACTo1E,SAASp1E,GAIX,SADCA,EAEG,IAIA,IAlBF,GAkBE,CApBb,CA4BmCA,EAASoqK,QACtC3yK,EAzCN,SAA8BuI,GAAA,MAGiB,iBAA/Bm0L,GAFdn0L,EAAUA,GAAW,UAEmCA,EAAU,SAHpE,CAyCqCA,EAASm0M,SAAA,MAErC,CACLD,OAAQjmM,EACRm5F,MAAOtuB,EACPsxF,OAAQ/gK,EACR8qM,QAAS18M,EACTgI,IAAKO,EAASP,KAAO,GAIrB20M,IAAKp0M,EAASo0M,KAAO,CACnBv2M,KAAMoQ,EACNm5F,MAAO,CAAC3vG,EAASqhF,EAAOzvE,GAAQpB,KAAK,OA0C3C,SAASssL,GAAgBv0L,EAAaiO,EAAO6qE,EAAOzvE,GAAA,IAC9C5R,EAAA,IAECA,EAAIqhF,EAAOrhF,GAAK,GAAKA,EAAIwW,EAAMvW,OAAQD,GAAK4R,EAAA,GAC3CrJ,EAAYiO,EAAMxW,IAAA,OACbuI,EAAYiO,EAAMxW,IAAA,IAIxBA,EAAIqhF,EAAOrhF,GAAK,GAAKA,EAAIwW,EAAMvW,OAAQD,GAAK4R,EAAA,GAC3CrJ,EAAYiO,EAAMxW,IAAA,OACbuI,EAAYiO,EAAMxW,GAAA,CA6E/B,IAAI+8L,GAA6B,cACjB,YACd6f,MAAO,UACPC,UAAW,UACXC,SAAU,UACVC,QAAS,QACTC,QAAS,QACTC,MAAO,SAGLjgB,GAAc,CAChBkV,QAAS,QACTgL,KAAM,QACNC,KAAM,sBACS,wBACE,qBACH,SAGhB,SAASlgB,GAAa10L,GAAA,MACb,CAACA,EAAKm0M,QAASn0M,EAAKonG,MAAOpnG,EAAKoqK,OAAQpqK,EAAKk0M,QAAQjsM,KAAK,KAoEnE,SAAS2sL,GAAc50L,GAAA,OACdA,EAAM60M,UAAA,CAGf,SAAShgB,GAAsB70L,EAAOiO,GAAA,QAChC6qE,EAAQ,EAELA,EAAQ94E,EAAMtI,QAAQ,IACbsI,EAAMszE,OAAOwF,KAEX7qE,EAAA,MACP,CAACjO,EAAMqN,UAAU,EAAGyrE,GAAQ94E,EAAMqN,UAAUyrE,EAAQ,IAG7DA,GAAS,SAIJ,KAGT,SAASg8G,GAAyB90L,GAAA,IAS5BiO,EAAQjO,EAAMyzE,MAAM,wCAGV,OAAVxlE,EACK,KAGF,CAACA,EAAM,GAAIjO,EAAMqN,UAAUY,EAAM,GAAGvW,QAAA,CAG7C,IOrTMq9L,GAAYE,GAASC,GCrBjBl1L,GR0UNm1L,GAAc,CAAC,US/TnB,SAAUlnL,GAAA,IAsCJ6qE,EACFzvE,EACA5R,EACA6+E,EACAjD,EACAtvE,EACA2yE,EACAI,EACA59E,EA5CEy9E,EAAe,SAAS32E,GAAA,OAC1BA,EAAMA,GAAO,CAAC,EAAD,KACR80M,oBAAsB90M,EAAI80M,sBAAA,EAAuB,KACjDC,cAAgB/0M,EAAI+0M,eAAiB,OACrCzhF,YAActzH,EAAIszH,aAAe,eACjClf,UAAYp0G,EAAIo0G,WAAa,eAC7B4gG,kBAAoBh1M,EAAIg1M,oBAAA,EAAqB,KAC7CC,YAAcj1M,EAAIi1M,aAAe,OACjCliF,KAAO/yH,EAAI+yH,MAAQ,uBACnBtB,aAAezxH,EAAIyxH,cAAgB,kBACnChoB,UAAYzpG,EAAIypG,WAAa,YAC7B8pB,UAAYvzH,EAAIuzH,WAAa,OAC7BC,SAAWxzH,EAAIwzH,UAAY,aAC3B0E,QAAUl4H,EAAIk4H,SAAW,YACzBtQ,KAAO5nH,EAAI4nH,MAAQ,QACnB9Z,eAAA,IACI9tG,EAAI8tG,UACP9tG,EAAI8tG,UAAUmS,QACd,IAAInpC,EAAA,KACLo+H,yBAA2Bl1M,EAAIk1M,0BAA4B,cAC3DpjF,YAAc9xH,EAAI8xH,aAAe,OACjCqjF,UAAYn1M,EAAIm1M,WAAa,QAC7BC,aAAep1M,EAAIo1M,cAAgB,IAAIrxM,EAAA,KACvCsxM,WAAar1M,EAAIq1M,YAAc,QAC/BC,UAAYt1M,EAAIs1M,WAAa,IAAIvxM,EAAA,KACjCwxM,eAAiBv1M,EAAIu1M,gBAAkB,OACvCC,SAAWx1M,EAAIw1M,UAAY,QAC3B7kF,OAAS3wH,EAAI2wH,QAAU,CAAC,EAAG,EAAG,EAAG,QACjC8kF,uBAAyBz1M,EAAIy1M,wBAA0B,OAEvDC,gBAC4B,kBAAxB11M,EAAI01M,iBAAgC11M,EAAI01M,gBAC1Cj9M,IAAA,EAaTwV,EAASy3L,OAAOr9L,KAAK,CACnB,cACA,gBACOgqM,UAAY,IAAI1yM,EAAUlH,MAE/BqgF,EAAKrgF,KAAKyjI,SAAS+zD,GACnB5mL,EAAgC5Q,KAAKyjI,SAAS6pE,oBAC9CtuM,EAA8BgB,KAAKyjI,SAAS4mE,4BAC5CxsH,EAA0B79E,KAAKyjI,SAASwmE,wBACxCrvH,EAAwB56E,KAAKyjI,SAASymE,sBACtC5+L,EAAQtL,KAAKyjI,SAASsqE,MACtB9vH,EAAYj+E,KAAKyjI,SAASuqE,UAC1B3vH,EAASr+E,KAAKyjI,SAASi6D,OACvBj9L,EAAO,IAAIy9E,CAAA,QAIXh3E,EAAY,SAASK,GACvBnK,OAAOgY,eAAepV,KAAM,SAAU,CACpCsV,IAAK,iBACI,CAAEnR,YAAA,EAAmBwqG,OAAA,EAAO,QAInCn5F,EAAOjO,EACXnK,OAAOgY,eAAepV,KAAM,MAAO,CACjCsV,IAAK,kBACIE,CAAA,QAIP6qE,GAAA,EAMJjjF,OAAOgY,eAAepV,KAAM,mBAAoB,CAC9CsV,IAAK,kBACI+qE,CAAA,EAET9qE,IAAK,SAAShO,GACZ84E,EAAoB2rD,QAAQzkI,EAAA,QAI5BqJ,GAAA,EAMJxT,OAAOgY,eAAepV,KAAM,mBAAoB,CAC9CsV,IAAK,kBACI1E,CAAA,EAET2E,IAAK,SAAShO,GACZqJ,EAAoBo7H,QAAQzkI,EAAA,QAI5BvI,EAAQ,EAMZ5B,OAAOgY,eAAepV,KAAM,OAAQ,CAClCsV,IAAK,kBACItW,CAAA,EAETuW,IAAK,SAAShO,GACPu7E,MAAMv7E,KACTvI,EAAQuI,EAAA,QAKV2zE,EAAQ,EAMZ99E,OAAOgY,eAAepV,KAAM,OAAQ,CAClCsV,IAAK,kBACI4lE,CAAA,EAET3lE,IAAK,SAAShO,GACPu7E,MAAMv7E,KACT2zE,EAAQ3zE,EAAA,IAWdnK,OAAOgY,eAAepV,KAAM,SAAU,CACpCsV,IAAK,kBACI7U,EAAKy3H,MAAA,EAEd3iH,IAAK,SAAShO,GAAA,IACRiO,EACiB,iBAAVjO,EACTiO,EAAS,CAACjO,EAAOA,EAAOA,EAAOA,KAE/BiO,EAAS,IAAIzW,MAAM,IACZ,GAAKwI,EAAM,GAClBiO,EAAO,GAAKjO,EAAMtI,QAAU,EAAIsI,EAAM,GAAKiO,EAAO,GAClDA,EAAO,GAAKjO,EAAMtI,QAAU,EAAIsI,EAAM,GAAKiO,EAAO,GAClDA,EAAO,GAAKjO,EAAMtI,QAAU,EAAIsI,EAAM,GAAKiO,EAAO,IAEpD/U,EAAKy3H,OAAS1iH,CAAA,QAIdqoE,GAAA,EAwBJzgF,OAAOgY,eAAepV,KAAM,aAAc,CACxCsV,IAAK,kBACIuoE,CAAA,EAETtoE,IAAK,SAAShO,GACZs2E,EAAct2E,CAAA,QAIdqzE,EAAY,EAMhBx9E,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,kBACIslE,CAAA,EAETrlE,IAAK,SAAShO,GACZqzE,EAAYrzE,CAAA,QAIZ+D,EAAa,GAOjBlO,OAAOgY,eAAepV,KAAM,aAAc,CACxCsV,IAAK,kBACIhK,CAAA,EAETiK,IAAK,SAAShO,GACZ+D,EAAa/D,CAAA,IASjBnK,OAAOgY,eAAepV,KAAM,MAAO,CACjCsV,IAAK,kBACI7U,CAAA,EAET8U,IAAK,SAAShO,GACRA,aAAiB22E,IACnBz9E,EAAO8G,EAAA,IAUbnK,OAAOgY,eAAepV,KAAM,OAAQ,CAClCsV,IAAK,kBACI7U,EAAK0uH,IAAA,EAEd55G,IAAK,SAAShO,GACZ9G,EAAK0uH,KAAO5nH,CAAA,QASZ02E,EAAY,GAChB7gF,OAAOgY,eAAepV,KAAM,WAAY,CACtCsV,IAAK,kBACI2oE,CAAA,EAET1oE,IAAK,SAAShO,GACZ02E,EAAY12E,CAAA,IAahBnK,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,kBACItV,KAAKq7G,IAAIM,SAAA,EAElBpmG,IAAK,SAAShO,GAAA,IACRiO,EACJA,EAAO4qE,EAAQ74E,GAAA,KAEV8zG,IAAIM,UAAYnmG,EAAKm5F,MAAA,KACrB0M,IAAIkhG,kBAA+B,IAAX/mM,EAAK0lE,EAAA,KAC7BmgC,IAAImhG,YAAchnM,EAAK0lE,EAAA,KAEvBooD,IAAIwnE,aAAat1L,EAAK6qE,EAAG7qE,EAAK4qE,EAAG5qE,EAAK2oE,EAAG,CAAEjD,EAAG1lE,EAAK0lE,IAAA,KACnDooD,IAAI4nE,aAAa11L,EAAK6qE,EAAG7qE,EAAK4qE,EAAG5qE,EAAK2oE,EAAG,CAAEjD,EAAG1lE,EAAK0lE,GAAA,IAa5D99E,OAAOgY,eAAepV,KAAM,cAAe,CACzCsV,IAAK,kBACItV,KAAKq7G,IAAIwf,WAAA,EAElBtlH,IAAK,SAAShO,GAAA,IACRiO,EAAO4qE,EAAQ74E,GAAA,KAEd8zG,IAAIwf,YAAcrlH,EAAKm5F,MAAA,KACvB0M,IAAIghG,oBAAiC,IAAX7mM,EAAK0lE,EAAA,KAC/BmgC,IAAIihG,cAAgB9mM,EAAK0lE,EAEf,IAAX1lE,EAAK0lE,EAAA,KACFooD,IAAIonE,aAAa,IAAK,IAAK,MACvBl1L,EAAK0lE,EAAA,KACTooD,IAAIonE,aAAal1L,EAAK6qE,EAAG7qE,EAAK4qE,EAAG5qE,EAAK2oE,GAAA,IAgBjD/gF,OAAOgY,eAAepV,KAAM,UAAW,CACrCsV,IAAK,kBACItV,KAAKq7G,IAAIokB,OAAA,EAElBlqH,IAAK,SAAShO,IACwC,IAAhD,CAAC,OAAQ,QAAS,UAAUwF,QAAQxF,KAAA,KACjC8zG,IAAIokB,QAAUl4H,EAAA,KACd+7H,IAAIqoE,WAAWpkM,GAAA,IAY1BnK,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,kBACItV,KAAKq7G,IAAIyf,SAAA,EAElBvlH,IAAK,SAAShO,GACPu7E,MAAMv7E,KAAA,KACJ8zG,IAAIyf,UAAYvzH,EAAA,KAChB+7H,IAAImmE,aAAaliM,GAAA,IAQ5BnK,OAAOgY,eAAepV,KAAM,WAAY,CACtCsV,IAAK,kBACItV,KAAKq7G,IAAI0f,QAAA,EAElBxlH,IAAK,SAAShO,IACwC,IAAhD,CAAC,QAAS,QAAS,SAASwF,QAAQxF,KAAA,KACjC8zG,IAAI0f,SAAWxzH,EAAA,KACf+7H,IAAIsoE,YAAYrkM,GAAA,IAW3BnK,OAAOgY,eAAepV,KAAM,aAAc,CACxCsV,IAAK,kBACItV,KAAKq7G,IAAIuhG,UAAA,EAElBrnM,IAAK,SAAShO,GACPu7E,MAAMv7E,KAAA,KACJ8zG,IAAIuhG,WAAar1M,EAAA,KACjB+7H,IAAIwoE,cAAcvkM,GAAA,IAK7BnK,OAAOgY,eAAepV,KAAM,eAAgB,CAC1CsV,IAAK,kBACItV,KAAKq7G,IAAI2d,YAAA,EAElBzjH,IAAK,SAAShO,GAAA,KACP8zG,IAAI2d,aAAezxH,CAAA,IAI5BnK,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,kBACItV,KAAKq7G,IAAIrK,SAAA,EAElBz7F,IAAK,SAAShO,IACwD,IAAhE,CAAC,QAAS,MAAO,SAAU,OAAQ,SAASwF,QAAQxF,KAAA,KACjD8zG,IAAIrK,UAAYzpG,EAAA,QAKvB82E,EAAe,cAEVnE,EAAe3yE,EAAKiO,GAAA,GACN,OAAjB6oE,EAAuB,KAGrBgC,EAAA,SAQoB94E,GAAA,IACtBiO,EAAY,UAEhBpY,OAAOyJ,KAAKU,GAAS63E,SAAQ,SAASiB,GACvB94E,EAAQ84E,GAEdjB,SAAQ,SAAS73E,GAAA,IAClBqJ,EAAW,YAEPrJ,GAAA,IACD,OACHqJ,EAAW,CACT6qM,OAAQp7H,EACRsxF,OAAQ,kBAIP,SACH/gK,EAAW,CACT6qM,OAAQp7H,EACRsuB,MAAO,oBAIN,aACH/9F,EAAW,CACT6qM,OAAQp7H,EACRsxF,OAAQ,OACRhjE,MAAO,oBAIN,OACA,SACH/9F,EAAW,CACT6qM,OAAQp7H,GAOG,OAAbzvE,IACFA,EAAS+qM,IAAM,CACbv2M,KAAMi7E,EACNsuB,MAAOpnG,GAGTiO,EAAU5F,KAAKgB,GAAA,OAKd4E,CAAA,CA7DD,CAFUjO,EAAI8hM,eAIlBhrH,ET1WD,SAA0B92E,GAAA,QAC3BiO,EAAM,CAAC,EAEF6qE,EAAI,EAAGA,EAAI94E,EAAUtI,SAAUohF,EAAG,KACrCzvE,EAAairL,GAAkBt0L,EAAU84E,IAEzCrhF,EAAO4R,EAAW6qM,OAClBvgI,EAAUtqE,EAAW8qM,QACrB79H,EAAQjtE,EAAW+9F,MACnB/zB,EAAShqE,EAAW+gK,OAExBn8J,EAAIxW,GAAQwW,EAAIxW,IAAS,CAAC,EAE1BwW,EAAIxW,GAAMk8E,GAAW1lE,EAAIxW,GAAMk8E,IAAY,CAAC,EAC5C1lE,EAAIxW,GAAMk8E,GAAS2C,GAASroE,EAAIxW,GAAMk8E,GAAS2C,IAAU,CAAC,EAC1DroE,EAAIxW,GAAMk8E,GAAS2C,GAAOjD,GAAUhqE,CAAA,QAG/B4E,CAAA,CAlBF,CS0WiC6qE,EAAmB2B,OAAOxsE,GAAA,QAGrD6oE,CAAA,KA2DLn3E,EAAa,KAQjB9J,OAAOgY,eAAepV,KAAM,YAAa,CACvCsV,IAAK,kBACIpO,CAAA,EAETqO,IAAK,SAAShO,GACZ82E,EAAe,KACfn3E,EAAaK,CAAA,IAIjBnK,OAAOgY,eAAepV,KAAM,OAAQ,CAClCsV,IAAK,kBACItV,KAAKq7G,IAAIif,IAAA,EAElB/kH,IAAK,SAAShO,GAAA,IAEJiO,EAAA,QADH6lG,IAAIif,KAAO/yH,EAOA,QADhBiO,EADK,oVACQwmE,KAAKz0E,IAAA,KAEZ84E,EAAY7qE,EAAQ,GAEpB5E,GADc4E,EAAQ,GACTA,EAAQ,IACrBxW,EAAWwW,EAAQ,GAEnB0lE,GADa1lE,EAAQ,GACRA,EAAQ,IAKvBqoE,EADa,yCACa7B,KAAKh9E,GAAU,GAG3CA,EADE,OAAS6+E,EACAJ,KAAK8H,MACd05G,WAAWjgM,GAAYgB,KAAKsjI,IAAIG,SAAS6iE,aAElC,OAASzoH,EACPJ,KAAK8H,MAAM05G,WAAWjgM,GAAYgB,KAAKsjI,IAAIuzD,eAE3Cp5G,KAAK8H,MACd05G,WAAWjgM,GAAYgB,KAAKsjI,IAAIG,SAAS6iE,aAAA,KAIxChjE,IAAIszD,YAAY53L,GAAA,IACjB47E,ETtOL,SAAyBrzE,GAAA,IAE1BiO,EAAI6qE,EADJzvE,EAAS,GAET5R,EAAYuI,EAAMg2G,OAAA,GAEJ,KAAdv+G,EAAA,OACK09L,GAAA,GAGL19L,KAAag9L,GAAA,MACR,CAACA,GAAYh9L,IAAA,KAGD,KAAdA,GAAkB,QACvBqhF,EAAS,KAET7qE,GADAxW,EAAYm9L,GAAcn9L,IACX67E,OAAO,QAGf,QACA,IACHwF,EAAS+7G,GAAsBp9L,EAAU4V,UAAU,GAAIY,GAAA,cAIvD6qE,EAASg8G,GAAyBr9L,GAAA,GAIvB,OAAXqhF,EAAA,OACKq8G,GAAA,GAGT9rL,EAAOhB,KAAKywE,EAAO,IAKD,MAHlBrhF,EAAYm9L,GAAc97G,EAAO,MAGe,MAAxBrhF,EAAU67E,OAAO,UAChC6hH,GAGT19L,EAAYA,EAAUa,QAAQ,KAAM,WAG/B+Q,CAAA,CA7CF,CSsO6BsqE,GAAA,GAExBl7E,KAAKk9M,UAAA,KAYH5xM,ET/VP,SAAyB/D,EAAaiO,EAAO6qE,GAAA,QAG9CzvE,GAFJyvE,EAAOA,GAAQ,CAAC,GAEa88H,mBAAqB,QAC9Cn+M,EAAsB5B,OAAOe,OAC/B,CAAC,EACD49L,GACA17G,EAAK+8H,qBAAuB,CAAC,GAG3BliI,EAAO,KACP2C,EAAU,KAELjD,EAAI,EAAGA,EAAIplE,EAAMvW,SAAU27E,EAAA,GAG9B57E,GAFJk8E,EAAO2gH,GAAkBrmL,EAAMolE,KAEF6gI,UAC3BvgI,EAAKugI,OAASz8M,EAAoBk8E,EAAKugI,SAGrCl0M,EAAY9I,eAAey8E,EAAKugI,QAAS,CAC3C59H,EAAUt2E,EAAY2zE,EAAKugI,QAAA,WAO/B59H,EAAUA,GAAWt2E,EAAYqJ,IAAA,MAKzB,IAAIlH,MACR,8CACEuyL,GAAa/gH,GACb,yBACAtqE,EACA,SAINitE,EAzIF,SAA4Bt2E,EAASiO,GAAA,GAC/BA,EAAYjO,GAAA,OACPiO,EAAYjO,GAAA,IAGjB84E,EAAQq7G,GAAkBn0L,GAI1BqJ,EAAMyvE,GAASq7G,GAAiBsI,QAAc,EAAI,EAClDhlM,EAAQ88L,GAAgBtmL,EAAaimL,GAAkBp7G,EAAOzvE,GAAA,IAE7D5R,EAAA,MAGG,IAAI0K,MACR,oDAAsDnC,GAAA,OAInDvI,CAAA,CApBT,CAyI+Bk8E,EAAKwgI,QAAS79H,GAC3CA,EAnHF,SAA0Bt2E,EAAWiO,GAAA,GAC/BA,EAAYjO,GAAA,OACPiO,EAAYjO,GAAA,QAGjB84E,EAAWm7G,GAAej0L,GAErBqJ,EAAI,EAAGA,EAAIyvE,EAASphF,SAAU2R,EAAA,GACjC4E,EAAY6qE,EAASzvE,IAAA,OAChB4E,EAAY6qE,EAASzvE,IAAA,MAM1B,IAAIlH,MAAM,4CAA8CnC,EAAA,CAfhE,CAmH6B2zE,EAAKyzB,MAAO9wB,KACvCA,EAlGF,SAA2Bt2E,EAAQiO,GAAA,GAC7BA,EAAYjO,GAAA,OACPiO,EAAYjO,GAAA,GAGN,MAAXA,GAAkBiO,EAAY,KAAM,OAC/BA,EAAY,QAGN,MAAXjO,GAAkBiO,EAAY,KAAM,OAC/BA,EAAY,SAGjB6qE,EAAQu7G,GAAkBr0L,GAK1BqJ,EAAQkrL,GAAgBtmL,EAAammL,GAAat7G,EAD5C94E,EAAS,KAAO,EAAI,OAGzBqJ,EAAA,MAGG,IAAIlH,MACR,mDAAqDnC,GAAA,OAIlDqJ,CAAA,CA5BT,CAkG8BsqE,EAAKy2F,OAAQ9zF,IAAA,MAIjC,IAAIn0E,MACR,0CAA4CuyL,GAAa/gH,GAAQ,aAI9D2C,CAAA,CS0SYq+G,CAXOhiH,EAAel6E,KAAKsjI,IAAKtjI,KAAKk9M,WAEpCtiI,EAAMxoE,KAAI,SAAS7K,GAAA,MACtB,CACLk0M,OAAQl0M,EACRm0M,QAAS,SACT/pC,OAAQ/gK,EACR+9F,MAAOtuB,EAAA,UAKNijD,IAAI4lE,QAAQ59L,EAAKqwM,IAAIv2M,KAAMkG,EAAKqwM,IAAIhtG,MAAA,UAIvC1wB,EAAQ,IAEK,SAAfrtE,GACA+rE,SAAS/rE,EAAY,KAAO,KACd,SAAdyvE,KAEApC,EAAQ,QAGQ,WAAdoC,IACFpC,GAAS,UAGU,IAAjBA,EAAMh/E,SACRg/E,EAAQ,kBAENI,EAAgB,GAEhB59E,EAAgB,CAClB48M,MAAO,YACPC,MAAO,YACPC,QAAS,YACTC,QAAS,YACTC,UAAW,YACXC,UAAW,yBACG,YACd9B,MAAO,UACPC,UAAW,UACXC,SAAU,UACVC,QAAS,QACTC,QAAS,QACTC,MAAO,SAGA/9H,EAAI,EAAGA,EAAItD,EAAM37E,OAAQi/E,IAAK,aAEnCl+E,KAAKsjI,IAAIG,SAAS2lE,QAAQxuH,EAAMsD,GAAID,EAAO,CACzC8lH,YAAA,EACAD,gBAAA,IAEF,CACAzlH,EAAgBzD,EAAMsD,GAAA,MAEjB,GACK,eAAVD,QAAA,IACAj+E,KAAKsjI,IAAIG,SAAS2lE,QAAQxuH,EAAMsD,GAAI,OAAQ,CAC1C6lH,YAAA,EACAD,gBAAA,IAGFzlH,EAAgBzD,EAAMsD,GACtBD,EAAQ,YACH,QAAI,IACTj+E,KAAKsjI,IAAIG,SAAS2lE,QAAQxuH,EAAMsD,GAAI,SAAU,CAC5C6lH,YAAA,EACAD,gBAAA,IAEF,CACAzlH,EAAgBzD,EAAMsD,GACtBD,EAAQ,mBAIU,KAAlBI,EAAA,IACG,IAAIn3E,EAAI,EAAGA,EAAI0zE,EAAM37E,OAAQiI,IAAA,GAC5BzG,EAAcm6E,EAAM1zE,IAAK,CAC3Bm3E,EAAgB59E,EAAcm6E,EAAM1zE,IAAA,MAK1Cm3E,EAAkC,KAAlBA,EAAuB,QAAUA,EAAA,KAC5CilD,IAAI4lE,QAAQ7qH,EAAeJ,EAAA,MAIpC7gF,OAAOgY,eAAepV,KAAM,2BAA4B,CACtDsV,IAAK,kBACItV,KAAKq7G,IAAIohG,wBAAA,EAElBlnM,IAAK,SAAShO,GAAA,KACP8zG,IAAIohG,yBAA2Bl1M,CAAA,IAIxCnK,OAAOgY,eAAepV,KAAM,cAAe,CACzCsV,IAAK,kBACItV,KAAKq7G,IAAIge,WAAA,EAElB9jH,IAAK,SAAShO,GAAA,KACP8zG,IAAIge,YAAc9xH,CAAA,IAU3BnK,OAAOgY,eAAepV,KAAM,iBAAkB,CAC5CsV,IAAK,kBACItV,KAAKq7G,IAAIyhG,cAAA,EAElBvnM,IAAK,SAAShO,GAAA,KACP8zG,IAAIyhG,eAAiBv1M,EAC1BixG,EAAY95G,KAAKsB,KAAA,IAKrB5C,OAAOgY,eAAepV,KAAM,WAAY,CACtCsV,IAAK,kBACItV,KAAKq7G,IAAI0hG,QAAA,EAElBxnM,IAAK,SAAShO,GAAA,KACP8zG,IAAI0hG,SAAWx1M,EACpBixG,EAAY95G,KAAKsB,KAAA,IAKrB5C,OAAOgY,eAAepV,KAAM,kBAAmB,CAC7CsV,IAAK,kBACItV,KAAKq7G,IAAI4hG,eAAA,EAElB1nM,IAAK,SAAShO,GAAA,KACP8zG,IAAI4hG,gBAAkBjxE,QAAQzkI,EAAA,KAWzCL,EAAU1I,UAAUghI,YAAc,SAASj4H,GAAA,KACpCw1M,SAAWx1M,CAAA,EASlBL,EAAU1I,UAAUm/M,YAAc,kBAC5B39M,KAAK+8M,SAAS99M,OAAS,EAElBe,KAAK+8M,SAAS/6H,OAAOhiF,KAAK+8M,UAG1B/8M,KAAK+8M,SAAS5sM,OAAA,EAIzBjJ,EAAU1I,UAAU68H,KAAO,WACzBpmC,EAAev2F,KAAKsB,KAAM,QAAQ,IAUpCkH,EAAU1I,UAAUkhI,OAAS,WAC3BzqC,EAAev2F,KAAKsB,KAAM,UAAU,IAUtCkH,EAAU1I,UAAU88H,UAAY,gBACzBnM,KAAO,CACV,CACEr+B,KAAM,WAaZ5pF,EAAU1I,UAAU89H,OAAS,SAAS/0H,EAAGiO,GAAA,GACnCstE,MAAMv7E,IAAMu7E,MAAMttE,GAAA,MACpB0lE,GAAQt4E,MAAM,4CAA6CmC,WACrD,IAAI2E,MAAM,0DAGd22E,EAAKrgF,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAGiO,IAAA,KAEjD25G,KAAKv/G,KAAK,CACbkhF,KAAM,KACNvS,EAAG8B,EAAG9B,EACNH,EAAGiC,EAAGjC,IAAA,KAEHi9B,IAAIwhG,UAAY,IAAIvxM,EAAM/D,EAAGiO,EAAA,EAUpCtO,EAAU1I,UAAUi+H,UAAY,eAC1BjnH,EAAY,IAAIlK,EAAM,EAAG,GACzB+0E,EAAI,MACHA,EAAIrgF,KAAKmvH,KAAKlwH,OAAS,GAAU,IAAPohF,EAAUA,IAAA,GACb,UAAtBrgF,KAAKmvH,KAAK9uC,GAAGyQ,MAEe,YAA5BvpF,EAAAA,EAAAA,GAAOvH,KAAKmvH,KAAK9uC,EAAI,KACS,iBAAvBrgF,KAAKmvH,KAAK9uC,EAAI,GAAG9B,EACxB,CACA/oE,EAAY,IAAIlK,EAAMtL,KAAKmvH,KAAK9uC,EAAI,GAAG9B,EAAGv+E,KAAKmvH,KAAK9uC,EAAI,GAAGjC,GAAA,WAK5D+wC,KAAKv/G,KAAK,CACbkhF,KAAM,eAEHuqB,IAAIwhG,UAAY,IAAIvxM,EAAMkK,EAAU+oE,EAAG/oE,EAAU4oE,EAAA,EAYxDl3E,EAAU1I,UAAU+9H,OAAS,SAASh1H,EAAGiO,GAAA,GACnCstE,MAAMv7E,IAAMu7E,MAAMttE,GAAA,MACpB0lE,GAAQt4E,MAAM,4CAA6CmC,WACrD,IAAI2E,MAAM,0DAGd22E,EAAKrgF,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAGiO,IAAA,KAEjD25G,KAAKv/G,KAAK,CACbkhF,KAAM,KACNvS,EAAG8B,EAAG9B,EACNH,EAAGiC,EAAGjC,IAAA,KAEHi9B,IAAIwhG,UAAY,IAAIvxM,EAAM+0E,EAAG9B,EAAG8B,EAAGjC,EAAA,EAU1Cl3E,EAAU1I,UAAU86H,KAAO,gBACpBje,IAAIqhG,UAAY91E,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKmvH,OACpDl6B,EAAev2F,KAAKsB,KAAM,MAAM,IAclCkH,EAAU1I,UAAUo/M,iBAAmB,SAASr2M,EAAKiO,EAAK6qE,EAAGzvE,GAAA,GACvDkyE,MAAMzC,IAAMyC,MAAMlyE,IAAMkyE,MAAMv7E,IAAQu7E,MAAMttE,GAAA,MAC9C0lE,GAAQt4E,MACN,sDACAmC,WAEI,IAAI2E,MACR,oEAIA1K,EAAMgB,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM+0E,EAAGzvE,IACnDitE,EAAM79E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAKiO,IAAA,KAEpD25G,KAAKv/G,KAAK,CACbkhF,KAAM,MACNosC,GAAIr/C,EAAIU,EACR6+C,GAAIv/C,EAAIO,EACRG,EAAGv/E,EAAIu/E,EACPH,EAAGp/E,EAAIo/E,IAAA,KAEJi9B,IAAIwhG,UAAY,IAAIvxM,EAAMtM,EAAIu/E,EAAGv/E,EAAIo/E,EAAA,EAgB5Cl3E,EAAU1I,UAAUk+H,cAAgB,SAASn1H,EAAMiO,EAAM6qE,EAAMzvE,EAAM5R,EAAG6+E,GAAA,GAEpEiF,MAAM9jF,IACN8jF,MAAMjF,IACNiF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,GAAA,MAENsqE,GAAQt4E,MACN,mDACAmC,WAEI,IAAI2E,MACR,iEAGAkxE,EAAM56E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAMtM,EAAG6+E,IACnDI,EAAMj+E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAMiO,IACtD6oE,EAAMr+E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM+0E,EAAMzvE,IAAA,KAErDu+G,KAAKv/G,KAAK,CACbkhF,KAAM,MACNosC,GAAIj/C,EAAIM,EACR6+C,GAAIn/C,EAAIG,EACRm0H,GAAIl0H,EAAIE,EACRs/H,GAAIx/H,EAAID,EACRG,EAAG3D,EAAI2D,EACPH,EAAGxD,EAAIwD,IAAA,KAEJi9B,IAAIwhG,UAAY,IAAIvxM,EAAMsvE,EAAI2D,EAAG3D,EAAIwD,EAAA,EAgB5Cl3E,EAAU1I,UAAU+8H,IAAM,SACxBh0H,EACAiO,EACA6qE,EACAzvE,EACA5R,EACA6+E,GAAA,GAGEiF,MAAMv7E,IACNu7E,MAAMttE,IACNstE,MAAMzC,IACNyC,MAAMlyE,IACNkyE,MAAM9jF,GAAA,MAENk8E,GAAQt4E,MAAM,yCAA0CmC,WAClD,IAAI2E,MAAM,sDAElBm0E,EAAmBmuD,QAAQnuD,IAEtB79E,KAAKq7G,IAAIhG,UAAUyoG,WAAY,KAC9BljI,EAAM56E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAGiO,IACvDjO,EAAIqzE,EAAI2D,EACR/oE,EAAIolE,EAAIwD,EAAA,IAEJH,EAAUj+E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM,EAAG+0E,IACvDhC,EAAWr+E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM,EAAG,IAC5D+0E,EAAS5C,KAAKqtB,KACZrtB,KAAKsZ,IAAI9Y,EAAQM,EAAIF,EAASE,EAAG,GAC/Bd,KAAKsZ,IAAI9Y,EAAQG,EAAIC,EAASD,EAAG,IAGnCX,KAAK4sB,IAAIrrG,EAAW4R,IAAe,EAAI6sE,KAAKkgB,KAC9C/sF,EAAa,EACb5R,EAAW,EAAIy+E,KAAKkgB,IAAA,KAGjBwxB,KAAKv/G,KAAK,CACbkhF,KAAM,MACNvS,EAAGh3E,EACH62E,EAAG5oE,EACHuoM,OAAQ19H,EACR29H,WAAYptM,EACZqtM,SAAUj/M,EACVk/M,iBAAkBrgI,GAAA,EAkBtB32E,EAAU1I,UAAU2/M,MAAQ,SAAS52M,EAAIiO,EAAI6qE,EAAIzvE,EAAI5R,GAAA,MAC7C,IAAI0K,MAAM,2BAclBxC,EAAU1I,UAAU22D,KAAO,SAAS5tD,EAAGiO,EAAG6qE,EAAGzvE,GAAA,GACvCkyE,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,GAAA,MAC5CsqE,GAAQt4E,MAAM,0CAA2CmC,WACnD,IAAI2E,MAAM,yDAEb4yH,OAAO/0H,EAAGiO,GAAA,KACV+mH,OAAOh1H,EAAI84E,EAAG7qE,GAAA,KACd+mH,OAAOh1H,EAAI84E,EAAG7qE,EAAI5E,GAAA,KAClB2rH,OAAOh1H,EAAGiO,EAAI5E,GAAA,KACd2rH,OAAOh1H,EAAGiO,GAAA,KACV+mH,OAAOh1H,EAAI84E,EAAG7qE,GAAA,KACd+mH,OAAOh1H,EAAGiO,EAAA,EAcjBtO,EAAU1I,UAAUo9G,SAAW,SAASr0G,EAAGiO,EAAG6qE,EAAGzvE,GAAA,GAC3CkyE,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,GAAA,MAC5CsqE,GAAQt4E,MAAM,8CAA+CmC,WACvD,IAAI2E,MAAM,4DAEdozE,EAAkBp+E,KAAKsB,MAAO,CAAP,IAGvBhB,EAAM,CAAC,EACU,SAAjBgB,KAAKy/H,UACPzgI,EAAIygI,QAAUz/H,KAAKy/H,QAAA,KACdA,QAAU,QAEK,UAAlBz/H,KAAK+6H,WACP/7H,EAAI+7H,SAAW/6H,KAAK+6H,SAAA,KACfA,SAAW,cAGbO,YAAA,KACAnmE,KAAK5tD,EAAGiO,EAAG6qE,EAAGzvE,GAAA,KACdyqH,OAEDr8H,EAAIP,eAAe,kBAChBghI,QAAUzgI,EAAIygI,SAEjBzgI,EAAIP,eAAe,mBAChBs8H,SAAW/7H,EAAI+7H,SAAA,GAexB7zH,EAAU1I,UAAU4/M,WAAa,SAAoB72M,EAAGiO,EAAG6qE,EAAGzvE,GAAA,GACxDkyE,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,GAAA,MAC5CsqE,GAAQt4E,MAAM,gDAAiDmC,WACzD,IAAI2E,MAAM,0DAEdmH,EAAoBnS,KAAKsB,QAAAA,KAGxBs7H,YAAA,KACAnmE,KAAK5tD,EAAGiO,EAAG6qE,EAAGzvE,GAAA,KACd8uH,SAAA,EAkBPx4H,EAAU1I,UAAUm+K,UAAY,SAASp1K,EAAGiO,EAAG6qE,EAAGzvE,GAAA,GAC5CkyE,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,GAAA,MAC5CsqE,GAAQt4E,MAAM,+CAAgDmC,WACxD,IAAI2E,MAAM,yDAEd1J,KAAKi9M,kBAAA,KAIJthG,UAAY,eACZC,SAASr0G,EAAGiO,EAAG6qE,EAAGzvE,GAAA,EASzB1J,EAAU1I,UAAU46H,KAAO,SAAS7xH,GAClCA,EAAqC,kBAAhBA,GAA4BA,EAAA,QAC7CiO,EAAgBxV,KAAKsjI,IAAIG,SAASqiE,qBAAqB7E,WAClD5gH,EAAI,EAAGA,EAAIrgF,KAAKsjI,IAAIG,SAASC,mBAAoBrjD,IAAA,KACnDijD,IAAIC,QAAQljD,EAAI,QAChBijD,IAAIG,SAASolC,IAAI,aAEnBvlC,IAAIC,QAAQ/tH,GAEbjO,EAAa,MACV8zG,IAAIrL,SAAWhwG,KAAKsjI,IAAIG,SAASozD,cAAA,IAClCjmL,EAAM,IAAIstE,EAAal+E,KAAKq7G,KAAA,KAC3BgjG,SAASzuM,KAAK5P,KAAKq7G,KAAA,KACnBA,IAAMzqG,CAAA,GAUf1J,EAAU1I,UAAU+6H,QAAU,SAAShyH,GACrCA,EAAmC,kBAAfA,GAA2BA,EAAA,QAC3CiO,EAAgBxV,KAAKsjI,IAAIG,SAASqiE,qBAAqB7E,WAClD5gH,EAAI,EAAGA,EAAIrgF,KAAKsjI,IAAIG,SAASC,mBAAoBrjD,IAAA,KACnDijD,IAAIC,QAAQljD,EAAI,QAChBijD,IAAIG,SAASolC,IAAI,UAEnBvlC,IAAIC,QAAQ/tH,GAEbjO,GAAuC,IAAzBvH,KAAKq+M,SAASp/M,SAAA,KACzBo8G,IAAMr7G,KAAKq+M,SAAShhI,MAAA,KACpBs+B,UAAY37G,KAAKq7G,IAAIM,UAAA,KACrBkf,YAAc76H,KAAKq7G,IAAIwf,YAAA,KACvBP,KAAOt6H,KAAKq7G,IAAIif,KAAA,KAChBmF,QAAUz/H,KAAKq7G,IAAIokB,QAAA,KACnB3E,UAAY96H,KAAKq7G,IAAIyf,UAAA,KACrBC,SAAW/6H,KAAKq7G,IAAI0f,SAAA,KACpBgiF,SAAW/8M,KAAKq7G,IAAI0hG,SAAA,KACpBD,eAAiB98M,KAAKq7G,IAAIyhG,eAAA,EAQnC51M,EAAU1I,UAAUg9G,UAAY,iBACxB,IAAI9xG,MAAM,mCAad02E,EAAU,SAAS74E,GAAA,IAKjBiO,EAAG6qE,EAAGzvE,EAAG5R,EAAA,QAETuI,EAAM+2M,mBACR/2M,EAAQA,EAAMg3M,aAGXh3M,EAAA,MACI,CAAE84E,EAAG,EAAGD,EAAG,EAAGjC,EAAG,EAAGjD,EAAG,EAAGyzB,MAAOpnG,GAAA,GATtB,sEAYF1F,KAAK0F,GACrBiO,EAAI,EACJ6qE,EAAI,EACJzvE,EAAI,EACJ5R,EAAI,MACC,KACDk8E,EApBM,gDAoBUc,KAAKz0E,GAAA,GACT,OAAZ2zE,EACF1lE,EAAImnE,SAASzB,EAAQ,IACrBmF,EAAI1D,SAASzB,EAAQ,IACrBtqE,EAAI+rE,SAASzB,EAAQ,IACrBl8E,EAAI,UAGY,QADhBk8E,EA1BS,gEA0BQc,KAAKz0E,IAEpBiO,EAAImnE,SAASzB,EAAQ,IACrBmF,EAAI1D,SAASzB,EAAQ,IACrBtqE,EAAI+rE,SAASzB,EAAQ,IACrBl8E,EAAIigM,WAAW/jH,EAAQ,QAClB,IACLl8E,EAAI,EAEiB,iBAAVuI,GAA0C,MAApBA,EAAMszE,OAAO,GAAY,KACpDgD,EAAW,IAAI3D,GAAS3yE,GAE1BA,EADEs2E,EAAS4rG,GACH5rG,EAAS20G,QAET,UAIS,IAAjBjrL,EAAMtI,QACRuW,EAAIjO,EAAMqN,UAAU,EAAG,GACvBY,GAAKA,EACL6qE,EAAI94E,EAAMqN,UAAU,EAAG,GACvByrE,GAAKA,EACLzvE,EAAIrJ,EAAMqN,UAAU,EAAG,GACvBhE,GAAKA,IAEL4E,EAAIjO,EAAMqN,UAAU,EAAG,GACvByrE,EAAI94E,EAAMqN,UAAU,EAAG,GACvBhE,EAAIrJ,EAAMqN,UAAU,EAAG,IAEzBY,EAAImnE,SAASnnE,EAAG,IAChB6qE,EAAI1D,SAAS0D,EAAG,IAChBzvE,EAAI+rE,SAAS/rE,EAAG,WAIf,CAAEyvE,EAAG7qE,EAAG4qE,EAAGC,EAAGlC,EAAGvtE,EAAGsqE,EAAGl8E,EAAG2vG,MAAOpnG,EAAA,EAUtCu1E,EAAoB,kBACf98E,KAAKq7G,IAAIkhG,mBAAyC,GAApBv8M,KAAKq5H,WAAA,EAUxCxoH,EAAsB,kBACjBm7H,QAAQhsI,KAAKq7G,IAAIghG,qBAA2C,GAApBr8M,KAAKq5H,YAAA,EActDnyH,EAAU1I,UAAUu7H,SAAW,SAASxyH,EAAMiO,EAAG6qE,EAAGzvE,GAAA,GAC9CkyE,MAAMttE,IAAMstE,MAAMzC,IAAsB,iBAAT94E,EAAA,MACjC2zE,GAAQt4E,MAAM,8CAA+CmC,WACvD,IAAI2E,MAAM,2DAElBkH,EAAWkyE,MAAMlyE,QAAA,EAAwBA,GACrCksE,EAAkBp+E,KAAKsB,MAAO,CAAP,IAIvBhB,EAAOm4L,EAAQn3L,KAAKq7G,IAAIhG,UAAUwiG,UAGlCh6H,EAAQ79E,KAAKq7G,IAAIhG,UAAUmpG,OAE/BpyE,EAAQ1tI,KAAKsB,KAAM,CACjB6U,KAAMtN,EACNg3E,EAAG/oE,EACH4oE,EAAGiC,EACHw4C,MAAOh7C,EACP7lE,MAAOhZ,EACPmnM,MAAOnmM,KAAKgxG,UACZw1F,SAAU51L,GAAA,GAed1J,EAAU1I,UAAUy8H,WAAa,SAAS1zH,EAAMiO,EAAG6qE,EAAGzvE,GAAA,GAChDkyE,MAAMttE,IAAMstE,MAAMzC,IAAsB,iBAAT94E,EAAA,MACjC2zE,GAAQt4E,MAAM,gDAAiDmC,WACzD,IAAI2E,MAAM,8DAEdmH,EAAoBnS,KAAKsB,MAAO,CAIpC4Q,EAAWkyE,MAAMlyE,QAAA,EAAwBA,EAAA,IAErC5R,EAAOm4L,EAAQn3L,KAAKq7G,IAAIhG,UAAUwiG,UAClCh6H,EAAQ79E,KAAKq7G,IAAIhG,UAAUmpG,OAE/BpyE,EAAQ1tI,KAAKsB,KAAM,CACjB6U,KAAMtN,EACNg3E,EAAG/oE,EACH4oE,EAAGiC,EACHw4C,MAAOh7C,EACPqpH,cAAe,SACflvL,MAAOhZ,EACPmnM,MAAOnmM,KAAKgxG,UACZw1F,SAAU51L,GAAA,GAad1J,EAAU1I,UAAUy7H,YAAc,SAAS1yH,GAAA,GACrB,iBAATA,EAAA,MACT2zE,GAAQt4E,MACN,iDACAmC,WAEI,IAAI2E,MACR,+DAGA8L,EAAMxV,KAAKsjI,IACXjjD,EAAIrgF,KAAKsjI,IAAIG,SAAS6iE,YAEtB11L,EAAW4E,EAAIiuH,SAASozD,cACxB73L,EACDwW,EAAI6xL,mBAAmB9/L,GAAQqJ,EAAY4E,EAAIiuH,SAAS6iE,YAWlD,OAEF,IAVW,SAAS/+L,GAAA,IAErBiO,GADJjO,EAAUA,GAAW,CAAC,GACD8gF,OAAS,SAC9BjrF,OAAOgY,eAAepV,KAAM,QAAS,CACnCsV,IAAK,kBACIE,CAAA,IAGJxV,IAAA,CAEF,CAAgB,CAAEqoF,MAZzBrpF,GAAYy+E,KAAKkhB,MAAY,GAAJte,EAAU,GAAM,KAAS,OA0BpDn5E,EAAU1I,UAAUq6H,MAAQ,SAAStxH,EAAYiO,GAAA,GAC3CstE,MAAMv7E,IAAeu7E,MAAMttE,GAAA,MAC7B0lE,GAAQt4E,MAAM,2CAA4CmC,WACpD,IAAI2E,MAAM,yDAEd22E,EAAS,IAAIhC,EAAO92E,EAAY,EAAK,EAAKiO,EAAa,EAAK,QAC3D6lG,IAAIhG,UAAYr1G,KAAKq7G,IAAIhG,UAAU6nF,SAAS78G,EAAA,EAYnDn5E,EAAU1I,UAAU2+L,OAAS,SAAS51L,GAAA,GAChCu7E,MAAMv7E,GAAA,MACR2zE,GAAQt4E,MAAM,4CAA6CmC,WACrD,IAAI2E,MAAM,0DAEd8L,EAAS,IAAI6oE,EACfZ,KAAK8sB,IAAIhjG,GACTk2E,KAAK6sB,IAAI/iG,IACRk2E,KAAK6sB,IAAI/iG,GACVk2E,KAAK8sB,IAAIhjG,GACT,EACA,QAEG8zG,IAAIhG,UAAYr1G,KAAKq7G,IAAIhG,UAAU6nF,SAAS1nL,EAAA,EAYnDtO,EAAU1I,UAAUu6H,UAAY,SAASxxH,EAAGiO,GAAA,GACtCstE,MAAMv7E,IAAMu7E,MAAMttE,GAAA,MACpB0lE,GAAQt4E,MAAM,+CAAgDmC,WACxD,IAAI2E,MAAM,6DAEd22E,EAAS,IAAIhC,EAAO,EAAK,EAAK,EAAK,EAAK92E,EAAGiO,GAAA,KAC1C6lG,IAAIhG,UAAYr1G,KAAKq7G,IAAIhG,UAAU6nF,SAAS78G,EAAA,EAgBnDn5E,EAAU1I,UAAU62G,UAAY,SAAS9tG,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAG6+E,GAAA,GAClDiF,MAAMv7E,IAAMu7E,MAAMttE,IAAMstE,MAAMzC,IAAMyC,MAAMlyE,IAAMkyE,MAAM9jF,IAAM8jF,MAAMjF,GAAA,MACpE3C,GAAQt4E,MAAM,+CAAgDmC,WACxD,IAAI2E,MAAM,6DAEdkxE,EAAS,IAAIyD,EAAO92E,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAG6+E,GAAA,KAClCw9B,IAAIhG,UAAYr1G,KAAKq7G,IAAIhG,UAAU6nF,SAAStiH,EAAA,EAgBnD1zE,EAAU1I,UAAUigN,aAAe,SAASl3M,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,GACzD3zE,EAAIu7E,MAAMv7E,GAAK,EAAIA,EACnBiO,EAAIstE,MAAMttE,GAAK,EAAIA,EACnB6qE,EAAIyC,MAAMzC,GAAK,EAAIA,EACnBzvE,EAAIkyE,MAAMlyE,GAAK,EAAIA,EACnB5R,EAAI8jF,MAAM9jF,GAAK,EAAIA,EACnBk8E,EAAI4H,MAAM5H,GAAK,EAAIA,EAAA,KACdmgC,IAAIhG,UAAY,IAAIh3B,EAAO92E,EAAGiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAA,MAyC7CiD,EAAa,kBAEbn+E,KAAKk4H,OAAO,GAAK,GACjBl4H,KAAKk4H,OAAO,GAAK,GACjBl4H,KAAKk4H,OAAO,GAAK,GACjBl4H,KAAKk4H,OAAO,GAAK,GAkBrBhxH,EAAU1I,UAAU+8G,UAAY,SAC9Bh0G,EACAiO,EACA6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,EACAjD,EACAtvE,GAAA,IAEI7K,EAAkBT,KAAKsjI,IAAIy0E,mBAAmBxwM,GAC9C2yE,EAAU,EACVgE,EAAU,EAGVh3E,EAAc,EACdk5E,EAAc,WAEPxvE,QAAA,IAAiCgqE,IAE1C1zE,EAAc0zE,EAAQhqE,EACtBwvE,EAAc90E,EAAStM,EACvBk7E,EAAYz5E,EAAgB4nF,MAAQz3E,EAAUgqE,EAAShqE,EACvDstE,EAAYz9E,EAAgB6nF,OAAStpF,EAAWsM,EAAUtM,QAAA,IAIjDk8E,IACTA,EAAI1lE,EACJqoE,EAAIwC,EACJ7qE,EAAK,EACL6qE,EAAK,YAGIzvE,QAAA,IAAiCgqE,IAC1CA,EAAQhqE,EACRtF,EAAStM,QAAA,IAEA4R,QAAA,IAAiCgqE,IAC1CA,EAAQn6E,EAAgB4nF,MACxB/8E,EAAS7K,EAAgB6nF,QAAA,QA2BvBxL,EAxBAjsE,EAAiC7Q,KAAKq7G,IAAIhG,UAAUynF,YACpDx+G,EAAQ64G,EAAQtmL,EAA+BssL,OAAOP,KACtD3nG,EAAS,IAAI5W,EAIbgB,GADJ4V,GADAA,GADAA,EAASA,EAAOioG,SAASrsL,EAA+BkoH,YACxCmkE,SAASrsL,EAA+BusL,OACxCF,SAASrsL,EAA+BgoH,QACrC2kE,iBACjB,IAAIv/G,EACF/C,EAAI1lE,EAAKtO,EACT22E,EAAIwC,EAAKD,EACTxvE,EAASspE,EACTl7E,EAAUk/E,IAGVsB,EAAYpB,EAAe1/E,KAAKsB,KAAMq/E,GACtCsH,EAAQ,GACHjK,EAAK,EAAGA,EAAK8C,EAAUvgF,OAAQy9E,GAAM,GACN,IAAlCiK,EAAM55E,QAAQyyE,EAAU9C,KAC1BiK,EAAM/2E,KAAK4vE,EAAU9C,IAAA,GAIzB47B,EAAU3xB,GAGN3mF,KAAK0+M,WAAA,QACH7rB,EAAMlsG,EAAM,GACZwO,EAAMxO,EAAMA,EAAM1nF,OAAS,GACtBmtI,EAAIymD,EAAKzmD,EAAIj3C,EAAM,EAAGi3C,IAAK,MAC7B9I,IAAIC,QAAQ6I,GAAA,IAEbntD,EACFj/E,KAAKsjI,IAAIG,SAASN,SAAS96C,MAAQroF,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC9Dh5C,EAAkB,IAANktD,EAAUpsI,KAAK2+M,KAAO3+M,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC/Did,EACFn1I,KAAKsjI,IAAIG,SAASN,SAAS76C,OAC3BtoF,KAAK2+M,KACL3+M,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACV/4C,EACFn/E,KAAKsjI,IAAIG,SAASN,SAAS76C,OAAStoF,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC/DhjC,EACI,IAANk3C,EAAU,EAAI+I,GAAmB/I,EAAI,GAAKjtD,EAAA,GAEV,IAA9Bn/E,KAAKq7G,IAAIqhG,UAAUz9M,OAAc,KAC/Bm4L,EAAWp3L,KAAKmvH,KACpBryC,EAAW8pD,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKq7G,IAAIqhG,YAAA,KACzCvtF,KAAOujE,EACV51G,EACA98E,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvBhjC,EAAwBhW,EAAYl/E,KAAKq7G,IAAI2hG,wBAEhDz+H,EAAU7/E,KAAKsB,KAAM,QAAQ,QACxBmvH,KAAOioE,CAAA,KAEV16C,EAAU9V,KAAKjkI,MAAMikI,KAAKC,UAAUxnD,IACxCq9D,EAAUg2C,EACR,CAACh2C,GACD18I,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvBhjC,EAAwBhW,EAAYl/E,KAAKq7G,IAAI2hG,wBAC9C,OAEIxkG,GAAiB4zB,EAAIymD,GAAOzmD,EAAIj3C,IAAQhX,EAAWz/E,KAAKsB,MAE1Dw4G,IAAA,KACG8qB,IAAImzD,oBAAA,KACJnzD,IACFnuE,KACCn1D,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACZj5C,EACAE,EACA,MAEDm6C,OACAuuE,eAAA,KAEAvkE,IAAIr2B,SACP1lG,EACA,OACAm1I,EAAQn+D,EACRm+D,EAAQt+D,EACRs+D,EAAQp+D,EACRo+D,EAAQr+D,EACR,KACA,KACAC,GAEEk6B,GAAA,KACG8qB,IAAIwzD,sBAAA,WAIRxzD,IAAIr2B,SACP1lG,EACA,OACA83E,EAAMd,EACNc,EAAMjB,EACNiB,EAAMf,EACNe,EAAMhB,EACN,KACA,KACAC,EAAA,MAKFF,EAAiB,SAAS72E,EAAMiO,EAAW6qE,GAAA,IACzCzvE,EAAS,GACb4E,EAAYA,GAAaxV,KAAKsjI,IAAIG,SAASN,SAAS96C,MACpDhI,EACEA,GACArgF,KAAKsjI,IAAIG,SAASN,SAAS76C,OAAStoF,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,OAC/Dl5H,EAAUgB,KAAK2+M,KAAO3+M,KAAKq7G,IAAI2hG,uBAAA,OAE3Bz1M,EAAKupF,MAAA,YAEN,SACA,KACHlgF,EAAOhB,KAAK6tE,KAAK8H,OAAOh+E,EAAK62E,EAAIp/E,GAAWqhF,GAAa,aAEtD,MACHzvE,EAAOhB,KACL6tE,KAAK8H,OAAOh+E,EAAK62E,EAAIp/E,EAAUuI,EAAKw2M,QAAU19H,GAAa,GAE7DzvE,EAAOhB,KACL6tE,KAAK8H,OAAOh+E,EAAK62E,EAAIp/E,EAAUuI,EAAKw2M,QAAU19H,GAAa,aAG1D,UACCnF,EAAuBk8G,EACzBp3L,KAAKq7G,IAAIwhG,UAAUt+H,EACnBv+E,KAAKq7G,IAAIwhG,UAAUz+H,EACnB72E,EAAK21H,GACL31H,EAAK61H,GACL71H,EAAKg3E,EACLh3E,EAAK62E,GAEPxtE,EAAOhB,KACL6tE,KAAK8H,OAAOrK,EAAqBkD,EAAIp/E,GAAWqhF,GAAa,GAE/DzvE,EAAOhB,KACL6tE,KAAK8H,OACFrK,EAAqBkD,EAAIlD,EAAqBmD,EAAIr/E,GACjDqhF,GACA,aAGH,UACCxC,EAAoB6+D,EACtB18I,KAAKq7G,IAAIwhG,UAAUt+H,EACnBv+E,KAAKq7G,IAAIwhG,UAAUz+H,EACnB72E,EAAK21H,GACL31H,EAAK61H,GACL71H,EAAKgrM,GACLhrM,EAAKs2M,GACLt2M,EAAKg3E,EACLh3E,EAAK62E,GAEPxtE,EAAOhB,KACL6tE,KAAK8H,OAAO1H,EAAkBO,EAAIp/E,GAAWqhF,GAAa,GAE5DzvE,EAAOhB,KACL6tE,KAAK8H,OACF1H,EAAkBO,EAAIP,EAAkBQ,EAAIr/E,GAAWqhF,GACtD,aAGH,OACHzvE,EAAOhB,KAAK6tE,KAAK8H,OAAOh+E,EAAK62E,EAAIp/E,GAAWqhF,GAAa,GACzDzvE,EAAOhB,KAAK6tE,KAAK8H,OAAOh+E,EAAK62E,EAAI72E,EAAK82E,EAAIr/E,GAAWqhF,GAAa,OAGjE,IAAIzF,EAAI,EAAGA,EAAIhqE,EAAO3R,OAAQ27E,GAAK,EAAG,KAClC56E,KAAKsjI,IAAIG,SAASC,mBAAqB9yH,EAAOgqE,IACnD0D,EAAQ5/E,KAAKsB,MAAA,OAGV4Q,CAAA,EAGL0tE,EAAU,eACR/2E,EAAYvH,KAAK27G,UACjBnmG,EAAcxV,KAAK66H,YACnBx6C,EAAOrgF,KAAKs6H,KACZ1pH,EAAU5Q,KAAKy/H,QACfzgI,EAAYgB,KAAK86H,UACjB5/C,EAAWl7E,KAAK+6H,SAAA,KACfuI,IAAI8E,UAAA,KACJzsB,UAAYp0G,EAAA,KACZszH,YAAcrlH,EAAA,KACd8kH,KAAOj6C,EAAA,KACPo/C,QAAU7uH,EAAA,KACVkqH,UAAY97H,EAAA,KACZ+7H,SAAW7/C,CAAA,EAGdw3G,EAAmB,SAASnrL,EAAOiO,EAAG6qE,GAAA,IACnC,IAAIzvE,EAAI,EAAGA,EAAIrJ,EAAMtI,OAAQ2R,IAAA,OACxBrJ,EAAMqJ,GAAGkgF,MAAA,IACV,MACHvpF,EAAMqJ,GAAG2hM,IAAM/8L,EACfjO,EAAMqJ,GAAGitM,IAAMx9H,EAAA,IACZ,MACH94E,EAAMqJ,GAAGssH,IAAM1nH,EACfjO,EAAMqJ,GAAGwsH,IAAM/8C,EAGZ,QAEH94E,EAAMqJ,GAAG2tE,GAAK/oE,EACdjO,EAAMqJ,GAAGwtE,GAAKiC,EAAA,OAGb94E,CAAA,EAGL+wG,EAAY,SAAS/wG,GAAA,OAChBA,EAAMs7K,MAAK,SAASt7K,EAAGiO,GAAA,OACrBjO,EAAIiO,CAAA,KAIXy/E,EAAiB,SAAS1tF,EAAMiO,GAAA,QAU9B6qE,EACAzvE,EAVA5R,EAAYgB,KAAK27G,UACjBzgC,EAAcl7E,KAAK66H,YACnBh9C,EAAU79E,KAAKy/H,QACf7kD,EAAe56E,KAAK86H,UACpBxvH,EAAYmyE,KAAK4sB,IAAIzvB,EAAe56E,KAAKq7G,IAAIhG,UAAUmpG,QACvDvgI,EAAWj+E,KAAK+6H,SAEhB18C,EAAWuoD,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKmvH,OAC1C1uH,EAAQmmI,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKmvH,OAGvCj1C,EAAQ,GAEHgE,EAAI,EAAGA,EAAIz9E,EAAMxB,OAAQi/E,IAAA,YACrBz9E,EAAMy9E,GAAGK,EAAA,QACdr3E,EAAOk3E,EAAe1/E,KAAKsB,KAAMS,EAAMy9E,IAElCkC,EAAK,EAAGA,EAAKl5E,EAAKjI,OAAQmhF,GAAM,GACN,IAA7BlG,EAAMntE,QAAQ7F,EAAKk5E,KACrBlG,EAAMtqE,KAAK1I,EAAKk5E,IAAA,IAMnB,IAAItD,EAAI,EAAGA,EAAI5C,EAAMj7E,OAAQ69E,IAAA,KACzB98E,KAAKsjI,IAAIG,SAASC,mBAAqBxpD,EAAM4C,IAClDwB,EAAQ5/E,KAAKsB,MAAA,GAGjBs4G,EAAUp+B,GAENl6E,KAAK0+M,WAAA,QACH7tM,EAAMqpE,EAAM,GACZ+a,EAAM/a,EAAMA,EAAMj7E,OAAS,GACtBogF,EAAIxuE,EAAKwuE,EAAI4V,EAAM,EAAG5V,IAAK,MAC7BikD,IAAIC,QAAQlkD,GAAA,KAEZs8B,UAAY38G,EAAA,KACZ67H,YAAc3/C,EAAA,KACdukD,QAAU5hD,EAAA,KACVi9C,UAAYxvH,EAAA,KACZyvH,SAAW98C,EAAA,IAEZuB,EACFx/E,KAAKsjI,IAAIG,SAASN,SAAS96C,MAAQroF,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC9DvxC,EAAkB,IAANtH,EAAUr/E,KAAK2+M,KAAO3+M,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC/Dx7C,EACF18E,KAAKsjI,IAAIG,SAASN,SAAS76C,OAC3BtoF,KAAK2+M,KACL3+M,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACV26D,EACF7yL,KAAKsjI,IAAIG,SAASN,SAAS76C,OAAStoF,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC/D/iC,EACI,IAAN9V,EAAU,EAAI3C,GAAmB2C,EAAI,GAAKwzG,EAAA,GAEV,IAA9B7yL,KAAKq7G,IAAIqhG,UAAUz9M,OAAc,KAC/BmtI,EAAWpsI,KAAKmvH,KACpB9uC,EAAWumD,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKq7G,IAAIqhG,YAAA,KACzCvtF,KAAOujE,EACVryG,EACArgF,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvB/iC,EAAwBxO,EAAY3mF,KAAKq7G,IAAI2hG,wBAEhDz+H,EAAU7/E,KAAKsB,KAAMuH,GAAA,GAAM,KACtB4nH,KAAOid,CAAA,IAEdx7H,EAAUg2H,KAAKjkI,MAAMikI,KAAKC,UAAUxoD,IAAA,KAC/B8wC,KAAOujE,EACV9hL,EACA5Q,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvB/iC,EAAwBxO,EAAY3mF,KAAKq7G,IAAI2hG,yBAAA,IAE5CxnM,GAA0B,IAAN6pE,EAAS,KACzBJ,GAAiBI,EAAIxuE,GAAOwuE,EAAI4V,IAAQ9W,EAAWz/E,KAAKsB,MAC1Di/E,IAAA,KACGqkD,IAAImzD,oBAAA,KACJnzD,IACFnuE,KACCn1D,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACZ14C,EACAqzG,EACA,MAEDv5D,OACAuuE,eAELtpH,EAAU7/E,KAAKsB,KAAMuH,EAAMiO,GACvBypE,GAAA,KACGqkD,IAAIwzD,sBAAA,MAGRh8D,UAAYlgD,CAAA,WAGdkgD,UAAYxvH,EACjBizE,EAAU7/E,KAAKsB,KAAMuH,EAAMiO,GAAA,KACtBslH,UAAYlgD,EAAA,KAEdu0C,KAAO9wC,CAAA,EAYVE,EAAY,SAASh3E,EAAMiO,GAAA,IAChB,WAATjO,GAAsBiO,IAAU3E,EAAoBnS,KAAKsB,SAIhD,WAATuH,GAAsBiO,IAAUsnE,EAAkBp+E,KAAKsB,OAAA,SAOvDqgF,EAwFAzvE,EA3FA5R,EAAQ,GAIRk8E,EAAQl7E,KAAKmvH,KACRtxC,EAAI,EAAGA,EAAI3C,EAAMj8E,OAAQ4+E,IAAK,KACjCjD,EAAKM,EAAM2C,GAAA,OAEPjD,EAAGkW,MAAA,IACJ,QACH9xF,EAAM4Q,KAAK,CACTivM,OAAA,IAAO,UAIN,QACH7/M,EAAM4Q,KAAK,CACTskG,OAAA,IAAO,UAIN,KACHl1G,EAAM4Q,KAAK,CACT/O,MAAO+5E,EACPkkI,OAAQ,GACRz0G,IAAK,eAIJ,SACC/+F,EAAMtM,EAAMC,OAAA,GACZi8E,EAAM2C,EAAI,KAAOiF,MAAM5H,EAAM2C,EAAI,GAAGU,KACtC8B,EAAQ,CAACzF,EAAG2D,EAAIrD,EAAM2C,EAAI,GAAGU,EAAG3D,EAAGwD,EAAIlD,EAAM2C,EAAI,GAAGO,GAChD9yE,EAAM,QACEA,GAAO,EAAGA,IAAA,QAEhBtM,EAAMsM,EAAM,GAAG4oG,QAAA,IACfl1G,EAAMsM,EAAM,GAAGuzM,MACf,CACA7/M,EAAMsM,EAAM,GAAGwzM,OAAOlvM,KAAKywE,GAC3BrhF,EAAMsM,EAAM,GAAG++F,IAAIz6F,KAAKgrE,GAAA,gBAQ7B,MACHyF,EAAQ,CACNzF,EAAGsiD,GAAKhiD,EAAM2C,EAAI,GAAGU,EACrB3D,EAAGwiD,GAAKliD,EAAM2C,EAAI,GAAGO,EACrBxD,EAAG23H,GAAKr3H,EAAM2C,EAAI,GAAGU,EACrB3D,EAAGijI,GAAK3iI,EAAM2C,EAAI,GAAGO,EACrBxD,EAAG2D,EAAIrD,EAAM2C,EAAI,GAAGU,EACpB3D,EAAGwD,EAAIlD,EAAM2C,EAAI,GAAGO,GAEtBp/E,EAAMA,EAAMC,OAAS,GAAG6/M,OAAOlvM,KAAKywE,GAAA,UAGjC,UACCpC,EAAK/C,EAAM2C,EAAI,GAAGU,EAAK,EAAM,GAAQ3D,EAAGsiD,GAAKhiD,EAAM2C,EAAI,GAAGU,GAC1DF,EAAKnD,EAAM2C,EAAI,GAAGO,EAAK,EAAM,GAAQxD,EAAGwiD,GAAKliD,EAAM2C,EAAI,GAAGO,GAC1D39E,EAAKm6E,EAAG2D,EAAK,EAAM,GAAQ3D,EAAGsiD,GAAKtiD,EAAG2D,GACtCrE,EAAKU,EAAGwD,EAAK,EAAM,GAAQxD,EAAGwiD,GAAKxiD,EAAGwD,GACtCF,EAAKtD,EAAG2D,EACRr3E,EAAK0zE,EAAGwD,EACZiC,EAAQ,CACNpC,EAAK/C,EAAM2C,EAAI,GAAGU,EAClBF,EAAKnD,EAAM2C,EAAI,GAAGO,EAClB39E,EAAKy6E,EAAM2C,EAAI,GAAGU,EAClBrE,EAAKgB,EAAM2C,EAAI,GAAGO,EAClBF,EAAKhD,EAAM2C,EAAI,GAAGU,EAClBr3E,EAAKg0E,EAAM2C,EAAI,GAAGO,GAEpBp/E,EAAMA,EAAMC,OAAS,GAAG6/M,OAAOlvM,KAAKywE,GAAA,UAGjC,MACHrhF,EAAM4Q,KAAK,CACTkvM,OAAQ,GACRz0G,IAAK,GACLkxB,KAAA,IAGEx8H,MAAM8rF,QAAQ7rF,EAAMA,EAAMC,OAAS,GAAGorG,MACxCrrG,EAAMA,EAAMC,OAAS,GAAGorG,IAAIz6F,KAAKgrE,GAAA,CAavChqE,EAPG4E,EAOK,KANK,WAATjO,EACM,SAEA,eAMR64E,GAAA,EACKjC,EAAI,EAAGA,EAAIn/E,EAAMC,OAAQk/E,IAAA,GAC5Bn/E,EAAMm/E,GAAGo9C,IAAA,QACPn9C,EAAOp/E,EAAMm/E,GAAGksB,IAEX/rB,EAAK,EAAGA,EAAKF,EAAKn/E,OAAQq/E,IAAM,KACnCo0G,EAAMt0G,EAAKE,GAEE,QAAbo0G,EAAI5hG,KACNnK,EAAQjoF,KACNsB,KACA0yL,EAAIn0G,EACJm0G,EAAIt0G,EACJs0G,EAAIqrB,OACJrrB,EAAIsrB,WACJtrB,EAAIurB,SACJvrB,EAAIwrB,sBAAA,EAEJ1oM,GACC4qE,GAGHnB,EAASvgF,KAAKsB,KAAM0yL,EAAIn0G,EAAGm0G,EAAIt0G,GAEjCgC,GAAA,CAAQ,MAEL,IAAI,IAAAphF,EAAMm/E,GAAG+1B,MAAA,KACbovB,IAAIG,SAASolC,IAAI,KACtBzoF,GAAA,OACK,IAAI,IAAAphF,EAAMm/E,GAAG0gI,MAAgB,KAC9BvmG,EAAIt5G,EAAMm/E,GAAGt9E,MAAM09E,EACnB0W,EAAIj2F,EAAMm/E,GAAGt9E,MAAMu9E,EACvBc,EAAUxgF,KAAKsB,KAAMhB,EAAMm/E,GAAG2gI,OAAQxmG,EAAGrjB,GACzC7U,GAAA,CAAQ,CAIRxvE,GACF8rE,EAASh+E,KAAKsB,KAAM4Q,GAElB4E,GACFq9K,EAAOn0L,KAAKsB,KAAA,GAIZq/E,EAAc,SAAS93E,GAAA,IACrBiO,EACFxV,KAAKsjI,IAAIG,SAASozD,cAAgB72L,KAAKsjI,IAAIG,SAAS6iE,YAClDjmH,EAAU7qE,GAAUxV,KAAKsjI,IAAIG,SAASumE,sBAAwB,UAC1DhqM,KAAKq7G,IAAI2d,cAAA,IACV,gBACIzxH,EAAI84E,EAAA,IACR,aACI94E,EAAIiO,EAAS6qE,EAAA,IACjB,iBACI94E,EAAIiO,EAAS,EAAI6qE,EAAA,IACrB,gBACI94E,EAAIiO,EAAS,EAAI6qE,EAIrB,eAEI94E,EAAA,EAITi4E,EAAgB,SAASj4E,GAAA,OAIpBA,EAFLvH,KAAKsjI,IAAIG,SAASozD,cAAgB72L,KAAKsjI,IAAIG,SAAS6iE,aAC9BtmM,KAAKsjI,IAAIG,SAASumE,sBAAwB,IAIpE9iM,EAAU1I,UAAU8+H,qBAAuB,eACrC/1H,EAAiB,oBAErBA,EAAew3M,WAAa,GAC5Bx3M,EAAeg2H,aAAe,SAASh2H,EAAQiO,GAAA,KACxCupM,WAAWnvM,KAAK,CAACrI,EAAQiO,GAAA,EAGhCjO,EAAeg3M,SAAW,kBACO,IAA3Bv+M,KAAK++M,WAAW9/M,OACX,UAGFe,KAAK++M,WAAW,GAAG,IAG5Bx3M,EAAe+2M,kBAAA,EACR/2M,CAAA,EAETL,EAAU1I,UAAUw+H,cAAgB,kBAC3Bh9H,KAAKs9H,sBAAA,EAEdp2H,EAAU1I,UAAUk/H,qBAAuB,kBAClC19H,KAAKs9H,sBAAA,MAcV32C,EAAU,SACZp/E,EACAiO,EACA6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,EACAjD,EACAtvE,GAAA,QAGI2yE,EAASkB,EAAUzgF,KAAKsB,KAAMqgF,EAAGzvE,EAAI5R,EAAIk8E,GAEpCmD,EAAI,EAAGA,EAAIJ,EAAOh/E,OAAQo/E,IAAK,KAClC59E,EAAQw9E,EAAOI,GACT,IAANA,IACE/yE,EACF6pF,EAAOz2F,KAAKsB,KAAMS,EAAMy8H,GAAK31H,EAAG9G,EAAM28H,GAAK5nH,GAE3CypE,EAASvgF,KAAKsB,KAAMS,EAAMy8H,GAAK31H,EAAG9G,EAAM28H,GAAK5nH,IAGjD2/H,EAAUz2I,KACRsB,KACAuH,EACAiO,EACA/U,EAAM8xM,GACN9xM,EAAMo9M,GACNp9M,EAAMgyM,GACNhyM,EAAMu+M,GACNv+M,EAAM+xM,GACN/xM,EAAMw+M,GAAA,CAILrkI,EAGHi4G,EAAOn0L,KAAKsB,MAFZ08E,EAASh+E,KAAKsB,KAAM69E,EAAA,EAMpBnB,EAAW,SAASn1E,GAAA,OACdA,GAAA,IACD,cACE+7H,IAAIG,SAASolC,IAAI,eAEnB,YACEvlC,IAAIG,SAASolC,IAAI,OAKxBgqB,EAAS,gBACNvvD,IAAIhK,OAAA,KACJgK,IAAIukE,aAAA,EAGP1yG,EAAS,SAAS5tF,EAAGiO,GAAA,KAClB8tH,IAAIG,SAASolC,IAChBj4J,EAA8BrJ,GAC5B,IACAvI,EAA4BwW,GAC5B,OAIF42H,EAAU,SAAS7kI,GAAA,IACjBiO,EAAA,OACIjO,EAAQ4+L,OAAA,IACT,YACA,MACH3wL,EAAY,kBAET,SACHA,EAAY,eAGT,QAEHA,EAAY,WAIZ6qE,EAAiBrgF,KAAKsjI,IAAI82E,kBAAkB7yM,EAAQsN,MACpDjE,EAAYyuE,EAAY3gF,KAAKsB,KAAMuH,EAAQ62E,GAE3Cp/E,EADUwgF,EAAc9gF,KAAKsB,KAAM4Q,GAClByvE,EAAehC,EAEhCnD,EAAKl7E,KAAKq7G,IAAIhG,UAAUioF,aAAa,IAAIhyL,EAAM/D,EAAQg3E,EAAG3tE,IAC1DitE,EAAiC79E,KAAKq7G,IAAIhG,UAAUynF,YACpDliH,EAAS,IAAIyD,EAGjBzD,GADAA,GADAA,EAASA,EAAOsiH,SAASr/G,EAA+Bk7C,YACxCmkE,SAASr/G,EAA+Bu/G,OACxCF,SAASr/G,EAA+Bg7C,OAAA,QAkBpDp4H,EAAUy5E,EAASgE,EAhBnBh3E,EAAelH,KAAKq7G,IAAIhG,UAAUmoF,iBACpC,IAAIv/G,EAAU12E,EAAQg3E,EAAG3tE,EAAWyvE,EAAe/B,EAAG+B,EAAehC,IAEnE+B,EAAaxF,EAAO4iH,iBACtB,IAAIv/G,EAAU12E,EAAQg3E,EAAGv/E,EAAMqhF,EAAe/B,EAAG+B,EAAehC,IAE9DvB,EAAYsB,EAAe1/E,KAAKsB,KAAMogF,GACtCvvE,EAAQ,GACHytE,EAAK,EAAGA,EAAKxB,EAAU79E,OAAQq/E,GAAM,GACN,IAAlCztE,EAAM9D,QAAQ+vE,EAAUwB,KAC1BztE,EAAMjB,KAAKktE,EAAUwB,IAAA,GAIzBg6B,EAAUznG,GAGN7Q,KAAK0+M,WAAA,QACHzpH,EAAMpkF,EAAM,GACZ81E,EAAM91E,EAAMA,EAAM5R,OAAS,GACtBy9E,EAAIuY,EAAKvY,EAAIiK,EAAM,EAAGjK,IAAK,MAC7B4mD,IAAIC,QAAQ7mD,GAAA,IAEbm2G,EAAkB,IAANn2G,EAAU18E,KAAK2+M,KAAO3+M,KAAKk4H,OAAO,GAAKl4H,KAAKk4H,OAAO,GAC/D/iC,EACFn1F,KAAKsjI,IAAIG,SAASN,SAAS76C,OAC3BtoF,KAAK2+M,KACL3+M,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACVkU,EACFpsI,KAAKsjI,IAAIG,SAASN,SAAS76C,OAAStoF,KAAKk4H,OAAO,GAC9Cj5C,EACFmtD,EAA8BpsI,KAAKk4H,OAAO,GACxCh5C,EACFl/E,KAAKsjI,IAAIG,SAASN,SAAS96C,MAAQroF,KAAKk4H,OAAO,GAC7Cid,EAAwBj2D,EAA4Bl/E,KAAKk4H,OAAO,GAChE/4C,EACI,IAANzC,EAAU,EAAIyY,GAAmBzY,EAAI,GAAKuC,EAAA,GAEV,IAA9Bj/E,KAAKq7G,IAAIqhG,UAAUz9M,OAAc,KAC/Bi2F,EAAWl1F,KAAKmvH,KACpB1uH,EAAWmmI,KAAKjkI,MAAMikI,KAAKC,UAAU7mI,KAAKq7G,IAAIqhG,YAAA,KACzCvtF,KAAOujE,EACVjyL,EACAT,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvB,EAAI/4C,EAAwB0zG,GAE/Bt0G,EAAU7/E,KAAKsB,KAAM,QAAQ,QACxBmvH,KAAOj6B,CAAA,KAEViiG,EAAmBzE,EACrB,CAAC9rD,KAAKjkI,MAAMikI,KAAKC,UAAUzmD,KAC3BpgF,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvB/4C,EAAwB0zG,EAAY7yL,KAAKq7G,IAAI2hG,wBAC9C,GAEEz1M,EAAQsxH,OAAS,MACnB3+C,EAAUl6E,KAAKsjI,IAAIG,SAASozD,cAAA,KACvBvzD,IAAIszD,YAAY18G,EAAU3yE,EAAQsxH,OACvC36C,EAAel+E,KAAK86H,UAAA,KACfA,UAAY58C,EAAe32E,EAAQsxH,OAAA,IAGtCu+D,EAA8B,SAApBp3L,KAAK0+M,WAAA,GAGjBtnB,GACAD,EAAiB/4G,EAAI+4G,EAAiB94G,GAAK+tD,GAAA,GAGzCgrD,GACCD,EAAiB/4G,GAAKy0G,GACrBsE,EAAiB54G,GAAKW,EACxB,KACIw9D,EAAc06C,EACd7vL,EAAQsN,KACR7U,KAAKsjI,IAAImjE,gBACPl/L,EAAQsN,KACRtN,EAAQi/L,UACNtnH,EAA4Bi4G,EAAiB54G,GAC/C,GACFi6B,EAAqBk6E,EACvB,CAAC9rD,KAAKjkI,MAAMikI,KAAKC,UAAU3/H,KAC3BlH,KAAK4+M,KAAO5+M,KAAKk4H,OAAO,IACvB/4C,EACC0zG,EACA7yL,KAAKq7G,IAAI2hG,wBACX,GAEI5nH,EACJgiG,IAAY16G,EAAIuY,GAAOvY,EAAIiK,IAAQxI,EAAWz/E,KAAKsB,MAEjDo1F,IAAA,KACGkuC,IAAImzD,oBAAA,KACJnzD,IACFnuE,KACCn1D,KAAKk4H,OAAO,GACZl4H,KAAKk4H,OAAO,GACZid,EACAl2D,EACA,MAEDq6C,OACAuuE,eAAA,KAGAvkE,IAAIzuH,KACP6nI,EACAlkC,EAAmBj6B,EACnBi6B,EAAmBp6B,EACnB,CACEpmE,MAAOzQ,EAAQyQ,MACfmuL,MAAO3wL,EACP0xL,cAAe3/L,EAAQ2/L,gBAIvB9xG,GAAA,KACGkuC,IAAIwzD,sBAAA,OAOTK,EAAiB/4G,EAAIguD,IAAA,KAElB/wB,IAAI2hG,wBACP5wE,EAA8B+qD,EAAiB/4G,GAIjD72E,EAAQsxH,OAAS,WACdyK,IAAIszD,YAAY18G,GAAA,KAChB4gD,UAAY58C,EAAA,MAIjB32E,EAAQsxH,OAAS,MACnB3+C,EAAUl6E,KAAKsjI,IAAIG,SAASozD,cAAA,KACvBvzD,IAAIszD,YAAY18G,EAAU3yE,EAAQsxH,OACvC36C,EAAel+E,KAAK86H,UAAA,KACfA,UAAY58C,EAAe32E,EAAQsxH,OAAA,KAErCyK,IAAIzuH,KAAKtN,EAAQsN,KAAMqmE,EAAGqD,EAAIv+E,KAAK4+M,KAAM1jI,EAAGkD,EAAIp+E,KAAK2+M,KAAM,CAC9D3mM,MAAOzQ,EAAQyQ,MACfmuL,MAAO3wL,EACP0xL,cAAe3/L,EAAQ2/L,cACvBV,SAAUj/L,EAAQi/L,WAGhBj/L,EAAQsxH,OAAS,WACdyK,IAAIszD,YAAY18G,GAAA,KAChB4gD,UAAY58C,EAAA,EAKnBe,EAAW,SAAS13E,EAAGiO,EAAG6qE,EAAOnF,GACnCmF,EAAQA,GAAS,EACjBnF,EAAQA,GAAS,OAEZooD,IAAIG,SAASolC,IAChBj4J,EAA8BrJ,EAAI84E,GAChC,IACArhF,EAA4BwW,EAAI0lE,GAChC,OAIFgE,EAAY,SAAS33E,EAAOiO,EAAG6qE,GAAA,OAC1BrgF,KAAKsjI,IAAIslC,MAAMrhK,EAAOiO,EAAG6qE,EAAG,KAAM,OAGvC80D,EAAY,SAAS5tI,EAAGiO,EAAG5E,EAAI5R,EAAIk8E,EAAI5vE,EAAI2yE,EAAII,GAAA,KAC5CilD,IAAIG,SAASolC,IAChB,CACExoF,EAAGxC,EAAwBjtE,EAAKrJ,IAChC84E,EAAGzF,EAAsB57E,EAAKwW,IAC9B6qE,EAAGxC,EAAwB3C,EAAK3zE,IAChC84E,EAAGzF,EAAsBtvE,EAAKkK,IAC9B6qE,EAAGxC,EAAwBI,EAAK12E,IAChC84E,EAAGzF,EAAsByD,EAAK7oE,IAC9B,KACAhG,KAAK,OAUP2vE,EAAY,SAAS53E,EAAQiO,EAAY6qE,EAAUzvE,GAAA,QAEjD5R,EAAkB,EAAVy+E,KAAKkgB,GACbziB,EAASuC,KAAKkgB,GAAK,EAEhBnoF,EAAa6qE,GAClB7qE,GAA0BxW,EAAA,IAExB6+E,EAAaJ,KAAK4sB,IAAIhqB,EAAW7qE,GACjCqoE,EAAa7+E,GACX4R,IACFitE,EAAa7+E,EAAQ6+E,GAAA,QAKrBjD,EAAS,GAGTtvE,EAAMsF,GAAiB,EAAI,EAE3BqtE,EAAKzoE,EACFqoE,EArBO,MAqBiB,KAEzBQ,EAAKJ,EADI3yE,EAAMmyE,KAAKyD,IAAIrD,EAAY3C,GAExCN,EAAOhrE,KAAKslF,EAAex2F,KAAKsB,KAAMuH,EAAQ02E,EAAII,IAClDR,GAAcJ,KAAK4sB,IAAIhsB,EAAKJ,GAC5BA,EAAKI,CAAA,QAGAzD,CAAA,EAULsa,EAAiB,SAAS3tF,EAAGiO,EAAI6qE,GAAA,IAC/BzvE,GAAKyvE,EAAK7qE,GAAM,EAEhBxW,EAAKuI,EAAIk2E,KAAK8sB,IAAI35F,GAClBsqE,EAAK3zE,EAAIk2E,KAAK6sB,IAAI15F,GAClBitE,EAAK7+E,EACL47E,GAAMM,EAEN5vE,EAAKuyE,EAAKA,EAAKjD,EAAKA,EACpBqD,EAAK3yE,EAAKuyE,EAAK7+E,EAAK47E,EAAKM,EACzBmD,EAAO,EAAI,GAAMZ,KAAKqtB,KAAK,EAAIx/F,EAAK2yE,GAAMA,IAAQJ,EAAK3C,EAAKN,EAAK57E,GAEjEyB,EAAKo9E,EAAKQ,EAAKzD,EACfV,EAAKU,EAAKyD,EAAKR,EACfK,EAAKz9E,EACLyG,GAAMgzE,EAENkG,EAAKxvE,EAAI4E,EACTsnE,EAASW,KAAK8sB,IAAInqB,GAClBvvE,EAAS4sE,KAAK6sB,IAAIlqB,GAAA,MAEf,CACL88C,GAAI31H,EAAIk2E,KAAK8sB,IAAI/0F,GACjB4nH,GAAI71H,EAAIk2E,KAAK6sB,IAAI90F,GACjB+8L,GAAI9xM,EAAKq8E,EAAS5C,EAAKrpE,EACvBgtM,GAAIp9M,EAAKoQ,EAASqpE,EAAK4C,EACvB21H,GAAIv0H,EAAKpB,EAAS51E,EAAK2J,EACvBmuM,GAAI9gI,EAAKrtE,EAAS3J,EAAK41E,EACvB01H,GAAIjrM,EAAIk2E,KAAK8sB,IAAIlqB,GACjB4+H,GAAI13M,EAAIk2E,KAAK6sB,IAAIjqB,GAAA,EAIjB82G,EAAU,SAAS5vL,GAAA,OACL,IAARA,EAAek2E,KAAKkgB,EAAA,EAG1By5F,EAA4B,SAAS7vL,EAAIiO,EAAI6qE,EAAKzvE,EAAK5R,EAAIk8E,GAAA,IACzD2C,EAAQt2E,EAAkB,IAAZ84E,EAAM94E,GACpBqzE,EAAQplE,EAAkB,IAAZ5E,EAAM4E,GACpBlK,EAAQtM,EAAkB,IAAZqhF,EAAMrhF,GACpBq/E,EAAQnD,EAAkB,IAAZtqE,EAAMsqE,GACpBz6E,EAAWg9E,KAAKyD,IAAI35E,EAAIvI,EAAI6+E,EAAOvyE,GACnC4uE,EAAWuD,KAAKC,IAAIn2E,EAAIvI,EAAI6+E,EAAOvyE,GACnC4yE,EAAWT,KAAKyD,IAAI1rE,EAAI0lE,EAAIN,EAAOyD,GACnCn3E,EAAWu2E,KAAKC,IAAIloE,EAAI0lE,EAAIN,EAAOyD,GAAA,OAChC,IAAIJ,EACTx9E,EACAy9E,EACAhE,EAAWz5E,EACXyG,EAAWg3E,EAAA,EAKXw+D,EAAyB,SAASn1I,EAAIiO,EAAI6qE,EAAIzvE,EAAI5R,EAAIk8E,EAAI2C,EAAIjD,GAAA,IAQ5DtvE,EACF+yE,EACA59E,EACAy5E,EACAgE,EACAh3E,EAKAk5E,EACAtD,EACAjsE,EACAstE,EACAC,EACAE,EACAo0G,EACAp6E,EAxBErjB,EAAO5U,EAAK94E,EACZg3E,EAAO3tE,EAAK4E,EACZ6pE,EAAOrgF,EAAKqhF,EACZb,EAAOtE,EAAKtqE,EACZ+1E,EAAO9I,EAAK7+E,EACZ09E,EAAO9B,EAAKM,EAAA,IA0BXmD,EAAI,EAAGA,EAAI,GAAeA,IAoB7BxtE,GAPAuvE,GAXA3/E,EAAK8G,GADL+D,EAAI+yE,EA1BU,IA2BA4W,GAWJ3pF,IATV4yE,EAAKmC,EAAK/0E,EAAI+zE,GAIF5+E,IAYH6K,GALJ4yE,EAAK5yE,GATLtM,EAAKsM,EAAIq7E,EAIFzI,GAOAkC,GAIZjC,GAPArB,GAXA5C,EAAK1kE,EAAKlK,EAAIizE,GAWJjzE,IATVpE,EAAK0J,EAAKtF,EAAIk0E,GAIFtF,IAYH5uE,GALJpE,EAAKoE,GATL4vE,EAAK5vE,EAAIoxE,EAIFx1E,GAOA41E,GAIH,GAALuB,GACFD,EAAOvtE,EACPytE,EAAOH,EACPu0G,EAAO7hL,EACPynG,EAAOn6B,IAEPC,EAAOX,KAAKyD,IAAI9C,EAAMvtE,GACtBytE,EAAOb,KAAKyD,IAAI5C,EAAMH,GACtBu0G,EAAOj1G,KAAKC,IAAIg1G,EAAM7hL,GACtBynG,EAAO76B,KAAKC,IAAI46B,EAAMn6B,IAAA,OAGnB,IAAIF,EACTR,KAAKkhB,MAAMvgB,GACXX,KAAKkhB,MAAMrgB,GACXb,KAAKkhB,MAAM+zF,EAAOt0G,GAClBX,KAAKkhB,MAAM2Z,EAAOh6B,GAAA,EAWlBk6B,EAAc,cAGbx4G,KAAKk/M,cACLl/M,KAAKq7G,IAAI0hG,SAAS99M,QAClBe,KAAKq7G,IAAIyhG,eAAA,KAZsBv1M,EAAUiO,EAkBtC6qE,GAlB4B94E,EAmBhCvH,KAAKq7G,IAAI0hG,SAnBiCvnM,EAoB1CxV,KAAKq7G,IAAIyhG,eAnBJl2E,KAAKC,UAAU,CACpBk2E,SAAUx1M,EACVu1M,eAAgBtnM,KAmBdxV,KAAKk/M,eAAiB7+H,IAAA,KACnBijD,IAAI9D,YAAYx/H,KAAKq7G,IAAI0hG,SAAU/8M,KAAKq7G,IAAIyhG,gBAAA,KAC5CoC,aAAe7+H,EAAA,GA5lF1B,CA+lFG6U,GAAMq4E,KC7mFT,SAAUhmK,GAAA,IAGJ84E,EAAgB,SAAS94E,GAAA,IACvBiO,EAAG6qE,EAAGzvE,EAAG5R,EAAGk8E,EAAG2C,EAAGjD,EAAGtvE,EAAG2yE,EAAGI,EAAA,IAG5B,eAAex8E,KAAK0F,GAGnB84E,EAAI,GACJzvE,EAAI,EACJ5R,GAHAuI,GADAiO,EAAI,WAAmBrF,MAAM5I,EAAEtI,OAAS,GAAK,IAIvCA,OACRD,EAAI4R,EACJA,GAAK,EAOH,KALDsqE,GACE3zE,EAAEgE,WAAWqF,IAAM,KACnBrJ,EAAEgE,WAAWqF,EAAI,IAAM,KACvBrJ,EAAEgE,WAAWqF,EAAI,IAAM,GACxBrJ,EAAEgE,WAAWqF,EAAI,KAUZitE,GADA3C,IAFAA,IAFAA,IAFAA,GAAKA,GADJmD,EAAInD,EAAI,KACK,KACd+C,EAAI/C,EAAI,KACM,KACd5vE,EAAI4vE,EAAI,KACM,KACdN,EAAIM,EAAI,KACM,IACN,GACTmF,EAAEzwE,KAAKiuE,EAAI,GAAIjD,EAAI,GAAItvE,EAAI,GAAI2yE,EAAI,GAAII,EAAI,KAC3CgC,EAAEzwE,KAAK,YAEZ,SAASrI,EAAGiO,GAAA,IACN,IAAI6qE,EAAI7qE,EAAG6qE,EAAI,EAAGA,IAAK94E,EAAE81E,KAAA,CAD/B,CAEEgD,EAAG7qE,EAAEvW,QACRgC,OAAOw7E,aAAa33E,MAAM7D,OAAQo/E,GAAK,MAIvCzvE,EAAgB,SAASrJ,GAAA,IACvBiO,EACF6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,EAAI58E,OACJ25E,EAAI,SACJtvE,EAAI,IACJ2yE,EAAI,aACJI,EAAI,QACJ59E,EAAI,cAEK8G,EAAE82E,IAAI,GACb92E,EAAIA,EAAE82E,GAAG,GAAI,GACV59E,GAAG,MAAO,IACVA,GAAG,IAAK,SAGXmQ,EAAI,GACJ5R,EAAI,EACJk8E,GAHA3zE,GADAiO,EAAI,QAAQ6oE,GAAG92E,EAAEqzE,GAAK,GAAK,IAIrBA,GACRM,EAAIl8E,EACJA,GAAK,EAEJqhF,EACC,UAAY94E,EAAE02E,GAAGj/E,GAAK,IACtB,QAAUuI,EAAE02E,GAAGj/E,EAAI,GAAK,IACxB,MAAQuI,EAAE02E,GAAGj/E,EAAI,GAAK,IACtB,IAAMuI,EAAE02E,GAAGj/E,EAAI,GAAK,KACnBuI,EAAE02E,GAAGj/E,EAAI,GAAK,IACf4R,EAAEhB,KAAKtE,EAAK+0E,GAAK,GAAK/0E,EAAK+0E,GAAK,GAAK/0E,EAAK+0E,GAAK,EAAI/0E,EAAI+0E,GAAA,OAExD,SAAS94E,EAAGiO,GAAA,IACN,IAAI6qE,EAAI7qE,EAAG6qE,EAAI,EAAGA,IAAK94E,EAAE81E,KAAA,CAD/B,CAEEzsE,EAAG4E,EAAEolE,IACRiD,EAAEpB,aAAa33E,MAAM+4E,EAAGjtE,EAAA,EAexB5R,EAAiB,SAASuI,GAAA,IACxBiO,EAAkB,IAAIukE,OAAO,2BAEL,KAD5BxyE,EAAQA,EAAM1H,QAAQ,MAAO,KACnBkN,QAAQ,OAChBxF,EAAQA,EAAMzG,OAAO,EAAGyG,EAAMwF,QAAQ,OAEpCxF,EAAMtI,OAAS,IACjBsI,GAAS,UAEPiO,EAAgB3T,KAAK0F,GAAA,MAChB,WAEL84E,EAAS,GACJzvE,EAAI,EAAGA,EAAIrJ,EAAMtI,OAAQ2R,GAAK,EACrCyvE,GAAUp/E,OAAOw7E,aAAa,MAAQl1E,EAAMqJ,GAAKrJ,EAAMqJ,EAAI,YAEtDyvE,CAAA,EAeLnF,EAAc,SAAS3zE,GAAA,QACrB84E,EAAM,IAAIuE,WAAWr9E,EAAKtI,QAC1B2R,EAAIrJ,EAAKtI,OACN2R,KACLyvE,EAAIzvE,GAAKrJ,EAAKgE,WAAWqF,GAAA,OAE3ByvE,EAAM7qE,EAAS6qE,IACJv5E,QAAO,SAASS,EAAMiO,GAAA,OACxBjO,EAAOtG,OAAOw7E,aAAajnE,EAAA,GACjC,KAILjO,EAASy4L,qBAAuB,SAASz4L,EAAUiO,GAAA,IAE7CqoE,EAAI,EACJjD,EAAOrzE,GAAY,GACnB+D,EAAe,OAGQ,iBAF3BkK,EAAcA,GAAe,MAG3BA,EAAc,CAACA,IAGZqoE,EAAI,EAAGA,EAAIroE,EAAYvW,OAAQ4+E,GAAK,EAAG,OAClCroE,EAAYqoE,IAAA,IACb,oBACA,iBACHjD,EAAOhqE,EAAcgqE,GACrBtvE,EAAasE,KAAK,4BAEf,oBACA,iBACHgrE,EAAOyF,EAAczF,GACrBtvE,EAAasE,KAAK,4BAEf,qBACA,kBACHgrE,EAAO57E,EAAe47E,GACtBtvE,EAAasE,KAAK,6BAEf,qBACA,kBACHgrE,EAAsBA,EAlFvBl0E,MAAM,IACN0L,KAAI,SAAS7K,GAAA,OACJ,IAAMA,EAAMgE,aAAa0F,SAAS,KAAKd,OAAO,MAEvDX,KAAK,IAAM,IA+EVlE,EAAasE,KAAK,6BAEf,kBACA,eACHgrE,EAAOM,EAAYN,GACnBtvE,EAAasE,KAAK,oCAGZ,IAAIlG,MACR,gBAAkB8L,EAAYqoE,GAAK,8BAKpC,CAAEr5E,KAAMo2E,EAAMqlH,aAAc30L,EAAa2jH,UAAUz/G,KAAK,OArLnE,CAuLG0lF,GAAMq4E,MFpLChmK,GAoGP2tF,GAAMq4E,KAzFE6nC,SAAW,SAAS7tM,EAAKiO,EAAM6qE,GAAA,gBAchB94E,EAAKiO,EAAM6qE,GACjC7qE,GAAA,IAAOA,EACP6qE,EAA+B,mBAAbA,EAA0BA,EAAW,iBACnDzvE,OAAA,EAAS,IAsCXA,EApCQ,SAASrJ,EAAKiO,EAAM6qE,GAAA,IACxBzvE,EAAU,IAAIoqG,eACdh8G,EAAI,EAEJk8E,EAAkB,SAAS3zE,GAAA,IACzBiO,EAAajO,EAAKtI,OAClBohF,EAAY,GACZzvE,EAAqB3P,OAAOw7E,aAAA,IAG3Bz9E,EAAI,EAAGA,EAAIwW,EAAYxW,GAAK,EAC/BqhF,EAAUzwE,KAAKgB,EAAwC,IAArBrJ,EAAKgE,WAAWvM,KAAA,OAE7CqhF,EAAU7wE,KAAK,QAGxBoB,EAAQqjG,KAAK,MAAO1sG,GAAMiO,GAE1B5E,EAAQuuM,iBAAiB,2CAErB3pM,IACF5E,EAAQwrG,OAAS,WACQ,MAAnBxrG,EAAQy8G,OACVhtC,EAASnF,EAAgBl7E,KAAKo/M,eAE9B/+H,OAAA,EAAS,GAIfzvE,EAAQk9G,KAAK,MAETt4G,GAA2B,MAAnB5E,EAAQy8G,OAAA,OACXnyC,EAAgBtqE,EAAQwuM,aAAA,CAhCzB,CAoCK73M,EAAKiO,EAAM6qE,EAAA,CAExB,MAAO94E,GAAA,QACFqJ,CAAA,CA1D+B,CAChBrJ,EAAKiO,EAAM6qE,EAAA,EAWnC94E,GAAS83M,cAAgB93M,GAAS6tM,SGnBpC,SAAU5/L,GAAA,SAGC6qE,IAAA,OAEDzvE,GAAY6vH,YACP15C,QAAQD,QAAQl2E,GAAY6vH,aAG9B,6CAGNvkB,OAAM,SAAS30G,GAAA,OACPw/E,QAAQC,OAAO,IAAIt9E,MAAM,+BAAiCnC,GAAA,IAElE+/E,MAAK,SAAS//E,GAAA,OACNA,EAAYy2E,QAAUz2E,EAAYy2E,QAAUz2E,CAAA,aAIhDvI,IAAA,OAED4R,GAAY0uM,UACPv4H,QAAQD,QAAQl2E,GAAY0uM,WAG9B,oCAGNpjG,OAAM,SAAS30G,GAAA,OACPw/E,QAAQC,OAAO,IAAIt9E,MAAM,6BAA+BnC,GAAA,IAEhE+/E,MAAK,SAAS//E,GAAA,OACNA,EAAUy2E,QAAUz2E,EAAUy2E,QAAUz2E,CAAA,QAUjD2zE,EAAU,SAAS1lE,GAAA,IACjB6qE,GAAA94E,EAAAA,EAAAA,GAAciO,GAAA,MACL,cAAT6qE,EAA6B,YACf,WAATA,GAAqB7qE,aAAevU,OAAe,SAC1C,WAATo/E,GAAqB7qE,aAAewwH,OAAe,SAC1C,aAAT3lD,GAAuB7qE,aAAepT,SAAiB,WACrDoT,GAAOA,EAAIhO,cAAgBzI,MAAc,QAC3CyW,GAAwB,IAAjBA,EAAI/I,SAAuB,UACzB,WAAT4zE,EAA0B,SACvB,WASVxC,EAAgB,SAASt2E,EAASiO,GAAA,IAChC6qE,EAAKZ,SAASrsE,cAAc7L,GAAA,IAK3B,IAAIqJ,KAJL4E,EAAIitG,YAAWpiC,EAAGoiC,UAAYjtG,EAAIitG,WAClCjtG,EAAI6kG,WAAa7kG,EAAI+pM,YACvBl/H,EAAGg6B,UAAY7kG,EAAI+pM,UAAUC,SAAShqM,EAAI6kG,YAE5B7kG,EAAIm5F,MAClBtuB,EAAGsuB,MAAM/9F,GAAO4E,EAAIm5F,MAAM/9F,GAAA,OAErByvE,CAAA,EAoDLzF,EAAS,SAASrzE,EAAOiO,GAAA,IAEvB6qE,EAAOjjF,OAAOe,OAChBoJ,EAAOo/H,QAAQ5/C,QAAQD,WACvB8/C,KAAKjkI,MAAMikI,KAAKC,UAAUt/H,EAAOi9H,YAE/B5zH,EAAOrJ,EAAOo/H,QAAQ5/C,QAAQD,UAAWzG,GAAA,OAG7CzvE,EAAOA,EAAKk2H,YAAY,EAAGv/H,EAAQ,EAAG,CAACA,KAC3BgO,IAAIC,EAAA,GAKlBolE,EAAOp8E,UAAYpB,OAAOkpF,OAAOS,QAAQvoF,YACxBgJ,YAAcozE,EAG/BA,EAAO+rD,QAAU,SAAiBp/H,EAASiO,GAAA,OAEzCjO,EAAQ4+E,UAAY3wE,GAAWolE,EAAOp8E,UAC/B+I,CAAA,EAGTqzE,EAAO4pD,SAAW,CAChBv0E,KAAM,CACJjpD,IAAK,KACLw6G,UAAW,KACXylB,QAAS,KACT7rB,OAAQ,KACRD,IAAK,KACLmoB,IAAK,KACLH,SAAU,KACV13H,SAAU,cAEZy7H,SAAU,CACRd,IAAK,EACLe,MAAO,KACPv2H,EAAG,EACHmkH,MAAO,IAET+N,IAAK,CACHsE,SAAU,WACVlP,OAAQ,CAAC,EAAG,EAAG,EAAG,GAClB6K,aAAA,EACAxkD,EAAG,EACHH,EAAG,EACHqiD,YAAa,CAAC,EACdqD,MAAO,CAAC,EACRh7B,gBAAiB,gBAMrBluB,EAAOp8E,UAAUypF,KAAO,SAAc1gF,EAAKiO,GAAA,OAYlCxV,KAAKsnF,MAAK,kBACf9xE,EAAOA,GAAA,SAZQjO,GAAA,OACP2zE,EAAQ3zE,IAAA,IACT,eACI,aACJ,gBACmC,WAA/BA,EAAIuI,SAASytE,cAA6B,SAAW,wBAErD,WAKJ,CAAgBh2E,IAAA,IAEhB,gBACIvH,KAAKsnF,KAAKtoF,GAAesoF,MAAK,SAAS9xE,GAAA,OACrCxV,KAAKuV,IAAI,CACdvO,IAAK62E,EAAc,MAAO,CACxBw8B,UAAW9yG,EACXg4M,UAAW/pM,KAAA,QAId,iBACIxV,KAAKuV,IAAI,CAAEvO,IAAKO,IAAA,IACpB,gBACIvH,KAAKuV,IAAI,CAAE6lG,OAAQ7zG,IAAA,IACvB,aACIvH,KAAKuV,IAAI,CAAE4lG,IAAK5zG,IAAA,eAEhBvH,KAAK4C,MAAM,6BAK1Bg4E,EAAOp8E,UAAUwpF,GAAK,SAAYzgF,GAAA,OAExBA,GAAA,IACD,mBACIvH,KAAK4iI,cAAA,IACT,gBACI5iI,KAAKunI,WAAA,IACT,aACIvnI,KAAKwnI,QAAA,IACT,aACIxnI,KAAK6iI,QAAA,eAEL7iI,KAAK4C,MAAM,qBAIxBg4E,EAAOp8E,UAAUokI,YAAc,kBAYtB5iI,KAAKynI,SAVE,CACZ,kBAEIznI,KAAKiwD,KAAKjpD,KAAOhH,KAAK4C,MAAM,uCAGhC,kBACS5C,KAAKiwD,KAAKkzE,UAAYnjI,KAAK0nI,aAAA,IAGRpgD,MAAK,eAW7B//E,EAAe,CACjBnH,SAAU,WACVkvG,QAAS,eACTjnB,OAC6B,iBAAnBroF,KAAK8iI,IAAIz6C,OAChBvF,MAAM9iF,KAAK8iI,IAAIz6C,QACgB,iBAAzBroF,KAAK8iI,IAAI/B,aACfj+C,MAAM9iF,KAAK8iI,IAAI/B,aAEZtjD,KAAKC,IACH19E,KAAKiwD,KAAKjpD,IAAIoiF,YACdppF,KAAKiwD,KAAKjpD,IAAIkiF,YACdlpF,KAAKiwD,KAAKjpD,IAAImiF,aAJhBnpF,KAAK8iI,IAAI/B,aAKJ,KACXz9C,KAAM,EACNskD,MAAO,EACPz+D,IAAK,EACL+uD,OAAQ,OACRpvB,gBAAiB9oG,KAAK8iI,IAAIh6B,iBAGxBtzF,EAnMQ,SAAZjO,EAAqBiO,EAAM6qE,GAAA,QAEzBzvE,EACgB,IAAlB4E,EAAK/I,SACDgzE,SAASv6E,eAAesQ,EAAK1R,WAC7B0R,EAAK7E,WAAA,GACF3R,EAAQwW,EAAK9J,WAAY1M,EAAOA,EAAQA,EAAM2M,aAAA,IAEnD00E,GACmB,IAAnBrhF,EAAMyN,UACa,WAAnBzN,EAAM8Q,UAENc,EAAMvP,YAAYkG,EAAUvI,EAAOqhF,IAAA,OAIjB,IAAlB7qE,EAAK/I,WAEe,WAAlB+I,EAAK1F,UACPc,EAAMy3E,MAAQ7yE,EAAK6yE,MACnBz3E,EAAM03E,OAAS9yE,EAAK8yE,OACpB13E,EAAM0qG,WAAW,MAAMC,UAAU/lG,EAAM,EAAG,IACf,aAAlBA,EAAK1F,UAA6C,WAAlB0F,EAAK1F,WAC9Cc,EAAMpT,MAAQgY,EAAKhY,OAIrBoT,EAAMovE,iBACJ,QACA,WACEpvE,EAAMwyE,UAAY5tE,EAAK4tE,UACvBxyE,EAAMuyE,WAAa3tE,EAAK2tE,UAAA,QAOvBvyE,CAAA,CAtCO,CAoMV5Q,KAAKiwD,KAAKjpD,IACVhH,KAAK8iI,IAAIrC,YAAYyF,mBAGA,SAAnB1wH,EAAOtR,UACTqD,EAAa+gF,OACX7K,KAAKC,IACH+B,SAAS+H,KAAK6B,aACd5J,SAAS+H,KAAKxE,aACdvD,SAAStwE,gBAAgBm6E,aACzB7J,SAAStwE,gBAAgBk6E,aACzB5J,SAAStwE,gBAAgB6zE,cACvB,WAGH/yB,KAAKg3E,QAAUppD,EAAc,MAAO,CACvC4kC,UAAW,oBACX9T,MAhDe,CACfvuG,SAAU,QACVqwG,SAAU,SACV8B,OAAQ,IACRjvB,KAAM,YACNskD,MAAO,EACPppH,OAAQ,EACR2qD,IAAK,UA2CFlZ,KAAKuxD,UAAY3jC,EAAc,MAAO,CACzC4kC,UAAW,sBACX9T,MAAOpnG,IAAA,KAEJ0oD,KAAKuxD,UAAUngH,YAAYmU,GAAA,KAC3By6C,KAAKuxD,UAAU91G,WAAWrK,YAC7Bw8E,EAAc,MAAO,CACnB8wB,MAAO,CACL8wG,MAAO,OACP/0F,OAAQ,qBACRwN,OAAQ,EACRC,QAAS,EACT7vC,OAAQ,WAITr4B,KAAKuxD,UAAU7S,MAAMc,MAAQ,YAC7Bx/C,KAAKg3E,QAAQ5lI,YAAYrB,KAAKiwD,KAAKuxD,WACxC/hC,SAAS+H,KAAKnmF,YAAYrB,KAAKiwD,KAAKg3E,SAAA,KAC/Bh3E,KAAKuxD,UAAU91G,WAAWijG,MAAMvuG,SAAW,gBAC3C6vD,KAAKuxD,UAAUl5B,OAClB7K,KAAKC,IACH19E,KAAKiwD,KAAKuxD,UAAU91G,WAAW49E,aAC/BtpF,KAAKiwD,KAAKuxD,UAAU91G,WAAW29E,aAC/BrpF,KAAKiwD,KAAKuxD,UAAU91G,WAAWs3E,cAC7B,SAIVpI,EAAOp8E,UAAU+oI,SAAW,eAEtBhgI,EAAU,CACZ,kBAEIk4E,SAAS+H,KAAK4rB,SAASpzG,KAAKiwD,KAAKuxD,YAAcxhH,KAAK4iI,aAAA,UAMnD5iI,KAAKynI,SAASlgI,GAClB+/E,KAAKjH,GACLiH,MAAK,SAAuB//E,GAAA,IAEvBiO,EAAUpY,OAAOe,OAAO,CAAC,EAAG6B,KAAK8iI,IAAIrC,aAAA,cAClCjrH,EAAQuyH,WAERxgI,EAAYvH,KAAKiwD,KAAKuxD,UAAWhsG,EAAA,IAEzC8xE,MAAK,SAAuB//E,IAEVvH,KAAK8iI,IAAIrC,YAAYsH,YAAc,cACzCxgI,GAAA,KAEN0oD,KAAKmrD,OAAS7zG,EACnBk4E,SAAS+H,KAAK35E,YAAY7N,KAAKiwD,KAAKg3E,QAAA,KAI1CrsD,EAAOp8E,UAAUkhN,YAAc,eAEzBn4M,EAAU,CACZ,kBAEIk4E,SAAS+H,KAAK4rB,SAASpzG,KAAKiwD,KAAKuxD,YAAcxhH,KAAK4iI,aAAA,UAMnD5iI,KAAKynI,SAASlgI,GAClB+/E,KAAKjH,GACLiH,MAAK,SAA0B//E,GAAA,IAG1BiO,EAAMxV,KAAK8iI,IAAIgB,MACfzjD,EAAYrgF,KAAK8iI,IAAIo6E,UAErBtsM,EACwB,iBAAnB5Q,KAAK8iI,IAAIz6C,OACfvF,MAAM9iF,KAAK8iI,IAAIz6C,QACgB,iBAAzBroF,KAAK8iI,IAAI/B,aACfj+C,MAAM9iF,KAAK8iI,IAAI/B,aAEZ,EADA/gI,KAAK8iI,IAAIz6C,MAAQroF,KAAK8iI,IAAI/B,YAG5B/hI,EAAU5B,OAAOe,OACnB,CACEwhN,OAAA,EACAr3F,YAAA,EACAuQ,MAAOjoH,EACPs1G,QAASlmH,KAAK8iI,IAAI5c,SAAW,EAC7BG,QAASrmH,KAAK8iI,IAAIzc,SAAW,EAC7Bvd,gBAAiB,UACjBqkB,aAAc,KACdqT,SAAA,EACAxT,MAAO,KACP8U,iBAAA,EACAZ,wBAAA,EACArU,SAAA,GAEF7sH,KAAK8iI,IAAIrC,aAAA,UAEJzhI,EAAQ+oI,WAEfvyH,EAAIokM,UAAU8E,gBAAA,IACL1+M,KAAK8iI,IAAI47E,YAEZ1+M,KAAK8iI,IAAI47E,WACflpM,EAAIokM,UAAUgF,KAAO5+M,KAAK8iI,IAAIvkD,EAC9B/oE,EAAIokM,UAAU+E,KAAO3+M,KAAK8iI,IAAI1kD,EAC9B5oE,EAAIokM,UAAU1hF,OAASl4H,KAAK8iI,IAAI5K,OAChC1iH,EAAIokM,UAAUsD,UAAY78H,EAEtBA,EAAA,IACG,IAAInF,EAAI,EAAGA,EAAImF,EAAUphF,SAAUi8E,EAAG,KACrC2C,EAAOwC,EAAUnF,GACjBN,EAAMiD,EAAK72E,IAAIrI,MAAK,SAAS4I,GAAA,MACT,aAAfA,EAAIwhG,MAAA,IAGTnuB,GACFplE,EAAI8zL,QAAQ1uH,EAAImyB,IAAKlvB,EAAK89H,IAAIv2M,KAAMy4E,EAAK89H,IAAIhtG,MAAA,QAKnD3vG,EAAQiiI,aAAejiI,EAAQiiI,cAAgB,EAC/CjiI,EAAQiiI,aACkB,GAAxBjiI,EAAQiiI,aACJxjD,KAAKC,IACH19E,KAAKiwD,KAAKuxD,UAAUl4B,aACpBtpF,KAAKiwD,KAAKuxD,UAAUn4B,aACpBrpF,KAAKiwD,KAAKuxD,UAAUx+B,cAEtBhkF,EAAQiiI,aAEdzrH,EAAIokM,UAAUxgF,MAAA,GACP7xH,EAAYvH,KAAKiwD,KAAKuxD,UAAWxiH,EAAA,IAEzCsoF,MAAK,SAA0B//E,GAAA,KACzBu7H,IAAIgB,MAAM81E,UAAUrgF,SAAA,IAGRv5H,KAAK8iI,IAAIrC,YAAYsH,YAAc,cACzCxgI,GAAA,KAEN0oD,KAAKmrD,OAAS7zG,EACnBk4E,SAAS+H,KAAK35E,YAAY7N,KAAKiwD,KAAKg3E,QAAA,KAI1CrsD,EAAOp8E,UAAUgpI,MAAQ,kBAShBxnI,KAAKynI,SAPE,CACZ,kBACSznI,KAAKiwD,KAAKmrD,QAAUp7G,KAAKunI,UAAA,IAKNjgD,MAAK,eAC7B//E,EAAUvH,KAAKiwD,KAAKmrD,OAAOI,UAC7B,SAAWx7G,KAAK8iI,IAAI9/F,MAAM8tD,KAC1B9wF,KAAK8iI,IAAI9/F,MAAMqkG,SAAA,KAEZp3E,KAAKkrD,IAAM17B,SAASrsE,cAAc,YAClC68C,KAAKkrD,IAAIn0G,IAAMO,CAAA,KAIxBqzE,EAAOp8E,UAAUqkI,MAAQ,kBAUhB7iI,KAAKynI,SARE,CACZ,kBACSznI,KAAK0/M,aAAA,IAMcp4H,MAAK,gBAE5Br3B,KAAKqzE,IAAMtjI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK8iI,IAAIgB,KAAA,KAM9ClpD,EAAOp8E,UAAUqmF,OAAS,SAAgBt9E,EAAMiO,EAAS6qE,GAAA,MAG7B,SAD1BA,EAAMA,GAAO,OACL9C,eAAiD,UAAtB8C,EAAI9C,cAC9Bv9E,KAAKqoI,UAAU9gI,EAAMiO,GAErBxV,KAAKsoI,UAAU/gI,EAAMiO,EAAA,EAIhColE,EAAOp8E,UAAU8pI,UAAY,SAAmB/gI,EAAMiO,GAAA,OAS7CxV,KAAKynI,SAPE,CACZ,kBACSznI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK6iI,OAAA,IAKHv7C,MAAK,kBAM1BtnF,KAAKiwD,KAAKqzE,IAAIz+C,OAAOt9E,EAAMiO,EAAA,KAItColE,EAAOp8E,UAAU6pI,UAAY,SAAmB9gI,GAAA,OASvCvH,KAAKynI,SAPE,CACZ,kBACSznI,KAAKiwD,KAAKkrD,KAAOn7G,KAAKwnI,OAAA,IAKHlgD,MAAK,kBACzB//E,GAAA,YACD,IACA,aACIvH,KAAKiwD,KAAKkrD,IAAA,IACd,oBACA,uBACIn7G,KAAKiwD,KAAKkrD,IAAIn0G,IAAA,IAClB,cACA,iBACKy4E,SAAS4sC,SAASP,KAAO9rH,KAAKiwD,KAAKkrD,IAAIn0G,IAAA,aAEzC,sBAAwBO,EAAO,2BAK7CqzE,EAAOp8E,UAAU46H,KAAO,SAAc7xH,GAAA,OAS7BvH,KAAKynI,SAPE,CACZ,kBACSznI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK6iI,OAAA,IAM9BttH,IAAIhO,EAAW,CAAE6/H,SAAU7/H,GAAa,MACxC+/E,MAAK,gBACCr3B,KAAKqzE,IAAIlK,KAAKp5H,KAAK8iI,IAAIsE,SAAA,KAIlCxsD,EAAOp8E,UAAUohN,WAAa,kBASrB5/M,KAAKynI,SAPE,CACZ,kBACSznI,KAAKiwD,KAAKqzE,KAAOtjI,KAAK6iI,OAAA,IAKHv7C,MAAK,gBAC5Br3B,KAAKxkD,SAASzL,KAAKiwD,KAAKqzE,IAAA,KAMjC1oD,EAAOp8E,UAAU+W,IAAM,SAAahO,GAAA,GAIb,WAAjB2zE,EAAQ3zE,GAAA,OACHvH,KAAA,IAILwV,EAAMpY,OAAOyJ,KAAKU,GAAO,CAAC,GAAG6K,KAAI,SAASoD,GAAA,GACxCA,KAAOolE,EAAO4pD,SAASv0E,KAAA,OAElB,gBACAA,KAAKz6C,GAAOjO,EAAIiO,EAAA,SAGfA,GAAA,IACD,gBACIxV,KAAKwoI,UAAUC,KAAKzoI,KAAMuH,EAAI2wH,QAAA,IAClC,eACI,uBACA4K,IAAIgB,MAAQv8H,EAAIu8H,MACd9jI,KAAK0nI,aAAA,MAEX,kBACI1nI,KAAK0nI,YAAYe,KAAKzoI,KAAMuH,EAAI47H,UAAA,eAGhC,gBACAL,IAAIttH,GAAOjO,EAAIiO,EAAA,KAI3BxV,MAAA,OAGIA,KAAKsnF,MAAK,kBACRtnF,KAAKynI,SAASjyH,EAAA,KAIzBolE,EAAOp8E,UAAU8W,IAAM,SAAa/N,EAAKiO,GAAA,OAChCxV,KAAKsnF,MAAK,eAEXjH,EAAM94E,KAAOqzE,EAAO4pD,SAASv0E,KAAOjwD,KAAKiwD,KAAK1oD,GAAOvH,KAAK8iI,IAAIv7H,GAAA,OAC3DiO,EAAMA,EAAI6qE,GAAOA,CAAA,KAI5BzF,EAAOp8E,UAAUgqI,UAAY,SAAmBjhI,GAAA,OACvCvH,KAAKsnF,MAAK,kBAEPpM,EAAQ3zE,IAAA,IACT,SACHA,EAAS,CAACA,EAAQA,EAAQA,EAAQA,GAAA,IAE/B,WACmB,IAAlBA,EAAOtI,SACTsI,EAAS,CAACA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAE9B,IAAlBA,EAAOtI,OAAA,qBAKJe,KAAK4C,MAAM,8BAIjBkgI,IAAI5K,OAAS3wH,CAAA,IACjB+/E,KAAKtnF,KAAK0nI,YAAA,EAGf9sD,EAAOp8E,UAAUkpI,YAAc,SAAqBngI,GAAA,SACzCiO,EAAKjO,EAAKiO,GAAA,OACVioE,KAAK8H,MAAQh+E,EAAMiO,EAAK,GAAM,WAGhCxV,KAAKsnF,MAAK,YAEf//E,EAAWA,GAAY2tF,GAAM6uC,YAAY/jI,KAAK8iI,IAAIgB,QAGpCrlI,eAAe,WAC3B8I,EAAS87H,MAAQ,CACfh7C,MAAO9gF,EAAS8gF,MAAQroF,KAAK8iI,IAAI5K,OAAO,GAAKl4H,KAAK8iI,IAAI5K,OAAO,GAC7D5vC,OAAQ/gF,EAAS+gF,OAAStoF,KAAK8iI,IAAI5K,OAAO,GAAKl4H,KAAK8iI,IAAI5K,OAAO,IAEjE3wH,EAAS87H,MAAMwB,GAAK,CAClBx8C,MAAO7yE,EAAKjO,EAAS87H,MAAMh7C,MAAO9gF,EAASm1E,GAC3C4L,OAAQ9yE,EAAKjO,EAAS87H,MAAM/6C,OAAQ/gF,EAASm1E,IAE/Cn1E,EAAS87H,MAAM/vE,MAAQ/rD,EAAS87H,MAAM/6C,OAAS/gF,EAAS87H,MAAMh7C,OAAA,KAI3Dp4B,KAAKkzE,SAAW57H,CAAA,KAIzBqzE,EAAOp8E,UAAUsoI,YAAc,SAAqBv/H,EAAKiO,EAAO6qE,EAAGzvE,GAAA,OAEtD,MAAPrJ,IAAavH,KAAKknI,SAASd,IAAM7+H,GACxB,MAATiO,IAAexV,KAAKknI,SAASC,MAAQ3xH,GAChC,MAAL6qE,IAAWrgF,KAAKknI,SAASt2H,EAAIyvE,GACpB,MAATzvE,IAAe5Q,KAAKknI,SAASnS,MAAQnkH,GAAA,KACpCs2H,SAAS5zE,MAAQtzD,KAAKknI,SAASd,IAAMpmI,KAAKknI,SAASC,MAGjDnnI,IAAA,EAGT46E,EAAOp8E,UAAUmqI,eAAiB,SAChCphI,EACAiO,EACA6qE,EACAzvE,GAAA,OAGO5Q,KAAK8mI,YACVv/H,EAAMvH,KAAKknI,SAASd,IAAM7+H,EAAM,KAChCiO,GAAgB,KAChB6qE,EAAIrgF,KAAKknI,SAASt2H,EAAIyvE,EAAI,KAC1BzvE,EAAQ5Q,KAAKknI,SAASnS,MAAM/yC,OAAOpxE,GAAS,OAMhDgqE,EAAOp8E,UAAU8oF,KAAO,SAAc//E,EAAaiO,GAAA,IAE7C6qE,EAAOrgF,KAAA,OAEJA,KAAK8oI,SAASvhI,EAAaiO,GAAY,SAC5CjO,EACAiO,GAAA,OAGA6qE,EAAKsoD,eAAe,KAAM,KAAM,EAAG,CAACphI,IAC7Bw/E,QAAQvoF,UAAU8oF,KACtB5oF,KAAKsB,MAAM,SAAkBwV,GAAA,OAC5B6qE,EAAKsoD,eAAe,KAAMphI,GACnBiO,CAAA,IAER8xE,KAAK//E,EAAaiO,GAClB8xE,MAAK,SAAmB//E,GAAA,OACvB84E,EAAKsoD,eAAe,GACbphI,CAAA,QAKfqzE,EAAOp8E,UAAUsqI,SAAW,SAC1BvhI,EACAiO,EACA6qE,GAGAA,EAAWA,GAAY0G,QAAQvoF,UAAU8oF,KAIrC//E,IACFA,EAAcA,EAAYkhI,KAFjBzoI,OAIPwV,IACFA,EAAaA,EAAWizH,KALfzoI,OAAA,IAYP4Q,GAF+C,IAAjDm2E,QAAQ91E,WAAWlE,QAAQ,kBACV,YAAjBg6E,QAAQ3hF,KAXCpF,KAcP46E,EAAO+rD,QAAQvpI,OAAOe,OAAO,CAAC,EAdvB6B,MAciC+mF,QAAQvoF,WAGhDQ,EAAYqhF,EAAS3hF,KAAKkS,EAAarJ,EAAaiO,GAAA,OACjDolE,EAAO+rD,QAAQ3nI,EAlBXgB,KAkB2BmmF,UAAA,EAGxCvL,EAAOp8E,UAAU0qI,aAAe,SAC9B3hI,EACAiO,GAAA,OAGOuxE,QAAQvoF,UAAU8oF,KAAK5oF,KAAKsB,KAAMuH,EAAaiO,EAAA,EAGxDolE,EAAOp8E,UAAUipI,SAAW,SAAkBlgI,GAAA,IAExCiO,EAAOxV,KAAA,OACXuH,EAAI63E,SAAQ,SAA0B73E,GACpCiO,EAAOA,EAAKszH,SAASvhI,EAAA,IAEhBiO,CAAA,EAGTolE,EAAOp8E,UAAP09G,MAA4B,SAAS30G,GAE/BA,IACFA,EAAaA,EAAWkhI,KAAKzoI,OAAA,IAE3BwV,EAAYuxE,QAAQvoF,UAAR09G,MAA2Bx9G,KAAKsB,KAAMuH,GAAA,OAC/CqzE,EAAO+rD,QAAQnxH,EAAWxV,KAAA,EAGnC46E,EAAOp8E,UAAU2qI,cAAgB,SAAuB5hI,GAAA,OAE/Cw/E,QAAQvoF,UAAR09G,MAA2Bx9G,KAAKsB,KAAMuH,EAAA,EAG/CqzE,EAAOp8E,UAAUoE,MAAQ,SAAe2E,GAAA,OAE/BvH,KAAKsnF,MAAK,iBACT,IAAI59E,MAAMnC,EAAA,KAMpBqzE,EAAOp8E,UAAU4qI,MAAQxuD,EAAOp8E,UAAU+W,IAC1CqlE,EAAOp8E,UAAU6qI,OAASzuD,EAAOp8E,UAAU46H,KAC3Cx+C,EAAOp8E,UAAU8qI,OAAS1uD,EAAOp8E,UAAUqmF,OAC3CjK,EAAOp8E,UAAU+qI,IAAM3uD,EAAOp8E,UAAU8oF,KAGxC4N,GAAM6uC,YAAc,SAASvuH,EAAa6qE,EAAMzvE,GAAA,GAEnB,YAAvBrJ,EAAAA,EAAAA,GAAOiO,GAA0B,KAC/BxW,EAAUwW,EACdA,EAAcxW,EAAQglI,YACtB3jD,EAAOrhF,EAAQi8F,MAAQ5a,EACvBzvE,EAAS5R,EAAQ+pG,QAAUn4F,CAAA,CAI7ByvE,EAAOA,GAAQ,KACfzvE,EAASA,GAAU,KACnB4E,GAAe,IAAMA,GAAe,MAAM+nE,cAAA,IAgDtCrC,EA/CA2C,GAAoB,GAAKjtE,GAAQ2sE,cAGjC3C,EAAc,CAChBi6G,GAAI,CAAC,QAAS,SACdr7F,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,OAAQ,SACboY,GAAI,CAAC,OAAQ,QACbgjF,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,IAAK,CAAC,KAAM,QACZC,GAAI,CAAC,QAAS,SACdxjF,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdwjF,GAAI,CAAC,QAAS,SACdtjF,GAAI,CAAC,OAAQ,SACbujF,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbC,GAAI,CAAC,QAAS,SACd1/F,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdE,GAAI,CAAC,OAAQ,SACbw/F,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbrV,GAAI,CAAC,OAAQ,QACb9mD,OAAQ,CAAC,IAAK,yBACO,CAAC,IAAK,KAC3Bo8D,MAAO,CAAC,IAAK,qBACG,CAAC,IAAK,KACtBC,OAAQ,CAAC,KAAM,KACfC,QAAS,CAAC,IAAK,oBACA,CAAC,IAAK,aAKfj2G,GAAA,IACD,KACHnF,EAAI,YAED,KACHA,EAAI,GAAK,eAEN,KACHA,EAAI,GAAK,eAEN,KACHA,EAAI,aAED,KACHA,EAAI,cAED,SAGA,KACHA,EAAI,aAED,KACHA,EAAI,qBAGE,iBAAmBmF,EAAA,IAkBzB/0E,EAhBA2yE,EAAa,EACbI,EAAY,KAGZzD,EAAYn8E,eAAeo/E,GAC7BI,EAAarD,EAAYiD,GAAkB,GAAK3C,EAChDmD,EAAYzD,EAAYiD,GAAkB,GAAK3C,OAAA,IAG7C+C,EAAartE,EAAO,GACpBytE,EAAYztE,EAAO,GACnB,MAAOrJ,IAAA,MACD,IAAImC,MAAM,mBAAqBkH,EAAA,IAMrB,MAAhB4E,GAAuC,aAAhBA,EACzBA,EAAc,IACV6oE,EAAYJ,IACd3yE,EAAM+yE,EACNA,EAAYJ,EACZA,EAAa3yE,OAEV,IAAoB,MAAhBkK,GAAuC,cAAhBA,EAAA,KAQ1B,wBAA0BA,EAPhCA,EAAc,IACVyoE,EAAaI,IACf/yE,EAAM+yE,EACNA,EAAYJ,EACZA,EAAa3yE,EAAA,OAON,CACT+8E,MAAOhK,EACPiK,OAAQrK,EACRgd,KAAM5a,EACN3D,EAAGxB,EACH8oD,YAAaxuH,EAAA,EA0EjBA,EAASmgI,KAAO,SAASpuI,EAAKiO,IAG5BA,EAAUA,GAAW,CAAC,GACd/J,SAAW+J,EAAQ/J,UAAY,aACvC+J,EAAQirH,YAAcjrH,EAAQirH,aAAe,CAAC,EAC9CjrH,EAAQirH,YAAYrlB,OAAS5lG,EAAQirH,YAAYrlB,QAAUp7G,KAAKo7G,OAChE5lG,EAAQsuH,MAAQtuH,EAAQsuH,OAAS9jI,KACjCwV,EAAQ0nM,UAAY1nM,EAAQ0nM,UACxB1nM,EAAQ0nM,UAAU9qM,IAAIypL,IACtB,SAGAx7G,EAAS,IAAIzF,EAAOplE,GAAA,OAEnBA,EAAQkxI,OAKJrmE,EAHAA,EAAO4H,KAAK1gF,GAAKq4M,YAAA,EA7/B9B,CAmgCG1qH,GAAMq4E,KJp9BNr4E,GAAMq4E,IAvBEgsC,MAAQ,SAAShyM,GAAA,OACxBk1L,GAAOl1L,EAAA,KACFk8H,SAASwpE,OAAOtqD,UAAU,oBAAoB,WACjD25C,GAAat8L,KAAKyjI,SAAS86D,YAAA,KACtB96D,SAASolC,IAAI,WACbplC,SAASolC,IAAI,yBAA2ByzB,GAAa,GAAK,cAC1D74D,SAASolC,IAAI,WACbplC,SAASolC,IAAI,UAElB2zB,GAAUx8L,KAAKyjI,SAAS86D,YAAA,KACnB96D,SAASolC,IAAI,WACbplC,SAASolC,IAAI,uBACbplC,SAASolC,IAAI,QAAU4zB,GAAO,UAC9Bh5D,SAASolC,IAAI,WACbplC,SAASolC,IAAI,kBAEfplC,SAASwpE,OAAOtqD,UAAU,cAAc,oBACvC25C,SAAA,IAA4BE,IAAA,KACzB/4D,SAASolC,IAAI,wBAA0ByzB,GAAa,aAGtDt8L,IAAA,EK/CX,SAAUuH,GAAA,IAGJiO,EAGJjO,EAAS0lM,OAAOr9L,KAAK,CACnB,mBACA,eACMrI,EAAMvH,KACNqgF,EAAK,mBAgBLrgF,KAAK6/M,QAAQluM,KAAK4vE,SAAStiF,OAAS,EAAG,IAAH,IAClC2R,EAAQrJ,EAAIs4M,QAAQzkF,SAAS10H,MAAM,QAC9B1H,EAAI,EAAGA,EAAI4R,EAAM3R,OAAQD,IAAK,KACjCk8E,EAAOtqE,EAAM5R,GACb6+E,EAAIwC,EAAGrE,KAAKd,GAAA,GACP,MAAL2C,EAAW,KACTjD,EAAMiD,EAAE,GACZt2E,EAAIk8H,SAAS+pE,uBAAuB5yH,GAAA,EAAK,CAE3CrzE,EAAIk8H,SAASlrC,MAAMrd,EAAA,IAMnBl7E,KAAK6/M,QAAQC,wBAAyB,KACpCx0M,EAAatL,KAAKyjI,SAAS+9D,MAAMviM,OAIjCg/E,EAAQ,OACHj/E,EAAI,EAAGA,EAAIsM,EAAYtM,IAAK,KAC/Bq/E,EAAK92E,EAAIk8H,SAAS86D,YACtBtgH,EAAMruE,KAAKyuE,GAAA,IACP59E,EAAO8G,EAAIk8H,SAASiiE,YAAY1mM,EAAI,GACxCuI,EAAIk8H,SAASlrC,MACX,SAAW93F,EAAKo+L,MAAQ,0CAKxB3kH,EAAY3yE,EAAIk8H,SAAS86D,YACV,IAAnBh3L,EAAIk8H,SAASlrC,MAAM,gBACVv5F,EAAI,EAAGA,EAAIi/E,EAAMh/E,OAAQD,IAChCuI,EAAIk8H,SAASlrC,MAAM,UAAYv5F,EAAI,GAAK,IAAMi/E,EAAMj/E,GAAK,QAE3DuI,EAAIk8H,SAASlrC,MAAM,QAAS,UAM5B/iF,EAAWjO,EAAIk8H,SAAS86D,YACxBh3L,EAAIk8H,SAASlrC,MAAM,aAAere,EAAY,QAC9C3yE,EAAIk8H,SAASlrC,MAAM,KAAM,cAK/BhxF,EAAS0lM,OAAOr9L,KAAK,CACnB,aACA,WACY5P,KACF6/M,QAAQluM,KAAK4vE,SAAStiF,OAAS,IAD7Be,KAEJyjI,SAASlrC,MACX,YACAv4F,KAAK6/M,QAAQE,QAAQ//M,KAAK6/M,QAAQluM,OAEhC3R,KAAK6/M,QAAQC,yBANT9/M,KAOFyjI,SAASlrC,MAAM,UAAY/iF,EAAW,YAQlDjO,EAAS0lM,OAAOr9L,KAAK,CACnB,cACA,eACMrI,EAAMvH,KAEVuH,EAAIs4M,QAAU,CACZC,yBAAA,EACAnuM,KAAM,CACJ4vE,SAAU,KAOdh6E,EAAIs4M,QAAQp9H,IAAM,SAASl7E,EAAQiO,EAAO6qE,GAAA,IACpCzvE,EAAO,CACTw4K,MAAO5zK,EACPzV,QAASsgF,EACTkB,SAAU,WAEE,MAAVh6E,IACFA,EAASvH,KAAK2R,MAEhBpK,EAAOg6E,SAAS3xE,KAAKgB,GACdA,CAAA,EAGTrJ,EAAIs4M,QAAQzkF,OAAS,uBACd/f,IAAM,CAAC,EAAD,KACNA,IAAI+qB,IAAM,QACV/qB,IAAIioB,IAAM/7H,EAAA,KAEVy4M,SAAShgN,KAAK2R,MAAA,KACdsuM,WAAWjgN,KAAK2R,MAAA,KAChBuuM,YAAYlgN,KAAK2R,MAEf3R,KAAKq7G,IAAI+qB,GAAA,EAGlB7+H,EAAIs4M,QAAQG,SAAW,SAASxqM,GAC9BA,EAAK/C,GAAKlL,EAAIk8H,SAASi7D,oBAAA,IAClB,IAAIr+G,EAAI,EAAGA,EAAI7qE,EAAK+rE,SAAStiF,OAAQohF,IAAA,KACnC2/H,SAASxqM,EAAK+rE,SAASlB,GAAA,EAIhC94E,EAAIs4M,QAAQI,WAAa,SAAS14M,GAAA,KAC3B44M,SAAS54M,GAAA,KACTsrG,KAAK,mBACNtrG,EAAKg6E,SAAStiF,OAAS,SACpB4zG,KAAK,UAAY7yG,KAAK+/M,QAAQx4M,EAAKg6E,SAAS,UAC5CsxB,KACH,SAAW7yG,KAAK+/M,QAAQx4M,EAAKg6E,SAASh6E,EAAKg6E,SAAStiF,OAAS,WAG5D4zG,KACH,UACE7yG,KAAKogN,QACH,CACEzrM,MAAO,GAETpN,IAAA,KAGD84M,QAAA,EAGP94M,EAAIs4M,QAAQK,YAAc,SAAS1qM,GAAA,QAC7B6qE,EAA8BrgF,KAAKq7G,IAAIioB,IAAIG,SAC5C4mE,4BACMz5L,EAAI,EAAGA,EAAI4E,EAAK+rE,SAAStiF,OAAQ2R,IAAK,KACzC5R,EAAOwW,EAAK+rE,SAAS3wE,GAAA,KACpBuvM,SAASnhN,GAAA,KAET6zG,KAAK,UAAY7yG,KAAKsgN,WAAWthN,EAAKoqL,QAAA,KAEtCv2E,KAAK,WAAa7yG,KAAK+/M,QAAQvqM,IAChC5E,EAAI,QACDiiG,KAAK,SAAW7yG,KAAK+/M,QAAQvqM,EAAK+rE,SAAS3wE,EAAI,KAElDA,EAAI4E,EAAK+rE,SAAStiF,OAAS,QACxB4zG,KAAK,SAAW7yG,KAAK+/M,QAAQvqM,EAAK+rE,SAAS3wE,EAAI,KAElD5R,EAAKuiF,SAAStiF,OAAS,SACpB4zG,KAAK,UAAY7yG,KAAK+/M,QAAQ/gN,EAAKuiF,SAAS,UAC5CsxB,KACH,SAAW7yG,KAAK+/M,QAAQ/gN,EAAKuiF,SAASviF,EAAKuiF,SAAStiF,OAAS,UAI7Di8E,EAASl7E,KAAK2U,MAAQ3U,KAAKogN,QAC7B,CACEzrM,MAAO,GAET3V,GAAA,GAEEk8E,EAAQ,QACL23B,KAAK,UAAY33B,GAGpBl8E,EAAKe,SACHf,EAAKe,QAAQkhM,WAAY,KAGvBpjH,EAAOt2E,EAAIk8H,SAASiiE,YAAY1mM,EAAKe,QAAQkhM,YAAA,KAC5CpuF,KACH,UAEEh1B,EAAKghH,MACL,eACAx+G,EAA4B,GAC5B,YAcHggI,QAAA,KAEF,IAAIzlI,EAAI,EAAGA,EAAIplE,EAAK+rE,SAAStiF,OAAQ27E,IAAA,KACnCslI,YAAY1qM,EAAK+rE,SAAS3G,GAAA,EAInCrzE,EAAIs4M,QAAQhtG,KAAO,SAAStrG,GAAA,KACrB8zG,IAAI+qB,KAAO7+H,EAAO,QAGzBA,EAAIs4M,QAAQE,QAAU,SAASx4M,GAAA,OACtBA,EAAKkL,GAAK,QAGnBlL,EAAIs4M,QAAQS,WAAa,SAAS9qM,GAAA,MACzB,IAAMjO,EAAIk8H,SAASm/D,UAAUptL,GAAO,KAG7CjO,EAAIs4M,QAAQM,SAAW,SAAS54M,GAAA,KACzB8zG,IAAI+qB,KAAO,OAAS7+H,EAAKkL,GAAd,oBAGlBlL,EAAIs4M,QAAQQ,OAAS,gBACdhlG,IAAI+qB,KAAO,qBAGlB7+H,EAAIs4M,QAAQO,QAAU,SAAS74M,EAAKiO,GAAA,IAC7B,IAAI6qE,EAAI,EAAGA,EAAI7qE,EAAK+rE,SAAStiF,OAAQohF,IACxC94E,EAAIoN,QAAA,KACCyrM,QAAQ74M,EAAKiO,EAAK+rE,SAASlB,IAAA,OAE3B94E,EAAIoN,KAAA,KA3PnB,CAiQGugF,GAAMq4E,KCnQT,SAAUhmK,GAAA,IAaJiO,EAAU,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KA6BzDjO,EAASg5M,YAAc,SACrBh5M,EACA84E,EACAzvE,EACA5R,EACAk8E,EACA2C,GAAA,IAIEjD,EAFEtvE,EAAStL,KAAKi3G,OAAO++F,WAGvB/3H,EAAS,QAGO,iBAAT12E,GACPvH,KAAKg0M,aAAamD,cAAc5vM,IAChCvH,KAAKg0M,aAAaoD,kBAAkB7vM,GACpC,QAEAA,EAAO2zE,GAAsB3zE,EAC7BA,EAAOvH,KAAKg0M,aAAamD,cAAc5vM,GACnC,IAAIq9E,WAAWr9E,GACfA,GAKJqzE,EAnDc,SAASrzE,GAAA,QACd84E,EACPzvE,EAAsC,IAAxBrJ,EAAQgE,WAAW,GAAWhE,EAAQgE,WAAW,GAC/DvM,EAAMuI,EAAQtI,OACdi8E,EAAS,CAAEmN,MAAO,EAAGC,OAAQ,EAAGk4H,cAAe,GAC1C3iI,EAAI,EAAGA,EAAI7+E,EAAK6+E,GAAK,EAAG,IAC/BA,GAAKjtE,GAC+C,IAAhD4E,EAAQzI,QAAQxF,EAAQgE,WAAWsyE,EAAI,IAAY,CACrDwC,EAAqC,IAA5B94E,EAAQgE,WAAWsyE,EAAI,GAAWt2E,EAAQgE,WAAWsyE,EAAI,GAGlE3C,EAAS,CAAEmN,MAFyB,IAA5B9gF,EAAQgE,WAAWsyE,EAAI,GAAWt2E,EAAQgE,WAAWsyE,EAAI,GAExCyK,OAAQjI,EAAQmgI,cADzBj5M,EAAQgE,WAAWsyE,EAAI,UAIvCjtE,EAC8B,IAA5BrJ,EAAQgE,WAAWsyE,EAAI,GAAWt2E,EAAQgE,WAAWsyE,EAAI,UAGxD3C,CAAA,CAlBS,CA+Cd3zE,EAAOvH,KAAKg0M,aAAaoD,kBAAkB7vM,GACvCvH,KAAKg0M,aAAa0D,0BAA0BnwM,GAC5CA,IAGSi5M,eAAA,KACN,EACH3iI,EAAa79E,KAAKs1M,aAAaE,YAAA,WAE5B,EACH33H,EAAa79E,KAAKs1M,aAAaR,YAAA,WAE5B,EACHj3H,EAAa79E,KAAKs1M,aAAaC,WAInCt3H,EAAS,CACPz5E,KAAM+C,EACN8gF,MAAOzN,EAAKyN,MACZC,OAAQ1N,EAAK0N,OACbosH,WAAY72H,EACZk3H,iBApCI,EAqCJpuM,OAAQ2E,EACR0F,MAAOqvE,EACPg1H,MAAOzkM,EAAA,QAGJqtE,CAAA,EA7FX,CA+FGiX,GAAMq4E,KCnFT,ICOUmpB,GAYJ54J,GAyEA8/J,GA4BAG,GAmCAO,GD3JFE,GAAO,eAMPj3L,EACAiO,EACAxW,EAAA,SAYOk8E,EAAI3zE,GAAA,IACPiO,EACF6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,EAEAjD,EACAtvE,EACA2yE,EACAI,EACA59E,EACAy5E,EACAgE,EACAh3E,EAAA,SACG1C,KAAO+C,EAAA,KACPo0E,IAAM,OACNi5H,QAAU,QACV5sE,QAAU,QACVitE,aAAe,CAAC,EAAD,KACfwL,UAAY,UACZ5rM,KAAO,CAAC,EACbgpE,EAAQ,OACK,QACXroE,EAAYxV,KAAK0gN,aACjBziI,EAAU,eACJ12E,EAAIiO,EAAA,IACRA,EAAW,GACFjO,EAAK,EAAGA,EAAK,IAASA,EAC7BiO,EAAS5F,KAAK3O,OAAOw7E,aAAaz8E,KAAKwE,KAAKxE,KAAK27E,SAAA,OAE5CnmE,CAAA,EAEN9W,KAAKsB,MACLwP,KAAK,SAED,YACE64E,MAAQroF,KAAK0gN,aAAA,KACbp4H,OAAStoF,KAAK0gN,aAAA,KACdzgC,KAAOjgL,KAAKwE,KAAKxE,KAAK27E,OAAA,KACtBglI,UAAY3gN,KAAKwE,KAAKxE,KAAK27E,OAAA,KAC3BilI,kBAAoB5gN,KAAKwE,KAAKxE,KAAK27E,OAAA,KACnCklI,aAAe7gN,KAAKwE,KAAKxE,KAAK27E,OAAA,KAC9BmlI,gBAAkB9gN,KAAKwE,KAAKxE,KAAK27E,OAAA,UAEnC,YACE8kI,UAAY,CACfM,UAAW/gN,KAAK0gN,aAChBM,SAAUhhN,KAAK0gN,cAAgB,IAC/BO,OAAQ,cAGP,YACErM,QAAU50M,KAAKy4F,KAAKjjF,GAAA,UAEtB,OACCqoE,GAAA,KACG4iI,UAAUQ,OAAOrxM,KAAKiuE,GAAA,KAExBlC,KAAO,EACZkC,EAAQ,CACNwK,MAAOroF,KAAK0gN,aACZp4H,OAAQtoF,KAAK0gN,aACbQ,QAASlhN,KAAK0gN,aACdS,QAASnhN,KAAK0gN,cAEhBxlI,EAAWl7E,KAAKohN,aAChBpiN,EAAWgB,KAAKohN,cAAgB,IAChCvjI,EAAMW,MAAS,IAAOtD,EAAYl8E,EAClC6+E,EAAMwjI,UAAYrhN,KAAKwE,KAAKxE,KAAK27E,OACjCkC,EAAMyjI,QAAUthN,KAAKwE,KAAKxE,KAAK27E,OAC/BkC,EAAMr5E,KAAO,aAEV,WACA,WACa,SAAZy5E,IAAA,KACGtC,KAAO,EACZnmE,GAAa,GAEfjO,GAAiB,MAATs2E,EAAgBA,EAAMr5E,UAAA,IAAkBxE,KAAKgoI,QAE/C9tD,EAAK,EACT,GAAK1kE,EAAY0kE,EAAK1kE,EAAY0kE,EAAK1kE,EACnC,GAAKA,IAAc0kE,IAAOA,EAE9B3yE,EAAKqI,KAAK5P,KAAKwE,KAAKxE,KAAK27E,QAAA,UAGxB,mBACEs5H,aAAe,CAAC,EACbj1M,KAAK2gN,WAAA,KACN,KACH/vM,EAAS5Q,KAAK40M,QAAQ31M,OAAS,OAC1Bg2M,aAAasM,QAAUvhN,KAAKy4F,KAAKjjF,GAClCxV,KAAKi1M,aAAasM,QAAQtiN,OAAS2R,EACrC,MAAM,IAAIlH,MAAM,iDAKlB20E,EAAWztE,EAAS5Q,KAAKi1M,aAAasM,QAAQtiN,QAC/B,EAAG,IAEVi/E,EAAK,EACT,GAAKG,EAAWH,EAAKG,EAAWH,EAAKG,EACjC,GAAKA,IAAaH,IAAOA,EAAA,KAExB+2H,aAAasM,QAAQ3xM,KAAK,gBAIhC,OACEqlM,aAAauM,UAAYxhN,KAAKy4F,KAAKjjF,GAAW,cAEhD,OACEy/L,aAAap2G,IAAM7+F,KAAKy4F,KAAKjjF,GAAA,UAGnC,OAEHolE,GADAn6E,EAAOT,KAAKy4F,KAAKjjF,IACJzI,QAAQ,GACrBzB,EAAMrK,OAAOw7E,aAAa33E,MAAM7D,OAAQR,EAAK0P,MAAM,EAAGyqE,IAAA,KACjD/lE,KAAKvJ,GAAOrK,OAAOw7E,aAAa33E,MACnC7D,OACAR,EAAK0P,MAAMyqE,EAAQ,cAGlB,cACCiD,GAAA,KACG4iI,UAAUQ,OAAOrxM,KAAKiuE,GAAA,KAExB21G,OAAS,kBACJxzL,KAAK2gN,WAAA,KACN,OACA,OACA,SACI,OACJ,OACA,SACI,IAEXjiN,KAAKsB,MAAAA,KACFyhN,gBAA8C,KAA3Bv6M,EAAOlH,KAAK2gN,YAA6B,IAATz5M,EACxDm5E,EAASrgF,KAAKwzL,QAAUxzL,KAAKyhN,gBAAkB,EAAI,QAC9CC,eAAiB1hN,KAAKigL,KAAO5/F,EAAA,KAC7Bq0H,WAAa,kBACR10M,KAAKwzL,QAAA,KACN,QACI,kBACJ,QACI,cAEX90L,KAAKsB,WAAAA,KACFgoI,QAAU,IAAIpjD,WAAW5kF,KAAKgoI,UAAA,aAG9BrsD,KAAOnmE,EAAA,QAEXmmE,KAAO,EACR37E,KAAK27E,IAAM37E,KAAKwE,KAAKvF,OAAA,MACjB,IAAIyK,MAAM,mCAKtBwxE,EAAI18E,UAAUi6F,KAAO,SAASlxF,GAAA,IACrBiO,EAAI6qE,EAAA,IACXA,EAAW,GAEL7qE,EAAK,EACT,GAAKjO,EAAQiO,EAAKjO,EAAQiO,EAAKjO,EAC3B,GAAKA,IAAUiO,IAAOA,EAE1B6qE,EAASzwE,KAAK5P,KAAKwE,KAAKxE,KAAK27E,QAAA,OAExB0E,CAAA,EAGTnF,EAAI18E,UAAUkiN,WAAa,kBAEpB1gN,KAAKwE,KAAKxE,KAAK27E,QAAU,GACzB37E,KAAKwE,KAAKxE,KAAK27E,QAAU,GACzB37E,KAAKwE,KAAKxE,KAAK27E,QAAU,EACzB37E,KAAKwE,KAAKxE,KAAK27E,MAAA,EAItBT,EAAI18E,UAAU4iN,WAAa,kBAEpBphN,KAAKwE,KAAKxE,KAAK27E,QAAU,EACzB37E,KAAKwE,KAAKxE,KAAK27E,MAAA,EAItBT,EAAI18E,UAAUmjN,aAAe,SAASp6M,GAAA,IAChCiO,EAAaxV,KAAK0hN,eAAiB,EACnC9wM,EAAa,IAAIg0E,WAAW5kF,KAAKqoF,MAAQroF,KAAKsoF,OAAS9yE,GACvDxW,EAAM,EACNk8E,EAAQl7E,KAAA,GAEA,MAARuH,IACFA,EAAOvH,KAAKgoI,SAEM,IAAhBzgI,EAAKtI,OAAA,OACA,IAAI2lF,WAAW,YAIf/G,EAAKwC,EAAIxC,EAAIjD,EAAItvE,GAAA,IACpB2yE,EACFI,EACA59E,EACAy5E,EACAgE,EACAh3E,EACAk5E,EACAtD,EACAjsE,EACAstE,EACAC,EACAE,EACAo0G,EACAp6E,EACArjB,EACA1W,EACAc,EACAG,EACAmH,EACAjK,EACAm2G,EACE19F,EAAI1X,KAAKwO,MAAM/Q,EAAMmN,MAAQhI,GAAMzF,GACrCwxD,EAAI3uD,KAAKwO,MAAM/Q,EAAMoN,OAASzK,GAAMvyE,GAClC2zE,EAAS/D,EAAMmN,OAAS8M,GAAKja,EAAMoN,QAAU8jD,EAAA,IACjD9zB,EAAiB9iG,EAAa2/E,EAC9B7W,EAASW,EAASruE,EAAa,IAAIg0E,WAAW0zB,EAAiB8zB,GAC/DllI,EAASK,EAAKtI,OACdyzL,EAAM,EACNr0G,EAAI,EACGq0G,EAAMtmD,GAAKptI,EAAMkI,GAAQ,QACtBK,EAAKvI,MAAA,KACN,MACEk7E,EAAImF,EAAK,EAAGA,EAAKi5B,EAAgBp+B,EAAImF,GAAM,EAC9Cf,EAAOD,KAAO92E,EAAKvI,KAAA,WAGlB,MACEk7E,EAAIsF,EAAK,EAAGA,EAAK84B,EAAgBp+B,EAAIsF,GAAM,EAC9CvB,EAAQ12E,EAAKvI,KACbk/E,EAAOhE,EAAI1kE,EAAa,EAAI8oE,EAAOD,EAAI7oE,GACvC8oE,EAAOD,MAAQJ,EAAQC,GAAQ,eAG9B,MACEhE,EAAIyM,EAAK,EAAGA,EAAK2xB,EAAgBp+B,EAAIyM,GAAM,EAC9C1I,EAAQ12E,EAAKvI,KACbyB,GAAOy5E,EAAKA,EAAI1kE,GAAeA,EAC/By/E,EACEy9F,GACAp0G,GACGo0G,EAAM,GAAKp6E,EACV73G,EAAM+U,EACL0kE,EAAI1kE,GAEX8oE,EAAOD,MAAQ4W,EAAQhX,GAAS,eAG/B,MACE/D,EAAIwC,EAAK,EAAGA,EAAK47B,EAAgBp+B,EAAIwC,GAAM,EAC9CuB,EAAQ12E,EAAKvI,KACbyB,GAAOy5E,EAAKA,EAAI1kE,GAAeA,EAC/B0oE,EAAOhE,EAAI1kE,EAAa,EAAI8oE,EAAOD,EAAI7oE,GACvCy/E,EACEy9F,GACAp0G,GACGo0G,EAAM,GAAKp6E,EACV73G,EAAM+U,EACL0kE,EAAI1kE,GAEX8oE,EAAOD,MAAQJ,EAAQR,KAAK8H,OAAOrH,EAAO+W,GAAS,IAAM,eAGxD,MACE/a,EAAI24G,EAAK,EAAGA,EAAKv6E,EAAgBp+B,EAAI24G,GAAM,EAC9C50G,EAAQ12E,EAAKvI,KACbyB,GAAOy5E,EAAKA,EAAI1kE,GAAeA,EAC/B0oE,EAAOhE,EAAI1kE,EAAa,EAAI8oE,EAAOD,EAAI7oE,GAC3B,IAARk9K,EACFz9F,EAAQ1W,EAAY,GAEpB0W,EACE3W,GACGo0G,EAAM,GAAKp6E,EACV73G,EAAM+U,EACL0kE,EAAI1kE,GAEX+oE,EACE99E,GACA69E,GACGo0G,EAAM,GAAKp6E,GACT73G,EAAM,GAAK+U,EACX0kE,EAAI1kE,IAGb4qE,EAAIlC,EAAO+W,EAAQ1W,EACnBzB,EAAKW,KAAK4sB,IAAIjqB,EAAIlC,GAClBC,EAAKV,KAAK4sB,IAAIjqB,EAAI6U,GAClB7W,EAAKX,KAAK4sB,IAAIjqB,EAAI7B,GAEhB1tE,EADEisE,GAAMqB,GAAMrB,GAAMsB,EACZF,EACCC,GAAMC,EACP6W,EAEA1W,EAEVD,EAAOD,MAAQJ,EAAQptE,GAAS,wBAI5B,IAAInH,MAAM,6BAA+BnC,EAAKvI,EAAM,QAEzDigF,EAAQ,KACPC,IAAYrB,EAAK60G,EAAMpnL,GAAM4vE,EAAMmN,MAAQhI,GAAM7qE,EACjD2/H,EAAUu9C,EAAMp6E,EAAA,IACfp+B,EAAI,EAAGA,EAAIib,EAAGjb,GAAK,EAAG,KACpB,IAAIiF,EAAI,EAAGA,EAAI3pE,EAAY2pE,GAAK,EACnCvuE,EAAWsuE,KAAaZ,EAAO62D,KACjCj2D,IAAYtE,EAAK,GAAKplE,CAAA,EAG1Bk9K,GAAA,SA1HJnrL,EAAO84E,EAAW94E,GA6HW,GAAzB2zE,EAAM4lI,iBAWRjjI,EAAK,EAAG,EAAG,EAAG,GAMdA,EAAK,EAAG,EAAG,EAAG,GACdA,EAAK,EAAG,EAAG,EAAG,GAEdA,EAAK,EAAG,EAAG,EAAG,GACdA,EAAK,EAAG,EAAG,EAAG,GAEdA,EAAK,EAAG,EAAG,EAAG,GACdA,EAAK,EAAG,EAAG,EAAG,IAEdA,EAAK,EAAG,EAAG,EAAG,GAETjtE,CAAA,EAGTsqE,EAAI18E,UAAUojN,cAAgB,eACxBr6M,EAAGiO,EAAW6qE,EAASzvE,EAAK5R,EAAKk8E,EAAc2C,EAAIjD,EAAMtvE,EAAA,IAC7D+0E,EAAUrgF,KAAK40M,QACf15H,EAAel7E,KAAKi1M,aAAasM,SAAW,GAC5CviN,EAAM,IAAI4lF,YAAY1J,EAAaj8E,QAAU,GAAKohF,EAAQphF,QAC1D2R,EAAM,EAENrJ,EAAI,EACCiO,EAAIqoE,EAAK,EAAGjD,EAFRyF,EAAQphF,OAEe4+E,EAAKjD,EAAMplE,EAAIqoE,GAAM,EACnD7+E,EAAI4R,KAASyvE,EAAQ7qE,GACrBxW,EAAI4R,KAASyvE,EAAQ7qE,EAAI,GACzBxW,EAAI4R,KAASyvE,EAAQ7qE,EAAI,GACzBxW,EAAI4R,KAAwC,OAA9BtF,EAAQ4vE,EAAa3zE,MAAgB+D,EAAQ,WAEtDtM,CAAA,EAGTk8E,EAAI18E,UAAUqjN,gBAAkB,SAASt6M,EAAWiO,GAAA,IAC9C6qE,EAAOzvE,EAAQ5R,EAAMk8E,EAAG2C,EAAOjD,EAAGtvE,EAAG2yE,EAAQI,EAAS59E,EAAGy5E,EAAA,GAC7DtpE,EAAS5Q,KAAKwzL,OACdn1G,EAAU,KACVgC,EAAQrgF,KAAKyhN,gBACTzhN,KAAK40M,QAAQ31M,SACfo/E,EACmC,OAAhCnE,EAAOl6E,KAAK8hN,iBACT5nI,EACCl6E,KAAK8hN,gBAAkB9hN,KAAK4hN,gBACnChxM,EAAS,EACTyvE,GAAA,GAGFpC,GADAj/E,EAAOuI,EAAU/C,MAAQ+C,GACXtI,OACd4+E,EAAQQ,GAAW7oE,EACnB0lE,EAAIN,EAAI,EACO,IAAXhqE,EAAA,KACKsqE,EAAI+C,GACT3yE,EAAI+yE,EAA0B,EAAhB7oE,EAAO0lE,EAAI,GAASN,EAClCn6E,EAAIo9E,EAAMvyE,KACVtM,EAAKk8E,KAAOz6E,EACZzB,EAAKk8E,KAAOz6E,EACZzB,EAAKk8E,KAAOz6E,EACZzB,EAAKk8E,KAAOmF,EAAQxC,EAAMvyE,KAAO,IACjCsvE,EAAItvE,OAAA,KAGC4vE,EAAI+C,GACT3yE,EAAI+yE,EAA0B,EAAhB7oE,EAAO0lE,EAAI,GAASN,EAClC57E,EAAKk8E,KAAO2C,EAAMvyE,KAClBtM,EAAKk8E,KAAO2C,EAAMvyE,KAClBtM,EAAKk8E,KAAO2C,EAAMvyE,KAClBtM,EAAKk8E,KAAOmF,EAAQxC,EAAMvyE,KAAO,IACjCsvE,EAAItvE,CAAA,EAKV4vE,EAAI18E,UAAUy4G,OAAS,eACjB1vG,EAAA,OACJA,EAAM,IAAIq9E,WAAW5kF,KAAKqoF,MAAQroF,KAAKsoF,OAAS,QAC3Cu5H,gBAAgBt6M,EAAKvH,KAAK2hN,gBACxBp6M,CAAA,MAGLs2E,EAAmB,cACgC,oBAAjDzgF,OAAOoB,UAAUyS,SAASvS,KAAKkS,IAAqC,KAEpE4E,EAAgB5E,GAAa6uE,SAASrsE,cAAc,UACpDpU,EAAawW,EAAc8lG,WAAW,MACtC,MAAO/zG,GAAA,QACA,SAEF,SAEF,SAGTs2E,IAEAt2E,EAAY,SAASA,GAAA,IAEb84E,EAAA,QADFxC,IAAA,OAEF7+E,EAAWqpF,MAAQ9gF,EAAU8gF,MAC7BrpF,EAAWspF,OAAS/gF,EAAU+gF,OAC9BtpF,EAAW29K,UAAU,EAAG,EAAGp1K,EAAU8gF,MAAO9gF,EAAU+gF,QACtDtpF,EAAWupH,aAAahhH,EAAW,EAAG,IACtC84E,EAAM,IAAIw6B,OACN7zG,IAAMwO,EAAcgmG,YACjBn7B,EAAA,MAEH,IAAI32E,MAAM,2DAGlBwxE,EAAI18E,UAAUujN,aAAe,SAASvsM,GAAA,IAChC6qE,EAAOzvE,EAAG5R,EAAWk8E,EAAQ2C,EAAIjD,EAAMtvE,EAAM2yE,EAAA,GAC5Cj+E,KAAKygN,UAAA,KAIVxiI,EAAW,GACNrtE,EAAIitE,EAAK,EAAGjD,GAFjBtvE,EAAOtL,KAAKygN,UAAUQ,QAEOhiN,OAAQ4+E,EAAKjD,EAAMhqE,IAAMitE,EACpDwC,EAAQ/0E,EAAKsF,GACb5R,EAAYwW,EAAIwsM,gBAAgB3hI,EAAMgI,MAAOhI,EAAMiI,QACnDpN,EAASl7E,KAAK2hN,aAAa,IAAI/8H,WAAWvE,EAAM77E,OAAA,KAC3Cq9M,gBAAgB7iN,EAAWk8E,GAChCmF,EAAMs3H,UAAY34M,EAClBi/E,EAASruE,KAAMywE,EAAMr9C,MAAQz7B,EAAUvI,IAAA,OAElCi/E,CAAA,GAGT/C,EAAI18E,UAAUyjN,YAAc,SAAS16M,EAAKiO,GAAA,IACpC6qE,EAAOzvE,EAAQ5R,EAAA,OAEnBqhF,GADAzvE,EAAS5Q,KAAKygN,UAAUQ,QACTzrM,GACfxW,EAAO4R,EAAO4E,EAAS,GACR,IAAXA,GACFjO,EAAIo1K,UAAU,EAAG,EAAG38K,KAAKqoF,MAAOroF,KAAKsoF,QAxeZ,KA2ehB,MAARtpF,EAAeA,EAAKqiN,eAAA,GAErB95M,EAAIo1K,UAAU39K,EAAKkiN,QAASliN,EAAKmiN,QAASniN,EAAKqpF,MAAOrpF,EAAKspF,QA3epC,KA6ed,MAARtpF,EAAeA,EAAKqiN,eAAA,IAErB95M,EAAIghH,aAAavpH,EAAK24M,UAAW34M,EAAKkiN,QAASliN,EAAKmiN,SA7ejC,IA+ejB9gI,EAAMihI,SACR/5M,EAAIo1K,UAAUt8F,EAAM6gI,QAAS7gI,EAAM8gI,QAAS9gI,EAAMgI,MAAOhI,EAAMiI,QAE1D/gF,EAAIg0G,UAAUl7B,EAAMr9C,MAAOq9C,EAAM6gI,QAAS7gI,EAAM8gI,QAAA,EAGzDjmI,EAAI18E,UAAU0jN,QAAU,SAAS36M,GAAA,IAC3BiO,EACF6qE,EACAzvE,EACA5R,EACAk8E,EACA2C,EACAjD,EAAQ56E,KAAA,OACVqgF,EAAc,EACbxC,EAAO79E,KAAKygN,UACVzhN,EAAY6+E,EAAKkjI,UACjBnwM,EAASitE,EAAKojI,OACd/lI,EAAW2C,EAAKmjI,UACXxrM,EAAU,eACZqoE,EAAGvyE,EAAA,GACPuyE,EAAIwC,IAAgBrhF,EACpBsM,EAAQsF,EAAOitE,GACfjD,EAAMqnI,YAAY16M,EAAKs2E,GACnB7+E,EAAY,GAAKqhF,EAAcrhF,EAAYk8E,EAAA,OACrCN,EAAM6lI,UAAU0B,SAAW7hI,WAAW9qE,EAASlK,EAAMkzE,MAAA,MAKnEtD,EAAI18E,UAAU4jN,cAAgB,eACxB76M,EAAA,OACGg5E,aACsB,OAA1Bh5E,EAAOvH,KAAKygN,WAAqBl5M,EAAK46M,cAAA,EAAW,EAItDjnI,EAAI18E,UAAU48H,OAAS,SAAS7zH,GAAA,IAC1BiO,EAAK6qE,EAAA,OACL94E,EAAO86M,MACT96M,EAAO86M,KAAKD,gBAEd76M,EAAO86M,KAAOriN,KACduH,EAAO8gF,MAAQroF,KAAKqoF,MACpB9gF,EAAO+gF,OAAStoF,KAAKsoF,OACrB9yE,EAAMjO,EAAO+zG,WAAW,MACpBt7G,KAAKygN,WAAA,KACFsB,aAAavsM,GACXxV,KAAKkiN,QAAQ1sM,KAEpB6qE,EAAO7qE,EAAIwsM,gBAAgBhiN,KAAKqoF,MAAOroF,KAAKsoF,QAAA,KACvCu5H,gBAAgBxhI,EAAMrgF,KAAK2hN,gBACzBnsM,EAAI+yG,aAAaloC,EAAM,EAAG,KAI9BnF,CAAA,CAvjBE,GEwYX,SAASujH,GAAUl3L,GAAA,IACbiO,EAAI,KAIO,KAAbjO,EAAIiO,MACS,KAAbjO,EAAIiO,MACS,KAAbjO,EAAIiO,MACS,KAAbjO,EAAIiO,MACwB,KAA1BjO,EAAIiO,KAAO,EAAK,MACL,KAAbjO,EAAIiO,KAAA,MAEE,IAAI9L,MAAM,mCAId22E,EAAQ94E,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAChC5E,EAASrJ,EAAIiO,KAAQjO,EAAIiO,MAAQ,EACjCxW,EAAMuI,EAAIiO,KACV0lE,EAAsBl8E,GAAO,EAE7B6+E,EAAoB,GAA+B,GADpB,EAAN7+E,GAEZuI,EAAIiO,KACrBjO,EAAIiO,KAAA,IAEAolE,EAAwB,KACxBtvE,EAAsB,KAEtB4vE,IACFN,EAAwBplE,EACxBlK,EAAsBuyE,EACtBroE,GAAyB,EAApBqoE,GAAA,IAGHI,GAAA,EAEAI,EAAS,GAET59E,EAAQ,EACRy5E,EAAoB,KACpBgE,EAAW,EACXh3E,EAAa,cAEZmhF,MAAQhI,EAAA,KACRiI,OAAS13E,EAEPqtE,GAAUzoE,EAAIjO,EAAItI,QAAA,OACfsI,EAAIiO,MAAA,KACL,UACKjO,EAAIiO,MAAA,KACL,OAGU,KAAXjO,EAAIiO,IAEW,IAAdjO,EAAIiO,EAAI,IACO,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACM,IAAdjO,EAAIiO,EAAI,IACO,IAAfjO,EAAIiO,EAAI,KACO,IAAfjO,EAAIiO,EAAI,KAEO,GAAfjO,EAAIiO,EAAI,KACO,GAAfjO,EAAIiO,EAAI,KACO,GAAfjO,EAAIiO,EAAI,IAEVA,GAAK,GACLtO,EAAaK,EAAIiO,KAAQjO,EAAIiO,MAAQ,EACrCA,SAAA,IAGAA,GAAK,KACQ,OAEPmxE,EAAap/E,EAAIiO,OAED,GAAI,MAAM9L,MAAM,yBACjB,IAAfi9E,EAAkB,MACtBnxE,GAAKmxE,CAAA,YAKN,OACc,IAAbp/E,EAAIiO,MAA+B,IAAfjO,EAAIiO,EAAI,GAC9B,MAAM,IAAI9L,MAAM,yCACd02E,EAAM74E,EAAIiO,KACd/U,EAAQ8G,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAChC0kE,EAAoB3yE,EAAIiO,KACN,IAAP,EAAN4qE,KAAgBlG,EAAoB,MACzCgE,EAAYkC,GAAO,EAAK,EACxB5qE,IAAA,WAGG,WACU,OAEPmxE,EAAap/E,EAAIiO,OAED,GAAI,MAAM9L,MAAM,yBACjB,IAAfi9E,EAAkB,MAEtBnxE,GAAKmxE,CAAA,qBAKD,IAAIj9E,MACR,oCAAsCnC,EAAIiO,EAAI,GAAGvE,SAAS,gBAK7D,OACC6rE,EAAIv1E,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAC5B3E,EAAItJ,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAC5B2oE,EAAI52E,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAC5B4oE,EAAI72E,EAAIiO,KAAQjO,EAAIiO,MAAQ,EAC5B8oE,EAAM/2E,EAAIiO,KAEVk9K,EAAkBp0G,GAAO,EAAK,EAE9Bg6B,EAAmB,GAA8B,GADnB,EAANh6B,GAExB2W,EAAiBra,EACjB2D,EAAejzE,EACf+zE,GAAA,EANqBf,GAAO,IAQ1Be,GAAA,EACJ4V,EAAiBz/E,EACjB+oE,EAAe+5B,EACf9iG,GAAwB,EAAnB8iG,GAAA,IAGH94B,EAAchqE,EAAA,IAElBA,MACa,KACPmxE,EAAA,MAAAA,EAAap/E,EAAIiO,OAED,GAAI,MAAM9L,MAAM,yBACjB,IAAfi9E,EAAkB,MACtBnxE,GAAKmxE,CAAA,CAGPtI,EAAOzuE,KAAK,CACV2uE,EAAGzB,EACHsB,EAAGvtE,EACHw3E,MAAOlK,EACPmK,OAAQlK,EACRkkI,kBAAmBjjI,EACnBkjI,eAAgBttH,EAChButH,aAAcjkI,EACdkkI,YAAajjI,EACbkjI,YAAaltM,EAAIgqE,EACjBmjI,kBAAmBzoI,EACnB0oI,aAAclwB,EACdl0G,MAAO/9E,EACPoiN,SAAU3kI,IAAA,WAIT,GACHD,GAAA,EAAS,oBAIH,IAAIv0E,MAAM,wBAA0BnC,EAAIiO,EAAI,GAAGvE,SAAS,UAK/D8vM,UAAY,kBACR1iI,EAAOp/E,MAAA,OAGX6jN,UAAY,kBACR57M,CAAA,OAGJ67M,UAAY,SAASx7M,GAAA,GACpBA,EAAY,GAAKA,GAAa82E,EAAOp/E,OACvC,MAAM,IAAIyK,MAAM,oCACX20E,EAAO92E,EAAA,OAGXy7M,uBAAyB,SAASxtM,EAAW5E,GAAA,IAC5C5R,EAAQgB,KAAK+iN,UAAUvtM,GACvB0lE,EAAal8E,EAAMqpF,MAAQrpF,EAAMspF,OACjCzK,EAAe,IAAI+G,WAAW1J,GAClCyjH,GACEp3L,EACAvI,EAAMyjN,YACN5kI,EACA3C,GAAA,IAEEN,EAAiB57E,EAAMujN,eAKvBj3M,EAAQtM,EAAM2jN,kBACJ,OAAVr3M,IAAgBA,EAAQ,SAKxB2yE,EAAaj/E,EAAMqpF,MACnBhK,EAAcgC,EAAQpC,EACtBx9E,EAAQw9E,EAGR/D,EAAsC,GAA7Bl7E,EAAMo/E,EAAIiC,EAAQrhF,EAAMu/E,GACjCL,EAAuD,IAA7Cl/E,EAAMo/E,EAAIp/E,EAAMspF,QAAUjI,EAAQrhF,EAAMu/E,GAClDr3E,EAAKgzE,EAELkG,EAA2B,EAAd/B,GAAA,IAIbr/E,EAAM4jN,aACRxiI,GAAsB,EAARC,EAAY,WAGxBvD,EAAgB,EAEXjsE,EAAI,EAAGstE,EAAKN,EAAa5+E,OAAQ4R,EAAIstE,IAAMttE,EAAG,KACjDutE,EAAQP,EAAahtE,GAAA,GAEX,IAAVpQ,IAGFA,EAAQw9E,GADR/2E,GAAMk5E,IAEIlC,IAERkC,EAA2B,EAAd/B,EAA0B,EAARgC,GAAavD,EAAgB,GAE5D51E,EAAKgzE,GAAS+D,EAAaI,IAAgBvB,GAAiB,GAC5DA,IAAkB,IAIlBsB,IAAU9yE,EACZpE,GAAM,MACD,KACDo3E,EAAI/2E,EAAIqzE,EAAyB,EAARwD,GACzBs0G,EAAInrL,EAAIqzE,EAAyB,EAARwD,EAAY,GACrCk6B,EAAI/wG,EAAIqzE,EAAyB,EAARwD,EAAY,GACzCxtE,EAAO1J,KAAQoxG,EACf1nG,EAAO1J,KAAQwrL,EACf9hL,EAAO1J,KAAQo3E,EACf1tE,EAAO1J,KAAQ,MAEfzG,CAAA,QAKDwiN,uBAAyB,SAASztM,EAAW5E,GAAA,IAC5C5R,EAAQgB,KAAK+iN,UAAUvtM,GACvB0lE,EAAal8E,EAAMqpF,MAAQrpF,EAAMspF,OACjCzK,EAAe,IAAI+G,WAAW1J,GAClCyjH,GACEp3L,EACAvI,EAAMyjN,YACN5kI,EACA3C,GAAA,IAEEN,EAAiB57E,EAAMujN,eAKvBj3M,EAAQtM,EAAM2jN,kBACJ,OAAVr3M,IAAgBA,EAAQ,SAKxB2yE,EAAaj/E,EAAMqpF,MACnBhK,EAAcgC,EAAQpC,EACtBx9E,EAAQw9E,EAGR/D,EAAsC,GAA7Bl7E,EAAMo/E,EAAIiC,EAAQrhF,EAAMu/E,GACjCL,EAAuD,IAA7Cl/E,EAAMo/E,EAAIp/E,EAAMspF,QAAUjI,EAAQrhF,EAAMu/E,GAClDr3E,EAAKgzE,EAELkG,EAA2B,EAAd/B,GAAA,IAIbr/E,EAAM4jN,aACRxiI,GAAsB,EAARC,EAAY,WAGxBvD,EAAgB,EAEXjsE,EAAI,EAAGstE,EAAKN,EAAa5+E,OAAQ4R,EAAIstE,IAAMttE,EAAG,KACjDutE,EAAQP,EAAahtE,GAAA,GAEX,IAAVpQ,IAGFA,EAAQw9E,GADR/2E,GAAMk5E,IAEIlC,IAERkC,EAA2B,EAAd/B,EAA0B,EAARgC,GAAavD,EAAgB,GAE5D51E,EAAKgzE,GAAS+D,EAAaI,IAAgBvB,GAAiB,GAC5DA,IAAkB,IAIlBsB,IAAU9yE,EACZpE,GAAM,MACD,KACDo3E,EAAI/2E,EAAIqzE,EAAyB,EAARwD,GACzBs0G,EAAInrL,EAAIqzE,EAAyB,EAARwD,EAAY,GACrCk6B,EAAI/wG,EAAIqzE,EAAyB,EAARwD,EAAY,GACzCxtE,EAAO1J,KAAQo3E,EACf1tE,EAAO1J,KAAQwrL,EACf9hL,EAAO1J,KAAQoxG,EACf1nG,EAAO1J,KAAQ,MAEfzG,CAAA,GAKR,SAASk+L,GAA8Bp3L,EAAaiO,EAAG6qE,EAAQzvE,GAAA,QACzD5R,EAAgBuI,EAAYiO,KAE5BqoE,EAAa,GAAK7+E,EAClB47E,EAAWiD,EAAa,EACxBvyE,EAAYsvE,EAAW,EAEvBqD,EAAgBj/E,EAAgB,EAGhCq/E,GAAa,GAAKJ,GAAiB,EACnCx9E,EAAY,EACZy5E,EAAM,EAENgE,EAAK,EAELh3E,EAAgBK,EAAYiO,KAK5B4qE,EAAa,IAAIs+F,WAAW,MAE5B5hG,EAAY,OAEH,MAEJr8E,EAAY,IACK,IAAlByG,GAEJgzE,GAAO3yE,EAAYiO,MAAQ/U,EAC3BA,GAAa,EAES,IAAlByG,EAEFA,EAAgBK,EAAYiO,OAE1BtO,EAAA,GAMFzG,EAAYw9E,EAAe,UAE3BptE,EAAOqpE,EAAMmE,EAAA,GACjBnE,IAAQ+D,EACRx9E,GAAaw9E,EAKTptE,IAASgtE,EAAA,CAYN,GAAIhtE,IAAS+pE,EAAA,cAuBhBuD,EAAattE,EAAOvF,EAAYuF,EAAOisE,EAGvCsB,EAAe,EACfE,EAAQH,EACLG,EAAQT,GACbS,EAAQ8B,EAAW9B,IAAU,IAC3BF,EAAA,IAGAs0G,EAAIp0G,EAAA,GAEKJ,EAAKE,GAAgBD,IAAettE,EAAO,EAAI,GAC/CD,EAAA,YACXsqE,GAAQwsG,IAAI,6CAKdrnG,EAAOnC,KAAQw0G,EAAA,IAGXp6E,EADJp6B,GAAME,EAAA,IAGFD,IAAettE,IAEjBwvE,EAAOnC,KAAQw0G,GAEjBp0G,EAAQH,EACDC,KACLE,EAAQ8B,EAAW9B,GACnB+B,IAASi4B,GAAa,IAARh6B,EACdA,IAAU,EAGM,OAAdxB,GAAsBxxE,EAAY,OACpC80E,EAAW90E,KAAgBwxE,GAAa,EAAK41G,EAMzCpnL,GAAa+yE,EAAY,GAAKJ,EAAgB,OAC9CA,EACFI,EAAaA,GAAa,EAAK,IAInCvB,EAAYjsE,CAAA,MA9EVvF,EAAYsvE,EAAW,EAEvByD,GAAa,IADbJ,EAAgBj/E,EAAgB,IACG,EAGnC89E,EAAY,YA4EZoB,IAAOttE,GACTsqE,GAAQwsG,IAAI,8CAGPrnG,CAAA,CCz1BT,SAASy+G,GAAYv3L,GAAA,IAMfiO,EACA6qE,EACAzvE,EACA5R,EAeAk8E,EAvBA2C,EAASJ,KAAK8H,MACd3K,EAAS,IAAI77E,MAAM,IACnBuM,EAAU,IAAIvM,MAAM,IACpBk/E,EAAU,IAAIl/E,MAAM,IACpBs/E,EAAW,IAAIt/E,MAAM,IAMrB0B,EAAU,IAAI1B,MAAM,OACpBm7E,EAAW,IAAIn7E,MAAM,OACrBm/E,EAAkB,IAAIn/E,MAAM,IAC5BmI,EAAK,IAAInI,MAAM,IACfqhF,EAAU,GACVtD,EAAU,EACVjsE,EAAU,EAEVstE,EAAM,IAAIp/E,MAAM,IAChBq/E,EAAM,IAAIr/E,MAAM,IAChBu/E,EAAM,IAAIv/E,MAAM,IAChB2zL,EAAM,IAAI3zL,MAAM,KAChBu5G,EAAgB,IAAIv5G,MAAM,MAG1Bk2F,EAAS,CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGE1W,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEc,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DG,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEmH,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGEjK,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEm2G,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D19F,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEi3C,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJjoE,EAAE,aAAc,iBAChBn1I,EAAKwuN,WAAa,kBACT,YAETxuN,EAAKyuN,WAAa,SAASzuN,GAAA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KvkN,EAAK4vN,SAEVvN,GAAMriN,EAAK6vN,kBAAoB,GACjCxN,GAAG3qN,OAAS,IACXsI,EAAK8vN,eAAiB,IAAIp4N,OAAS,IACnCsI,EAAK+vN,oBAAsB,IAAIr4N,OAAS,IACxCsI,EAAKgwN,iBAAmB,IAAIt4N,OAAS,OAClC4qN,GACFO,GACAC,GACAG,GACAG,GACAJ,GA+3BA2I,GAIAC,GACAI,GACAH,GACAC,GACAC,GACAlwC,GACA9gL,GACAmxN,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAvM,GACA8C,GACA/C,GACA4E,GAz5BAwG,GAAK53I,EAAE,KACP63I,GAAK73I,EAAE,MACP83I,GAAK93I,EAAE,KACP+3I,GAAK/3I,EAAE,KACP23I,GAAK,EACL8B,GAAK5B,GACL/gB,GAAKghB,GACL0B,GAAIzB,GACJ2B,GAAI9B,GACJ3I,GAAK,EACLtC,GAAK,EACLyC,GAAK,EACLxC,GAAK,EACLN,GAAK,EACLO,GAAK,EACL2C,GAAK,EACLxF,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACL+G,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEnD,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFiD,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF9kC,GAAK,EACLmrC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAC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AK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,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3E,EAAMiO,EAAmB6qE,GACzCxvE,EA1ZM,EA2ZNvF,GAAA,EACA/D,EAAOg3E,EAASh3E,EAAMiO,EAAmB6qE,GACzC/0E,EAAuBsF,IAGvBC,EAhaM,EAiaNtJ,EAAOg3E,EAASh3E,EAAMiO,EAAmB6qE,GACzC94E,EAAOmrL,EAAcnrL,EAAMiO,GAC3B3E,EAlaM,EAmaNvF,GAAA,EACA/D,EAAOg3E,EAASh3E,EAAMiO,EAAmB6qE,GACzC/0E,EAAuBsF,EACvBrJ,EAAOmrL,EAAcnrL,EAAMiO,GAAA,OAxC7B3E,EA/XQ,EAgYRtJ,EAAOg3E,EAASh3E,EAAMiO,EAAmB6qE,QAdzCxvE,EAAOqqE,EAjXC,EADA,EAmXR3zE,EAAOg3E,EAASh3E,EAAMiO,EAAmB6qE,GAAA,OAuDpC94E,CAAA,OAcJg7N,eAAe7xB,WAAa,SAASnpM,GACpCA,IACFvI,EAAcuI,EAAQq7N,cACtB/kJ,EAAet2E,EAAQs7N,eACvB3nJ,EAAW3zE,EAAQu7N,WACnBloJ,EAAYrzE,EAAQw7N,YACpBz3N,EAAuB/D,EAAQy7N,oBAAA,OAI9BT,eAAe7xB,WAAWnpM,GACxBvH,KAAKuiO,cAAA,MAGV/sN,EA5jFmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,IACA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AASg1B,EAAa/7B,cACmB,EAArCsiC,EAAuB7nB,YACrBynB,GACEzD,EACA1C,EACAoG,EACAC,GAEFK,GAAwChE,EAAc1C,GACnB,EAArCuG,EAAuB7nB,YACrBynB,GACEzD,EACA1C,EACAoG,EACAC,IAEAE,EAAuB7nB,aAAe,EACxCioB,GACEjE,EACA1C,EACAoG,EACAC,EACA,KAAmC,MAA5BrG,EAAa7D,gBAEpB,KAARrnO,GACEkxO,GACEhG,EAAal8B,UACbk8B,GAEJ,MACF,KAAK,GACHmG,GACEzD,EACA1C,EACAoG,EACAC,GAEM,KAARvxO,GACEoxO,GAA8BlG,EAAal8B,UAAWk8B,GACxD,MACF,QACEmG,GACEzD,EACA1C,EACAoG,EACAC,GAGR,CACA,SAASM,GACPb,EACAtB,EACAoC,EACAC,EACAd,GAIA,IAFAA,EACEA,GAAgC,KAAkC,MAA3BvB,EAAYrI,cAChDqI,EAAcA,EAAYx8T,MAAO,OAASw8T,GAAe,CAC5D,IAAI9B,EAAeoD,EACjB9F,EAAewE,EACf4B,EAAiBQ,EACjBP,EAAuBQ,EACvB/xO,EAAQkrO,EAAalrO,MACvB,OAAQkrO,EAAax3L,KACnB,KAAK,EACL,KAAK,GACL,KAAK,GACHm+L,GACEjE,EACA1C,EACAoG,EACAC,EACAN,GAEFhG,GAA0B,EAAGC,GAC7B,MACF,KAAK,GACH,MACF,KAAK,GACH,IAAI70J,EAAW60J,EAAah1B,UAC5B,OAASg1B,EAAa/7B,cACK,EAAvB94H,EAASuzI,YACPioB,GACEjE,EACA1C,EACAoG,EACAC,EACAN,GAEFW,GACEhE,EACA1C,IAEF70J,EAASuzI,aAAe,EAC1BioB,GACEjE,EACA1C,EACAoG,EACAC,EACAN,IAENA,GACU,KAARjxO,GACAkxO,GACEhG,EAAal8B,UACbk8B,GAEJ,MACF,KAAK,GACH2G,GACEjE,EACA1C,EACAoG,EACAC,EACAN,GAEFA,GACU,KAARjxO,GACAoxO,GAA8BlG,EAAal8B,UAAWk8B,GACxD,MACF,QACE2G,GACEjE,EACA1C,EACAoG,EACAC,EACAN,GAGNvB,EAA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KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,GAAOriU,GAA6D,OAAOA,EAAI3xE,KAAI,SAASmsE,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,GAAI,CAIrJ,IA4FI8nU,GAAsB3N,GA5FE0N,GAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKGlE,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,SAGjBoE,GAAQ,CACX,SAAiB,EACjB,UAAiB,EACjB,UAAiB,GACjB,QAAiB,GACjB,SAAiB,GACjB,QAAiB,GACjB,OAAiB,GACjB,gBAAiB,GACjB,QAAiB,KAOdC,GAAgC,CAEnC,6EAA8E,YAC9E,uDAAwD,YACxD,0DAA2D,YAC3D,uDAAwD,YACxD,gFAAiF,YAGjF,4EAA6E,SAC7E,qCAAsC,SACtC,sCAAuC,OAGvC,6EAA8E,SAC9E,sCAAuC,SAGvC,0CAA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e,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,cAAespE,EAAEgoV,GACpC,IAAe,CAAEtxZ,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MAC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IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAA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,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EA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AS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,SAC7D,GAGE2sT,GAAmB,CAAC,IAAI3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hCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCy2F,WAAWz2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MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,IAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,SAKtBkhf,EAAaS,eAAiBlrZ,WAAWz2F,KAAK,CAC1C,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3G,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAC5G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAC7G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,IAC3G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KACzG,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACzG,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IA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AAK,IAAK,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAC7G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KACxG,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK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IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAC1G,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAC1G,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAC5G,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAC3G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAC1G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAC1G,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACxG,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,IAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KACzG,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAC5G,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAC5G,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAC5G,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,GAAI,KAC1G,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,IAAK,IACzG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAC3G,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAC1G,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAC7G,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IACzG,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KACzG,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACzG,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KACzG,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACzG,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IACzG,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KACxG,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAC3G,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IACzG,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC1G,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,IAAM,IAAK,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAC1G,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KACxG,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAEjFkhf,CACX,CA5bkC,GCJlC,SAb0C,WACtC,SAASiB,EAAqBnqZ,EAAMqhX,GAChCthiB,KAAKigL,KAAOA,EACZjgL,KAAKshiB,OAASA,CAClB,CAOA,OANA8oC,EAAqB5rkB,UAAUmte,QAAU,WACrC,OAAO3re,KAAKigL,IAChB,EACAmqZ,EAAqB5rkB,UAAU+iiB,UAAY,WACvC,OAAOvhiB,KAAKshiB,MAChB,EACO8oC,CACX,CAZ0C,GCJ1C,IAAI3qD,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EAuTA,SApS8B,WAC1B,SAAS4sd,IACT,CAgSA,OArRAA,EAAS6iC,eAAiB,SAAUrniB,EAAOikf,EAAOl1O,GAI9C,IAAIygR,EAAYxvhB,EAAMu7e,iBAClB+rD,EAAqB9iC,EAASrF,OAAOpwP,EAAUygR,GAMnD,OALK8X,EAAmBrrkB,UACpBuzjB,EAAYA,EAAUhrc,SACZ2ia,YACVmgD,EAAqB9iC,EAASrF,OAAOpwP,EAAUygR,IAE5C,IAAI4X,GAAqB5X,EAAW8X,EAC/C,EAQA9iC,EAASrF,OAAS,SAAUpwP,EAAUygR,GAMlC,IALA,IAAItyC,EAAK1ub,EACL84e,EAAqB,IAAIvrkB,MACzBm8M,EAAM,EACN3wD,EAAS,EACTggb,GAAoB,EACjBrvX,EAAMs3W,EAAU9kX,aAAa,CAChC,IAAI88X,EAAWhjC,EAASijC,aAAajY,EAAWt3W,EAAK3wD,GACrD,GAAmB,MAAfigb,EAAS,IAA6B,MAAfA,EAAS,GAApC,CAgCA,GAFAD,GAAoB,EACpBD,EAAmB16jB,KAAK46jB,IACnBz4R,EACD,MAIe,MAAfy4R,EAAS,IACTjgb,EAAS9sE,KAAK8tX,MAAMi/H,EAAS,GAAGxhE,QAChC9tT,EAAMz9H,KAAK8tX,MAAMi/H,EAAS,GAAGvhE,UAG7B1+W,EAAS9sE,KAAK8tX,MAAMi/H,EAAS,GAAGxhE,QAChC9tT,EAAMz9H,KAAK8tX,MAAMi/H,EAAS,GAAGvhE,QAdjC,KA7BA,CACI,IAAKshE,EAED,MAIJA,GAAoB,EACpBhgb,EAAS,EACT,IACI,IAAK,IAAImgb,GAAwBxqD,OAAM,EAAQT,GAAS6qD,IAAsBK,EAAyBD,EAAqBp+jB,QAASq+jB,EAAuBtjf,KAAMsjf,EAAyBD,EAAqBp+jB,OAAQ,CACpN,IAAIs+jB,EAAoBD,EAAuBntkB,MACnB,MAAxBotkB,EAAkB,KAClB1vX,EAAMz9H,KAAK8tX,MAAM9tX,KAAKC,IAAIw9H,EAAK0vX,EAAkB,GAAG3hE,UAE5B,MAAxB2hE,EAAkB,KAClB1vX,EAAMz9H,KAAKC,IAAIw9H,EAAKz9H,KAAK8tX,MAAMq/H,EAAkB,GAAG3hE,SAE5D,CACJ,CACA,MAAOoX,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQsqD,IAA2BA,EAAuBtjf,OAASmK,EAAKk5e,EAAqB7iS,SAASr2M,EAAG9yF,KAAKgskB,EAC9G,CAAC,QACS,GAAIxqD,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACAs4M,GAAOssV,EAASqjC,QAEpB,CAgBJ,CACA,OAAOP,CACX,EAgBA9iC,EAASijC,aAAe,SAAU/4d,EAAQo5d,EAAUC,GAChD,IAAIzif,EAASopB,EAAOg8F,YAChBrlH,EAAQqpB,EAAO01F,WAEfhgH,EAAS,IAAIroF,MAAM,GAOvB,OANAyoiB,EAASwjC,aAAa5jf,EAAQogd,EAASyjC,oBAAoBv5d,EAAQppB,EAAQD,EAAOyif,EAAUC,EAAavjC,EAASgN,eAAgBhN,EAAS0jC,uBAC1H,MAAb9jf,EAAO,KACP2jf,EAActtf,KAAK8tX,MAAMnkX,EAAO,GAAG4hb,QACnC8hE,EAAWrtf,KAAK8tX,MAAMnkX,EAAO,GAAG6hb,SAEpCu+B,EAASwjC,aAAa5jf,EAAQogd,EAASyjC,oBAAoBv5d,EAAQppB,EAAQD,EAAOyif,EAAUC,EAAavjC,EAAS2jC,cAAe3jC,EAAS4jC,sBACnIhkf,CACX,EACAogd,EAASwjC,aAAe,SAAU5jf,EAAQikf,EAAWC,GACjD,IAAK,IAAItskB,EAAI,EAAGA,EAAIsskB,EAAmBrskB,OAAQD,IAC3CooF,EAAOkkf,EAAmBtskB,IAAMqskB,EAAUrskB,EAElD,EACAwoiB,EAASyjC,oBAAsB,SAAUv5d,EAAQppB,EAAQD,EAAOyif,EAAUC,EAAanuc,GAKnF,IAHA,IAAIx1C,EAAS,IAAIroF,MAAM,GACnBwqjB,GAAQ,EACRvmc,EAAW,IAAI07D,WAAW9hD,EAAQ39H,QAC/B6rkB,EAAWxif,EAAQwif,GAAYtjC,EAASqjC,SAAU,CAErD,GAAW,OADP1rL,EAAMqoJ,EAAS+M,iBAAiB7ic,EAAQq5d,EAAaD,EAAUzif,GAAO,EAAOu0C,EAAS5Z,IACzE,CACb,KAAO8nd,EAAW,GAAG,CAEjB,GAAsB,OADlBS,EAAiB/jC,EAAS+M,iBAAiB7ic,EAAQq5d,IAAeD,EAAUzif,GAAO,EAAOu0C,EAAS5Z,IAIlG,CACD8nd,IACA,KACJ,CALI3rL,EAAMosL,CAMd,CACAnkf,EAAO,GAAK,IAAIo5c,GAAYrhJ,EAAI,GAAI2rL,GACpC1jf,EAAO,GAAK,IAAIo5c,GAAYrhJ,EAAI,GAAI2rL,GACpCvhB,GAAQ,EACR,KACJ,CACJ,CACA,IAAIiiB,EAAUV,EAAW,EAEzB,GAAIvhB,EAAO,CAGP,IAFA,IAAIkiB,EAAkB,EAClBF,EAAiB7sZ,WAAWz2F,KAAK,CAACxK,KAAK8tX,MAAMnkX,EAAO,GAAG4hb,QAASvrb,KAAK8tX,MAAMnkX,EAAO,GAAG4hb,UAClFwiE,EAAUljf,EAAQkjf,IAAW,CAChC,IAAIrsL,EAKJ,GAAW,OALPA,EAAMqoJ,EAAS+M,iBAAiB7ic,EAAQ65d,EAAe,GAAIC,EAASnjf,GAAO,EAAOu0C,EAAS5Z,KAM3FvlC,KAAK4sB,IAAIkhe,EAAe,GAAKpsL,EAAI,IAAMqoJ,EAASkkC,mBAChDjuf,KAAK4sB,IAAIkhe,EAAe,GAAKpsL,EAAI,IAAMqoJ,EAASkkC,kBAChDH,EAAiBpsL,EACjBssL,EAAkB,MAEjB,CACD,GAAIA,EAAkBjkC,EAASmkC,sBAC3B,MAGAF,GAER,CACJ,CACAD,GAAWC,EAAkB,EAC7Brkf,EAAO,GAAK,IAAIo5c,GAAY+qC,EAAe,GAAIC,GAC/Cpkf,EAAO,GAAK,IAAIo5c,GAAY+qC,EAAe,GAAIC,EACnD,CAIA,OAHIA,EAAUV,EAAWtjC,EAASokC,oBAC9BlsD,GAAOrkZ,KAAKj0C,EAAQ,MAEjBA,CACX,EAWAogd,EAAS+M,iBAAmB,SAAU7ic,EAAQ64C,EAAQ2wD,EAAK7yH,EAAOmtd,EAAY54a,EAAS5Z,GACnF08Z,GAAOC,WAAW38Z,EAAU,EAAGA,EAAS/jH,OAAQ,GAIhD,IAHA,IAAIgviB,EAAe1jZ,EACfshb,EAAa,EAEVn6d,EAAOp8F,IAAI24hB,EAAc/yV,IAAQ+yV,EAAe,GAAK49B,IAAerkC,EAASskC,iBAChF79B,IAKJ,IAHA,IAAI1vd,EAAI0vd,EACJb,EAAkB,EAClBK,EAAgB7wa,EAAQ39H,OACnBkuiB,EAAUqI,EAAYj3d,EAAI8J,EAAO9J,IAAK,CAE3C,GADYmzB,EAAOp8F,IAAIipE,EAAG28H,KACZiyV,EACVnqb,EAASoqb,SAER,CACD,GAAIA,IAAoBK,EAAgB,EAAG,CACvC,GAAIjG,EAAS+F,qBAAqBvqb,EAAU4Z,EAAS4qa,EAASiH,yBAA2BjH,EAAS2G,iBAC9F,OAAO,IAAIzvX,WAAW,CAACuvX,EAAc1vd,IAEzC0vd,GAAgBjrb,EAAS,GAAKA,EAAS,GACvCk8Z,GAAOC,UAAUn8Z,EAAU,EAAGA,EAAU,EAAGoqb,EAAkB,GAC7Dpqb,EAASoqb,EAAkB,GAAK,EAChCpqb,EAASoqb,GAAmB,EAC5BA,GACJ,MAEIA,IAEJpqb,EAASoqb,GAAmB,EAC5BD,GAAWA,CACf,CACJ,CACA,OAAIC,IAAoBK,EAAgB,GACpCjG,EAAS+F,qBAAqBvqb,EAAU4Z,EAAS4qa,EAASiH,yBAA2BjH,EAAS2G,iBACvF,IAAIzvX,WAAW,CAACuvX,EAAc1vd,EAAI,IAEtC,IACX,EAYAipd,EAAS+F,qBAAuB,SAAUvqb,EAAU4Z,EAAS4wa,GAIzD,IAHA,IAAIN,EAAclqb,EAAS/jH,OACvBkkP,EAAQ,EACRsqT,EAAgB,EACXzuiB,EAAI,EAAGA,EAAIkuiB,EAAaluiB,IAC7BmkP,GAASngI,EAAShkH,GAClByuiB,GAAiB7wa,EAAQ59H,GAE7B,GAAImkP,EAAQsqT,EAGR,OAAmCnic,IAKvC,IAAIqic,EAAexqT,EAAQsqT,EAC3BD,GAAyBG,EAEzB,IADA,IAAIC,EAAgB,EACXrvd,EAAI,EAAGA,EAAI2ud,EAAa3ud,IAAK,CAClC,IAAIk1B,EAAUuP,EAASzkC,GACnBsvd,EAAgBjxa,EAAQr+C,GAAKovd,EAC7BG,EAAWr6b,EAAUo6b,EAAgBp6b,EAAUo6b,EAAgBA,EAAgBp6b,EACnF,GAAIq6b,EAAWN,EACX,OAAmClic,IAEvCsic,GAAiBE,CACrB,CACA,OAAOF,EAAgBzqT,CAC3B,EACAqkT,EAAS0jC,sBAAwBxsZ,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,IAC3Du/c,EAAS4jC,qBAAuB1sZ,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,IAC1Du/c,EAAS2G,iBAAmB,IAC5B3G,EAASiH,wBAA0B,GAGnCjH,EAASgN,cAAgB91X,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAE/Du/c,EAAS2jC,aAAezsZ,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACjEu/c,EAASskC,gBAAkB,EAC3BtkC,EAASkkC,kBAAoB,EAG7BlkC,EAASmkC,sBAAwB,GAGjCnkC,EAASqjC,SAAW,EACpBrjC,EAASokC,mBAAqB,GACvBpkC,CACX,CAnS8B,GC7B9B,IAAI/nB,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EAuPA,SA9OiC,WAC7B,SAASmxf,EAAYn3N,EAAO0jL,GACxB,GAA4B,IAAxBA,EAAar5hB,OACb,MAAM,IAAIk/gB,GAEdn+gB,KAAK40W,MAAQA,EACb,IAAI2jL,EAA6BD,EAAar5hB,OAC9C,GAAIs5hB,EAAqB,GAAyB,IAApBD,EAAa,GAAU,CAGjD,IADA,IAAIE,EAAuB,EACpBA,EAAeD,GAAqD,IAA/BD,EAAaE,IACrDA,IAEAA,IAAiBD,EACjBv4hB,KAAKs4hB,aAAe,IAAI55W,WAAW,CAAC,KAGpC1+K,KAAKs4hB,aAAe,IAAI55W,WAAW65W,EAAqBC,GACxDtZ,GAAOC,UAAUmZ,EAAcE,EAAcx4hB,KAAKs4hB,aAAc,EAAGt4hB,KAAKs4hB,aAAar5hB,QAE7F,MAEIe,KAAKs4hB,aAAeA,CAE5B,CAoNA,OAnNAyzC,EAAYvtkB,UAAUi6hB,gBAAkB,WACpC,OAAOz4hB,KAAKs4hB,YAChB,EAIAyzC,EAAYvtkB,UAAUk6hB,UAAY,WAC9B,OAAO14hB,KAAKs4hB,aAAar5hB,OAAS,CACtC,EAIA8skB,EAAYvtkB,UAAUm6hB,OAAS,WAC3B,OAAgC,IAAzB34hB,KAAKs4hB,aAAa,EAC7B,EAIAyzC,EAAYvtkB,UAAUo6hB,eAAiB,SAAU50C,GAC7C,OAAOhkf,KAAKs4hB,aAAat4hB,KAAKs4hB,aAAar5hB,OAAS,EAAI+kf,EAC5D,EAIA+nF,EAAYvtkB,UAAUq6hB,WAAa,SAAU39c,GACzC,IAAIglc,EAAK1ub,EACT,GAAU,IAANtW,EAEA,OAAOl7E,KAAK44hB,eAAe,GAE/B,GAAU,IAAN19c,EAAS,CAET,IAAI5W,EAAc,EAClB,IACI,IAAK,IAAIw6B,EAAK2gb,GAASz/gB,KAAKs4hB,cAAe7oa,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CACjF,IAAI04G,EAAcyK,EAAGjyH,MACrB8mE,EAAMtkE,KAAK40W,MAAMnyR,IAAIne,EAAK0gD,EAC9B,CACJ,CACA,MAAOq7Z,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACA,OAAO0hE,CACX,CAGA,IAFA,IAAI8iB,EAAiBpnF,KAAKs4hB,aAAa,GACnC5sb,EAAe1rG,KAAKs4hB,aAAar5hB,OAC5BD,EAAY,EAAGA,EAAI0sG,EAAM1sG,IAC9BooF,EAASpnF,KAAK40W,MAAMnyR,IAAIziF,KAAK40W,MAAM13K,SAAShiH,EAAGkM,GAASpnF,KAAKs4hB,aAAat5hB,IAE9E,OAAOooF,CACX,EACA2kf,EAAYvtkB,UAAUikF,IAAM,SAAUigc,GAClC,IAAK1ihB,KAAK40W,MAAMp/U,OAAOktf,EAAM9tK,OACzB,MAAM,IAAIupK,GAAyB,iDAEvC,GAAIn+gB,KAAK24hB,SACL,OAAOjW,EAEX,GAAIA,EAAMiW,SACN,OAAO34hB,KAEX,IAAI84hB,EAAsB94hB,KAAKs4hB,aAC3BS,EAAqBrW,EAAM4V,aAC/B,GAAIQ,EAAoB75hB,OAAS85hB,EAAmB95hB,OAAQ,CACxD,IAAIk3I,EAAO2iZ,EACXA,EAAsBC,EACtBA,EAAqB5iZ,CACzB,CACA,IAAI6iZ,EAAU,IAAIt6W,WAAWq6W,EAAmB95hB,QAC5Cg6hB,EAAqBF,EAAmB95hB,OAAS65hB,EAAoB75hB,OAEzEighB,GAAOC,UAAU4Z,EAAoB,EAAGC,EAAS,EAAGC,GACpD,IAAK,IAAIj6hB,EAAYi6hB,EAAYj6hB,EAAI+5hB,EAAmB95hB,OAAQD,IAC5Dg6hB,EAAQh6hB,GAAKgB,KAAK40W,MAAMnyR,IAAIq2c,EAAoB95hB,EAAIi6hB,GAAaF,EAAmB/5hB,IAExF,OAAO,IAAI+skB,EAAY/rkB,KAAK40W,MAAOokL,EACvC,EACA+yC,EAAYvtkB,UAAUwtkB,SAAW,SAAUtpD,GACvC,IAAK1ihB,KAAK40W,MAAMp/U,OAAOktf,EAAM9tK,OACzB,MAAM,IAAIupK,GAAyB,iDAEvC,OAAIuE,EAAMiW,SACC34hB,KAEJA,KAAKyiF,IAAIigc,EAAMz9D,WAC1B,EACA8mH,EAAYvtkB,UAAU0+L,SAAW,SAAUwlV,GACvC,OAAIA,aAAiBqpD,EACV/rkB,KAAKiskB,cAAcvpD,GAEvB1ihB,KAAKy5hB,eAAe/W,EAC/B,EACAqpD,EAAYvtkB,UAAUytkB,cAAgB,SAAUvpD,GAC5C,IAAK1ihB,KAAK40W,MAAMp/U,OAAOktf,EAAM9tK,OACzB,MAAM,IAAIupK,GAAyB,iDAEvC,GAAIn+gB,KAAK24hB,UAAYjW,EAAMiW,SAEvB,OAAO,IAAIozC,EAAY/rkB,KAAK40W,MAAO,IAAIl2L,WAAW,CAAC,KAOvD,IALA,IAAIy6W,EAAgBn5hB,KAAKs4hB,aACrBc,EAAkBD,EAAcl6hB,OAChCo6hB,EAAgB3W,EAAM4V,aACtBgB,EAAkBD,EAAcp6hB,OAChCs6hB,EAAU,IAAI76W,WAAW06W,EAAUE,EAAU,GACxCt6hB,EAAY,EAAGA,EAAIo6hB,EAASp6hB,IAEjC,IADA,IAAIw6hB,EAAiBL,EAAcn6hB,GAC1BigF,EAAY,EAAGA,EAAIq6c,EAASr6c,IACjCs6c,EAAQv6hB,EAAIigF,GAAKj/E,KAAK40W,MAAMnyR,IAAI82c,EAAQv6hB,EAAIigF,GAAIj/E,KAAK40W,MAAM13K,SAASs8V,EAAQH,EAAcp6c,KAGlG,OAAO,IAAI8sf,EAAY/rkB,KAAK40W,MAAO2kL,EACvC,EACAwyC,EAAYvtkB,UAAUymd,SAAW,WAG7B,IAFA,IAAIv5W,EAAe1rG,KAAKs4hB,aAAar5hB,OACjCitkB,EAAuB,IAAIxtZ,WAAWhzE,GACjC1sG,EAAY,EAAGA,EAAI0sG,EAAM1sG,IAC9BktkB,EAAqBltkB,GAAKgB,KAAK40W,MAAMo3N,SAAS,EAAGhskB,KAAKs4hB,aAAat5hB,IAEvE,OAAO,IAAI+skB,EAAY/rkB,KAAK40W,MAAOs3N,EACvC,EACAH,EAAYvtkB,UAAUi7hB,eAAiB,SAAUC,GAC7C,GAAe,IAAXA,EACA,OAAO,IAAIqyC,EAAY/rkB,KAAK40W,MAAO,IAAIl2L,WAAW,CAAC,KAEvD,GAAe,IAAXg7W,EACA,OAAO15hB,KAIX,IAFA,IAAI0rG,EAAe1rG,KAAKs4hB,aAAar5hB,OACjCs6hB,EAAU,IAAI76W,WAAWhzE,GACpB1sG,EAAY,EAAGA,EAAI0sG,EAAM1sG,IAC9Bu6hB,EAAQv6hB,GAAKgB,KAAK40W,MAAM13K,SAASl9L,KAAKs4hB,aAAat5hB,GAAI06hB,GAE3D,OAAO,IAAIqyC,EAAY/rkB,KAAK40W,MAAO2kL,EACvC,EACAwyC,EAAYvtkB,UAAUm7hB,mBAAqB,SAAU31C,EAAQh/X,GACzD,GAAIg/X,EAAS,EACT,MAAM,IAAIm6B,GAEd,GAAoB,IAAhBn5Z,EACA,OAAO,IAAI+md,EAAY/rkB,KAAK40W,MAAO,IAAIl2L,WAAW,CAAC,KAIvD,IAFA,IAAIhzE,EAAe1rG,KAAKs4hB,aAAar5hB,OACjCs6hB,EAAU,IAAI76W,WAAWhzE,EAAOs4Y,GAC3Bhlf,EAAY,EAAGA,EAAI0sG,EAAM1sG,IAC9Bu6hB,EAAQv6hB,GAAKgB,KAAK40W,MAAM13K,SAASl9L,KAAKs4hB,aAAat5hB,GAAIgmH,GAE3D,OAAO,IAAI+md,EAAY/rkB,KAAK40W,MAAO2kL,EACvC,EA6BAwyC,EAAYvtkB,UAAUyS,SAAW,WAE7B,IADA,IAAIm2E,EAAS,IAAIwhc,GACR5kC,EAAiBhkf,KAAK04hB,YAAa10C,GAAU,EAAGA,IAAU,CAC/D,IAAIh/X,EAAsBhlH,KAAK44hB,eAAe50C,GAC1B,IAAhBh/X,IACIA,EAAc,GACd59B,EAAOsuJ,OAAO,OACd1wH,GAAeA,GAGX59B,EAAOnoF,SAAW,GAClBmoF,EAAOsuJ,OAAO,OAGP,IAAXsuQ,GAAgC,IAAhBh/X,GAChB59B,EAAOsuJ,OAAO1wH,GAEH,IAAXg/X,IACe,IAAXA,EACA58Z,EAAOsuJ,OAAO,MAGdtuJ,EAAOsuJ,OAAO,MACdtuJ,EAAOsuJ,OAAOsuQ,KAI9B,CACA,OAAO58Z,EAAOn2E,UAClB,EACO86jB,CACX,CA7OiC,GCMjC,SAtCiC,WAC7B,SAASI,IACT,CAkCA,OAjCAA,EAAY3tkB,UAAUikF,IAAM,SAAUvH,EAAGiD,GACrC,OAAQjD,EAAIiD,GAAKn+E,KAAKsrY,OAC1B,EACA6gM,EAAY3tkB,UAAUwtkB,SAAW,SAAU9wf,EAAGiD,GAC1C,OAAQn+E,KAAKsrY,QAAUpwT,EAAIiD,GAAKn+E,KAAKsrY,OACzC,EACA6gM,EAAY3tkB,UAAUs4F,IAAM,SAAU5b,GAClC,OAAOl7E,KAAKk4hB,SAASh9c,EACzB,EACAixf,EAAY3tkB,UAAUkpL,IAAM,SAAUxsG,GAClC,GAAU,IAANA,EACA,MAAM,IAAIijc,GAEd,OAAOn+gB,KAAKm4hB,SAASj9c,EACzB,EACAixf,EAAY3tkB,UAAUu7hB,QAAU,SAAU7+c,GACtC,GAAU,IAANA,EACA,MAAM,IAAIm/c,GAEd,OAAOr6hB,KAAKk4hB,SAASl4hB,KAAKsrY,QAAUtrY,KAAKm4hB,SAASj9c,GAAK,EAC3D,EACAixf,EAAY3tkB,UAAU0+L,SAAW,SAAUhiH,EAAGiD,GAC1C,OAAU,IAANjD,GAAiB,IAANiD,EACJ,EAEJn+E,KAAKk4hB,UAAUl4hB,KAAKm4hB,SAASj9c,GAAKl7E,KAAKm4hB,SAASh6c,KAAOn+E,KAAKsrY,QAAU,GACjF,EACA6gM,EAAY3tkB,UAAUwpgB,QAAU,WAC5B,OAAOhogB,KAAKsrY,OAChB,EACA6gM,EAAY3tkB,UAAUg3B,OAAS,SAAUqoD,GACrC,OAAOA,IAAM79E,IACjB,EACOmskB,CACX,CArCiC,GCajC,IAAI/lf,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAkE7C,SAzC+B,SAAU04B,GAGrC,SAASqtd,EAAU9gM,EAAS1kT,GACxB,IAAIo4B,EAAQD,EAAOrgH,KAAKsB,OAASA,KACjCg/G,EAAMssR,QAAUA,EAChBtsR,EAAMk5a,SAAW,IAAIx5W,WAAW4sN,GAChCtsR,EAAMm5a,SAAW,IAAIz5W,WAAW4sN,GAEhC,IADA,IAAI/sT,EAAY,EACPv/E,EAAY,EAAGA,EAAIssY,EAAStsY,IACjCggH,EAAMk5a,SAASl5hB,GAAKu/E,EACpBA,EAAKA,EAAIqI,EAAa0kT,EAE1B,IAAStsY,EAAY,EAAGA,EAAIssY,EAAU,EAAGtsY,IACrCggH,EAAMm5a,SAASn5a,EAAMk5a,SAASl5hB,IAAMA,EAKxC,OAFAggH,EAAMq0H,KAAO,IAAI04V,GAAY/sd,EAAO,IAAI0/D,WAAW,CAAC,KACpD1/D,EAAMy7a,IAAM,IAAIsxC,GAAY/sd,EAAO,IAAI0/D,WAAW,CAAC,KAC5C1/D,CACX,CAmBA,OAtCA54B,GAAUgmf,EAAWrtd,GAoBrBqtd,EAAU5tkB,UAAU06hB,QAAU,WAC1B,OAAOl5hB,KAAKqzO,IAChB,EACA+4V,EAAU5tkB,UAAUk8hB,OAAS,WACzB,OAAO16hB,KAAKy6hB,GAChB,EACA2xC,EAAU5tkB,UAAU27hB,cAAgB,SAAUn2C,EAAQh/X,GAClD,GAAIg/X,EAAS,EACT,MAAM,IAAIm6B,GAEd,GAAoB,IAAhBn5Z,EACA,OAAOhlH,KAAKqzO,KAEhB,IAAIilT,EAAe,IAAI55W,WAAWslU,EAAS,GAE3C,OADAs0C,EAAa,GAAKtza,EACX,IAAI+md,GAAY/rkB,KAAMs4hB,EACjC,EACA8zC,EAAUC,UAAY,IAAID,EAAUjD,GAAaU,oBAAqB,GAC/DuC,CACX,CAxC+B,CAwC7BD,ICjEF,IAAI1sD,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EA4KA,SA7JqC,WACjC,SAAS0xf,IACLtskB,KAAK40W,MAAQw3N,GAAUC,SAC3B,CAwJA,OAhJAC,EAAgB9tkB,UAAUy4G,OAAS,SAAUskb,EAAUqN,EAAgBlR,GAKnE,IAJA,IAAIxX,EAAK1ub,EACLiqc,EAAO,IAAIswC,GAAY/rkB,KAAK40W,MAAO2mL,GACnCl8c,EAAI,IAAIq/F,WAAWkqX,GACnBhmiB,GAAQ,EACH5D,EAAY4piB,EAAgB5piB,EAAI,EAAGA,IAAK,CAC7C,IAAIutkB,EAAa9wC,EAAK5C,WAAW74hB,KAAK40W,MAAM99Q,IAAI93F,IAChDqgF,EAAEupd,EAAiB5piB,GAAKutkB,EACL,IAAfA,IACA3pkB,GAAQ,EAEhB,CACA,IAAKA,EACD,OAAO,EAEX,IAAI4pkB,EAAcxskB,KAAK40W,MAAM8lL,SAC7B,GAAgB,MAAZhD,EACA,IACI,IAAK,IAAI+0C,EAAahtD,GAASiY,GAAWg1C,EAAeD,EAAWngkB,QAASogkB,EAAarlf,KAAMqlf,EAAeD,EAAWngkB,OAAQ,CAC9H,IAAIqgkB,EAAUD,EAAalvkB,MACvB2gF,EAAIn+E,KAAK40W,MAAM99Q,IAAIykc,EAASt8hB,OAAS,EAAI0tkB,GAEzC1yC,EAAO,IAAI8xC,GAAY/rkB,KAAK40W,MAAO,IAAIl2L,WAAW,CAAC1+K,KAAK40W,MAAMo3N,SAAS,EAAG7tf,GAAI,KAClFquf,EAAcA,EAAYtvY,SAAS+8V,EACvC,CACJ,CACA,MAAO5Z,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQqsD,IAAiBA,EAAarlf,OAASmK,EAAKi7e,EAAW5kS,SAASr2M,EAAG9yF,KAAK+tkB,EAChF,CAAC,QACS,GAAIvsD,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CAEJ,IAAIi5hB,EAAW,IAAIkwC,GAAY/rkB,KAAK40W,MAAOv1R,GAEvCy8c,EAAa97hB,KAAK+7hB,sBAAsB/7hB,KAAK40W,MAAMulL,cAAcyO,EAAgB,GAAI/M,EAAU+M,GAC/F9qe,EAAQg+d,EAAW,GACnBhze,EAAQgze,EAAW,GAEnBE,EAAiBh8hB,KAAKi8hB,mBAAmBn+d,GACzCo+d,EAAkBl8hB,KAAKm8hB,oBAAoBrze,EAAOgV,EAAOk+d,GAC7D,IAASh9hB,EAAY,EAAGA,EAAIg9hB,EAAe/8hB,OAAQD,IAAK,CACpD,IAAIoB,EAAWm7hB,EAASt8hB,OAAS,EAAIe,KAAK40W,MAAMltL,IAAIs0W,EAAeh9hB,IACnE,GAAIoB,EAAW,EACX,MAAM2+gB,GAAkBC,sBAE5Buc,EAASn7hB,GAAYJ,KAAK40W,MAAMo3N,SAASzwC,EAASn7hB,GAAW87hB,EAAgBl9hB,GACjF,CACA,OAAOg9hB,EAAe/8hB,MAC1B,EAWAqtkB,EAAgB9tkB,UAAUu9hB,sBAAwB,SAAU7gd,EAAGiD,EAAGu+D,GAE9D,GAAIxhE,EAAEw9c,YAAcv6c,EAAEu6c,YAAa,CAC/B,IAAIviZ,EAAOj7D,EACXA,EAAIiD,EACJA,EAAIg4D,CACR,CAMA,IALA,IAAIimZ,EAAQlhd,EACRmF,EAAIlC,EACJk+c,EAAQr8hB,KAAK40W,MAAMskL,UACnB3xhB,EAAIvH,KAAK40W,MAAM8lL,SAEZr6c,EAAEq4c,aAAej7c,KAAKkhB,MAAM+9C,EAAI,IAAI,CACvC,IAAI4/Y,EAAYF,EACZG,EAAYF,EAIhB,GAFAA,EAAQ90hB,GADR60hB,EAAQ/7c,GAGEs4c,SAEN,MAAM5Z,GAAkBC,sBAE5B3+b,EAAIi8c,EAIJ,IAHA,IAAInlW,EAAIn3L,KAAK40W,MAAMskL,UACfW,EAAyBuC,EAAMxD,eAAewD,EAAM1D,aACpD8D,EAAax8hB,KAAK40W,MAAMmlL,QAAQF,GAC7Bx5c,EAAEq4c,aAAe0D,EAAM1D,cAAgBr4c,EAAEs4c,UAAU,CACtD,IAAI8D,EAAap8c,EAAEq4c,YAAc0D,EAAM1D,YACnC7/Z,EAAQ74H,KAAK40W,MAAM13K,SAAS78G,EAAEu4c,eAAev4c,EAAEq4c,aAAc8D,GACjErlW,EAAIA,EAAE10G,IAAIziF,KAAK40W,MAAMulL,cAAcsC,EAAY5ja,IAC/Cx4C,EAAIA,EAAE2rf,SAAS5vC,EAAMzC,mBAAmB8C,EAAY5ja,GACxD,CACAtxH,EAAI4vL,EAAE+F,SAASm/V,GAAO2vC,SAASzvC,GAAWt3E,UAC9C,CACA,IAAIy3E,EAAmBn1hB,EAAEqxhB,eAAe,GACxC,GAAyB,IAArB8D,EACA,MAAM3d,GAAkBC,sBAE5B,IAAI+a,EAAU/5hB,KAAK40W,MAAMmlL,QAAQ2C,GAGjC,MAAO,CAFKn1hB,EAAE21L,SAAS68V,GACX15c,EAAE68G,SAAS68V,GAE3B,EAMAuyC,EAAgB9tkB,UAAUy9hB,mBAAqB,SAAUU,GAKrD,IAHA,IAAIC,EAAYD,EAAajE,YACzBtxc,EAAS,IAAIs3F,WAAWk+W,GACxBpnhB,EAAI,EACCxW,EAAY,EAAGA,EAAIgB,KAAK40W,MAAMozJ,WAAaxyf,EAAIonhB,EAAW59hB,IAC5B,IAA/B29hB,EAAa9D,WAAW75hB,KACxBooF,EAAO5xE,GAAKxV,KAAK40W,MAAMmlL,QAAQ/6hB,GAC/BwW,KAGR,GAAIA,IAAMonhB,EACN,MAAM7d,GAAkBC,sBAE5B,OAAO53b,CACX,EACAklf,EAAgB9tkB,UAAU29hB,oBAAsB,SAAUU,EAAgBF,EAAcX,GAGpF,IAFA,IAAI4wC,EAAqBjwC,EAAajE,YAClCm0C,EAA+B,IAAInuZ,WAAWkuZ,GACzC5tkB,EAAY,EAAGA,GAAK4tkB,EAAoB5tkB,IAC7C6tkB,EAA6BD,EAAqB5tkB,GAC9CgB,KAAK40W,MAAM13K,SAASl+L,EAAG29hB,EAAa/D,eAAe55hB,IAE3D,IAAI8tkB,EAAmB,IAAIf,GAAY/rkB,KAAK40W,MAAOi4N,GAE/Cjyf,EAAIohd,EAAe/8hB,OACnBmoF,EAAS,IAAIs3F,WAAW9jG,GAC5B,IAAS57E,EAAY,EAAGA,EAAI47E,EAAG57E,IAAK,CAChC,IAAI89hB,EAAY98hB,KAAK40W,MAAMmlL,QAAQiC,EAAeh9hB,IAC9C+tkB,EAAY/skB,KAAK40W,MAAMo3N,SAAS,EAAGnvC,EAAehE,WAAWiE,IAC7DC,EAAc/8hB,KAAK40W,MAAMmlL,QAAQ+yC,EAAiBj0C,WAAWiE,IACjE11c,EAAOpoF,GAAKgB,KAAK40W,MAAM13K,SAAS6vY,EAAWhwC,EAC/C,CACA,OAAO31c,CACX,EACOklf,CACX,CA5JqC,GCiHrC,SAlIiC,WAC7B,SAASU,EAAYhqiB,EAAOongB,EAASG,EAAYF,EAAUC,GACnDtngB,aAAiBgqiB,EACjBhtkB,KAAKitkB,cAAcjqiB,GAGnBhjC,KAAKktkB,cAAclqiB,EAAOongB,EAASG,EAAYF,EAAUC,EAEjE,CAwHA,OA7GA0iC,EAAYxukB,UAAU0ukB,cAAgB,SAAUlqiB,EAAOongB,EAASG,EAAYF,EAAUC,GAClF,IAAI6iC,EAA6B,MAAX/iC,GAAiC,MAAdG,EACrC6iC,EAA+B,MAAZ/iC,GAAmC,MAAfC,EAC3C,GAAI6iC,GAAmBC,EACnB,MAAM,IAAIviD,GAEVsiD,GACA/iC,EAAU,IAAI5J,GAAY,EAAG6J,EAASphC,QACtCshC,EAAa,IAAI/J,GAAY,EAAG8J,EAAYrhC,SAEvCmkE,IACL/iC,EAAW,IAAI7J,GAAYx9f,EAAMokK,WAAa,EAAGgjW,EAAQnhC,QACzDqhC,EAAc,IAAI9J,GAAYx9f,EAAMokK,WAAa,EAAGmjW,EAAWthC,SAEnEjpgB,KAAKgjC,MAAQA,EACbhjC,KAAKoqiB,QAAUA,EACfpqiB,KAAKuqiB,WAAaA,EAClBvqiB,KAAKqqiB,SAAWA,EAChBrqiB,KAAKsqiB,YAAcA,EACnBtqiB,KAAKw6d,KAAO/8Y,KAAK8tX,MAAM9tX,KAAKyD,IAAIkpd,EAAQphC,OAAQuhC,EAAWvhC,SAC3DhpgB,KAAKy6d,KAAOh9Y,KAAK8tX,MAAM9tX,KAAKC,IAAI2sd,EAASrhC,OAAQshC,EAAYthC,SAC7DhpgB,KAAKk5d,KAAOz7Y,KAAK8tX,MAAM9tX,KAAKyD,IAAIkpd,EAAQnhC,OAAQohC,EAASphC,SACzDjpgB,KAAKi5d,KAAOx7Y,KAAK8tX,MAAM9tX,KAAKC,IAAI6sd,EAAWthC,OAAQqhC,EAAYrhC,QACnE,EACA+jE,EAAYxukB,UAAUyukB,cAAgB,SAAUx5Y,GAC5CzzL,KAAKgjC,MAAQywJ,EAAYzwJ,MACzBhjC,KAAKoqiB,QAAU32W,EAAY+wY,aAC3BxkkB,KAAKuqiB,WAAa92W,EAAY8wY,gBAC9BvkkB,KAAKqqiB,SAAW52W,EAAYgxY,cAC5BzkkB,KAAKsqiB,YAAc72W,EAAY45Y,iBAC/BrtkB,KAAKw6d,KAAO/mS,EAAY65Y,UACxBttkB,KAAKy6d,KAAOhnS,EAAY85Y,UACxBvtkB,KAAKk5d,KAAOzlS,EAAY+5Y,UACxBxtkB,KAAKi5d,KAAOxlS,EAAYg6Y,SAC5B,EAIAT,EAAY7oI,MAAQ,SAAUupI,EAASC,GACnC,OAAe,MAAXD,EACOC,EAEK,MAAZA,EACOD,EAEJ,IAAIV,EAAYU,EAAQ1qiB,MAAO0qiB,EAAQtjC,QAASsjC,EAAQnjC,WAAYojC,EAAStjC,SAAUsjC,EAASrjC,YAC3G,EAIA0iC,EAAYxukB,UAAUovkB,eAAiB,SAAUC,EAAkBC,EAAgBC,GAC/E,IAAIC,EAAahukB,KAAKoqiB,QAClB6jC,EAAgBjukB,KAAKuqiB,WACrB2jC,EAAclukB,KAAKqqiB,SACnB8jC,EAAiBnukB,KAAKsqiB,YAC1B,GAAIujC,EAAmB,EAAG,CACtB,IAAIrwc,EAAQuwc,EAAS/tkB,KAAKoqiB,QAAUpqiB,KAAKqqiB,SACrC+jC,EAAU3wf,KAAK8tX,MAAM/tU,EAAMyrY,OAAS4kE,GACpCO,EAAU,IACVA,EAAU,GAEd,IAAIC,EAAS,IAAI7tC,GAAYhja,EAAMwrY,OAAQolE,GACvCL,EACAC,EAAaK,EAGbH,EAAcG,CAEtB,CACA,GAAIP,EAAiB,EAAG,CACpB,IAAItvjB,EAASuvjB,EAAS/tkB,KAAKuqiB,WAAavqiB,KAAKsqiB,YACzCgkC,EAAU7wf,KAAK8tX,MAAM/sb,EAAOyqf,OAAS6kE,GACrCQ,GAAWtukB,KAAKgjC,MAAM0qK,cACtB4gY,EAAUtukB,KAAKgjC,MAAM0qK,YAAc,GAEvC,IAAI6gY,EAAY,IAAI/tC,GAAYhihB,EAAOwqf,OAAQslE,GAC3CP,EACAE,EAAgBM,EAGhBJ,EAAiBI,CAEzB,CACA,OAAO,IAAIvB,EAAYhtkB,KAAKgjC,MAAOgriB,EAAYC,EAAeC,EAAaC,EAC/E,EACAnB,EAAYxukB,UAAU8ukB,QAAU,WAC5B,OAAOttkB,KAAKw6d,IAChB,EACAwyG,EAAYxukB,UAAU+ukB,QAAU,WAC5B,OAAOvtkB,KAAKy6d,IAChB,EACAuyG,EAAYxukB,UAAUgvkB,QAAU,WAC5B,OAAOxtkB,KAAKk5d,IAChB,EACA8zG,EAAYxukB,UAAUivkB,QAAU,WAC5B,OAAOztkB,KAAKi5d,IAChB,EACA+zG,EAAYxukB,UAAUgmkB,WAAa,WAC/B,OAAOxkkB,KAAKoqiB,OAChB,EACA4iC,EAAYxukB,UAAUimkB,YAAc,WAChC,OAAOzkkB,KAAKqqiB,QAChB,EACA2iC,EAAYxukB,UAAU+lkB,cAAgB,WAClC,OAAOvkkB,KAAKuqiB,UAChB,EACAyiC,EAAYxukB,UAAU6ukB,eAAiB,WACnC,OAAOrtkB,KAAKsqiB,WAChB,EACO0iC,CACX,CAjIiC,GCqBjC,SAzBqC,WACjC,SAASwB,EAAgBC,EAAaC,EAAmBC,EAAmB9gE,GACxE7tgB,KAAKyukB,YAAcA,EACnBzukB,KAAK6tgB,qBAAuBA,EAC5B7tgB,KAAK0ukB,kBAAoBA,EACzB1ukB,KAAK2ukB,kBAAoBA,EACzB3ukB,KAAK4ukB,SAAWF,EAAoBC,CACxC,CAgBA,OAfAH,EAAgBhwkB,UAAUqwkB,eAAiB,WACvC,OAAO7ukB,KAAKyukB,WAChB,EACAD,EAAgBhwkB,UAAUy+jB,wBAA0B,WAChD,OAAOj9jB,KAAK6tgB,oBAChB,EACA2gE,EAAgBhwkB,UAAUswkB,YAAc,WACpC,OAAO9ukB,KAAK4ukB,QAChB,EACAJ,EAAgBhwkB,UAAUuwkB,qBAAuB,WAC7C,OAAO/ukB,KAAK0ukB,iBAChB,EACAF,EAAgBhwkB,UAAUwwkB,qBAAuB,WAC7C,OAAOhvkB,KAAK2ukB,iBAChB,EACOH,CACX,CAxBqC,GC0DrC,SA1E+B,WAC3B,SAASS,IACLjvkB,KAAK0qF,OAAS,EAClB,CAqEA,OA7DAukf,EAAUt7R,KAAO,SAAUnqN,EAAKzF,GAC5B,IAAI/kF,GAAK,EAwCT,OAAOwqF,EAAI3pF,QADC,yDAtCZ,SAAkBi3F,EAAKuxb,EAAIzpa,EAAIC,EAAIypa,EAAIC,GACnC,GAAY,OAARzxb,EACA,MAAO,IACX,QAAiB35F,IAAb4mF,IAAM/kF,GAAV,CAEA83F,EAAM+nB,EAAKliC,SAASkiC,EAAG/9G,OAAO,SAAM3D,EACpC,IACIipI,EADArzH,EAAOu1gB,EAAK3rc,SAAS2rc,EAAGxnhB,OAAO,SAAM3D,EAEzC,OAAQorhB,GACJ,IAAK,IACDniZ,EAAMriD,EAAI/kF,GACV,MACJ,IAAK,IACDonI,EAAMriD,EAAI/kF,GAAG,GACb,MACJ,IAAK,IACDonI,EAAM64D,WAAWl7G,EAAI/kF,IAAIs4L,QAAQxgG,GACjC,MACJ,IAAK,IACDsvC,EAAM64D,WAAWl7G,EAAI/kF,IAAIkkY,YAAYpsS,GACrC,MACJ,IAAK,IACDsvC,EAAM64D,WAAWl7G,EAAI/kF,IAAImkY,cAAcrsS,GACvC,MACJ,IAAK,IACDsvC,EAAMzpD,SAASoH,EAAI/kF,IAAIiS,SAAS8B,GAAc,IAC9C,MACJ,IAAK,IACDqzH,EAAM64D,WAAWtiH,SAASoH,EAAI/kF,GAAI+T,GAAc,IAAImwX,YAAYpsS,IAAMwgG,QAAQ,GAGtFlxD,EAAqB,kBAARA,EAAmBQ,KAAKC,UAAUT,KAASA,GAAKn1H,SAAS8B,GAGtE,IAFA,IAAI24F,EAAO/uB,SAASiiC,GAChBh6G,EAAKg6G,GAAOA,EAAG,GAAK,KAAQ,IAAM,IAAM,IACrCwnB,EAAInnI,OAASysG,GAChB06B,OAAajpI,IAAPkrhB,EAAmBjiZ,EAAMxhI,EAAKA,EAAKwhI,EAC7C,OAAOA,CAhCa,CAiCxB,GAGJ,EAMA6oc,EAAUzwkB,UAAUuqG,OAAS,SAAU2sI,GAEnC,IADA,IAAI/4I,EAAO,GACFlX,EAAK,EAAGA,EAAK1gF,UAAU9F,OAAQwmF,IACpCkX,EAAKlX,EAAK,GAAK1gF,UAAU0gF,GAE7BzlF,KAAK0qF,QAAUukf,EAAUt7R,KAAKj+D,EAAQ/4I,EAC1C,EAIAsye,EAAUzwkB,UAAUyS,SAAW,WAC3B,OAAOjR,KAAK0qF,MAChB,EACOukf,CACX,CAzE+B,GCY/B,IAAIxvD,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EA+EA,SAvE2C,WACvC,SAASs0f,EAAsBz7Y,GAC3BzzL,KAAKyzL,YAAc,IAAIu5Y,GAAYv5Y,GAEnCzzL,KAAKu0jB,UAAY,IAAIx1jB,MAAM00L,EAAYg6Y,UAAYh6Y,EAAY+5Y,UAAY,EAC/E,CAgEA,OA/DU0B,EAAsB1wkB,UAAU2wkB,kBAAoB,SAAUC,GACpE,IAAIC,EAAWrvkB,KAAK0pkB,YAAY0F,GAChC,GAAgB,MAAZC,EACA,OAAOA,EAEX,IAAK,IAAIrwkB,EAAI,EAAGA,EAAIkwkB,EAAsBI,oBAAqBtwkB,IAAK,CAChE,IAAIuwkB,EAAevvkB,KAAKwvkB,wBAAwBJ,GAAYpwkB,EAC5D,GAAIuwkB,GAAgB,GAEA,OADhBF,EAAWrvkB,KAAKu0jB,UAAUgb,IAEtB,OAAOF,EAIf,IADAE,EAAevvkB,KAAKwvkB,wBAAwBJ,GAAYpwkB,GACrCgB,KAAKu0jB,UAAUt1jB,QAEd,OADhBowkB,EAAWrvkB,KAAKu0jB,UAAUgb,IAEtB,OAAOF,CAGnB,CACA,OAAO,IACX,EACcH,EAAsB1wkB,UAAUgxkB,wBAA0B,SAAUJ,GAC9E,OAAOA,EAAWpvkB,KAAKyzL,YAAY+5Y,SACvC,EACe0B,EAAsB1wkB,UAAUixkB,YAAc,SAAUL,EAAUC,GAC7ErvkB,KAAKu0jB,UAAUv0jB,KAAKwvkB,wBAAwBJ,IAAaC,CAC7D,EACUH,EAAsB1wkB,UAAUkrkB,YAAc,SAAU0F,GAC9D,OAAOpvkB,KAAKu0jB,UAAUv0jB,KAAKwvkB,wBAAwBJ,GACvD,EACUF,EAAsB1wkB,UAAUkxkB,eAAiB,WACvD,OAAO1vkB,KAAKyzL,WAChB,EACUy7Y,EAAsB1wkB,UAAUg3jB,aAAe,WACrD,OAAOx1jB,KAAKu0jB,SAChB,EAEA2a,EAAsB1wkB,UAAUyS,SAAW,WACvC,IAAIivgB,EAAK1ub,EACLm+e,EAAY,IAAIV,GAChB/zX,EAAM,EACV,IACI,IAAK,IAAIp8G,EAAK2gb,GAASz/gB,KAAKu0jB,WAAY9kc,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CAC9E,IAAI+ikB,EAAW5/c,EAAGjyH,MACF,MAAZ6xkB,EAIJM,EAAU5me,OAAO,iBAAkBmyG,IAAOm0X,EAAShoB,eAAgBgoB,EAAS5rkB,YAHxEkskB,EAAU5me,OAAO,iBAAkBmyG,IAI3C,CACJ,CACA,MAAOmlU,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACA,OAAO+skB,EAAU1+jB,UACrB,EACAi+jB,EAAsBI,oBAAsB,EACrCJ,CACX,CAtE2C,GClB3C,IAAIzvD,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EACIg1f,GAAkC,SAAU/xf,EAAGjtE,GAC/C,IAAIksE,EAAsB,oBAAXgE,QAAyBjD,EAAEiD,OAAOC,UACjD,IAAKjE,EAAG,OAAOe,EACf,IAAmBwC,EAAY7qE,EAA3BxW,EAAI89E,EAAEp+E,KAAKm/E,GAAOsK,EAAK,GAC3B,IACI,WAAc,IAANv3E,GAAgBA,KAAM,MAAQyvE,EAAIrhF,EAAEsN,QAAQ+6E,MAAMc,EAAGv4E,KAAKywE,EAAE7iF,MACxE,CACA,MAAOoF,GAAS4S,EAAI,CAAE5S,MAAOA,EAAS,CAAC,QAEnC,IACQy9E,IAAMA,EAAEgH,OAASvK,EAAI99E,EAAU,SAAI89E,EAAEp+E,KAAKM,EAClD,CAAC,QACS,GAAIwW,EAAG,MAAMA,EAAE5S,KAAO,CACpC,CACA,OAAOulF,CACX,EAsEA,SA1DkC,WAC9B,SAAS0nf,IACL7vkB,KAAK67F,OAAS,IAAItmD,GACtB,CAqDA,OAjDAs6hB,EAAarxkB,UAAUsyS,SAAW,SAAUtzS,GACxCA,EAAQigF,KAAK8tX,MAAM/tc,GACnB,IAAIsykB,EAAa9vkB,KAAK67F,OAAOvmF,IAAI9X,GACf,MAAdsykB,IACAA,EAAa,GAEjBA,IACA9vkB,KAAK67F,OAAOtmF,IAAI/X,EAAOsykB,EAC3B,EAKAD,EAAarxkB,UAAUiF,SAAW,WAC9B,IAAIy8gB,EAAK1ub,EACLu+e,GAAiB,EACjB3of,EAAS,IAAIroF,MACb6tiB,EAAU,SAAUruiB,EAAKf,GACzB,IAAI4lH,EACQ,WAAc,OAAO7kH,CAAK,EADlC6kH,EAEU,WAAc,OAAO5lH,CAAO,EAEtC4lH,IAAmB2sd,GACnBA,EAAgB3sd,KAChBh8B,EAAS,IACFx3E,KAAKwzG,MAEPA,MAAqB2sd,GAC1B3of,EAAOx3E,KAAKwzG,IAEpB,EACA,IACI,IAAK,IAAItkB,EAAK2gb,GAASz/gB,KAAK67F,OAAOyzC,WAAY7f,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CACrF,IAAIsjH,EAAKggd,GAAOngd,EAAGjyH,MAAO,GAC1BoviB,EADoCh9a,EAAG,GAAYA,EAAG,GAE1D,CACJ,CACA,MAAOywZ,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACA,OAAOumkB,GAAaG,WAAWlif,EACnC,EACAyof,EAAarxkB,UAAUwxkB,cAAgB,SAAUxykB,GAC7C,OAAOwC,KAAK67F,OAAOvmF,IAAI9X,EAC3B,EACOqykB,CACX,CAzDkC,GCtClC,IAAIzpf,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAazCo5b,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EAmRA,SA1QuD,SAAUmkC,GAE7D,SAASkxd,EAAkCx8Y,EAAas6Y,GACpD,IAAI/ud,EAAQD,EAAOrgH,KAAKsB,KAAMyzL,IAAgBzzL,KAE9C,OADAg/G,EAAMkxd,QAAUnC,EACT/ud,CACX,CAkQA,OAvQA54B,GAAU6pf,EAAmClxd,GAM7Ckxd,EAAkCzxkB,UAAU2xkB,cAAgB,WACxD,IAAIjwD,EAAK1ub,EACT,IACI,IAAK,IAAIsN,EAAK2gb,GAASz/gB,KAAKw1jB,gBAAiB/lc,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CACnF,IAAI+ikB,EAAW5/c,EAAGjyH,MACF,MAAZ6xkB,GACAA,EAASe,kCAEjB,CACJ,CACA,MAAO/vD,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACJ,EAKAqtkB,EAAkCzxkB,UAAU6xkB,wCAA0C,SAAUC,GAC5F,IAAI/b,EAAYv0jB,KAAKw1jB,eACrBx1jB,KAAKmwkB,gBACLnwkB,KAAKuwkB,yBAAyBhc,EAAW+b,GAYzC,IAXA,IAAI78Y,EAAczzL,KAAK0vkB,iBACnBvmgB,EAAMnpE,KAAKkwkB,QAAUz8Y,EAAY+wY,aAAe/wY,EAAYgxY,cAC5DjmjB,EAASxe,KAAKkwkB,QAAUz8Y,EAAY8wY,gBAAkB9wY,EAAY45Y,iBAClEmD,EAAWxwkB,KAAKwvkB,wBAAwB/xf,KAAK8tX,MAAMpiY,EAAI8/b,SACvDwnE,EAAUzwkB,KAAKwvkB,wBAAwB/xf,KAAK8tX,MAAM/sb,EAAOyqf,SAIzDynE,GAAc,EACdC,EAAe,EACfC,EAAmB,EACdC,EAAuBL,EAAUK,EAAeJ,EAASI,IAC9D,GAA+B,MAA3Btc,EAAUsc,GAAd,CAGA,IAAIxB,EAAW9a,EAAUsc,GAQrBC,EAAgBzB,EAAShoB,eAAiBqpB,EAE9C,GAAsB,IAAlBI,EACAF,SAEC,GAAsB,IAAlBE,EACLH,EAAelzf,KAAKC,IAAIizf,EAAcC,GACtCA,EAAmB,EACnBF,EAAarB,EAAShoB,oBAErB,GAAIypB,EAAgB,GACrBzB,EAAShoB,gBAAkBipB,EAAgBxB,eAC3CgC,EAAgBD,EAChBtc,EAAUsc,GAAgB,SAEzB,CASD,IARA,IAAIE,OAAc,EAOdC,GALAD,EADAJ,EAAe,GACAA,EAAe,GAAKG,EAGrBA,IAE8BD,EACvC7xkB,EAAY,EAAGA,GAAK+xkB,IAAgBC,EAA4BhykB,IAGrEgykB,EAA4D,MAA/Bzc,EAAUsc,EAAe7xkB,GAEtDgykB,EACAzc,EAAUsc,GAAgB,MAG1BH,EAAarB,EAAShoB,eACtBupB,EAAmB,EAE3B,CA7CA,CAgDR,EACAX,EAAkCzxkB,UAAUyykB,cAAgB,WACxD,IAAIrgC,EAAKp/c,EACL8+e,EAAkBtwkB,KAAKkxkB,qBAC3B,GAAuB,MAAnBZ,EACA,OAAO,KAEXtwkB,KAAKmxkB,0CAA0Cb,GAC/C,IAAIlpf,EAAS,IAAIs3F,WAAW4xZ,EAAgBxB,eAC5C,IACI,IAAK,IAAIhwe,EAAK2gb,GAASz/gB,KAAKw1jB,gBAAiB/lc,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CACnF,IAAI+ikB,EAAW5/c,EAAGjyH,MAClB,GAAgB,MAAZ6xkB,EAAkB,CAClB,IAAI1iC,EAAY0iC,EAAShoB,eACzB,GAAI1a,GAAavld,EAAOnoF,OAEpB,SAEJmoF,EAAOuld,IACX,CACJ,CACJ,CACA,MAAO4E,GAASX,EAAM,CAAEhuiB,MAAO2uiB,EAAS,CAAC,QAErC,IACQ9hb,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAI8xc,EAAK,MAAMA,EAAIhuiB,KAAO,CACxC,CACA,OAAOwkF,CACX,EAIA6of,EAAkCzxkB,UAAU2ykB,0CAA4C,SAAUb,GAW9F,IAVA,IAAI78Y,EAAczzL,KAAK0vkB,iBACnBvmgB,EAAMnpE,KAAKkwkB,QAAUz8Y,EAAY+wY,aAAe/wY,EAAYgxY,cAC5DjmjB,EAASxe,KAAKkwkB,QAAUz8Y,EAAY8wY,gBAAkB9wY,EAAY45Y,iBAClEmD,EAAWxwkB,KAAKwvkB,wBAAwB/xf,KAAK8tX,MAAMpiY,EAAI8/b,SACvDwnE,EAAUzwkB,KAAKwvkB,wBAAwB/xf,KAAK8tX,MAAM/sb,EAAOyqf,SAEzDsrD,EAAYv0jB,KAAKw1jB,eACjBkb,GAAc,EACdC,EAAe,EACfC,EAAmB,EACdC,EAAuBL,EAAUK,EAAeJ,EAASI,IAC9D,GAA+B,MAA3Btc,EAAUsc,GAAd,CAGA,IAAIxB,EAAW9a,EAAUsc,GACzBxB,EAASe,mCACT,IAAIU,EAAgBzB,EAAShoB,eAAiBqpB,EAExB,IAAlBI,EACAF,IAEuB,IAAlBE,GACLH,EAAelzf,KAAKC,IAAIizf,EAAcC,GACtCA,EAAmB,EACnBF,EAAarB,EAAShoB,gBAEjBgoB,EAAShoB,gBAAkBipB,EAAgBxB,cAChDva,EAAUsc,GAAgB,MAG1BH,EAAarB,EAAShoB,eACtBupB,EAAmB,EAlBvB,CAsBR,EACAX,EAAkCzxkB,UAAU0ykB,mBAAqB,WAC7D,IAAIr/B,EAAKrgd,EACL+ie,EAAYv0jB,KAAKw1jB,eACjB4b,EAAqB,IAAIvB,GACzBwB,EAA2B,IAAIxB,GAC/ByB,EAA2B,IAAIzB,GAC/B0B,EAAiB,IAAI1B,GACzB,IACI,IAAK,IAAI2B,EAAc/xD,GAAS80C,GAAYkd,EAAgBD,EAAYllkB,QAASmlkB,EAAcpqf,KAAMoqf,EAAgBD,EAAYllkB,OAAQ,CACrI,IAAI+ikB,EAAWoC,EAAcj0kB,MAC7B,GAAgB,MAAZ6xkB,EAAJ,CAGAA,EAASe,mCACT,IAAIsB,EAAoBrC,EAAS5rkB,WAAa,GAC1CkukB,EAAoBtC,EAAShoB,eAIjC,OAHKrnjB,KAAKkwkB,UACNyB,GAAqB,GAEjBA,EAAoB,GACxB,KAAK,EACDN,EAAyBvgS,SAA6B,EAApB4gS,EAAwB,GAC1D,MACJ,KAAK,EACDH,EAAezgS,SAAS4gS,EAAoB,GAC5CJ,EAAyBxgS,SAAS4gS,EAAoB,GACtD,MACJ,KAAK,EACDN,EAAmBtgS,SAAS4gS,EAAoB,GAhBxD,CAmBJ,CACJ,CACA,MAAOv/B,GAASN,EAAM,CAAEjviB,MAAOuviB,EAAS,CAAC,QAErC,IACQs/B,IAAkBA,EAAcpqf,OAASmK,EAAKggf,EAAY3pS,SAASr2M,EAAG9yF,KAAK8ykB,EACnF,CAAC,QACS,GAAI3/B,EAAK,MAAMA,EAAIjviB,KAAO,CACxC,CAEA,GAA8C,IAAzCwukB,EAAmB3tkB,WAAWxE,QACiB,IAA/CoykB,EAAyB5tkB,WAAWxE,QACW,IAA/CqykB,EAAyB7tkB,WAAWxE,QACC,IAArCsykB,EAAe9tkB,WAAWxE,QAC3BmykB,EAAmB3tkB,WAAW,GAAK,GACnC4tkB,EAAyB5tkB,WAAW,GAAK6tkB,EAAyB7tkB,WAAW,GAAK0lkB,GAAaY,qBAC/FsH,EAAyB5tkB,WAAW,GAAK6tkB,EAAyB7tkB,WAAW,GAAK0lkB,GAAaa,oBAC/F,OAAO,KAEX,IAAIsG,EAAkB,IAAI9B,GAAgB4C,EAAmB3tkB,WAAW,GAAI4tkB,EAAyB5tkB,WAAW,GAAI6tkB,EAAyB7tkB,WAAW,GAAI8tkB,EAAe9tkB,WAAW,IAEtL,OADAzD,KAAKuwkB,yBAAyBhc,EAAW+b,GAClCA,CACX,EACAL,EAAkCzxkB,UAAU+xkB,yBAA2B,SAAUhc,EAAW+b,GAGxF,IAAK,IAAIsB,EAAsB,EAAGA,EAAcrd,EAAUt1jB,OAAQ2ykB,IAAe,CAC7E,IAAIvC,EAAW9a,EAAUqd,GACzB,GAA8B,MAA1Brd,EAAUqd,GAAd,CAGA,IAAIF,EAAoBrC,EAAS5rkB,WAAa,GAC1CkukB,EAAoBtC,EAAShoB,eACjC,GAAIsqB,EAAoBrB,EAAgBxB,cACpCva,EAAUqd,GAAe,UAM7B,OAHK5xkB,KAAKkwkB,UACNyB,GAAqB,GAEjBA,EAAoB,GACxB,KAAK,EACuB,EAApBD,EAAwB,IAAMpB,EAAgBvB,yBAC9Cxa,EAAUqd,GAAe,MAE7B,MACJ,KAAK,EACGn0f,KAAK8tX,MAAMmmI,EAAoB,KAAOpB,EAAgBrT,2BACtDyU,EAAoB,IAAMpB,EAAgBtB,yBAC1Cza,EAAUqd,GAAe,MAE7B,MACJ,KAAK,EACGF,EAAoB,IAAMpB,EAAgBzB,mBAC1Cta,EAAUqd,GAAe,MAxBrC,CA4BJ,CACJ,EACA3B,EAAkCzxkB,UAAUuvkB,OAAS,WACjD,OAAO/tkB,KAAKkwkB,OAChB,EAEAD,EAAkCzxkB,UAAUyS,SAAW,WACnD,MAAO,WAAajR,KAAKkwkB,QAAU,KAAOnxd,EAAOvgH,UAAUyS,SAASvS,KAAKsB,KAC7E,EACOiwkB,CACX,CAzQuD,CAyQrDf,ICzSF,IAAIzvD,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EA6QA,SArQqC,WACjC,SAASi3f,EAAgBvB,EAAiB78Y,GAC5BzzL,KAAK8xkB,uBAAyB,EACxC9xkB,KAAKswkB,gBAAkBA,EACvBtwkB,KAAKoxkB,mBAAqBd,EAAgBzB,iBAC1C7ukB,KAAKyzL,YAAcA,EAEnBzzL,KAAK+xkB,uBAAyB,IAAIhzkB,MAAMiB,KAAKoxkB,mBAAqB,EACtE,CA2PA,OA1PAS,EAAgBrzkB,UAAUwzkB,0BAA4B,WAClDhykB,KAAKiykB,gCAAgCjykB,KAAK+xkB,uBAAuB,IACjE/xkB,KAAKiykB,gCAAgCjykB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,IAC3F,IACIc,EADAC,EAA0BhJ,GAAaW,yBAE3C,GACIoI,EAA0BC,EAC1BA,EAA0BnykB,KAAKoykB,oCAC1BD,EAA0B,GAAKA,EAA0BD,GAClE,OAAOlykB,KAAK+xkB,sBAChB,EACAF,EAAgBrzkB,UAAUyzkB,gCAAkC,SAAUI,GACrC,MAAzBA,GACAA,EACKhC,wCAAwCrwkB,KAAKswkB,gBAE1D,EAQAuB,EAAgBrzkB,UAAU4zkB,4BAA8B,WACpD,IAAIE,EAAkBtykB,KAAKuykB,wBAC3B,GAAwB,IAApBD,EACA,OAAO,EAEX,IAAK,IAAIE,EAAwB,EAAGA,EAAgBxykB,KAAKoxkB,mBAAqB,EAAGoB,IAE7E,IADA,IAAIje,EAAYv0jB,KAAK+xkB,uBAAuBS,GAAehd,eAClDqb,EAAuB,EAAGA,EAAetc,EAAUt1jB,OAAQ4xkB,IACjC,MAA3Btc,EAAUsc,KAGTtc,EAAUsc,GAAc4B,qBACzBzykB,KAAK0ykB,iBAAiBF,EAAe3B,EAActc,IAI/D,OAAO+d,CACX,EACAT,EAAgBrzkB,UAAU+zkB,sBAAwB,WAO9C,OANAvykB,KAAK2ykB,6BAKiB3ykB,KAAK4ykB,0BACF5ykB,KAAK6ykB,yBAClC,EACAhB,EAAgBrzkB,UAAUm0kB,2BAA6B,WACnD,GAAsC,MAAlC3ykB,KAAK+xkB,uBAAuB,IAA0E,MAA5D/xkB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,GAKpG,IAFA,IAAI0B,EAAe9ykB,KAAK+xkB,uBAAuB,GAAGvc,eAC9Cud,EAAe/ykB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,GAAG5b,eACnEqb,EAAuB,EAAGA,EAAeiC,EAAa7zkB,OAAQ4xkB,IACnE,GAAkC,MAA9BiC,EAAajC,IACiB,MAA9BkC,EAAalC,IACbiC,EAAajC,GAAcxpB,iBAAmB0rB,EAAalC,GAAcxpB,eACzE,IAAK,IAAImrB,EAAwB,EAAGA,GAAiBxykB,KAAKoxkB,mBAAoBoB,IAAiB,CAC3F,IAAInD,EAAWrvkB,KAAK+xkB,uBAAuBS,GAAehd,eAAeqb,GACzD,MAAZxB,IAGJA,EAAS2D,aAAaF,EAAajC,GAAcxpB,gBAC5CgoB,EAASoD,sBACVzykB,KAAK+xkB,uBAAuBS,GAAehd,eAAeqb,GAAgB,MAElF,CAGZ,EACAgB,EAAgBrzkB,UAAUq0kB,wBAA0B,WAChD,GAAgE,MAA5D7ykB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,GACtD,OAAO,EAIX,IAFA,IAAIkB,EAAkB,EAClB/d,EAAYv0jB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,GAAG5b,eAChEqb,EAAuB,EAAGA,EAAetc,EAAUt1jB,OAAQ4xkB,IAChE,GAA+B,MAA3Btc,EAAUsc,GAKd,IAFA,IAAIoC,EAAwB1e,EAAUsc,GAAcxpB,eAChD6rB,EAAmB,EACdV,EAAwBxykB,KAAKoxkB,mBAAqB,EAAGoB,EAAgB,GAAKU,EAAmBlzkB,KAAK8xkB,uBAAwBU,IAAiB,CAChJ,IAAInD,EAAWrvkB,KAAK+xkB,uBAAuBS,GAAehd,eAAeqb,GACzD,MAAZxB,IACA6D,EAAmBrB,EAAgBsB,uBAAuBF,EAAuBC,EAAkB7D,GAC9FA,EAASoD,qBACVH,IAGZ,CAEJ,OAAOA,CACX,EACAT,EAAgBrzkB,UAAUo0kB,wBAA0B,WAChD,GAAsC,MAAlC5ykB,KAAK+xkB,uBAAuB,GAC5B,OAAO,EAIX,IAFA,IAAIO,EAAkB,EAClB/d,EAAYv0jB,KAAK+xkB,uBAAuB,GAAGvc,eACtCqb,EAAuB,EAAGA,EAAetc,EAAUt1jB,OAAQ4xkB,IAChE,GAA+B,MAA3Btc,EAAUsc,GAKd,IAFA,IAAIoC,EAAwB1e,EAAUsc,GAAcxpB,eAChD6rB,EAAmB,EACdV,EAAwB,EAAGA,EAAgBxykB,KAAKoxkB,mBAAqB,GAAK8B,EAAmBlzkB,KAAK8xkB,uBAAwBU,IAAiB,CAChJ,IAAInD,EAAWrvkB,KAAK+xkB,uBAAuBS,GAAehd,eAAeqb,GACzD,MAAZxB,IACA6D,EAAmBrB,EAAgBsB,uBAAuBF,EAAuBC,EAAkB7D,GAC9FA,EAASoD,qBACVH,IAGZ,CAEJ,OAAOA,CACX,EACAT,EAAgBsB,uBAAyB,SAAUF,EAAuBC,EAAkB7D,GACxF,OAAgB,MAAZA,GAGCA,EAASoD,sBACNpD,EAAS+D,iBAAiBH,IAC1B5D,EAAS2D,aAAaC,GACtBC,EAAmB,KAGjBA,GARCA,CAYf,EACArB,EAAgBrzkB,UAAUk0kB,iBAAmB,SAAUF,EAAe3B,EAActc,GAChF,IAAIr0C,EAAK1ub,EACT,GAAsD,MAAlDxxF,KAAK+xkB,uBAAuBS,EAAgB,GAAhD,CAGA,IAAInD,EAAW9a,EAAUsc,GACrBwC,EAA0BrzkB,KAAK+xkB,uBAAuBS,EAAgB,GAAGhd,eACzE8d,EAAsBD,EAC4B,MAAlDrzkB,KAAK+xkB,uBAAuBS,EAAgB,KAC5Cc,EAAsBtzkB,KAAK+xkB,uBAAuBS,EAAgB,GAAGhd,gBAGzE,IAAI+d,EAAiB,IAAIx0kB,MAAM,IAC/Bw0kB,EAAe,GAAKF,EAAwBxC,GAC5C0C,EAAe,GAAKD,EAAoBzC,GACpCA,EAAe,IACf0C,EAAe,GAAKhf,EAAUsc,EAAe,GAC7C0C,EAAe,GAAKF,EAAwBxC,EAAe,GAC3D0C,EAAe,GAAKD,EAAoBzC,EAAe,IAEvDA,EAAe,IACf0C,EAAe,GAAKhf,EAAUsc,EAAe,GAC7C0C,EAAe,IAAMF,EAAwBxC,EAAe,GAC5D0C,EAAe,IAAMD,EAAoBzC,EAAe,IAExDA,EAAetc,EAAUt1jB,OAAS,IAClCs0kB,EAAe,GAAKhf,EAAUsc,EAAe,GAC7C0C,EAAe,GAAKF,EAAwBxC,EAAe,GAC3D0C,EAAe,GAAKD,EAAoBzC,EAAe,IAEvDA,EAAetc,EAAUt1jB,OAAS,IAClCs0kB,EAAe,GAAKhf,EAAUsc,EAAe,GAC7C0C,EAAe,IAAMF,EAAwBxC,EAAe,GAC5D0C,EAAe,IAAMD,EAAoBzC,EAAe,IAE5D,IACI,IAAK,IAAI2C,EAAmB/zD,GAAS8zD,GAAiBE,EAAqBD,EAAiBlnkB,QAASmnkB,EAAmBpsf,KAAMosf,EAAqBD,EAAiBlnkB,OAAQ,CACxK,IAAIonkB,EAAgBD,EAAmBj2kB,MACvC,GAAIq0kB,EAAgB8B,gBAAgBtE,EAAUqE,GAC1C,MAER,CACJ,CACA,MAAOrzD,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQozD,IAAuBA,EAAmBpsf,OAASmK,EAAKgif,EAAiB3rS,SAASr2M,EAAG9yF,KAAK80kB,EAClG,CAAC,QACS,GAAItzD,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CA7CA,CA8CJ,EAIAivkB,EAAgB8B,gBAAkB,SAAUtE,EAAUqE,GAClD,OAAqB,MAAjBA,OAGAA,EAAcjB,qBAAuBiB,EAAcE,cAAgBvE,EAASuE,eAC5EvE,EAAS2D,aAAaU,EAAcrsB,iBAC7B,GAGf,EACAwqB,EAAgBrzkB,UAAUq1kB,sBAAwB,WAC9C,OAAO7zkB,KAAKoxkB,kBAChB,EACAS,EAAgBrzkB,UAAUs1kB,mBAAqB,WAC3C,OAAO9zkB,KAAKswkB,gBAAgBxB,aAChC,EACA+C,EAAgBrzkB,UAAUu1kB,kBAAoB,WAC1C,OAAO/zkB,KAAKswkB,gBAAgBrT,yBAChC,EACA4U,EAAgBrzkB,UAAUw1kB,eAAiB,SAAUvgZ,GACjDzzL,KAAKyzL,YAAcA,CACvB,EACAo+Y,EAAgBrzkB,UAAUkxkB,eAAiB,WACvC,OAAO1vkB,KAAKyzL,WAChB,EACAo+Y,EAAgBrzkB,UAAUy1kB,yBAA2B,SAAUzB,EAAeH,GAC1ErykB,KAAK+xkB,uBAAuBS,GAAiBH,CACjD,EACAR,EAAgBrzkB,UAAU01kB,yBAA2B,SAAU1B,GAC3D,OAAOxykB,KAAK+xkB,uBAAuBS,EACvC,EAEAX,EAAgBrzkB,UAAUyS,SAAW,WACjC,IAAIkjkB,EAAqBn0kB,KAAK+xkB,uBAAuB,GAC3B,MAAtBoC,IACAA,EAAqBn0kB,KAAK+xkB,uBAAuB/xkB,KAAKoxkB,mBAAqB,IAK/E,IAFA,IAAIzB,EAAY,IAAIV,GAEX4B,EAAuB,EAAGA,EAAesD,EAAmB3e,eAAev2jB,OAAQ4xkB,IAAgB,CACxGlB,EAAU5me,OAAO,UAAW8ne,GAC5B,IAAK,IAAI2B,EAAwB,EAAGA,EAAgBxykB,KAAKoxkB,mBAAqB,EAAGoB,IAC7E,GAAkD,MAA9CxykB,KAAK+xkB,uBAAuBS,GAAhC,CAIA,IAAInD,EAAWrvkB,KAAK+xkB,uBAAuBS,GAAehd,eAAeqb,GACzD,MAAZxB,EAIJM,EAAU5me,OAAO,WAAYsme,EAAShoB,eAAgBgoB,EAAS5rkB,YAH3DkskB,EAAU5me,OAAO,WAHrB,MAFI4me,EAAU5me,OAAO,YAUzB4me,EAAU5me,OAAO,KACrB,CACA,OAAO4me,EAAU1+jB,UAErB,EACO4gkB,CACX,CApQqC,GC+BrC,SA7C8B,WAC1B,SAASuC,EAASv1c,EAAQE,EAAMs1c,EAAQ72kB,GACpCwC,KAAK2siB,UAAYynC,EAASE,oBAC1Bt0kB,KAAK6+H,OAASphD,KAAK8tX,MAAM1sU,GACzB7+H,KAAK++H,KAAOthD,KAAK8tX,MAAMxsU,GACvB/+H,KAAKq0kB,OAAS52f,KAAK8tX,MAAM8oI,GACzBr0kB,KAAKxC,MAAQigF,KAAK8tX,MAAM/tc,EAC5B,CAoCA,OAnCA42kB,EAAS51kB,UAAUi0kB,kBAAoB,WACnC,OAAOzykB,KAAKozkB,iBAAiBpzkB,KAAK2siB,UACtC,EACAynC,EAAS51kB,UAAU40kB,iBAAmB,SAAUzmC,GAC5C,OAAOA,IAAcynC,EAASE,qBAAuBt0kB,KAAKq0kB,SAAY1nC,EAAY,EAAK,CAC3F,EACAynC,EAAS51kB,UAAU4xkB,iCAAmC,WAClDpwkB,KAAK2siB,UAAYlvd,KAAK8tX,MAAsC,EAA/B9tX,KAAK8tX,MAAMvrc,KAAKxC,MAAQ,IAAWigF,KAAK8tX,MAAMvrc,KAAKq0kB,OAAS,GAC7F,EACAD,EAAS51kB,UAAU4oM,SAAW,WAC1B,OAAOpnM,KAAK++H,KAAO/+H,KAAK6+H,MAC5B,EACAu1c,EAAS51kB,UAAU+1kB,UAAY,WAC3B,OAAOv0kB,KAAK6+H,MAChB,EACAu1c,EAAS51kB,UAAUg2kB,QAAU,WACzB,OAAOx0kB,KAAK++H,IAChB,EACAq1c,EAAS51kB,UAAUo1kB,UAAY,WAC3B,OAAO5zkB,KAAKq0kB,MAChB,EACAD,EAAS51kB,UAAUiF,SAAW,WAC1B,OAAOzD,KAAKxC,KAChB,EACA42kB,EAAS51kB,UAAU6ojB,aAAe,WAC9B,OAAOrnjB,KAAK2siB,SAChB,EACAynC,EAAS51kB,UAAUw0kB,aAAe,SAAUrmC,GACxC3siB,KAAK2siB,UAAYA,CACrB,EAEAynC,EAAS51kB,UAAUyS,SAAW,WAC1B,OAAOjR,KAAK2siB,UAAY,IAAM3siB,KAAKxC,KACvC,EACA42kB,EAASE,qBAAuB,EACzBF,CACX,CA5C8B,GC0G9B,SApG2C,WACvC,SAASK,IACT,CAgGA,OA1FAA,EAAsBC,WAAa,WAE/B,IAAa,IAAI11kB,EAAI,EAAGA,EAAImqkB,GAAaQ,aAAa1qkB,OAAQD,IAG1D,IAFA,IAAI21kB,EAAgBxL,GAAaQ,aAAa3qkB,GAC1C41kB,EAA6B,EAAhBD,EACA11f,EAAI,EAAGA,EAAIkqf,GAAagB,eAAgBlrf,IAAK,CAE1D,IADA,IAAIysB,EAAO,GACa,EAAhBipe,KAAyBC,GAC7Blpe,GAAQ,EACRipe,IAAkB,EAEtBC,EAA6B,EAAhBD,EACRF,EAAsBI,aAAa71kB,KACpCy1kB,EAAsBI,aAAa71kB,GAAK,IAAID,MAAMoqkB,GAAagB,iBAEnEsK,EAAsBI,aAAa71kB,GAAGmqkB,GAAagB,eAAiBlrf,EAAI,GAAKxB,KAAKq3f,OAAOppe,EAAOy9d,GAAac,oBACjH,CAEJjqkB,KAAK+0kB,mBAAoB,CAC7B,EACAN,EAAsBO,gBAAkB,SAAU3L,GAC9C,IAAIthH,EAAe0sH,EAAsBQ,wBAAwBR,EAAsBS,gBAAgB7L,IACvG,OAAsB,IAAlBthH,EACOA,EAEJ0sH,EAAsBU,uBAAuB9L,EACxD,EACAoL,EAAsBS,gBAAkB,SAAU7L,GAK9C,IAJA,IAAI+L,EAAcp1C,GAAU17d,IAAI+kgB,GAC5Bjif,EAAS,IAAIs3F,WAAWyqZ,GAAagB,gBACrCkL,EAAgB,EAChBC,EAAkB,EACLt2kB,EAAI,EAAGA,EAAImqkB,GAAac,oBAAqBjrkB,IAAK,CAC/D,IAAIu2kB,EAAcH,GAAe,EAAIjM,GAAac,qBAC7CjrkB,EAAIo2kB,EAAejM,GAAac,oBACjCqL,EAAkBjM,EAAegM,IAAkBE,IACnDD,GAAmBjM,EAAegM,GAClCA,KAEJjuf,EAAOiuf,IACX,CACA,OAAOjuf,CACX,EACAqtf,EAAsBQ,wBAA0B,SAAU5L,GACtD,IAAIthH,EAAe0sH,EAAsBe,YAAYnM,GACrD,OAAmD,IAA5CF,GAAaO,YAAY3hH,IAAwB,EAAIA,CAChE,EACA0sH,EAAsBe,YAAc,SAAUnM,GAE1C,IADA,IAAIjif,EAAkB,EACLpoF,EAAI,EAAGA,EAAIqqkB,EAAepqkB,OAAQD,IAC/C,IAAa,IAAIuwG,EAAM,EAAGA,EAAM85d,EAAerqkB,GAAIuwG,IAC/CnoB,EAAUA,GAAU,GAAMpoF,EAAI,IAAM,EAAI,EAAI,GAGpD,OAAOy+E,KAAK8tX,MAAMnkX,EACtB,EAEAqtf,EAAsBU,uBAAyB,SAAU9L,GACrD,IAAI+L,EAAcp1C,GAAU17d,IAAI+kgB,GAC5BoM,EAAiB,IAAI12kB,MAAMoqkB,GAAagB,gBAC5C,GAAIiL,EAAc,EACd,IAAK,IAAYp2kB,EAAI,EAAGA,EAAIy2kB,EAAex2kB,OAAQD,IAC/Cy2kB,EAAez2kB,GAAKy+E,KAAKq3f,OAAOzL,EAAerqkB,GAAKo2kB,GAG5D,IAAIM,EAAiBp1C,GAAMjuD,UACvB+7D,GAAa,EACZpuiB,KAAK+0kB,mBACNN,EAAsBC,aAE1B,IAAa,IAAIz1f,EAAI,EAAGA,EAAIw1f,EAAsBI,aAAa51kB,OAAQggF,IAAK,CAGxE,IAFA,IAAIr8E,EAAQ,EACR+ykB,EAAgBlB,EAAsBI,aAAa51f,GACtCvC,EAAI,EAAGA,EAAIysf,GAAagB,eAAgBztf,IAAK,CAC1D,IAAIktQ,EAAOnsQ,KAAKq3f,OAAOa,EAAcj5f,GAAK+4f,EAAe/4f,IAEzD,IADA95E,GAAS66E,KAAKq3f,OAAOlrP,EAAOA,KACf8rP,EACT,KAER,CACI9ykB,EAAQ8ykB,IACRA,EAAiB9ykB,EACjBwriB,EAAY+6B,GAAaQ,aAAa1qf,GAE9C,CACA,OAAOmvd,CACX,EAEAqmC,EAAsBM,mBAAoB,EAC1CN,EAAsBI,aAAe,IAAI91kB,MAAMoqkB,GAAaQ,aAAa1qkB,QAAQmT,KAAI,SAAUmsE,GAAK,OAAW,IAAIx/E,MAAMoqkB,GAAagB,eAAiB,IAChJsK,CACX,CAnG2C,GCmH3C,SAzH0C,WACtC,SAASmB,IACL51kB,KAAK61kB,cAAgB,EACrB71kB,KAAKq5N,UAAY,EACjBr5N,KAAK81hB,WAAa,EAClB91hB,KAAK6wK,UAAY,CACrB,CAiHA,OA3GA+ka,EAAqBp3kB,UAAUs3kB,gBAAkB,WAC7C,OAAO91kB,KAAK+1kB,YAChB,EACAH,EAAqBp3kB,UAAUw3kB,gBAAkB,SAAUD,GACvD/1kB,KAAK+1kB,aAAeA,CACxB,EAMAH,EAAqBp3kB,UAAUs5L,UAAY,WACvC,OAAO93L,KAAKi2kB,MAChB,EACAL,EAAqBp3kB,UAAUw5L,UAAY,SAAUi+Y,GACjDj2kB,KAAKi2kB,OAASA,CAClB,EAMAL,EAAqBp3kB,UAAU03kB,gBAAkB,WAC7C,OAAOl2kB,KAAKm2kB,YAChB,EAMAP,EAAqBp3kB,UAAU43kB,gBAAkB,SAAUD,GACvDn2kB,KAAKm2kB,aAAeA,CACxB,EAIAP,EAAqBp3kB,UAAU63kB,cAAgB,WAC3C,OAAOr2kB,KAAKs2kB,WAChB,EACAV,EAAqBp3kB,UAAU+3kB,eAAiB,SAAUD,GACtDt2kB,KAAKs2kB,YAAcA,CACvB,EAIAV,EAAqBp3kB,UAAUg4kB,gBAAkB,WAC7C,OAAOx2kB,KAAK61kB,YAChB,EACAD,EAAqBp3kB,UAAUi4kB,gBAAkB,SAAUZ,GACvD71kB,KAAK61kB,aAAeA,CACxB,EACAD,EAAqBp3kB,UAAUk4kB,UAAY,WACvC,OAAO12kB,KAAK4vR,QAAU,IAC1B,EACAgmT,EAAqBp3kB,UAAUm4kB,UAAY,SAAU/mT,GACjD5vR,KAAK4vR,OAASA,CAClB,EACAgmT,EAAqBp3kB,UAAUo4kB,aAAe,WAC1C,OAAO52kB,KAAK62kB,WAAa,IAC7B,EACAjB,EAAqBp3kB,UAAUs4kB,aAAe,SAAUD,GACpD72kB,KAAK62kB,UAAYA,CACrB,EAMAjB,EAAqBp3kB,UAAUu4kB,YAAc,WACzC,OAAO/2kB,KAAKy4O,QAChB,EACAm9V,EAAqBp3kB,UAAUw4kB,YAAc,SAAUv+V,GACnDz4O,KAAKy4O,SAAWA,CACpB,EAMAm9V,EAAqBp3kB,UAAUy4kB,YAAc,WACzC,OAAOj3kB,KAAKq5N,QAChB,EACAu8W,EAAqBp3kB,UAAU04kB,YAAc,SAAU79W,GACnDr5N,KAAKq5N,SAAWA,CACpB,EAMAu8W,EAAqBp3kB,UAAU24kB,YAAc,WACzC,OAAOn3kB,KAAK6wK,QAChB,EACA+ka,EAAqBp3kB,UAAU44kB,YAAc,SAAUvma,GACnD7wK,KAAK6wK,SAAWA,CACpB,EAMA+ka,EAAqBp3kB,UAAUm4hB,aAAe,WAC1C,OAAO32hB,KAAK81hB,SAChB,EACA8/C,EAAqBp3kB,UAAU64kB,aAAe,SAAUvhD,GACpD91hB,KAAK81hB,UAAYA,CACrB,EACO8/C,CACX,CAxH0C,GCD1C,SAf0B,WACtB,SAAS0B,IACT,CAWA,OAJAA,EAAKC,UAAY,SAAUnyhB,EAAK42F,GAE5B,YADc,IAAVA,IAAoBA,OAAQ7+I,GACzBw/E,SAASv3B,EAAK42F,EACzB,EACOs7b,CACX,CAd0B,GCH1B,IAAIlxf,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAyB7C,SAR0C,SAAU04B,GAEhD,SAASy4d,IACL,OAAkB,OAAXz4d,GAAmBA,EAAOj6G,MAAM9E,KAAM+E,YAAc/E,IAC/D,CAEA,OALAomF,GAAUoxf,EAAsBz4d,GAIhCy4d,EAAqB38b,KAAO,uBACrB28b,CACX,CAP0C,CAOxCx5D,ICkHF,SA7FsE,WAClE,SAASy5D,IACT,CAyFA,OA9EAA,EAAaj5kB,UAAUk5kB,WAAa,SAAUv5f,GAC1Cn+E,KAAK23kB,iBAAiBx5f,EAAG,EAAGA,EAAEl/E,OAClC,EA6BAw4kB,EAAaj5kB,UAAUm5kB,iBAAmB,SAAUx5f,EAAGm0T,EAAK/uY,GACxD,GAAS,MAAL46E,EACA,MAAM,IAAIq5f,GAET,GAAKllM,EAAM,GAAOA,EAAMn0T,EAAEl/E,QAAYsE,EAAM,GAC3C+uY,EAAM/uY,EAAO46E,EAAEl/E,QAAaqzY,EAAM/uY,EAAO,EAC3C,MAAM,IAAIg8gB,GAET,GAAY,IAARh8gB,EAGT,IAAK,IAAIvE,EAAI,EAAGA,EAAIuE,EAAKvE,IACrBgB,KAAKu4F,MAAMpa,EAAEm0T,EAAMtzY,GAE3B,EAmBAy4kB,EAAaj5kB,UAAUoiF,MAAQ,WAC/B,EAWA62f,EAAaj5kB,UAAU01G,MAAQ,WAC/B,EACOuje,CACX,CA5FsE,GC7CtE,IAAIrxf,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAwB7C,SAPsC,SAAU04B,GAE5C,SAAS64d,IACL,OAAkB,OAAX74d,GAAmBA,EAAOj6G,MAAM9E,KAAM+E,YAAc/E,IAC/D,CACA,OAJAomF,GAAUwxf,EAAkB74d,GAIrB64d,CACX,CANsC,CAMpC55D,ICCF,IAAI53b,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAgQ7C,SA5N2C,SAAU04B,GAgBjD,SAAS84d,EAAsBnse,QACd,IAATA,IAAmBA,EAAO,IAC9B,IAAIsT,EAAQD,EAAOrgH,KAAKsB,OAASA,KAKjC,GADAg/G,EAAMrqG,MAAQ,EACV+2F,EAAO,EACP,MAAM,IAAIyya,GAAyB,0BAC7Bzya,GAGV,OADAsT,EAAM/vG,IAAM,IAAI21E,WAAW8mB,GACpBsT,CACX,CA6LA,OAzNA54B,GAAUyxf,EAAuB94d,GAuCjC84d,EAAsBr5kB,UAAUojhB,eAAiB,SAAUk2D,GAEnDA,EAAc93kB,KAAKiP,IAAIhQ,OAAS,GAChCe,KAAK+3kB,KAAKD,EAClB,EAOAD,EAAsBr5kB,UAAUu5kB,KAAO,SAAUD,GAE7C,IACIE,EADch4kB,KAAKiP,IAAIhQ,QACM,EAGjC,GAFI+4kB,EAAcF,EAAc,IAC5BE,EAAcF,GACdE,EAAc,EAAG,CACjB,GAAIF,EAAc,EACd,MAAM,IAAIF,GACdI,EAAch3D,GAAQ3uC,SAC1B,CACArye,KAAKiP,IAAMywgB,GAAOe,iBAAiBzghB,KAAKiP,IAAK+okB,EACjD,EAMAH,EAAsBr5kB,UAAU+5F,MAAQ,SAAUpa,GAC9Cn+E,KAAK4hhB,eAAe5hhB,KAAK2U,MAAQ,GACjC3U,KAAKiP,IAAIjP,KAAK2U,OAAoBwpE,EAClCn+E,KAAK2U,OAAS,CAClB,EASAkjkB,EAAsBr5kB,UAAUm5kB,iBAAmB,SAAUx5f,EAAGm0T,EAAK/uY,GACjE,GAAK+uY,EAAM,GAAOA,EAAMn0T,EAAEl/E,QAAYsE,EAAM,GACtC+uY,EAAM/uY,EAAO46E,EAAEl/E,OAAS,EAC1B,MAAM,IAAIsghB,GAEdv/gB,KAAK4hhB,eAAe5hhB,KAAK2U,MAAQpR,GACjC27gB,GAAOC,UAAUhhc,EAAGm0T,EAAKtyY,KAAKiP,IAAKjP,KAAK2U,MAAOpR,GAC/CvD,KAAK2U,OAASpR,CAClB,EASAs0kB,EAAsBr5kB,UAAUy5kB,QAAU,SAAUpva,GAChDA,EAAI8ua,iBAAiB33kB,KAAKiP,IAAK,EAAGjP,KAAK2U,MAC3C,EASAkjkB,EAAsBr5kB,UAAUq1G,MAAQ,WACpC7zG,KAAK2U,MAAQ,CACjB,EASAkjkB,EAAsBr5kB,UAAUqlF,YAAc,WAC1C,OAAO67b,GAAOe,iBAAiBzghB,KAAKiP,IAAKjP,KAAK2U,MAClD,EAQAkjkB,EAAsBr5kB,UAAUktG,KAAO,WACnC,OAAO1rG,KAAK2U,KAChB,EACAkjkB,EAAsBr5kB,UAAUyS,SAAW,SAAUinkB,GACjD,OAAKA,EAGgB,kBAAVA,EACAl4kB,KAAKm4kB,gBAAgBD,GAEzBl4kB,KAAKo4kB,gBAAgBF,GALjBl4kB,KAAKq4kB,eAMpB,EAgBAR,EAAsBr5kB,UAAU65kB,cAAgB,WAC5C,OAAO,IAAIp3kB,OAAOjB,KAAKiP,KAAyBgC,UACpD,EAmBA4mkB,EAAsBr5kB,UAAU25kB,gBAAkB,SAAUG,GACxD,OAAO,IAAIr3kB,OAAOjB,KAAKiP,KAAsCgC,UACjE,EAwBA4mkB,EAAsBr5kB,UAAU45kB,gBAAkB,SAAUG,GACxD,OAAO,IAAIt3kB,OAAOjB,KAAKiP,KAAiCgC,UAC5D,EASA4mkB,EAAsBr5kB,UAAU01G,MAAQ,WACxC,EACO2je,CACX,CA3N2C,CA2NzCJ,ICpPU,IAAIjkE,GA8BZglE,GAfJ,SAASC,KACL,GAAsB,qBAAX94f,OACP,OAAOA,OAAe,QAAK,KAE/B,GAAsB,qBAAX+vD,EAAAA,EACP,OAAOA,EAAAA,EAAe,QAAK,KAE/B,GAAoB,qBAATzuD,KACP,OAAOA,KAAa,QAAK,KAE7B,MAAM,IAAIv3E,MAAM,mCACpB,CAUA,SAASgvkB,GAAatzhB,GAIlB,GAH0B,qBAAfozhB,KACPA,GAAaC,MAEE,OAAfD,GACA,MAAM,IAAI9ukB,MAAM,4BAEpB,OAAO8ukB,GAAWpzhB,EACtB,EA3CA,SAAWoud,GACPA,EAAKA,EAAY,MAAI,GAAK,QAC1BA,EAAKA,EAAY,MAAI,GAAK,QAC1BA,EAAKA,EAAY,MAAI,GAAK,QAC1BA,EAAKA,EAAY,MAAI,GAAK,QAC1BA,EAAKA,EAAkB,YAAI,GAAK,cAChCA,EAAKA,EAAkB,YAAI,GAAK,aACnC,CAPD,CAOGA,KAASA,GAAO,CAAC,IA4tBpB,SArqB4C,WACxC,SAASwiD,IACT,CAiqBA,OAvpBAA,EAAuB/+c,OAAS,SAAUs9c,EAAWv9B,GAEjD,IAAI5vc,EAAS,IAAIwhc,GAAc,IAE3BhsW,EAAW6mW,GAAgBc,UAQ/Bn9b,EAAOyhc,eAAejsW,GAKtB,IAHA,IAAI+7Z,EAAY,EACZnvkB,EAAO+qjB,EAAUokB,KACjB5iD,EAAiB,IAAI6/C,GAClB+C,EAAYpkB,EAAU,IAAI,CAC7B,OAAQ/qjB,GACJ,KAAKwsjB,EAAuB4iB,2BACxBD,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAWvxf,GACxE,MACJ,KAAK4ue,EAAuB8iB,2BAC5B,KAAK9iB,EAAuB+iB,6BACxBJ,EAAY3iB,EAAuBgjB,eAAexvkB,EAAM+qjB,EAAW33Y,EAAU+7Z,EAAWvxf,GACxF,MACJ,KAAK4ue,EAAuBijB,mCACxB7xf,EAAOsuJ,OAAkB6+U,EAAUokB,MACnC,MACJ,KAAK3iB,EAAuBkjB,8BACxBP,EAAY3iB,EAAuBmjB,kBAAkB5kB,EAAWokB,EAAWvxf,GAC3E,MACJ,KAAK4ue,EAAuBojB,YACP31D,GAAgBW,0BAA0BmwC,EAAUokB,MAErE,MACJ,KAAK3iB,EAAuBqjB,oBAExBV,GAAa,EACb,MACJ,KAAK3iB,EAAuBsjB,iBAExBX,IACA,MACJ,KAAK3iB,EAAuBujB,iCACxBZ,EAAY3iB,EAAuBwjB,iBAAiBjlB,EAAWokB,EAAW5iD,GAC1E,MACJ,KAAKigC,EAAuByjB,kCAC5B,KAAKzjB,EAAuB0jB,wBAExB,MAAM,IAAIp2D,GACd,QAIIq1D,IACAA,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAWvxf,GAGhF,KAAIuxf,EAAYpkB,EAAUt1jB,QAItB,MAAMqkhB,GAAgBC,oBAHtB/5gB,EAAO+qjB,EAAUokB,IAKzB,CACA,GAAwB,IAApBvxf,EAAOnoF,SACP,MAAMqkhB,GAAgBC,oBAE1B,IAAIma,EAAgB,IAAI5G,GAAc,KAAM1vc,EAAOn2E,WAAY,KAAM+lhB,GAErE,OADA0G,EAAc7F,SAAS9B,GAChB2H,CACX,EAcAs4B,EAAuBwjB,iBAAmB,SAAUjlB,EAAWokB,EAAW5iD,GACtE,GAAI4iD,EAAY3iB,EAAuB2jB,6BAA+BplB,EAAU,GAE5E,MAAMjxC,GAAgBC,oBAG1B,IADA,IAAIq2D,EAAoB,IAAIl7Z,WAAWs3Y,EAAuB2jB,8BACrD36kB,EAAY,EAAGA,EAAIg3jB,EAAuB2jB,6BAA8B36kB,IAAK25kB,IAClFiB,EAAkB56kB,GAAKu1jB,EAAUokB,GAErC5iD,EAAeigD,gBAAgBh1D,GAAQrkc,SAASq5e,EAAuB6jB,sBAAsBD,EAAmB5jB,EAAuB2jB,gCACvI,IAAI1D,EAAS,IAAIrtD,GACjB+vD,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAW1C,GACxElgD,EAAe/9V,UAAUi+Y,EAAOhlkB,YAChC,IAAI6okB,GAAuB,EAI3B,IAHIvlB,EAAUokB,KAAe3iB,EAAuByjB,oCAChDK,EAAsBnB,EAAY,GAE/BA,EAAYpkB,EAAU,IACzB,OAAQA,EAAUokB,IACd,KAAK3iB,EAAuByjB,kCAExB,OAAQllB,IADRokB,IAEI,KAAK3iB,EAAuB+jB,sCACxB,IAAIthW,EAAW,IAAImwS,GACnB+vD,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAY,EAAGlgW,GAC5Es9S,EAAeihD,YAAYv+V,EAASxnO,YACpC,MACJ,KAAK+kjB,EAAuBgkB,mCACxB,IAAIpqT,EAAS,IAAIg5P,GACjB+vD,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAY,EAAG/oT,GAC5EmmQ,EAAe4gD,UAAU/mT,EAAO3+Q,YAChC,MACJ,KAAK+kjB,EAAuBikB,sCACxB,IAAIpD,EAAY,IAAIjuD,GACpB+vD,EAAY3iB,EAAuB6iB,eAAetkB,EAAWokB,EAAY,EAAG9B,GAC5E9gD,EAAe+gD,aAAaD,EAAU5lkB,YACtC,MACJ,KAAK+kjB,EAAuBkkB,0CACxB,IAAIrE,EAAe,IAAIjtD,GACvB+vD,EAAY3iB,EAAuBmjB,kBAAkB5kB,EAAWokB,EAAY,EAAG9C,GAC/E9/C,EAAe0gD,gBAAgBz1D,GAAQrkc,SAASk5f,EAAa5kkB,aAC7D,MACJ,KAAK+kjB,EAAuBmkB,uCACxB,IAAIrkD,EAAY,IAAIlN,GACpB+vD,EAAY3iB,EAAuBmjB,kBAAkB5kB,EAAWokB,EAAY,EAAG7iD,GAC/EC,EAAeshD,aAAaC,GAAKC,UAAUzhD,EAAU7khB,aACrD,MACJ,KAAK+kjB,EAAuBokB,qCACxB,IAAIvpa,EAAW,IAAI+3W,GACnB+vD,EAAY3iB,EAAuBmjB,kBAAkB5kB,EAAWokB,EAAY,EAAG9na,GAC/EklX,EAAeqhD,YAAYp2D,GAAQrkc,SAASk0F,EAAS5/J,aACrD,MACJ,KAAK+kjB,EAAuBqkB,sCACxB,IAAIhhX,EAAW,IAAIuvT,GACnB+vD,EAAY3iB,EAAuBmjB,kBAAkB5kB,EAAWokB,EAAY,EAAGt/W,GAC/E08T,EAAemhD,YAAYI,GAAKC,UAAUl+W,EAASpoN,aACnD,MACJ,QACI,MAAMqygB,GAAgBC,oBAE9B,MACJ,KAAKyyC,EAAuB0jB,wBACxBf,IACA5iD,EAAewgD,gBAAe,GAC9B,MACJ,QACI,MAAMjzD,GAAgBC,oBAIlC,IAA6B,IAAzBu2D,EAA4B,CAC5B,IAAIQ,EAAuB3B,EAAYmB,EACnC/jD,EAAesgD,iBAEfiE,IAEJvkD,EAAeqgD,gBAAgB12D,GAAOiB,YAAY4zC,EAAWulB,EAAqBA,EAAsBQ,GAC5G,CACA,OAAO3B,CACX,EAWA3iB,EAAuB6iB,eAAiB,SAAUtkB,EAAWokB,EAAWvxf,GAOpE,IALA,IAAImzf,EAAqB,IAAI77Z,WAAwC,GAA5B61Y,EAAU,GAAKokB,IAEpD6B,EAAqB,IAAI97Z,WAAwC,GAA5B61Y,EAAU,GAAKokB,IACpD3nkB,EAAQ,EACR8qE,GAAM,EACF68f,EAAYpkB,EAAU,KAAQz4e,GAAK,CACvC,IAAItyE,EAAO+qjB,EAAUokB,KACrB,GAAInvkB,EAAOwsjB,EAAuB4iB,2BAC9B2B,EAAmBvpkB,GAASxH,EAAO,GACnC+wkB,EAAmBvpkB,EAAQ,GAAKxH,EAAO,GACvCwH,GAAS,OAGT,OAAQxH,GACJ,KAAKwsjB,EAAuB4iB,2BAExB2B,EAAmBvpkB,KAAWgljB,EAAuB4iB,2BACrD,MACJ,KAAK5iB,EAAuB8iB,2BAC5B,KAAK9iB,EAAuB+iB,6BAC5B,KAAK/iB,EAAuBkjB,8BAC5B,KAAKljB,EAAuBujB,iCAC5B,KAAKvjB,EAAuByjB,kCAC5B,KAAKzjB,EAAuB0jB,wBACxBf,IACA78f,GAAM,EACN,MACJ,KAAKk6e,EAAuBijB,mCAOxBsB,EAAmBvpkB,GAASgljB,EAAuBijB,mCACnDzvkB,EAAO+qjB,EAAUokB,KACjB6B,EAAmBxpkB,GAASxH,EAC5BwH,IAIhB,CAEA,OADAgljB,EAAuBykB,qBAAqBF,EAAoBC,EAAoBxpkB,EAAOo2E,GACpFuxf,CACX,EAiBA3iB,EAAuBykB,qBAAuB,SAAUF,EAAoBC,EAAoBv7kB,EAAQmoF,GAQpG,IAHA,IAAIszf,EAAUlnE,GAAKmnE,MACfC,EAAmBpnE,GAAKmnE,MACxB37kB,EAAI,EACDA,EAAIC,GAAQ,CACf,IAAI47kB,EAAYN,EAAmBv7kB,GAC/B4F,EAAc,GAClB,OAAQ81kB,GACJ,KAAKlnE,GAAKmnE,MAEN,GAAIE,EAAY,GAGZj2kB,EAAkC3D,OAAOw7E,aAAa,GAAKo+f,QAG3D,OAAQA,GACJ,KAAK,GACDj2kB,EAAK,IACL,MACJ,KAAKoxjB,EAAuB8kB,GACxBJ,EAAUlnE,GAAK4qB,MACf,MACJ,KAAK43B,EAAuB+kB,GACxBL,EAAUlnE,GAAK8qB,MACf,MACJ,KAAK03B,EAAuBglB,GAExBJ,EAAmBF,EACnBA,EAAUlnE,GAAKynE,YACf,MACJ,KAAKjlB,EAAuBijB,mCACxB7xf,EAAOsuJ,OAAkB8kW,EAAmBx7kB,IAC5C,MACJ,KAAKg3jB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,MAI3B,MACJ,KAAKnnE,GAAK4qB,MAEN,GAAIy8C,EAAY,GACZj2kB,EAAiC3D,OAAOw7E,aAAa,GAAKo+f,QAG1D,OAAQA,GACJ,KAAK,GACDj2kB,EAAK,IACL,MACJ,KAAKoxjB,EAAuB3hF,GAExBumG,EAAmBF,EACnBA,EAAUlnE,GAAK0nE,YACf,MACJ,KAAKllB,EAAuB+kB,GACxBL,EAAUlnE,GAAK8qB,MACf,MACJ,KAAK03B,EAAuBglB,GAExBJ,EAAmBF,EACnBA,EAAUlnE,GAAKynE,YACf,MACJ,KAAKjlB,EAAuBijB,mCAExB7xf,EAAOsuJ,OAAkB8kW,EAAmBx7kB,IAC5C,MACJ,KAAKg3jB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,MAI3B,MACJ,KAAKnnE,GAAK8qB,MAEN,GAAIu8C,EAAY7kB,EAAuBmlB,GACnCv2kB,EAAKoxjB,EAAuBolB,YAAYP,QAGxC,OAAQA,GACJ,KAAK7kB,EAAuBmlB,GACxBT,EAAUlnE,GAAK6qB,MACf,MACJ,KAAK,GACDz5hB,EAAK,IACL,MACJ,KAAKoxjB,EAAuB8kB,GACxBJ,EAAUlnE,GAAK4qB,MACf,MACJ,KAAK43B,EAAuBvne,GACxBisf,EAAUlnE,GAAKmnE,MACf,MACJ,KAAK3kB,EAAuBglB,GAExBJ,EAAmBF,EACnBA,EAAUlnE,GAAKynE,YACf,MACJ,KAAKjlB,EAAuBijB,mCACxB7xf,EAAOsuJ,OAAkB8kW,EAAmBx7kB,IAC5C,MACJ,KAAKg3jB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,MAI3B,MACJ,KAAKnnE,GAAK6qB,MAEN,GAAIw8C,EAAY7kB,EAAuBqlB,IACnCz2kB,EAAKoxjB,EAAuBslB,YAAYT,QAGxC,OAAQA,GACJ,KAAK7kB,EAAuBqlB,IACxBX,EAAUlnE,GAAKmnE,MACf,MACJ,KAAK3kB,EAAuBijB,mCACxB7xf,EAAOsuJ,OAAkB8kW,EAAmBx7kB,IAC5C,MACJ,KAAKg3jB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,MAI3B,MACJ,KAAKnnE,GAAK0nE,YAGN,GADAR,EAAUE,EACNC,EAAY,GACZj2kB,EAAiC3D,OAAOw7E,aAAa,GAAKo+f,QAG1D,OAAQA,GACJ,KAAK,GACDj2kB,EAAK,IACL,MACJ,KAAKoxjB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,MAI3B,MACJ,KAAKnnE,GAAKynE,YAGN,GADAP,EAAUE,EACNC,EAAY7kB,EAAuBqlB,IACnCz2kB,EAAKoxjB,EAAuBslB,YAAYT,QAGxC,OAAQA,GACJ,KAAK7kB,EAAuBqlB,IACxBX,EAAUlnE,GAAKmnE,MACf,MACJ,KAAK3kB,EAAuBijB,mCAGxB7xf,EAAOsuJ,OAAkB8kW,EAAmBx7kB,IAC5C,MACJ,KAAKg3jB,EAAuB4iB,2BACxB8B,EAAUlnE,GAAKmnE,OAOxB,KAAP/1kB,GAEAwiF,EAAOsuJ,OAAO9wO,GAElB5F,GACJ,CACJ,EAaAg3jB,EAAuBgjB,eAAiB,SAAUt0c,EAAM6vb,EAAW33Y,EAAU+7Z,EAAWvxf,GACpF,IAAIm0f,EAAe,IAAI1D,GACnBljkB,EAAQ,EACRnX,EAAiB,EACjBs+E,GAAM,EACV,OAAQ4oD,GACJ,KAAKsxb,EAAuB8iB,2BAKxB,IAFA,IAAI0C,EAAyB,IAAI98Z,WAAW,GACxCpN,EAAWijZ,EAAUokB,KACjBA,EAAYpkB,EAAU,KAAQz4e,GAMlC,OALA0/f,EAAuB7mkB,KAAW28J,EAElC9zK,EAAQ,IAAMA,EAAQ8zK,EACtBA,EAAWijZ,EAAUokB,MAGjB,KAAK3iB,EAAuB4iB,2BAC5B,KAAK5iB,EAAuB8iB,2BAC5B,KAAK9iB,EAAuBkjB,8BAC5B,KAAKljB,EAAuB+iB,6BAC5B,KAAK/iB,EAAuBujB,iCAC5B,KAAKvjB,EAAuByjB,kCAC5B,KAAKzjB,EAAuB0jB,wBACxBf,IACA78f,GAAM,EACN,MACJ,QACI,GAAKnnE,EAAQ,IAAM,GAAOA,EAAQ,EAAI,CAGlC,IAAK,IAAIsqE,EAAY,EAAGA,EAAI,IAAKA,EAK7Bs8f,EAAahjf,MAAiBytC,OAAO0yc,GAAal7kB,IAAUk7kB,GAAa,GAAK,EAAIz5f,MAEtFzhF,EAAQ,EACRmX,EAAQ,CACZ,EAKRgkkB,IAAcpkB,EAAU,IAAMjjZ,EAAW0kZ,EAAuB4iB,6BAChE4C,EAAuB7mkB,KAAW28J,GAKtC,IAAK,IAAItyK,EAAY,EAAGA,EAAI2V,EAAO3V,IAC/Bu8kB,EAAahjf,MAAiBijf,EAAuBx8kB,IAEzD,MACJ,KAAKg3jB,EAAuB+iB,6BAGxB,KAAOJ,EAAYpkB,EAAU,KAAOz4e,GAAK,CACrC,IAAItyE,EAAO+qjB,EAAUokB,KACrB,GAAInvkB,EAAOwsjB,EAAuB4iB,2BAC9BjkkB,IAEAnX,EAAQ,IAAMA,EAAQgM,OAGtB,OAAQA,GACJ,KAAKwsjB,EAAuB4iB,2BAC5B,KAAK5iB,EAAuB8iB,2BAC5B,KAAK9iB,EAAuBkjB,8BAC5B,KAAKljB,EAAuB+iB,6BAC5B,KAAK/iB,EAAuBujB,iCAC5B,KAAKvjB,EAAuByjB,kCAC5B,KAAKzjB,EAAuB0jB,wBACxBf,IACA78f,GAAM,EAIlB,GAAKnnE,EAAQ,IAAM,GAAOA,EAAQ,EAAI,CAOlC,IAASsqE,EAAY,EAAGA,EAAI,IAAKA,EAC7Bs8f,EAAahjf,MAAiBytC,OAAO0yc,GAAal7kB,IAAUk7kB,GAAa,GAAK,EAAIz5f,MAEtFzhF,EAAQ,EACRmX,EAAQ,CACZ,CACJ,EAIR,OADAyyE,EAAOsuJ,OAAOwwS,GAAejva,OAAOske,EAAa13f,cAAe+4F,IACzD+7Z,CACX,EAWA3iB,EAAuBmjB,kBAAoB,SAAU5kB,EAAWokB,EAAmBvxf,GAI/E,IAHA,IAAIzyE,EAAQ,EACRmnE,GAAM,EACN2/f,EAAmB,IAAI/8Z,WAAWs3Y,EAAuB0lB,uBACtD/C,EAAYpkB,EAAU,KAAOz4e,GAAK,CACrC,IAAItyE,EAAO+qjB,EAAUokB,KAIrB,GAHIA,IAAcpkB,EAAU,KACxBz4e,GAAM,GAENtyE,EAAOwsjB,EAAuB4iB,2BAC9B6C,EAAiB9mkB,GAASnL,EAC1BmL,SAGA,OAAQnL,GACJ,KAAKwsjB,EAAuB4iB,2BAC5B,KAAK5iB,EAAuB8iB,2BAC5B,KAAK9iB,EAAuB+iB,6BAC5B,KAAK/iB,EAAuBujB,iCAC5B,KAAKvjB,EAAuByjB,kCAC5B,KAAKzjB,EAAuB0jB,wBACxBf,IACA78f,GAAM,GAIbnnE,EAAQqhjB,EAAuB0lB,wBAA0B,GAAKlykB,IAASwsjB,EAAuBkjB,+BAAiCp9f,IAAQnnE,EAAQ,IAKhJyyE,EAAOsuJ,OAAOsgV,EAAuB6jB,sBAAsB4B,EAAkB9mkB,IAC7EA,EAAQ,EAEhB,CACA,OAAOgkkB,CACX,EA6CA3iB,EAAuB6jB,sBAAwB,SAAUtlB,EAAW5/iB,GAEhE,IADA,IAAIyyE,EAASsxf,GAAa,GACjB15kB,EAAY,EAAGA,EAAI2V,EAAO3V,IAC/BooF,GAAU4ue,EAAuB2lB,OAAOhnkB,EAAQ3V,EAAI,GAAK05kB,GAAankB,EAAUv1jB,IAEpF,IAAIoyiB,EAAehqd,EAAOn2E,WAC1B,GAA+B,MAA3BmgiB,EAAav2d,OAAO,GACpB,MAAM,IAAIyoc,GAEd,OAAO8tB,EAAax8hB,UAAU,EAClC,EACAohjB,EAAuB4iB,2BAA6B,IACpD5iB,EAAuB8iB,2BAA6B,IACpD9iB,EAAuBkjB,8BAAgC,IACvDljB,EAAuB+iB,6BAA+B,IACtD/iB,EAAuBsjB,iBAAmB,IAC1CtjB,EAAuBqjB,oBAAsB,IAC7CrjB,EAAuBojB,YAAc,IACrCpjB,EAAuBujB,iCAAmC,IAC1DvjB,EAAuByjB,kCAAoC,IAC3DzjB,EAAuB0jB,wBAA0B,IACjD1jB,EAAuBijB,mCAAqC,IAC5DjjB,EAAuB0lB,sBAAwB,GAC/C1lB,EAAuB+jB,sCAAwC,EAC/D/jB,EAAuBkkB,0CAA4C,EACnElkB,EAAuBmkB,uCAAyC,EAChEnkB,EAAuBgkB,mCAAqC,EAC5DhkB,EAAuBikB,sCAAwC,EAC/DjkB,EAAuBqkB,sCAAwC,EAC/DrkB,EAAuBokB,qCAAuC,EAC9DpkB,EAAuBmlB,GAAK,GAC5BnlB,EAAuB8kB,GAAK,GAC5B9kB,EAAuB3hF,GAAK,GAC5B2hF,EAAuB+kB,GAAK,GAC5B/kB,EAAuBvne,GAAK,GAC5Bune,EAAuBglB,GAAK,GAC5BhlB,EAAuBqlB,IAAM,GAC7BrlB,EAAuBslB,YAAc,qCACrCtlB,EAAuBolB,YAAc,8BAKrCplB,EAAuB2lB,OAASlD,KAnrBpC,WAEI,IAAIkD,EAAS,GACbA,EAAO,GAAKjD,GAAa,GACzB,IAAIkD,EAAclD,GAAa,KAC/BiD,EAAO,GAAKC,EAEZ,IAAK,IAAI58kB,EAAY,EAAGA,EAAI,GAAIA,IAC5B28kB,EAAO38kB,GAAK28kB,EAAO38kB,EAAI,GAAK48kB,EAEhC,OAAOD,CACX,CAwqB6DE,GAAc,GACvE7lB,EAAuB2jB,6BAA+B,EAC/C3jB,CACX,CApqB4C,GCnF5C,IAAIv2C,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EAqqBA,SAroB2C,WACvC,SAASkhgB,IACT,CAioBA,OAtmBAA,EAAsB7ke,OAAS,SAAUj0E,EAAO+4iB,EAAcC,EAAiBC,EAAeC,EAAkBC,EAAkBC,GAK9H,IAJA,IAGIC,EAHA5oZ,EAAc,IAAIu5Y,GAAYhqiB,EAAO+4iB,EAAcC,EAAiBC,EAAeC,GACnFI,EAAyB,KACzBC,EAA0B,KAErBC,GAAwB,GAAOA,GAAY,EAAO,CAQvD,GAPoB,MAAhBT,IACAO,EAAyBR,EAAsBW,sBAAsBz5iB,EAAOywJ,EAAasoZ,GAAc,EAAMI,EAAkBC,IAE9G,MAAjBH,IACAM,EAA0BT,EAAsBW,sBAAsBz5iB,EAAOywJ,EAAawoZ,GAAe,EAAOE,EAAkBC,IAG/G,OADvBC,EAAkBP,EAAsB33I,MAAMm4I,EAAwBC,IAElE,MAAM1xD,GAAkBC,sBAE5B,IAAI4xD,EAAYL,EAAgB3M,iBAChC,IAAI8M,GAA0B,MAAbE,KACZA,EAAUlP,UAAY/5Y,EAAY+5Y,WAAakP,EAAUjP,UAAYh6Y,EAAYg6Y,WAIlF,MAHAh6Y,EAAcipZ,CAKtB,CACAL,EAAgBrI,eAAevgZ,GAC/B,IAAIkpZ,EAAmBN,EAAgBxI,wBAA0B,EACjEwI,EAAgBpI,yBAAyB,EAAGqI,GAC5CD,EAAgBpI,yBAAyB0I,EAAkBJ,GAE3D,IADA,IAAIK,EAAwC,MAA1BN,EACTlL,EAA6B,EAAGA,GAAsBuL,EAAkBvL,IAAsB,CACnG,IAAIoB,EAAgBoK,EAAcxL,EAAqBuL,EAAmBvL,EAC1E,QAA2Ej0kB,IAAvEk/kB,EAAgBnI,yBAAyB1B,GAA7C,CAIA,IAAIH,OAAwB,EAExBA,EADkB,IAAlBG,GAAuBA,IAAkBmK,EACjB,IAAI1M,GAAkCx8Y,EAA+B,IAAlB++Y,GAGnD,IAAItD,GAAsBz7Y,GAEtD4oZ,EAAgBpI,yBAAyBzB,EAAeH,GAIxD,IAHA,IAAItH,GAAe,EACf8R,EAAsB9R,EAEjBqE,EAAmB37Y,EAAY+5Y,UAAW4B,GAAY37Y,EAAYg6Y,UAAW2B,IAAY,CAE9F,IADArE,EAAc+Q,EAAsBgB,eAAeT,EAAiB7J,EAAepD,EAAUwN,IAC3E,GAAK7R,EAAct3Y,EAAY85Y,UAAW,CACxD,IAA6B,IAAzBsP,EACA,SAEJ9R,EAAc8R,CAClB,CACA,IAAIxN,EAAWyM,EAAsBiB,eAAe/5iB,EAAOywJ,EAAY65Y,UAAW75Y,EAAY85Y,UAAWqP,EAAa7R,EAAaqE,EAAU+M,EAAkBC,GAC/I,MAAZ/M,IACAgD,EAAsB5C,YAAYL,EAAUC,GAC5CwN,EAAsB9R,EACtBoR,EAAmB1+f,KAAKyD,IAAIi7f,EAAkB9M,EAASjoY,YACvDg1Y,EAAmB3+f,KAAKC,IAAI0+f,EAAkB/M,EAASjoY,YAE/D,CA3BA,CA4BJ,CACA,OAAO00Y,EAAsBkB,oBAAoBX,EACrD,EAQAP,EAAsB33I,MAAQ,SAAUm4I,EAAwBC,GAC5D,GAA8B,MAA1BD,GAA6D,MAA3BC,EAClC,OAAO,KAEX,IAAIjM,EAAkBwL,EAAsB5K,mBAAmBoL,EAAwBC,GACvF,GAAuB,MAAnBjM,EACA,OAAO,KAEX,IAAI78Y,EAAcu5Y,GAAY7oI,MAAM23I,EAAsBmB,kBAAkBX,GAAyBR,EAAsBmB,kBAAkBV,IAC7I,OAAO,IAAI1K,GAAgBvB,EAAiB78Y,EAChD,EAOAqoZ,EAAsBmB,kBAAoB,SAAU9I,GAChD,IAAIj0D,EAAK1ub,EACT,GAA0B,MAAtB2if,EACA,OAAO,KAEX,IAAI+I,EAAa/I,EAAmBlD,gBACpC,GAAkB,MAAdiM,EACA,OAAO,KAEX,IAAIvM,EAAemL,EAAsBqB,OAAOD,GAC5CrP,EAAmB,EACvB,IACI,IAAK,IAAIuP,EAAe39D,GAASy9D,GAAaG,EAAiBD,EAAa9wkB,QAAS+wkB,EAAeh2f,KAAMg2f,EAAiBD,EAAa9wkB,OAAQ,CAC5I,IAAIgxkB,EAAYD,EAAe7/kB,MAE/B,GADAqwkB,GAAoB8C,EAAe2M,EAC/BA,EAAY,EACZ,KAER,CACJ,CACA,MAAOj9D,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQg9D,IAAmBA,EAAeh2f,OAASmK,EAAK4rf,EAAav1S,SAASr2M,EAAG9yF,KAAK0+kB,EACtF,CAAC,QACS,GAAIl9D,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CAEA,IADA,IAAI2xjB,EAAY4f,EAAmB3e,eAC1Bt6W,EAAc,EAAG2yX,EAAmB,GAAuB,MAAlBtZ,EAAUr5W,GAAcA,IACtE2yX,IAEJ,IAAIC,EAAiB,EACrB,IAAS5yX,EAAcgiY,EAAWj+kB,OAAS,EAAGi8M,GAAO,IACjD4yX,GAAkB6C,EAAeuM,EAAWhiY,KACxCgiY,EAAWhiY,GAAO,IAF8BA,KAMxD,IAASA,EAAcq5W,EAAUt1jB,OAAS,EAAG6ukB,EAAiB,GAAuB,MAAlBvZ,EAAUr5W,GAAcA,IACvF4yX,IAEJ,OAAOqG,EAAmBzE,iBAAiB9B,eAAeC,EAAkBC,EAAgBqG,EAAmBpG,SACnH,EACA+N,EAAsBqB,OAAS,SAAUthf,GACrC,IAAI+0c,EAAKp/c,EACL+rf,GAAY,EAChB,IACI,IAAK,IAAIC,EAAW/9D,GAAS5jb,GAAS4hf,EAAaD,EAASlxkB,QAASmxkB,EAAWp2f,KAAMo2f,EAAaD,EAASlxkB,OAAQ,CAChH,IAAI9O,EAAQiglB,EAAWjglB,MACvB+/kB,EAAW9/f,KAAKC,IAAI6/f,EAAU//kB,EAClC,CACJ,CACA,MAAO+ziB,GAASX,EAAM,CAAEhuiB,MAAO2uiB,EAAS,CAAC,QAErC,IACQksC,IAAeA,EAAWp2f,OAASmK,EAAKgsf,EAAS31S,SAASr2M,EAAG9yF,KAAK8+kB,EAC1E,CAAC,QACS,GAAI5sC,EAAK,MAAMA,EAAIhuiB,KAAO,CACxC,CACA,OAAO26kB,CACX,EACAzB,EAAsB5K,mBAAqB,SAAUoL,EAAwBC,GACzE,IAAImB,EAKAC,EAJJ,OAA8B,MAA1BrB,GACuE,OAAtEoB,EAAsBpB,EAAuBpL,sBACZ,MAA3BqL,EAAkC,KAAOA,EAAwBrL,qBAG7C,MAA3BqL,GACyE,OAAxEoB,EAAuBpB,EAAwBrL,sBACzCwM,EAEPA,EAAoB7O,mBAAqB8O,EAAqB9O,kBAC9D6O,EAAoBzgB,4BAA8B0gB,EAAqB1gB,2BACvEygB,EAAoB5O,gBAAkB6O,EAAqB7O,cACpD,KAEJ4O,CACX,EACA5B,EAAsBW,sBAAwB,SAAUz5iB,EAAOywJ,EAAamqZ,EAAYhB,EAAaT,EAAkBC,GAEnH,IADA,IAAIjI,EAAqB,IAAIlE,GAAkCx8Y,EAAampZ,GACnE59kB,EAAY,EAAGA,EAAI,EAAGA,IAG3B,IAFA,IAAI00G,EAAkB,IAAN10G,EAAU,GAAK,EAC3B+rkB,EAActtf,KAAK8tX,MAAM9tX,KAAK8tX,MAAMqyI,EAAW50E,SAC1ComE,EAAmB3xf,KAAK8tX,MAAM9tX,KAAK8tX,MAAMqyI,EAAW30E,SAAUmmE,GAAY37Y,EAAYg6Y,WAC3F2B,GAAY37Y,EAAY+5Y,UAAW4B,GAAY17d,EAAW,CAC1D,IAAI27d,EAAWyM,EAAsBiB,eAAe/5iB,EAAO,EAAGA,EAAMokK,WAAYw1Y,EAAa7R,EAAaqE,EAAU+M,EAAkBC,GACtH,MAAZ/M,IACA8E,EAAmB1E,YAAYL,EAAUC,GAErCtE,EADA6R,EACcvN,EAASkF,YAGTlF,EAASmF,UAGnC,CAEJ,OAAOL,CACX,EAWA2H,EAAsB+B,oBAAsB,SAAUxB,EAAiByB,GACnE,IAAIC,EAAkBD,EAAc,GAAG,GACnCE,EAAoBD,EAAgBt6kB,WACpCw6kB,EAA8B5B,EAAgBxI,wBAC9CwI,EAAgBvI,qBAChBgI,EAAsBoC,uBAAuB7B,EAAgBtI,qBACjE,GAAiC,IAA7BiK,EAAkB/+kB,OAAc,CAChC,GAAIg/kB,EAA8B,GAAKA,EAA8B9U,GAAaW,yBAC9E,MAAMj/C,GAAkBC,sBAE5BizD,EAAgBjtS,SAASmtS,EAC7B,MACSD,EAAkB,KAAOC,GAE9BF,EAAgBjtS,SAASmtS,EAEjC,EASAnC,EAAsBkB,oBAAsB,SAAUX,GAClD,IAAIyB,EAAgBhC,EAAsBqC,oBAAoB9B,GAC9DP,EAAsB+B,oBAAoBxB,EAAiByB,GAK3D,IAJA,IAAIpmD,EAAmC,IAAI34hB,MACvCw1jB,EAAY,IAAI71Y,WAAW29Z,EAAgBvI,qBAAuBuI,EAAgBxI,yBAClFuK,EAA2C,GAC3CC,EAA+C,IAAIt/kB,MAC9Cm8M,EAAc,EAAGA,EAAMmhY,EAAgBvI,qBAAsB54X,IAClE,IAAK,IAAI3wD,EAAiB,EAAGA,EAAS8xb,EAAgBxI,wBAAyBtpb,IAAU,CACrF,IAAI1uD,EAASiif,EAAc5iY,GAAK3wD,EAAS,GAAG9mJ,WACxC66kB,EAAgBpjY,EAAMmhY,EAAgBxI,wBAA0Btpb,EAC9C,IAAlB1uD,EAAO58F,OACPy4hB,EAAS9nhB,KAAK0ukB,GAES,IAAlBzif,EAAO58F,OACZs1jB,EAAU+pB,GAAiBzif,EAAO,IAGlCwif,EAAqBzukB,KAAK0ukB,GAC1BF,EAAyBxukB,KAAKisF,GAEtC,CAGJ,IADA,IAAI0if,EAAuB,IAAIx/kB,MAAMq/kB,EAAyBn/kB,QACrDD,EAAY,EAAGA,EAAIu/kB,EAAqBt/kB,OAAQD,IACrDu/kB,EAAqBv/kB,GAAKo/kB,EAAyBp/kB,GAEvD,OAAO88kB,EAAsB0C,uCAAuCnC,EAAgBtI,oBAAqBxf,EAAW4U,GAAaG,WAAW5xC,GAAWyxC,GAAaG,WAAW+U,GAAuBE,EAC1M,EAiBAzC,EAAsB0C,uCAAyC,SAAUxnD,EAASu9B,EAAWkqB,EAAcC,EAAkBH,GAGzH,IAFA,IAAII,EAAsB,IAAIjga,WAAWgga,EAAiBz/kB,QACtD2/kB,EAAQ,IACLA,KAAU,GAAG,CAChB,IAAK,IAAI5/kB,EAAY,EAAGA,EAAI2/kB,EAAoB1/kB,OAAQD,IACpDu1jB,EAAUmqB,EAAiB1/kB,IAAMu/kB,EAAqBv/kB,GAAG2/kB,EAAoB3/kB,IAEjF,IACI,OAAO88kB,EAAsB+C,gBAAgBtqB,EAAWv9B,EAASynD,EACrE,CACA,MAAOp6c,GAEH,KADcA,aAAe06Y,IAEzB,MAAM16Y,CAEd,CACA,GAAmC,IAA/Bs6c,EAAoB1/kB,OACpB,MAAM8/gB,GAAkBC,sBAE5B,IAAShghB,EAAY,EAAGA,EAAI2/kB,EAAoB1/kB,OAAQD,IAAK,CACzD,GAAI2/kB,EAAoB3/kB,GAAKu/kB,EAAqBv/kB,GAAGC,OAAS,EAAG,CAC7D0/kB,EAAoB3/kB,KACpB,KACJ,CAGI,GADA2/kB,EAAoB3/kB,GAAK,EACrBA,IAAM2/kB,EAAoB1/kB,OAAS,EACnC,MAAM8/gB,GAAkBC,qBAGpC,CACJ,CACA,MAAMD,GAAkBC,qBAC5B,EACA88D,EAAsBqC,oBAAsB,SAAU9B,GAKlD,IAJA,IAAIxqC,EAAKrgd,EAAI+ud,EAAKzhd,EAGdg/e,EAAgB/+kB,MAAMkpF,KAAK,CAAEhpF,OAAQo9kB,EAAgBvI,uBAAwB,WAAc,OAAO,IAAI/0kB,MAAMs9kB,EAAgBxI,wBAA0B,EAAI,IACrJ34X,EAAc,EAAGA,EAAM4iY,EAAc7+kB,OAAQi8M,IAClD,IAAK,IAAI4jY,EAAmB,EAAGA,EAAWhB,EAAc5iY,GAAKj8M,OAAQ6/kB,IACjEhB,EAAc5iY,GAAK4jY,GAAY,IAAIjP,GAG3C,IAAItlb,EAAS,EACb,IACI,IAAK,IAAI96B,EAAKgwZ,GAAS48D,EAAgBrK,6BAA8Bpid,EAAKH,EAAGnjH,QAASsjH,EAAGvoC,KAAMuoC,EAAKH,EAAGnjH,OAAQ,CAC3G,IAAI+lkB,EAAwBzid,EAAGpyH,MAC/B,GAA6B,MAAzB60kB,EACA,IACI,IAAK,IAAI12c,GAAM4kb,OAAM,EAAQ9gC,GAAS4yD,EAAsB7c,iBAAkB35b,EAAKF,EAAGrvH,QAASuvH,EAAGx0C,KAAMw0C,EAAKF,EAAGrvH,OAAQ,CACpH,IAAI+ikB,EAAWxzc,EAAGr+H,MAClB,GAAgB,MAAZ6xkB,EAAkB,CAClB,IAAI1iC,EAAY0iC,EAAShoB,eACzB,GAAI1a,GAAa,EAAG,CAChB,GAAIA,GAAamxC,EAAc7+kB,OAE3B,SAEJ6+kB,EAAcnxC,GAAWpiZ,GAAQumJ,SAASu+R,EAAS5rkB,WACvD,CACJ,CACJ,CACJ,CACA,MAAO09iB,GAASZ,EAAM,CAAE39iB,MAAOu+iB,EAAS,CAAC,QAErC,IACQtlb,IAAOA,EAAGx0C,OAASyX,EAAK68B,EAAGksK,SAAS/oM,EAAGpgG,KAAKi9H,EACpD,CAAC,QACS,GAAI4kb,EAAK,MAAMA,EAAI39iB,KAAO,CACxC,CAEJ2nJ,GACJ,CACJ,CACA,MAAO4nZ,GAASN,EAAM,CAAEjviB,MAAOuviB,EAAS,CAAC,QAErC,IACQvib,IAAOA,EAAGvoC,OAASmK,EAAKi+B,EAAGo4K,SAASr2M,EAAG9yF,KAAK+wH,EACpD,CAAC,QACS,GAAIoib,EAAK,MAAMA,EAAIjviB,KAAO,CACxC,CACA,OAAOk7kB,CACX,EACAhC,EAAsBiD,qBAAuB,SAAU1C,EAAiB7J,GACpE,OAAOA,GAAiB,GAAKA,GAAiB6J,EAAgBxI,wBAA0B,CAC5F,EACAiI,EAAsBgB,eAAiB,SAAUT,EAAiB7J,EAAepD,EAAUwN,GACvF,IAAIxzB,EAAK53d,EACL98E,EAASkokB,EAAc,GAAK,EAC5BvN,EAAW,KAIf,GAHIyM,EAAsBiD,qBAAqB1C,EAAiB7J,EAAgB99jB,KAC5E26jB,EAAWgN,EAAgBnI,yBAAyB1B,EAAgB99jB,GAAQg1jB,YAAY0F,IAE5E,MAAZC,EACA,OAAOuN,EAAcvN,EAASmF,UAAYnF,EAASkF,YAGvD,GAAgB,OADhBlF,EAAWgN,EAAgBnI,yBAAyB1B,GAAerD,kBAAkBC,IAEjF,OAAOwN,EAAcvN,EAASkF,YAAclF,EAASmF,UAKzD,GAHIsH,EAAsBiD,qBAAqB1C,EAAiB7J,EAAgB99jB,KAC5E26jB,EAAWgN,EAAgBnI,yBAAyB1B,EAAgB99jB,GAAQy6jB,kBAAkBC,IAElF,MAAZC,EACA,OAAOuN,EAAcvN,EAASmF,UAAYnF,EAASkF,YAGvD,IADA,IAAIyK,EAAiB,EACdlD,EAAsBiD,qBAAqB1C,EAAiB7J,EAAgB99jB,IAAS,CACxF89jB,GAAiB99jB,EACjB,IACI,IAAK,IAAIoqF,GAAMsqd,OAAM,EAAQ3pC,GAAS48D,EAAgBnI,yBAAyB1B,GAAehd,iBAAkB/lc,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CACtJ,IAAI2ykB,EAAsBxvd,EAAGjyH,MAC7B,GAA2B,MAAvByhlB,EACA,OAAQrC,EAAcqC,EAAoBzK,UAAYyK,EAAoB1K,aACtE7/jB,EACIsqkB,GACCC,EAAoBzK,UAAYyK,EAAoB1K,YAErE,CACJ,CACA,MAAO5qB,GAASP,EAAM,CAAExmjB,MAAO+mjB,EAAS,CAAC,QAErC,IACQl6b,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIsqd,EAAK,MAAMA,EAAIxmjB,KAAO,CACxC,CACAo8kB,GACJ,CACA,OAAOpC,EAAcP,EAAgB3M,iBAAiBpC,UAAY+O,EAAgB3M,iBAAiBnC,SACvG,EACAuO,EAAsBiB,eAAiB,SAAU/5iB,EAAOk8iB,EAAWC,EAAWvC,EAAa7R,EAAaqE,EAAU+M,EAAkBC,GAChIrR,EAAc+Q,EAAsBsD,0BAA0Bp8iB,EAAOk8iB,EAAWC,EAAWvC,EAAa7R,EAAaqE,GAKrH,IAIIiQ,EAJAhW,EAAiByS,EAAsBwD,kBAAkBt8iB,EAAOk8iB,EAAWC,EAAWvC,EAAa7R,EAAaqE,GACpH,GAAsB,MAAlB/F,EACA,OAAO,KAGX,IAAIkW,EAAmBv/C,GAAU17d,IAAI+kgB,GACrC,GAAIuT,EACAyC,EAAYtU,EAAcwU,MAEzB,CACD,IAAK,IAAIvglB,EAAY,EAAGA,EAAIqqkB,EAAepqkB,OAAS,EAAGD,IAAK,CACxD,IAAIwglB,EAAWnW,EAAerqkB,GAC9BqqkB,EAAerqkB,GAAKqqkB,EAAeA,EAAepqkB,OAAS,EAAID,GAC/DqqkB,EAAeA,EAAepqkB,OAAS,EAAID,GAAKwglB,CACpD,CAEAzU,GADAsU,EAAYtU,GACcwU,CAC9B,CAcA,IAAKzD,EAAsB2D,kBAAkBF,EAAkBpD,EAAkBC,GAG7E,OAAO,KAEX,IAAIr0H,EAAe0sH,GAAsBO,gBAAgB3L,GACrDgG,EAAWlG,GAAaO,YAAY3hH,GACxC,OAAkB,IAAdsnH,EACO,KAEJ,IAAI+E,GAASrJ,EAAasU,EAAWvD,EAAsB4D,wBAAwB33H,GAAesnH,EAC7G,EACAyM,EAAsBwD,kBAAoB,SAAUt8iB,EAAOk8iB,EAAWC,EAAWvC,EAAa7R,EAAaqE,GAMvG,IALA,IAAIuQ,EAAc5U,EACd1B,EAAiB,IAAI3qZ,WAAW,GAChCkha,EAAe,EACflse,EAAYkpe,EAAc,GAAK,EAC/BiD,EAAqBjD,GACjBA,EAAc+C,EAAcR,EAAYQ,GAAeT,IAC3DU,EAAevW,EAAepqkB,QAC1B+jC,EAAM1tB,IAAIqqkB,EAAavQ,KAAcyQ,GACrCxW,EAAeuW,KACfD,GAAejse,IAGfkse,IACAC,GAAsBA,GAG9B,OAAID,IAAiBvW,EAAepqkB,QAC9B0glB,KAAiB/C,EAAcuC,EAAYD,IACzCU,IAAiBvW,EAAepqkB,OAAS,EACtCoqkB,EAEJ,IACX,EACAyS,EAAsBoC,uBAAyB,SAAU3M,GACrD,OAAO,GAAKA,CAChB,EACAuK,EAAsBsD,0BAA4B,SAAUp8iB,EAAOk8iB,EAAWC,EAAWvC,EAAakD,EAAqB1Q,GAIvH,IAHA,IAAI2Q,EAAuBD,EACvBpse,EAAYkpe,GAAe,EAAI,EAE1B59kB,EAAY,EAAGA,EAAI,EAAGA,IAAK,CAChC,MAAQ49kB,EAAcmD,GAAwBb,EAAYa,EAAuBZ,IAC7EvC,IAAgB55iB,EAAM1tB,IAAIyqkB,EAAsB3Q,IAAW,CAC3D,GAAI3xf,KAAK4sB,IAAIy1e,EAAsBC,GAAwBjE,EAAsBkE,mBAC7E,OAAOF,EAEXC,GAAwBrse,CAC5B,CACAA,GAAaA,EACbkpe,GAAeA,CACnB,CACA,OAAOmD,CACX,EACAjE,EAAsB2D,kBAAoB,SAAU5gD,EAAcs9C,EAAkBC,GAChF,OAAOD,EAAmBL,EAAsBkE,oBAAsBnhD,GAClEA,GAAgBu9C,EAAmBN,EAAsBkE,kBACjE,EAKAlE,EAAsB+C,gBAAkB,SAAUtqB,EAAWv9B,EAASU,GAClE,GAAyB,IAArB68B,EAAUt1jB,OACV,MAAMqkhB,GAAgBC,oBAE1B,IAAIqlB,EAAiB,GAAM5R,EAAU,EACjCipD,EAAuBnE,EAAsBhjB,cAAcvE,EAAW78B,EAAUkR,GACpFkzC,EAAsBoE,oBAAoB3rB,EAAW3rB,GAErD,IAAIlL,EAAgBs4B,GAAuB/+c,OAAOs9c,EAAW,GAAKv9B,GAGlE,OAFA0G,EAAclG,mBAAmByoD,GACjCviD,EAAc/F,YAAYD,EAASz4hB,QAC5By+hB,CACX,EAUAo+C,EAAsBhjB,cAAgB,SAAUvE,EAAW78B,EAAUkR,GACjE,GAAgB,MAAZlR,GACAA,EAASz4hB,OAAS2piB,EAAiB,EAAIkzC,EAAsBqE,YAC7Dv3C,EAAiB,GACjBA,EAAiBkzC,EAAsBsE,iBAEvC,MAAMrhE,GAAkBC,sBAE5B,OAAO88D,EAAsBuE,gBAAgBppe,OAAOs9c,EAAW3rB,EAAgBlR,EACnF,EAKAokD,EAAsBoE,oBAAsB,SAAU3rB,EAAW3rB,GAC7D,GAAI2rB,EAAUt1jB,OAAS,EAGnB,MAAMqkhB,GAAgBC,oBAK1B,IAAIy6D,EAAoBzpB,EAAU,GAClC,GAAIypB,EAAoBzpB,EAAUt1jB,OAC9B,MAAMqkhB,GAAgBC,oBAE1B,GAA0B,IAAtBy6D,EAAyB,CAEzB,KAAIp1C,EAAiB2rB,EAAUt1jB,QAI3B,MAAMqkhB,GAAgBC,oBAHtBgxC,EAAU,GAAKA,EAAUt1jB,OAAS2piB,CAK1C,CACJ,EACAkzC,EAAsBwE,uBAAyB,SAAUjR,GAIrD,IAHA,IAAIjof,EAAS,IAAIs3F,WAAW,GACxB6ha,EAAgB,EAChBvhlB,EAAIooF,EAAOnoF,OAAS,KAEJ,EAAXowkB,KAAoBkR,IACrBA,EAA2B,EAAXlR,IAChBrwkB,EACQ,KAIZooF,EAAOpoF,KACPqwkB,IAAa,EAEjB,OAAOjof,CACX,EACA00f,EAAsB4D,wBAA0B,SAAUrQ,GACtD,OAAIA,aAAoB3wZ,WACb1+K,KAAKwglB,mCAAmCnR,GAE5CrvkB,KAAKyglB,+BAA+BpR,EAC/C,EACAyM,EAAsB2E,+BAAiC,SAAUpR,GAC7D,OAAOyM,EAAsB4D,wBAAwB5D,EAAsBwE,uBAAuBjR,GACtG,EACAyM,EAAsB0E,mCAAqC,SAAUnX,GACjE,OAAQA,EAAe,GAAKA,EAAe,GAAKA,EAAe,GAAKA,EAAe,GAAK,GAAK,CACjG,EACAyS,EAAsB7qkB,SAAW,SAAU6skB,GAGvC,IAFA,IAAInO,EAAY,IAAIV,GAEX/zX,EAAc,EAAGA,EAAM4iY,EAAc7+kB,OAAQi8M,IAAO,CACzDy0X,EAAU5me,OAAO,YAAamyG,GAC9B,IAAK,IAAI3wD,EAAiB,EAAGA,EAASuzb,EAAc5iY,GAAKj8M,OAAQsrJ,IAAU,CACvE,IAAIm2b,EAAe5C,EAAc5iY,GAAK3wD,GACC,IAAnCm2b,EAAaj9kB,WAAWxE,OACxB0wkB,EAAU5me,OAAO,WAAY,MAG7B4me,EAAU5me,OAAO,WAAY23e,EAAaj9kB,WAAW,GAAIi9kB,EAAa1Q,cAAc0Q,EAAaj9kB,WAAW,IAEpH,CACAkskB,EAAU5me,OAAO,KACrB,CACA,OAAO4me,EAAU1+jB,UAErB,EACU6qkB,EAAsBkE,mBAAqB,EAC3ClE,EAAsBqE,WAAa,EACnCrE,EAAsBsE,iBAAmB,IACzCtE,EAAsBuE,gBAAkB,IAAI/T,GAC/CwP,CACX,CApoB2C,GC1C3C,IAAIr8D,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EAsIA,SAxGkC,WAC9B,SAAS+lgB,IACT,CAoGA,OAzFAA,EAAanilB,UAAUy4G,OAAS,SAAUj0E,EAAOikf,QAC/B,IAAVA,IAAoBA,EAAQ,MAChC,IAAI7/b,EAASu5f,EAAa1pe,OAAOj0E,EAAOikf,GAAO,GAC/C,GAAc,MAAV7/b,GAAoC,IAAlBA,EAAOnoF,QAA6B,MAAbmoF,EAAO,GAChD,MAAMyjc,GAAkBC,sBAE5B,OAAO1jc,EAAO,EAClB,EAQAu5f,EAAanilB,UAAUoilB,eAAiB,SAAU59iB,EAAOikf,QACvC,IAAVA,IAAoBA,EAAQ,MAChC,IACI,OAAO05D,EAAa1pe,OAAOj0E,EAAOikf,GAAO,EAC7C,CACA,MAAO6hB,GACH,GAAIA,aAAmBxlB,IAAmBwlB,aAAmB/pB,GACzD,MAAM8L,GAAkBC,sBAE5B,MAAMge,CACV,CACJ,EAWA63C,EAAa1pe,OAAS,SAAUj0E,EAAOikf,EAAOl1O,GAC1C,IAAImuO,EAAK1ub,EACLwhB,EAAU,IAAIj0G,MACdm+hB,EAAiBsK,GAAS6iC,eAAerniB,EAAOikf,EAAOl1O,GAC3D,IACI,IAAK,IAAIjzM,EAAK2gb,GAASyd,EAAeqE,aAAc9xa,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CAC1F,IAAIg1hB,EAAS7xa,EAAGjyH,MACZkgiB,EAAgBo+C,GAAsB7ke,OAAOimb,EAAevxD,UAAW21D,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIq/C,EAAaE,oBAAoBv/C,GAASq/C,EAAaG,oBAAoBx/C,IAC9Ll6c,EAAS,IAAI2gK,GAAO21S,EAAcxsC,UAAWwsC,EAAc1H,mBAAe74hB,EAAWmkiB,EAAQ1K,GAAcmqD,SAC/G35f,EAAOivc,YAAYQ,GAAmB8U,uBAAwBjO,EAAcrG,cAC5E,IAAI2pD,EAAuBtjD,EAAc9F,WACb,MAAxBopD,GACA55f,EAAOivc,YAAYQ,GAAmBoqD,sBAAuBD,GAEjEhue,EAAQpjG,KAAKw3E,EACjB,CACJ,CACA,MAAOi5b,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACA,OAAOowG,EAAQ5gG,KAAI,SAAUmsE,GAAK,OAAOA,CAAG,GAChD,EACAoigB,EAAaO,YAAc,SAAUtie,EAAIC,GACrC,OAAU,MAAND,GAAoB,MAANC,EACP,EAEJphC,KAAK8tX,MAAM9tX,KAAK4sB,IAAIuU,EAAGoqZ,OAASnqZ,EAAGmqZ,QAC9C,EACA23E,EAAaQ,YAAc,SAAUvie,EAAIC,GACrC,OAAU,MAAND,GAAoB,MAANC,EACPmia,GAAQ3uC,UAEZ50Z,KAAK8tX,MAAM9tX,KAAK4sB,IAAIuU,EAAGoqZ,OAASnqZ,EAAGmqZ,QAC9C,EACA23E,EAAaG,oBAAsB,SAAU55kB,GACzC,OAAOu2E,KAAK8H,MAAM9H,KAAKC,IAAID,KAAKC,IAAIijgB,EAAaO,YAAYh6kB,EAAE,GAAIA,EAAE,IAAKy5kB,EAAaO,YAAYh6kB,EAAE,GAAIA,EAAE,IAAMiikB,GAAac,oBAC1Hd,GAAae,yBAA0Bzsf,KAAKC,IAAIijgB,EAAaO,YAAYh6kB,EAAE,GAAIA,EAAE,IAAKy5kB,EAAaO,YAAYh6kB,EAAE,GAAIA,EAAE,IAAMiikB,GAAac,oBAC1Id,GAAae,0BACrB,EACAyW,EAAaE,oBAAsB,SAAU35kB,GACzC,OAAOu2E,KAAK8H,MAAM9H,KAAKyD,IAAIzD,KAAKyD,IAAIy/f,EAAaQ,YAAYj6kB,EAAE,GAAIA,EAAE,IAAKy5kB,EAAaQ,YAAYj6kB,EAAE,GAAIA,EAAE,IAAMiikB,GAAac,oBAC1Hd,GAAae,yBAA0Bzsf,KAAKyD,IAAIy/f,EAAaQ,YAAYj6kB,EAAE,GAAIA,EAAE,IAAKy5kB,EAAaQ,YAAYj6kB,EAAE,GAAIA,EAAE,IAAMiikB,GAAac,oBAC1Id,GAAae,0BACrB,EAEAyW,EAAanilB,UAAUq1G,MAAQ,WAC3B,EAEG8se,CACX,CAvGkC,GCvDlC,IAAIv6f,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAyB7C,SARqC,SAAU04B,GAE3C,SAASqie,IACL,OAAkB,OAAXrie,GAAmBA,EAAOj6G,MAAM9E,KAAM+E,YAAc/E,IAC/D,CAEA,OALAomF,GAAUg7f,EAAiBrie,GAI3Bqie,EAAgBvmc,KAAO,kBAChBumc,CACX,CAPqC,CAOnCpjE,ICTF,IAAIyB,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EA2LA,SAxKuC,WACnC,SAASymgB,IACT,CAoKA,OA1IAA,EAAkB7ilB,UAAUy4G,OAAS,SAAUj0E,EAAOikf,GAElD,OADAjnhB,KAAKshlB,SAASr6D,GACPjnhB,KAAKuhlB,eAAev+iB,EAC/B,EAUAq+iB,EAAkB7ilB,UAAUgjlB,gBAAkB,SAAUx+iB,GAKpD,OAHqB,OAAjBhjC,KAAKy5iB,cAAqCt8iB,IAAjB6C,KAAKy5iB,SAC9Bz5iB,KAAKshlB,SAAS,MAEXthlB,KAAKuhlB,eAAev+iB,EAC/B,EAQAq+iB,EAAkB7ilB,UAAU8ilB,SAAW,SAAUr6D,GAC7CjnhB,KAAKinhB,MAAQA,EACb,IAAIulB,EAAsB,OAAVvlB,QAA4B9phB,IAAV8phB,QAAuB9phB,IAAc8phB,EAAM3xgB,IAAI+tgB,GAAe8oB,YAE5FxwI,EAAoB,OAAVsrH,QAA4B9phB,IAAV8phB,EAAsB,KAAOA,EAAM3xgB,IAAI+tgB,GAAem2B,kBAClFC,EAAU,IAAI16iB,MAClB,GAAgB,OAAZ48Z,QAAgCx+Z,IAAZw+Z,EAAuB,CAC3C,IAAI8lL,EAAgB9lL,EAAQ/kT,MAAK,SAAU18B,GACvC,OAAOA,IAAM08c,GAAcqhB,OACvB/9d,IAAM08c,GAAcuiB,OACpBj/d,IAAM08c,GAAcohB,QACpB99d,IAAM08c,GAAc4hB,OACpBt+d,IAAM08c,GAAc2kB,SACpBrhe,IAAM08c,GAAc8a,SACpBx3d,IAAM08c,GAAc6b,SACpBv4d,IAAM08c,GAAc2Z,UACpBr2d,IAAM08c,GAAch/W,KACpB19F,IAAM08c,GAAcu4B,QACpBj1e,IAAM08c,GAAcg0B,YAC5B,IAGI62B,IAAkBj1C,GAClBiN,EAAQ7piB,KAAK,IAAIsgjB,GAAsBjpC,IAEvCtrH,EAAQlxR,SAASmsZ,GAAckyC,UAC/BrvB,EAAQ7piB,KAAK,IAAIg5jB,IAEjBjtK,EAAQlxR,SAASmsZ,GAAc0kC,cAC/B7hB,EAAQ7piB,KAAK,IAAIqrjB,IAEjBt/J,EAAQlxR,SAASmsZ,GAAc6U,QAC/BgO,EAAQ7piB,KAAK,IAAI07hB,IAEjB3vI,EAAQlxR,SAASmsZ,GAAcmqD,UAC/BtnC,EAAQ7piB,KAAK,IAAI+wkB,IAMjBc,GAAiBj1C,GACjBiN,EAAQ7piB,KAAK,IAAIsgjB,GAAsBjpC,GAE/C,CACuB,IAAnBwyB,EAAQx6iB,SACHutiB,GACDiN,EAAQ7piB,KAAK,IAAIsgjB,GAAsBjpC,IAE3CwyB,EAAQ7piB,KAAK,IAAIg5jB,IACjBnvB,EAAQ7piB,KAAK,IAAIqrjB,IACjBxhB,EAAQ7piB,KAAK,IAAI07hB,IACjBmO,EAAQ7piB,KAAK,IAAI+wkB,IAEbn0C,GACAiN,EAAQ7piB,KAAK,IAAIsgjB,GAAsBjpC,KAG/CjnhB,KAAKy5iB,QAAUA,CACnB,EAEA4nC,EAAkB7ilB,UAAUq1G,MAAQ,WAChC,IAAIqsa,EAAK1ub,EACT,GAAqB,OAAjBxxF,KAAKy5iB,QACL,IACI,IAAK,IAAI36c,EAAK2gb,GAASz/gB,KAAKy5iB,SAAUhqb,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CAC/DmjH,EAAGjyH,MACTq2G,OACX,CACJ,CACA,MAAOwsa,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CAER,EAIAy+kB,EAAkB7ilB,UAAU+ilB,eAAiB,SAAUv+iB,GACnD,IAAI4tgB,EAAKp/c,EACT,GAAqB,OAAjBxxF,KAAKy5iB,QACL,MAAM,IAAI2nC,GAAgB,mDAE9B,IACI,IAAK,IAAItif,EAAK2gb,GAASz/gB,KAAKy5iB,SAAUhqb,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CAC5E,IAAIoqO,EAASjnH,EAAGjyH,MAEhB,IACI,OAAOk5O,EAAOz/H,OAAOj0E,EAAOhjC,KAAKinhB,MACrC,CACA,MAAOxhM,GACH,GAAIA,aAAc27P,GACd,QAGR,CACJ,CACJ,CACA,MAAO7vC,GAASX,EAAM,CAAEhuiB,MAAO2uiB,EAAS,CAAC,QAErC,IACQ9hb,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAI8xc,EAAK,MAAMA,EAAIhuiB,KAAO,CACxC,CACA,MAAM,IAAIiohB,GAAkB,uDAChC,EACOw2D,CACX,CAvKuC,GC5CvC,ICqBIK,GACOA,GDtBPt7f,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAezCs7f,GAA0C,SAAU5ie,GAEpD,SAAS4ie,EAAyB16D,EAAOkI,QACvB,IAAVlI,IAAoBA,EAAQ,WACD,IAA3BkI,IAAqCA,EAAyB,KAClE,IACIz4S,EAAS,IAAI2qW,GAGjB,OAFA3qW,EAAO4qW,SAASr6D,GACRloa,EAAOrgH,KAAKsB,KAAM02O,EAAQy4S,IAA2BnvhB,IAEjE,CAQA,OAjBAomF,GAAUu7f,EAA0B5ie,GAcpC4ie,EAAyBnjlB,UAAUy1hB,aAAe,SAAUF,GACxD,OAAO/zhB,KAAK02O,OAAO8qW,gBAAgBztD,EACvC,EACO4tD,CACX,CAnB8C,CAmB5CzyD,IElCE9oc,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GCAzCD,IDoBqC,SAAU24B,GAM/C,SAAS6ie,EAAoBzyD,GAEzB,YAD+B,IAA3BA,IAAqCA,EAAyB,KAC3Dpwa,EAAOrgH,KAAKsB,KAAM,IAAI2glB,GAAgBxxD,IAA2BnvhB,IAC5E,CARAomF,GAAUw7f,EAAqB7ie,EAUnC,CAXyC,CAWvCmwa,IC/B2C,WACzC,IAAIjpc,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,KAoBJ,SAAU04B,GAM/C,SAAS8ie,EAAoB1yD,GAEzB,YAD+B,IAA3BA,IAAqCA,EAAyB,KAC3Dpwa,EAAOrgH,KAAKsB,KAAM,IAAI4okB,GAAgBz5C,IAA2BnvhB,IAC5E,CARAomF,GAAUy7f,EAAqB9ie,EAUnC,CAXyC,CAWvCmwa,KFTSwyD,GA8FRA,KAAmBA,GAAiB,CAAC,IApFrBA,GAAiC,iBAAI,GAAK,mBAIzDA,GAAeA,GAA8B,cAAI,GAAK,gBAItDA,GAAeA,GAAkC,kBAAI,GAAK,oBAe1DA,GAAeA,GAAoC,oBAAI,GAAK,sBAQ5DA,GAAeA,GAAyB,SAAI,GAAK,WAOjDA,GAAeA,GAAyB,SAAI,GAAK,WAMjDA,GAAeA,GAAuB,OAAI,GAAK,SAK/CA,GAAeA,GAA+B,eAAI,GAAK,iBAMvDA,GAAeA,GAAkC,kBAAI,GAAK,oBAK1DA,GAAeA,GAAkC,kBAAI,GAAK,oBAQ1DA,GAAeA,GAA6B,aAAI,IAAM,eAKtDA,GAAeA,GAA2B,WAAI,IAAM,aAKpDA,GAAeA,GAA2B,WAAI,IAAM,aAKpDA,GAAeA,GAA0B,UAAI,IAAM,YAEvD,YGxBA,SArEwC,WASpC,SAASI,EAAmBltO,GACxB50W,KAAK40W,MAAQA,EACb50W,KAAK+hlB,iBAAmB,GACxB/hlB,KAAK+hlB,iBAAiBnykB,KAAK,IAAIyohB,GAAczjL,EAAOl2L,WAAWz2F,KAAK,CAAC,KACzE,CAsDA,OArDA65f,EAAmBtjlB,UAAUwjlB,eAAiB,SAAUh+F,GACpD,IAAI+9F,EAAmB/hlB,KAAK+hlB,iBAC5B,GAAI/9F,GAAU+9F,EAAiB9ilB,OAG3B,IAFA,IAAIgjlB,EAAgBF,EAAiBA,EAAiB9ilB,OAAS,GAC3D21W,EAAQ50W,KAAK40W,MACR12R,EAAI6jgB,EAAiB9ilB,OAAQi/E,GAAK8la,EAAQ9la,IAAK,CACpD,IAAIgkgB,EAAgBD,EAAc/kZ,SAAS,IAAIm7V,GAAczjL,EAAOl2L,WAAWz2F,KAAK,CAAC,EAAG2sR,EAAM99Q,IAAI5Y,EAAI,EAAI02R,EAAM+lL,wBAChHonD,EAAiBnykB,KAAKsykB,GACtBD,EAAgBC,CACpB,CAEJ,OAAOH,EAAiB/9F,EAC5B,EAoBA89F,EAAmBtjlB,UAAU6vK,OAAS,SAAU8za,EAAUC,GACtD,GAAgB,IAAZA,EACA,MAAM,IAAIjkE,GAAyB,6BAEvC,IAAIkkE,EAAYF,EAASljlB,OAASmjlB,EAClC,GAAIC,GAAa,EACb,MAAM,IAAIlkE,GAAyB,0BAEvC,IAAIv3b,EAAY5mF,KAAKgilB,eAAeI,GAChCE,EAAmB,IAAI5ja,WAAW2ja,GACtCnjE,GAAOC,UAAUgjE,EAAU,EAAGG,EAAkB,EAAGD,GAMnD,IALA,IAAIxigB,EAAO,IAAIw4c,GAAcr4hB,KAAK40W,MAAO0tO,GAGrChqD,GAFJz4c,EAAOA,EAAK85c,mBAAmByoD,EAAS,IACnB70jB,OAAOq5D,GAAW,GACV6xc,kBACzB8pD,EAAsBH,EAAU9pD,EAAar5hB,OACxCD,EAAI,EAAGA,EAAIujlB,EAAqBvjlB,IACrCmjlB,EAASE,EAAYrjlB,GAAK,EAE9BkghB,GAAOC,UAAUmZ,EAAc,EAAG6pD,EAAUE,EAAYE,EAAqBjqD,EAAar5hB,OAC9F,EACO6ilB,CACX,CApEwC,GC2LxC,SA9L8B,WAC1B,SAASU,IACL,CA0LJ,OApLAA,EAASC,sBAAwB,SAAU/we,GACvC,OAAO8we,EAASE,8BAA8Bhxe,GAAQ,GAAQ8we,EAASE,8BAA8Bhxe,GAAQ,EACjH,EAMA8we,EAASG,sBAAwB,SAAUjxe,GAKvC,IAJA,IAAIg9Z,EAAU,EACV5iY,EAAQp6B,EAAOkxe,WACfv6f,EAAQqpB,EAAO01F,WACf9+G,EAASopB,EAAOg8F,YACXtvH,EAAI,EAAGA,EAAIkK,EAAS,EAAGlK,IAE5B,IADA,IAAIykgB,EAAS/2c,EAAM1tD,GACVG,EAAI,EAAGA,EAAI8J,EAAQ,EAAG9J,IAAK,CAChC,IAAI/gF,EAAQqllB,EAAOtkgB,GACf/gF,IAAUqllB,EAAOtkgB,EAAI,IAAM/gF,IAAUsuI,EAAM1tD,EAAI,GAAGG,IAAM/gF,IAAUsuI,EAAM1tD,EAAI,GAAGG,EAAI,IACnFmwb,GAER,CAEJ,OAAO8zE,EAASM,GAAKp0E,CACzB,EAMA8zE,EAASO,sBAAwB,SAAUrxe,GAKvC,IAJA,IAAIsxe,EAAe,EACfl3c,EAAQp6B,EAAOkxe,WACfv6f,EAAQqpB,EAAO01F,WACf9+G,EAASopB,EAAOg8F,YACXtvH,EAAI,EAAGA,EAAIkK,EAAQlK,IACxB,IAAK,IAAIG,EAAI,EAAGA,EAAI8J,EAAO9J,IAAK,CAC5B,IAAIskgB,EAAS/2c,EAAM1tD,GACfG,EAAI,EAAI8J,GACM,IAAdw6f,EAAOtkgB,IACW,IAAlBskgB,EAAOtkgB,EAAI,IACO,IAAlBskgB,EAAOtkgB,EAAI,IACO,IAAlBskgB,EAAOtkgB,EAAI,IACO,IAAlBskgB,EAAOtkgB,EAAI,IACO,IAAlBskgB,EAAOtkgB,EAAI,IACO,IAAlBskgB,EAAOtkgB,EAAI,KACVikgB,EAASS,kBAAkBJ,EAAQtkgB,EAAI,EAAGA,IAAMikgB,EAASS,kBAAkBJ,EAAQtkgB,EAAI,EAAGA,EAAI,MAC/FykgB,IAEA5kgB,EAAI,EAAIkK,GACQ,IAAhBwjD,EAAM1tD,GAAGG,IACW,IAApButD,EAAM1tD,EAAI,GAAGG,IACO,IAApButD,EAAM1tD,EAAI,GAAGG,IACO,IAApButD,EAAM1tD,EAAI,GAAGG,IACO,IAApButD,EAAM1tD,EAAI,GAAGG,IACO,IAApButD,EAAM1tD,EAAI,GAAGG,IACO,IAApButD,EAAM1tD,EAAI,GAAGG,KACZikgB,EAASU,gBAAgBp3c,EAAOvtD,EAAGH,EAAI,EAAGA,IAAMokgB,EAASU,gBAAgBp3c,EAAOvtD,EAAGH,EAAI,EAAGA,EAAI,MAC/F4kgB,GAER,CAEJ,OAAOA,EAAeR,EAASW,EACnC,EACAX,EAASS,kBAAoB,SAAUl5D,EAAU9hc,EAAcD,GAC3DC,EAAOxK,KAAKC,IAAIuK,EAAM,GACtBD,EAAKvK,KAAKyD,IAAI8G,EAAI+hc,EAAS9qhB,QAC3B,IAAK,IAAID,EAAIipF,EAAMjpF,EAAIgpF,EAAIhpF,IACvB,GAAoB,IAAhB+qhB,EAAS/qhB,GACT,OAAO,EAGf,OAAO,CACX,EACAwjlB,EAASU,gBAAkB,SAAUp3c,EAAOsvE,EAAanzH,EAAcD,GACnEC,EAAOxK,KAAKC,IAAIuK,EAAM,GACtBD,EAAKvK,KAAKyD,IAAI8G,EAAI8jD,EAAM7sI,QACxB,IAAK,IAAID,EAAIipF,EAAMjpF,EAAIgpF,EAAIhpF,IACvB,GAAsB,IAAlB8sI,EAAM9sI,GAAGo8M,GACT,OAAO,EAGf,OAAO,CACX,EAKAonY,EAASY,sBAAwB,SAAU1xe,GAKvC,IAJA,IAAI2xe,EAAe,EACfv3c,EAAQp6B,EAAOkxe,WACfv6f,EAAQqpB,EAAO01F,WACf9+G,EAASopB,EAAOg8F,YACXtvH,EAAI,EAAGA,EAAIkK,EAAQlK,IAExB,IADA,IAAIykgB,EAAS/2c,EAAM1tD,GACVG,EAAI,EAAGA,EAAI8J,EAAO9J,IACL,IAAdskgB,EAAOtkgB,IACP8kgB,IAIZ,IAAIC,EAAgB5xe,EAAOg8F,YAAch8F,EAAO01F,WAEhD,OAD2B3pH,KAAK8H,MAAmD,GAA7C9H,KAAK4sB,IAAmB,EAAfg5e,EAAmBC,GAAsBA,GAC1Dd,EAASe,EAC3C,EAKAf,EAASgB,eAAiB,SAAUC,EAAqBllgB,EAAWH,GAChE,IAAIslgB,EACAvtc,EACJ,OAAQstc,GACJ,KAAK,EACDC,EAAgBtlgB,EAAIG,EAAK,EACzB,MACJ,KAAK,EACDmlgB,EAAmB,EAAJtlgB,EACf,MACJ,KAAK,EACDslgB,EAAenlgB,EAAI,EACnB,MACJ,KAAK,EACDmlgB,GAAgBtlgB,EAAIG,GAAK,EACzB,MACJ,KAAK,EACDmlgB,EAAgBjmgB,KAAK8H,MAAMnH,EAAI,GAAKX,KAAK8H,MAAMhH,EAAI,GAAM,EACzD,MACJ,KAAK,EAEDmlgB,GAAuB,GADvBvtc,EAAO/3D,EAAIG,IACoB43D,EAAO,EACtC,MACJ,KAAK,EAEDutc,GAAwB,GADxBvtc,EAAO/3D,EAAIG,IACqB43D,EAAO,EAAM,EAC7C,MACJ,KAAK,EAEDutc,GADAvtc,EAAO/3D,EAAIG,GACa,GAAOH,EAAIG,EAAK,GAAQ,EAChD,MACJ,QACI,MAAM,IAAI4/b,GAAyB,yBAA2BslE,GAEtE,OAAwB,IAAjBC,CACX,EAKAlB,EAASE,8BAAgC,SAAUhxe,EAAQiye,GAKvD,IAJA,IAAIj1E,EAAU,EACVk1E,EAASD,EAAejye,EAAOg8F,YAAch8F,EAAO01F,WACpDy8Y,EAASF,EAAejye,EAAO01F,WAAa11F,EAAOg8F,YACnD5hE,EAAQp6B,EAAOkxe,WACV5jlB,EAAI,EAAGA,EAAI4klB,EAAQ5klB,IAAK,CAG7B,IAFA,IAAI8klB,EAAkB,EAClBC,GAAW,EACN9kgB,EAAI,EAAGA,EAAI4kgB,EAAQ5kgB,IAAK,CAC7B,IAAIswB,EAAMo0e,EAAe73c,EAAM9sI,GAAGigF,GAAK6sD,EAAM7sD,GAAGjgF,GAC5CuwG,IAAQw0e,EACRD,KAGIA,GAAmB,IACnBp1E,GAAW8zE,EAASwB,IAAMF,EAAkB,IAEhDA,EAAkB,EAClBC,EAAUx0e,EAElB,CACIu0e,GAAmB,IACnBp1E,GAAW8zE,EAASwB,IAAMF,EAAkB,GAEpD,CACA,OAAOp1E,CACX,EAEA8zE,EAASwB,GAAK,EACdxB,EAASM,GAAK,EACdN,EAASW,GAAK,GACdX,EAASe,GAAK,GACPf,CACX,CA7L8B,GCN9B,IAAI/iE,GAAsC,SAAS5hc,GAC/C,IAAIjD,EAAsB,oBAAXkG,QAAyBA,OAAOC,SAAUjE,EAAIlC,GAAKiD,EAAEjD,GAAI57E,EAAI,EAC5E,GAAI89E,EAAG,OAAOA,EAAEp+E,KAAKm/E,GACrB,GAAIA,GAAyB,kBAAbA,EAAE5+E,OAAqB,MAAO,CAC1CqN,KAAM,WAEF,OADIuxE,GAAK7+E,GAAK6+E,EAAE5+E,SAAQ4+E,OAAI,GACrB,CAAErgF,MAAOqgF,GAAKA,EAAE7+E,KAAMqoF,MAAOxJ,EACxC,GAEJ,MAAM,IAAIv/E,UAAUs8E,EAAI,0BAA4B,kCACxD,EA4GA,SAjGgC,WAC5B,SAASqpgB,EAAW57f,EAAeC,GAC/BtoF,KAAKqoF,MAAQA,EACbroF,KAAKsoF,OAASA,EAEd,IADA,IAAIsC,EAAQ,IAAI7rF,MAAMupF,GACbtpF,EAAI,EAAGA,IAAMspF,EAAQtpF,IAC1B4rF,EAAM5rF,GAAK,IAAI4lF,WAAWyD,GAE9BroF,KAAK4qF,MAAQA,CACjB,CAsFA,OArFAq5f,EAAWzllB,UAAUkvM,UAAY,WAC7B,OAAO1tM,KAAKsoF,MAChB,EACA27f,EAAWzllB,UAAU4oM,SAAW,WAC5B,OAAOpnM,KAAKqoF,KAChB,EACA47f,EAAWzllB,UAAU8W,IAAM,SAAUipE,EAAWH,GAC5C,OAAOp+E,KAAK4qF,MAAMxM,GAAGG,EACzB,EAIA0lgB,EAAWzllB,UAAUoklB,SAAW,WAC5B,OAAO5ilB,KAAK4qF,KAChB,EAEAq5f,EAAWzllB,UAAU0llB,UAAY,SAAU3lgB,EAAWH,EAAW5gF,GAC7DwC,KAAK4qF,MAAMxM,GAAGG,GAAK/gF,CACvB,EAIAymlB,EAAWzllB,UAAU2llB,WAAa,SAAU5lgB,EAAWH,EAAW5gF,GAC9DwC,KAAK4qF,MAAMxM,GAAGG,GAAkB/gF,EAAQ,EAAI,CAChD,EACAymlB,EAAWzllB,UAAUihN,MAAQ,SAAUjiN,GACnC,IAAI0ihB,EAAK1ub,EACT,IACI,IAAK,IAAIsN,EAAK2gb,GAASz/gB,KAAK4qF,OAAQ6kC,EAAK3wB,EAAGxyF,QAASmjH,EAAGpoC,KAAMooC,EAAK3wB,EAAGxyF,OAAQ,CAC1E,IAAI83kB,EAAQ30d,EAAGjyH,MACfkihB,GAAOrkZ,KAAK+od,EAAO5mlB,EACvB,CACJ,CACA,MAAO6ihB,GAASH,EAAM,CAAEt9gB,MAAOy9gB,EAAS,CAAC,QAErC,IACQ5wZ,IAAOA,EAAGpoC,OAASmK,EAAKsN,EAAG+oM,SAASr2M,EAAG9yF,KAAKogG,EACpD,CAAC,QACS,GAAIohb,EAAK,MAAMA,EAAIt9gB,KAAO,CACxC,CACJ,EACAqhlB,EAAWzllB,UAAUg3B,OAAS,SAAUqoD,GACpC,KAAMA,aAAaomgB,GACf,OAAO,EAEX,IAAIvhE,EAAQ7kc,EACZ,GAAI79E,KAAKqoF,QAAUq6b,EAAMr6b,MACrB,OAAO,EAEX,GAAIroF,KAAKsoF,SAAWo6b,EAAMp6b,OACtB,OAAO,EAEX,IAAK,IAAIlK,EAAI,EAAGkK,EAAStoF,KAAKsoF,OAAQlK,EAAIkK,IAAUlK,EAGhD,IAFA,IAAIimgB,EAASrklB,KAAK4qF,MAAMxM,GACpBkmgB,EAAc5hE,EAAM93b,MAAMxM,GACrBG,EAAI,EAAG8J,EAAQroF,KAAKqoF,MAAO9J,EAAI8J,IAAS9J,EAC7C,GAAI8lgB,EAAO9lgB,KAAO+lgB,EAAY/lgB,GAC1B,OAAO,EAInB,OAAO,CACX,EAEA0lgB,EAAWzllB,UAAUyS,SAAW,WAE5B,IADA,IAAIm2E,EAAS,IAAIwhc,GACRxqc,EAAI,EAAGkK,EAAStoF,KAAKsoF,OAAQlK,EAAIkK,IAAUlK,EAAG,CAEnD,IADA,IAAIimgB,EAASrklB,KAAK4qF,MAAMxM,GACfG,EAAI,EAAG8J,EAAQroF,KAAKqoF,MAAO9J,EAAI8J,IAAS9J,EAC7C,OAAQ8lgB,EAAO9lgB,IACX,KAAK,EACD6I,EAAOsuJ,OAAO,MACd,MACJ,KAAK,EACDtuJ,EAAOsuJ,OAAO,MACd,MACJ,QACItuJ,EAAOsuJ,OAAO,MAI1BtuJ,EAAOsuJ,OAAO,KAClB,CACA,OAAOtuJ,EAAOn2E,UAClB,EACOgzkB,CACX,CAhGgC,GC+ChC,SA/D4B,WACxB,SAASM,IACLvklB,KAAKyjlB,aAAe,CACxB,CA0DA,OAzDAc,EAAO/llB,UAAUgmlB,QAAU,WACvB,OAAOxklB,KAAK0kI,IAChB,EACA6/c,EAAO/llB,UAAU64hB,WAAa,WAC1B,OAAOr3hB,KAAKg3hB,OAChB,EACAutD,EAAO/llB,UAAUq0jB,WAAa,WAC1B,OAAO7yjB,KAAK0R,OAChB,EACA6ykB,EAAO/llB,UAAUimlB,eAAiB,WAC9B,OAAOzklB,KAAKyjlB,WAChB,EACAc,EAAO/llB,UAAUmthB,UAAY,WACzB,OAAO3rhB,KAAK0xG,MAChB,EAEA6ye,EAAO/llB,UAAUyS,SAAW,WACxB,IAAIm2E,EAAS,IAAIwhc,GAkBjB,OAjBAxhc,EAAOsuJ,OAAO,QACdtuJ,EAAOsuJ,OAAO,WACdtuJ,EAAOsuJ,OAAO11O,KAAK0kI,KAAO1kI,KAAK0kI,KAAKzzH,WAAa,QACjDm2E,EAAOsuJ,OAAO,gBACdtuJ,EAAOsuJ,OAAO11O,KAAKg3hB,QAAUh3hB,KAAKg3hB,QAAQ/lhB,WAAa,QACvDm2E,EAAOsuJ,OAAO,gBACdtuJ,EAAOsuJ,OAAO11O,KAAK0R,QAAU1R,KAAK0R,QAAQT,WAAa,QACvDm2E,EAAOsuJ,OAAO,oBACdtuJ,EAAOsuJ,OAAO11O,KAAKyjlB,YAAYxykB,YAC3BjR,KAAK0xG,QACLtqB,EAAOsuJ,OAAO,gBACdtuJ,EAAOsuJ,OAAO11O,KAAK0xG,OAAOzgG,aAG1Bm2E,EAAOsuJ,OAAO,qBAElBtuJ,EAAOsuJ,OAAO,QACPtuJ,EAAOn2E,UAClB,EACAszkB,EAAO/llB,UAAU+sgB,QAAU,SAAU/tgB,GACjCwC,KAAK0kI,KAAOlnI,CAChB,EACA+mlB,EAAO/llB,UAAUkmlB,WAAa,SAAUlnlB,GACpCwC,KAAKg3hB,QAAUx5hB,CACnB,EACA+mlB,EAAO/llB,UAAUmmlB,WAAa,SAAUjzkB,GACpC1R,KAAK0R,QAAUA,CACnB,EACA6ykB,EAAO/llB,UAAUomlB,eAAiB,SAAUpnlB,GACxCwC,KAAKyjlB,YAAcjmlB,CACvB,EACA+mlB,EAAO/llB,UAAUqmlB,UAAY,SAAUrnlB,GACnCwC,KAAK0xG,OAASl0G,CAClB,EAEA+mlB,EAAOO,mBAAqB,SAAUrB,GAClC,OAAOA,GAAe,GAAKA,EAAcc,EAAOQ,iBACpD,EACAR,EAAOQ,kBAAoB,EACpBR,CACX,CA9D4B,GCpB5B,IAAIn+f,GAAyC,WACzC,IAAIH,EAAgB,SAAU/H,EAAGC,GAI7B,OAHA8H,EAAgB7oF,OAAO8oF,gBAClB,CAAEC,UAAW,cAAgBpnF,OAAS,SAAUm/E,EAAGC,GAAKD,EAAEiI,UAAYhI,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIj3E,KAAKi3E,EAAOA,EAAE1/E,eAAeyI,KAAIg3E,EAAEh3E,GAAKi3E,EAAEj3E,GAAI,EACtE++E,EAAc/H,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASkI,IAAOrmF,KAAKwH,YAAc02E,CAAG,CADtC+H,EAAc/H,EAAGC,GAEjBD,EAAE1/E,UAAkB,OAAN2/E,EAAa/gF,OAAOkpF,OAAOnI,IAAMkI,EAAG7nF,UAAY2/E,EAAE3/E,UAAW,IAAI6nF,EACnF,CACJ,CAZ6C,GAyB7C,SARqC,SAAU04B,GAE3C,SAASime,IACL,OAAkB,OAAXjme,GAAmBA,EAAOj6G,MAAM9E,KAAM+E,YAAc/E,IAC/D,CAEA,OALAomF,GAAU4+f,EAAiBjme,GAI3Bime,EAAgBnqc,KAAO,kBAChBmqc,CACX,CAPqC,CAOnChnE,ICqZF,SAnZgC,WAC5B,SAASinE,IACL,CA+YJ,OAzYAA,EAAWC,YAAc,SAAUxze,GAE/BA,EAAO+tG,MAAyB,IACpC,EAGAwlY,EAAWE,YAAc,SAAUC,EAAUpuD,EAAStlhB,EAAS+xkB,EAAqB/xe,GAChFuze,EAAWC,YAAYxze,GACvBuze,EAAWI,mBAAmB3zkB,EAASggG,GAEvCuze,EAAWK,cAActuD,EAASysD,EAAa/xe,GAE/Cuze,EAAWM,sBAAsB7zkB,EAASggG,GAE1Cuze,EAAWO,cAAcJ,EAAU3B,EAAa/xe,EACpD,EAOAuze,EAAWI,mBAAqB,SAAU3zkB,EAASggG,GAE/Cuze,EAAWQ,4CAA4C/ze,GAEvDuze,EAAWS,+BAA+Bh0e,GAE1Cuze,EAAWU,qCAAqCj0kB,EAASggG,GAEzDuze,EAAWW,oBAAoBl0e,EACnC,EAEAuze,EAAWK,cAAgB,SAAUtuD,EAASysD,EAAqB/xe,GAC/D,IAAIm0e,EAAe,IAAIpkE,GACvBwjE,EAAWa,iBAAiB9uD,EAASysD,EAAaoC,GAClD,IAAK,IAAI7mlB,EAAI,EAAG0sG,EAAOm6e,EAAa79E,UAAWhpgB,EAAI0sG,IAAQ1sG,EAAG,CAG1D,IAAIuwG,EAAMs2e,EAAavwkB,IAAIuwkB,EAAa79E,UAAY,EAAIhpgB,GAEpD+mlB,EAAcd,EAAWe,sBAAsBhnlB,GAC/Ck+H,EAAK6od,EAAY,GACjB3od,EAAK2od,EAAY,GAErB,GADAr0e,EAAOyye,WAAWjnd,EAAIE,EAAI7tB,GACtBvwG,EAAI,EAAG,CAEP,IAAIuzM,EAAK7gG,EAAO01F,WAAapoM,EAAI,EAC7B6+M,EAAK,EACTnsG,EAAOyye,WAAW5xY,EAAIsL,EAAItuG,EAC9B,KACK,CAEGgjG,EAAK,EACLsL,EAAKnsG,EAAOg8F,YAAc,GAAK1uM,EAAI,GACvC0yG,EAAOyye,WAAW5xY,EAAIsL,EAAItuG,EAC9B,CACJ,CACJ,EAGA01e,EAAWM,sBAAwB,SAAU7zkB,EAASggG,GAClD,KAAIhgG,EAAQkgjB,mBAAqB,GAAjC,CAGA,IAAIq0B,EAAkB,IAAIxkE,GAC1BwjE,EAAWiB,oBAAoBx0kB,EAASu0kB,GAExC,IADA,IAAI3tG,EAAW,GACNt5e,EAAI,EAAGA,EAAI,IAAKA,EACrB,IAAK,IAAIigF,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAExB,IAAIswB,EAAM02e,EAAgB3wkB,IAAIgje,GAC9BA,IAEA5mY,EAAOyye,WAAWnllB,EAAG0yG,EAAOg8F,YAAc,GAAKzuH,EAAGswB,GAElDmC,EAAOyye,WAAWzye,EAAOg8F,YAAc,GAAKzuH,EAAGjgF,EAAGuwG,EACtD,CAbJ,CAeJ,EAIA01e,EAAWO,cAAgB,SAAUJ,EAAU3B,EAAqB/xe,GAMhE,IALA,IAAI4mY,EAAW,EACXjpY,GAAa,EAEb9wB,EAAImzB,EAAO01F,WAAa,EACxBhpH,EAAIszB,EAAOg8F,YAAc,EACtBnvH,EAAI,GAAG,CAKV,IAHU,IAANA,IACAA,GAAK,GAEFH,GAAK,GAAKA,EAAIszB,EAAOg8F,aAAa,CACrC,IAAK,IAAI1uM,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAIiygB,EAAK1yb,EAAIv/E,EAEb,GAAKimlB,EAAW9wb,QAAQziD,EAAOp8F,IAAI27f,EAAI7yb,IAAvC,CAGA,IAAImxB,OAAM,EACN+oY,EAAW8sG,EAASp9E,WACpBz4Z,EAAM61e,EAAS9vkB,IAAIgje,KACjBA,GAKF/oY,GAAM,EAGU,MAAhBk0e,GAAuBjB,GAASgB,eAAeC,EAAaxyE,EAAI7yb,KAChEmxB,GAAOA,GAEXmC,EAAOyye,WAAWlzE,EAAI7yb,EAAGmxB,EAfzB,CAgBJ,CACAnxB,GAAKixB,CACT,CAEAjxB,GADAixB,GAAaA,EAEb9wB,GAAK,CACT,CAEA,GAAI+5Z,IAAa8sG,EAASp9E,UACtB,MAAM,IAAIg9E,GAAgB,0BAA4B1sG,EAAW,IAAM8sG,EAASp9E,UAExF,EAMAi9E,EAAWkB,WAAa,SAAU3olB,GAC9B,OAAO,GAAKwjhB,GAAQE,qBAAqB1jhB,EAC7C,EA0BAynlB,EAAWmB,iBAAmB,SAAU5olB,EAAei+hB,GACnD,GAAa,IAATA,EACA,MAAM,IAAItd,GAAyB,gBAIvC,IAAIkoE,EAAepB,EAAWkB,WAAW1qD,GAGzC,IAFAj+hB,IAAU6olB,EAAe,EAElBpB,EAAWkB,WAAW3olB,IAAU6olB,GACnC7olB,GAASi+hB,GAASwpD,EAAWkB,WAAW3olB,GAAS6olB,EAGrD,OAAO7olB,CACX,EAIAynlB,EAAWa,iBAAmB,SAAU9uD,EAASysD,EAAqBxja,GAClE,IAAKska,GAAOO,mBAAmBrB,GAC3B,MAAM,IAAIuB,GAAgB,wBAE9B,IAAIsB,EAAYtvD,EAAQrrD,WAAa,EAAK83G,EAC1Cxja,EAAK+vV,WAAWs2E,EAAU,GAC1B,IAAIC,EAAUtB,EAAWmB,iBAAiBE,EAAUrB,EAAWuB,gBAC/Dvma,EAAK+vV,WAAWu2E,EAAS,IACzB,IAAIE,EAAW,IAAIhlE,GAGnB,GAFAglE,EAASz2E,WAAWi1E,EAAWyB,uBAAwB,IACvDzma,EAAK2iW,IAAI6jE,GACc,KAAnBxma,EAAK+nV,UACL,MAAM,IAAIg9E,GAAgB,iCAAmC/ka,EAAK+nV,UAE1E,EAGAi9E,EAAWiB,oBAAsB,SAAUx0kB,EAASuuK,GAChDA,EAAK+vV,WAAWt+f,EAAQkgjB,mBAAoB,GAC5C,IAAI20B,EAAUtB,EAAWmB,iBAAiB10kB,EAAQkgjB,mBAAoBqzB,EAAW0B,mBAEjF,GADA1ma,EAAK+vV,WAAWu2E,EAAS,IACF,KAAnBtma,EAAK+nV,UACL,MAAM,IAAIg9E,GAAgB,iCAAmC/ka,EAAK+nV,UAE1E,EAEAi9E,EAAW9wb,QAAU,SAAU32J,GAC3B,OAAiB,MAAVA,CACX,EACAynlB,EAAWW,oBAAsB,SAAUl0e,GAGvC,IAAK,IAAI1yG,EAAI,EAAGA,EAAI0yG,EAAO01F,WAAa,IAAKpoM,EAAG,CAC5C,IAAIuwG,GAAOvwG,EAAI,GAAK,EAEhBimlB,EAAW9wb,QAAQziD,EAAOp8F,IAAItW,EAAG,KACjC0yG,EAAOwye,UAAUlllB,EAAG,EAAGuwG,GAGvB01e,EAAW9wb,QAAQziD,EAAOp8F,IAAI,EAAGtW,KACjC0yG,EAAOwye,UAAU,EAAGlllB,EAAGuwG,EAE/B,CACJ,EAEA01e,EAAWS,+BAAiC,SAAUh0e,GAClD,GAA8C,IAA1CA,EAAOp8F,IAAI,EAAGo8F,EAAOg8F,YAAc,GACnC,MAAM,IAAIs3Y,GAEdtze,EAAOwye,UAAU,EAAGxye,EAAOg8F,YAAc,EAAG,EAChD,EACAu3Y,EAAW2B,iCAAmC,SAAUC,EAAgBC,EAAgBp1e,GACpF,IAAK,IAAInzB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAK0mgB,EAAW9wb,QAAQziD,EAAOp8F,IAAIuxkB,EAAStogB,EAAGuogB,IAC3C,MAAM,IAAI9B,GAEdtze,EAAOwye,UAAU2C,EAAStogB,EAAGuogB,EAAQ,EACzC,CACJ,EACA7B,EAAW8B,+BAAiC,SAAUF,EAAgBC,EAAgBp1e,GAClF,IAAK,IAAItzB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAK6mgB,EAAW9wb,QAAQziD,EAAOp8F,IAAIuxkB,EAAQC,EAAS1ogB,IAChD,MAAM,IAAI4mgB,GAEdtze,EAAOwye,UAAU2C,EAAQC,EAAS1ogB,EAAG,EACzC,CACJ,EACA6mgB,EAAW+B,+BAAiC,SAAUH,EAAgBC,EAAgBp1e,GAClF,IAAK,IAAItzB,EAAI,EAAGA,EAAI,IAAKA,EAErB,IADA,IAAI6ogB,EAAWhC,EAAWiC,4BAA4B9ogB,GAC7CG,EAAI,EAAGA,EAAI,IAAKA,EACrBmzB,EAAOwye,UAAU2C,EAAStogB,EAAGuogB,EAAS1ogB,EAAG6ogB,EAAS1ogB,GAG9D,EACA0mgB,EAAWkC,8BAAgC,SAAUN,EAAgBC,EAAgBp1e,GACjF,IAAK,IAAItzB,EAAI,EAAGA,EAAI,IAAKA,EAErB,IADA,IAAI6ogB,EAAWhC,EAAWmC,2BAA2BhpgB,GAC5CG,EAAI,EAAGA,EAAI,IAAKA,EACrBmzB,EAAOwye,UAAU2C,EAAStogB,EAAGuogB,EAAS1ogB,EAAG6ogB,EAAS1ogB,GAG9D,EAEA0mgB,EAAWQ,4CAA8C,SAAU/ze,GAE/D,IAAI21e,EAAWpC,EAAWmC,2BAA2B,GAAGnolB,OAExDgmlB,EAAWkC,8BAA8B,EAAG,EAAGz1e,GAE/Cuze,EAAWkC,8BAA8Bz1e,EAAO01F,WAAaigZ,EAAU,EAAG31e,GAE1Euze,EAAWkC,8BAA8B,EAAGz1e,EAAO01F,WAAaigZ,EAAU31e,GAI1Euze,EAAW2B,iCAAiC,EAAGU,EAAc51e,GAE7Duze,EAAW2B,iCAAiCl1e,EAAO01F,WAJpC,EAI2DkgZ,EAAc51e,GAExFuze,EAAW2B,iCAAiC,EAAGl1e,EAAO01F,WANvC,EAM8D11F,GAI7Euze,EAAW8B,+BAFG,EAEqC,EAAGr1e,GAEtDuze,EAAW8B,+BAA+Br1e,EAAOg8F,YAJnC,EAI2D,EAAG,EAAGh8F,GAE/Euze,EAAW8B,+BANG,EAMqCr1e,EAAOg8F,YAN5C,EAMmEh8F,EACrF,EAEAuze,EAAWU,qCAAuC,SAAUj0kB,EAASggG,GACjE,KAAIhgG,EAAQkgjB,mBAAqB,GAKjC,IAFA,IAAI5gjB,EAAQU,EAAQkgjB,mBAAqB,EACrCm0B,EAAcd,EAAWsC,6CAA6Cv2kB,GACjEhS,EAAI,EAAGg3G,EAAW+ve,EAAY9mlB,OAAQD,IAAMg3G,EAAUh3G,IAAK,CAChE,IAAIo/E,EAAI2ngB,EAAY/mlB,GACpB,GAAIo/E,GAAK,EACL,IAAK,IAAIa,EAAI,EAAGA,IAAM+2B,EAAU/2B,IAAK,CACjC,IAAIV,EAAIwngB,EAAY9mgB,GAChBV,GAAK,GAAK0mgB,EAAW9wb,QAAQziD,EAAOp8F,IAAIipE,EAAGH,KAI3C6mgB,EAAW+B,+BAA+BzogB,EAAI,EAAGH,EAAI,EAAGszB,EAEhE,CAER,CACJ,EACAuze,EAAWmC,2BAA6BrolB,MAAMkpF,KAAK,CAC/Cy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnCy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,MAEvCg9f,EAAWiC,4BAA8BnolB,MAAMkpF,KAAK,CAChDy2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,IAC7By2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,IAC7By2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,IAC7By2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,IAC7By2F,WAAWz2F,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,MAGjCg9f,EAAWsC,6CAA+CxolB,MAAMkpF,KAAK,CACjEy2F,WAAWz2F,KAAK,EAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1Cy2F,WAAWz2F,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzCy2F,WAAWz2F,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,IACzCy2F,WAAWz2F,KAAK,C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mrlB,EVlDgB,IUkDkB,EAGlCA,EVrDgB,KUwDhBC,GAAkB,EAAG,CAIrB,GAHAh3E,GAAOrkZ,KAAK6/U,EAAM,GAClBwkE,GAAOrkZ,KAAKs7d,EAAe,GAC3B32lB,KAAK42lB,aAAaH,EAAYE,EAAe31E,GAAQ3uC,UAAWn3B,GAC5Dy7I,EVjEU,GUkEV32lB,KAAKkhF,IAAIy1gB,EV7DG,GU6DgCA,EVjEpC,GUiEmEA,EVhElE,GUgEkGA,EV/DnG,GU+DkIA,EV9D9H,IU+DZ,OVnEU,EUqEd,GAAIA,EVhEY,GUgEwBA,EVrE1B,IUsEVA,EVjEY,GUiEwB,EAChC32lB,KAAKkhF,IAAIy1gB,EVtEL,GUsEoCA,EVrEnC,GUqEmEA,EVpEpE,GUoEmGA,EVnE/F,IUoEZ,OVnEY,EUqEhB,GAAIA,EVtEY,GUsEwB,EACpC32lB,KAAKkhF,IAAIy1gB,EVtEG,GUsEgCA,EV1EpC,GU0EmEA,EVzElE,GUyEkGA,EVxEnG,GUwEkIA,EV3EhI,IU4EV,OVxEY,EU0EhB,GAAIA,EV5ES,GU4EwB,EACjC32lB,KAAKkhF,IAAIy1gB,EV1EG,GU0EgCA,EV9EpC,GU8EmEA,EV3E/D,GU2EkGA,EV5EtG,GU4EqIA,EV/EnI,IUgFV,OV9ES,EUgFb,GAAIA,EV/EQ,GU+EwB,EAChC32lB,KAAKkhF,IAAIy1gB,EV9EG,GU8EgCA,EVlFpC,GUkFmEA,EV/E/D,GU+EkGA,EVjFrG,GUiFqIA,EVnFpI,IUoFV,OVjFQ,EUmFZ,GAAIA,EVrFQ,GUqFwB,EAChC32lB,KAAKkhF,IAAIy1gB,EVvFC,GUuFgCA,EVlF9B,GUkFiEA,EVnFjE,GUmFoGA,EVrFvG,IUqFwI,CACjJ,GAAIA,EVvFI,GUuF4BA,EVrF5B,GUsFJ,OVxFI,EU0FR,GAAIA,EV1FI,KU0F8BA,EVxF9B,GUwF6D,CAEjE,IADA,IAAIzvlB,EAAIivlB,EAAWO,EAAiB,EAC7BxvlB,EAAI3E,EAAItD,QAAQ,CACnB,IAAI8uN,EAAKxrN,EAAIgJ,WAAWrE,GACxB,GAAIlH,KAAKk3lB,aAAanpY,GAClB,OV7FJ,EU+FA,IAAK/tN,KAAKu2lB,YAAYxoY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","sources":["../node_modules/@xmldom/xmldom/lib/conventions.js","../node_modules/@xmldom/xmldom/lib/dom-parser.js","../node_modules/@xmldom/xmldom/lib/dom.js","../node_modules/@xmldom/xmldom/lib/entities.js","../node_modules/@xmldom/xmldom/lib/index.js","../node_modules/@xmldom/xmldom/lib/sax.js","../node_modules/aos/dist/aos.js","../node_modules/base64-js/index.js","../node_modules/dingbat-to-unicode/dist/dingbats.js","../node_modules/dingbat-to-unicode/dist/index.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/html2pdf.js/dist/html2pdf.js","../node_modules/js-beautify/js/index.js","../node_modules/js-beautify/js/lib/beautify-css.js","../node_modules/js-beautify/js/lib/beautify-html.js","../node_modules/js-beautify/js/lib/beautify.js","../node_modules/jsbarcode/bin/JsBarcode.js","../node_modules/jsbarcode/bin/barcodes/Barcode.js","../node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js","../node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js","../node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js","../node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js","../node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js","../node_modules/jsbarcode/bin/barcodes/CODE128/auto.js","../node_modules/jsbarcode/bin/barcodes/CODE128/constants.js","../node_modules/jsbarcode/bin/barcodes/CODE128/index.js","../node_modules/jsbarcode/bin/barcodes/CODE39/index.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js","../node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js","../node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js","../node_modules/jsbarcode/bin/barcodes/ITF/ITF.js","../node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js","../node_modules/jsbarcode/bin/barcodes/ITF/constants.js","../node_modules/jsbarcode/bin/barcodes/ITF/index.js","../node_modules/jsbarcode/bin/barcodes/MSI/MSI.js","../node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js","../node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js","../node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js","../node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js","../node_modules/jsbarcode/bin/barcodes/MSI/checksums.js","../node_modules/jsbarcode/bin/barcodes/MSI/index.js","../node_modules/jsbarcode/bin/barcodes/codabar/index.js","../node_modules/jsbarcode/bin/barcodes/index.js","../node_modules/jsbarcode/bin/barcodes/pharmacode/index.js","../node_modules/jsbarcode/bin/exceptions/ErrorHandler.js","../node_modules/jsbarcode/bin/exceptions/exceptions.js","../node_modules/jsbarcode/bin/help/fixOptions.js","../node_modules/jsbarcode/bin/help/getOptionsFromElement.js","../node_modules/jsbarcode/bin/help/getRenderProperties.js","../node_modules/jsbarcode/bin/help/linearizeEncodings.js","../node_modules/jsbarcode/bin/help/merge.js","../node_modules/jsbarcode/bin/help/optionsFromStrings.js","../node_modules/jsbarcode/bin/options/defaults.js","../node_modules/jsbarcode/bin/renderers/canvas.js","../node_modules/jsbarcode/bin/renderers/index.js","../node_modules/jsbarcode/bin/renderers/object.js","../node_modules/jsbarcode/bin/renderers/shared.js","../node_modules/jsbarcode/bin/renderers/svg.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","../node_modules/jszip/dist/jszip.min.js","../node_modules/lop/index.js","../node_modules/lop/lib/StringSource.js","../node_modules/lop/lib/Token.js","../node_modules/lop/lib/TokenIterator.js","../node_modules/lop/lib/bottom-up.js","../node_modules/lop/lib/errors.js","../node_modules/lop/lib/lazy-iterators.js","../node_modules/lop/lib/parser.js","../node_modules/lop/lib/parsing-results.js","../node_modules/lop/lib/regex-tokeniser.js","../node_modules/lop/lib/rules.js","../node_modules/mammoth/browser/docx/files.js","../node_modules/mammoth/browser/unzip.js","../node_modules/mammoth/lib/document-to-html.js","../node_modules/mammoth/lib/documents.js","../node_modules/mammoth/lib/docx/body-reader.js","../node_modules/mammoth/lib/docx/comments-reader.js","../node_modules/mammoth/lib/docx/content-types-reader.js","../node_modules/mammoth/lib/docx/document-xml-reader.js","../node_modules/mammoth/lib/docx/docx-reader.js","../node_modules/mammoth/lib/docx/notes-reader.js","../node_modules/mammoth/lib/docx/numbering-xml.js","../node_modules/mammoth/lib/docx/office-xml-reader.js","../node_modules/mammoth/lib/docx/relationships-reader.js","../node_modules/mammoth/lib/docx/style-map.js","../node_modules/mammoth/lib/docx/styles-reader.js","../node_modules/mammoth/lib/docx/uris.js","../node_modules/mammoth/lib/html/ast.js","../node_modules/mammoth/lib/html/index.js","../node_modules/mammoth/lib/html/simplify.js","../node_modules/mammoth/lib/images.js","../node_modules/mammoth/lib/index.js","../node_modules/mammoth/lib/options-reader.js","../node_modules/mammoth/lib/promises.js","../node_modules/mammoth/lib/raw-text.js","../node_modules/mammoth/lib/results.js","../node_modules/mammoth/lib/style-reader.js","../node_modules/mammoth/lib/styles/document-matchers.js","../node_modules/mammoth/lib/styles/html-paths.js","../node_modules/mammoth/lib/styles/parser/tokeniser.js","../node_modules/mammoth/lib/transforms.js","../node_modules/mammoth/lib/underline.js","../node_modules/mammoth/lib/writers/html-writer.js","../node_modules/mammoth/lib/writers/index.js","../node_modules/mammoth/lib/writers/markdown-writer.js","../node_modules/mammoth/lib/xml/index.js","../node_modules/mammoth/lib/xml/nodes.js","../node_modules/mammoth/lib/xml/reader.js","../node_modules/mammoth/lib/xml/writer.js","../node_modules/mammoth/lib/xml/xmldom.js","../node_modules/mammoth/lib/zipfile.js","../node_modules/mammoth/node_modules/bluebird/js/release/any.js","../node_modules/mammoth/node_modules/bluebird/js/release/async.js","../node_modules/mammoth/node_modules/bluebird/js/release/bind.js","../node_modules/mammoth/node_modules/bluebird/js/release/call_get.js","../node_modules/mammoth/node_modules/bluebird/js/release/cancel.js","../node_modules/mammoth/node_modules/bluebird/js/release/catch_filter.js","../node_modules/mammoth/node_modules/bluebird/js/release/context.js","../node_modules/mammoth/node_modules/bluebird/js/release/debuggability.js","../node_modules/mammoth/node_modules/bluebird/js/release/direct_resolve.js","../node_modules/mammoth/node_modules/bluebird/js/release/each.js","../node_modules/mammoth/node_modules/bluebird/js/release/errors.js","../node_modules/mammoth/node_modules/bluebird/js/release/es5.js","../node_modules/mammoth/node_modules/bluebird/js/release/filter.js","../node_modules/mammoth/node_modules/bluebird/js/release/finally.js","../node_modules/mammoth/node_modules/bluebird/js/release/generators.js","../node_modules/mammoth/node_modules/bluebird/js/release/join.js","../node_modules/mammoth/node_modules/bluebird/js/release/map.js","../node_modules/mammoth/node_modules/bluebird/js/release/method.js","../node_modules/mammoth/node_modules/bluebird/js/release/nodeback.js","../node_modules/mammoth/node_modules/bluebird/js/release/nodeify.js","../node_modules/mammoth/node_modules/bluebird/js/release/promise.js","../node_modules/mammoth/node_modules/bluebird/js/release/promise_array.js","../node_modules/mammoth/node_modules/bluebird/js/release/promisify.js","../node_modules/mammoth/node_modules/bluebird/js/release/props.js","../node_modules/mammoth/node_modules/bluebird/js/release/queue.js","../node_modules/mammoth/node_modules/bluebird/js/release/race.js","../node_modules/mammoth/node_modules/bluebird/js/release/reduce.js","../node_modules/mammoth/node_modules/bluebird/js/release/schedule.js","../node_modules/mammoth/node_modules/bluebird/js/release/settle.js","../node_modules/mammoth/node_modules/bluebird/js/release/some.js","../node_modules/mammoth/node_modules/bluebird/js/release/synchronous_inspection.js","../node_modules/mammoth/node_modules/bluebird/js/release/thenables.js","../node_modules/mammoth/node_modules/bluebird/js/release/timers.js","../node_modules/mammoth/node_modules/bluebird/js/release/using.js","../node_modules/mammoth/node_modules/bluebird/js/release/util.js","../node_modules/object-assign/index.js","../node_modules/option/index.js","../node_modules/pako/index.js","../node_modules/pako/lib/deflate.js","../node_modules/pako/lib/inflate.js","../node_modules/pako/lib/utils/common.js","../node_modules/pako/lib/utils/strings.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/gzheader.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-barcode/lib/react-barcode.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-helmet/node_modules/react-side-effect/lib/index.js","../node_modules/react-router/node_modules/cookie/src/index.ts","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/showdown/src/options.js","../node_modules/showdown/src/showdown.js","../node_modules/showdown/src/helpers.js","../node_modules/showdown/src/converter.js","../node_modules/showdown/src/subParsers/anchors.js","../node_modules/showdown/src/subParsers/autoLinks.js","../node_modules/showdown/src/subParsers/blockGamut.js","../node_modules/showdown/src/subParsers/blockQuotes.js","../node_modules/showdown/src/subParsers/codeBlocks.js","../node_modules/showdown/src/subParsers/codeSpans.js","../node_modules/showdown/src/subParsers/completeHTMLDocument.js","../node_modules/showdown/src/subParsers/detab.js","../node_modules/showdown/src/subParsers/ellipsis.js","../node_modules/showdown/src/subParsers/emoji.js","../node_modules/showdown/src/subParsers/encodeAmpsAndAngles.js","../node_modules/showdown/src/subParsers/encodeBackslashEscapes.js","../node_modules/showdown/src/subParsers/encodeCode.js","../node_modules/showdown/src/subParsers/escapeSpecialCharsWithinTagAttributes.js","../node_modules/showdown/src/subParsers/githubCodeBlocks.js","../node_modules/showdown/src/subParsers/hashBlock.js","../node_modules/showdown/src/subParsers/hashCodeTags.js","../node_modules/showdown/src/subParsers/hashElement.js","../node_modules/showdown/src/subParsers/hashHTMLBlocks.js","../node_modules/showdown/src/subParsers/hashHTMLSpans.js","../node_modules/showdown/src/subParsers/hashPreCodeTags.js","../node_modules/showdown/src/subParsers/headers.js","../node_modules/showdown/src/subParsers/horizontalRule.js","../node_modules/showdown/src/subParsers/images.js","../node_modules/showdown/src/subParsers/italicsAndBold.js","../node_modules/showdown/src/subParsers/lists.js","../node_modules/showdown/src/subParsers/metadata.js","../node_modules/showdown/src/subParsers/outdent.js","../node_modules/showdown/src/subParsers/paragraphs.js","../node_modules/showdown/src/subParsers/runExtension.js","../node_modules/showdown/src/subParsers/spanGamut.js","../node_modules/showdown/src/subParsers/strikethrough.js","../node_modules/showdown/src/subParsers/stripLinkDefinitions.js","../node_modules/showdown/src/subParsers/tables.js","../node_modules/showdown/src/subParsers/underline.js","../node_modules/showdown/src/subParsers/unescapeSpecialChars.js","../node_modules/showdown/src/subParsers/makeMarkdown/blockquote.js","../node_modules/showdown/src/subParsers/makeMarkdown/codeBlock.js","../node_modules/showdown/src/subParsers/makeMarkdown/codeSpan.js","../node_modules/showdown/src/subParsers/makeMarkdown/emphasis.js","../node_modules/showdown/src/subParsers/makeMarkdown/header.js","../node_modules/showdown/src/subParsers/makeMarkdown/hr.js","../node_modules/showdown/src/subParsers/makeMarkdown/image.js","../node_modules/showdown/src/subParsers/makeMarkdown/links.js","../node_modules/showdown/src/subParsers/makeMarkdown/list.js","../node_modules/showdown/src/subParsers/makeMarkdown/listItem.js","../node_modules/showdown/src/subParsers/makeMarkdown/node.js","../node_modules/showdown/src/subParsers/makeMarkdown/paragraph.js","../node_modules/showdown/src/subParsers/makeMarkdown/pre.js","../node_modules/showdown/src/subParsers/makeMarkdown/strikethrough.js","../node_modules/showdown/src/subParsers/makeMarkdown/strong.js","../node_modules/showdown/src/subParsers/makeMarkdown/table.js","../node_modules/showdown/src/subParsers/makeMarkdown/tableCell.js","../node_modules/showdown/src/subParsers/makeMarkdown/txt.js","../node_modules/showdown/src/loader.js","../node_modules/xmlbuilder/lib/Utility.js","../node_modules/xmlbuilder/lib/XMLAttribute.js","../node_modules/xmlbuilder/lib/XMLCData.js","../node_modules/xmlbuilder/lib/XMLComment.js","../node_modules/xmlbuilder/lib/XMLDTDAttList.js","../node_modules/xmlbuilder/lib/XMLDTDElement.js","../node_modules/xmlbuilder/lib/XMLDTDEntity.js","../node_modules/xmlbuilder/lib/XMLDTDNotation.js","../node_modules/xmlbuilder/lib/XMLDeclaration.js","../node_modules/xmlbuilder/lib/XMLDocType.js","../node_modules/xmlbuilder/lib/XMLDocument.js","../node_modules/xmlbuilder/lib/XMLDocumentCB.js","../node_modules/xmlbuilder/lib/XMLDummy.js","../node_modules/xmlbuilder/lib/XMLElement.js","../node_modules/xmlbuilder/lib/XMLNode.js","../node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","../node_modules/xmlbuilder/lib/XMLRaw.js","../node_modules/xmlbuilder/lib/XMLStreamWriter.js","../node_modules/xmlbuilder/lib/XMLStringWriter.js","../node_modules/xmlbuilder/lib/XMLStringifier.js","../node_modules/xmlbuilder/lib/XMLText.js","../node_modules/xmlbuilder/lib/XMLWriterBase.js","../node_modules/xmlbuilder/lib/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/lop/node_modules/underscore/modules/_setup.js","../node_modules/lop/node_modules/underscore/modules/restArguments.js","../node_modules/lop/node_modules/underscore/modules/isObject.js","../node_modules/lop/node_modules/underscore/modules/isNull.js","../node_modules/lop/node_modules/underscore/modules/isUndefined.js","../node_modules/lop/node_modules/underscore/modules/isBoolean.js","../node_modules/lop/node_modules/underscore/modules/isElement.js","../node_modules/lop/node_modules/underscore/modules/_tagTester.js","../node_modules/lop/node_modules/underscore/modules/isString.js","../node_modules/lop/node_modules/underscore/modules/isNumber.js","../node_modules/lop/node_modules/underscore/modules/isDate.js","../node_modules/lop/node_modules/underscore/modules/isRegExp.js","../node_modules/lop/node_modules/underscore/modules/isError.js","../node_modules/lop/node_modules/underscore/modules/isSymbol.js","../node_modules/lop/node_modules/underscore/modules/isArrayBuffer.js","../node_modules/lop/node_modules/underscore/modules/isFunction.js","../node_modules/lop/node_modules/underscore/modules/_hasObjectTag.js","../node_modules/lop/node_modules/underscore/modules/_stringTagBug.js","../node_modules/lop/node_modules/underscore/modules/isDataView.js","../node_modules/lop/node_modules/underscore/modules/isArray.js","../node_modules/lop/node_modules/underscore/modules/_has.js","../node_modules/lop/node_modules/underscore/modules/isArguments.js","../node_modules/lop/node_modules/underscore/modules/isFinite.js","../node_modules/lop/node_modules/underscore/modules/isNaN.js","../node_modules/lop/node_modules/underscore/modules/constant.js","../node_modules/lop/node_modules/underscore/modules/_createSizePropertyCheck.js","../node_modules/lop/node_modules/underscore/modules/_shallowProperty.js","../node_modules/lop/node_modules/underscore/modules/_getByteLength.js","../node_modules/lop/node_modules/underscore/modules/_isBufferLike.js","../node_modules/lop/node_modules/underscore/modules/isTypedArray.js","../node_modules/lop/node_modules/underscore/modules/_getLength.js","../node_modules/lop/node_modules/underscore/modules/_collectNonEnumProps.js","../node_modules/lop/node_modules/underscore/modules/keys.js","../node_modules/lop/node_modules/underscore/modules/isEmpty.js","../node_modules/lop/node_modules/underscore/modules/isMatch.js","../node_modules/lop/node_modules/underscore/modules/underscore.js","../node_modules/lop/node_modules/underscore/modules/_toBufferView.js","../node_modules/lop/node_modules/underscore/modules/isEqual.js","../node_modules/lop/node_modules/underscore/modules/allKeys.js","../node_modules/lop/node_modules/underscore/modules/_methodFingerprint.js","../node_modules/lop/node_modules/underscore/modules/isMap.js","../node_modules/lop/node_modules/underscore/modules/isWeakMap.js","../node_modules/lop/node_modules/underscore/modules/isSet.js","../node_modules/lop/node_modules/underscore/modules/isWeakSet.js","../node_modules/lop/node_modules/underscore/modules/values.js","../node_modules/lop/node_modules/underscore/modules/pairs.js","../node_modules/lop/node_modules/underscore/modules/invert.js","../node_modules/lop/node_modules/underscore/modules/functions.js","../node_modules/lop/node_modules/underscore/modules/_createAssigner.js","../node_modules/lop/node_modules/underscore/modules/extend.js","../node_modules/lop/node_modules/underscore/modules/extendOwn.js","../node_modules/lop/node_modules/underscore/modules/defaults.js","../node_modules/lop/node_modules/underscore/modules/_baseCreate.js","../node_modules/lop/node_modules/underscore/modules/create.js","../node_modules/lop/node_modules/underscore/modules/clone.js","../node_modules/lop/node_modules/underscore/modules/tap.js","../node_modules/lop/node_modules/underscore/modules/toPath.js","../node_modules/lop/node_modules/underscore/modules/_toPath.js","../node_modules/lop/node_modules/underscore/modules/_deepGet.js","../node_modules/lop/node_modules/underscore/modules/get.js","../node_modules/lop/node_modules/underscore/modules/has.js","../node_modules/lop/node_modules/underscore/modules/identity.js","../node_modules/lop/node_modules/underscore/modules/matcher.js","../node_modules/lop/node_modules/underscore/modules/property.js","../node_modules/lop/node_modules/underscore/modules/_optimizeCb.js","../node_modules/lop/node_modules/underscore/modules/_baseIteratee.js","../node_modules/lop/node_modules/underscore/modules/iteratee.js","../node_modules/lop/node_modules/underscore/modules/_cb.js","../node_modules/lop/node_modules/underscore/modules/mapObject.js","../node_modules/lop/node_modules/underscore/modules/noop.js","../node_modules/lop/node_modules/underscore/modules/propertyOf.js","../node_modules/lop/node_modules/underscore/modules/times.js","../node_modules/lop/node_modules/underscore/modules/random.js","../node_modules/lop/node_modules/underscore/modules/now.js","../node_modules/lop/node_modules/underscore/modules/_createEscaper.js","../node_modules/lop/node_modules/underscore/modules/_escapeMap.js","../node_modules/lop/node_modules/underscore/modules/escape.js","../node_modules/lop/node_modules/underscore/modules/unescape.js","../node_modules/lop/node_modules/underscore/modules/_unescapeMap.js","../node_modules/lop/node_modules/underscore/modules/templateSettings.js","../node_modules/lop/node_modules/underscore/modules/template.js","../node_modules/lop/node_modules/underscore/modules/result.js","../node_modules/lop/node_modules/underscore/modules/uniqueId.js","../node_modules/lop/node_modules/underscore/modules/chain.js","../node_modules/lop/node_modules/underscore/modules/_executeBound.js","../node_modules/lop/node_modules/underscore/modules/partial.js","../node_modules/lop/node_modules/underscore/modules/bind.js","../node_modules/lop/node_modules/underscore/modules/_isArrayLike.js","../node_modules/lop/node_modules/underscore/modules/_flatten.js","../node_modules/lop/node_modules/underscore/modules/bindAll.js","../node_modules/lop/node_modules/underscore/modules/memoize.js","../node_modules/lop/node_modules/underscore/modules/delay.js","../node_modules/lop/node_modules/underscore/modules/defer.js","../node_modules/lop/node_modules/underscore/modules/throttle.js","../node_modules/lop/node_modules/underscore/modules/debounce.js","../node_modules/lop/node_modules/underscore/modules/wrap.js","../node_modules/lop/node_modules/underscore/modules/negate.js","../node_modules/lop/node_modules/underscore/modules/compose.js","../node_modules/lop/node_modules/underscore/modules/after.js","../node_modules/lop/node_modules/underscore/modules/before.js","../node_modules/lop/node_modules/underscore/modules/once.js","../node_modules/lop/node_modules/underscore/modules/findKey.js","../node_modules/lop/node_modules/underscore/modules/_createPredicateIndexFinder.js","../node_modules/lop/node_modules/underscore/modules/findIndex.js","../node_modules/lop/node_modules/underscore/modules/findLastIndex.js","../node_modules/lop/node_modules/underscore/modules/sortedIndex.js","../node_modules/lop/node_modules/underscore/modules/_createIndexFinder.js","../node_modules/lop/node_modules/underscore/modules/indexOf.js","../node_modules/lop/node_modules/underscore/modules/lastIndexOf.js","../node_modules/lop/node_modules/underscore/modules/find.js","../node_modules/lop/node_modules/underscore/modules/findWhere.js","../node_modules/lop/node_modules/underscore/modules/each.js","../node_modules/lop/node_modules/underscore/modules/map.js","../node_modules/lop/node_modules/underscore/modules/_createReduce.js","../node_modules/lop/node_modules/underscore/modules/reduce.js","../node_modules/lop/node_modules/underscore/modules/reduceRight.js","../node_modules/lop/node_modules/underscore/modules/filter.js","../node_modules/lop/node_modules/underscore/modules/reject.js","../node_modules/lop/node_modules/underscore/modules/every.js","../node_modules/lop/node_modules/underscore/modules/some.js","../node_modules/lop/node_modules/underscore/modules/contains.js","../node_modules/lop/node_modules/underscore/modules/invoke.js","../node_modules/lop/node_modules/underscore/modules/pluck.js","../node_modules/lop/node_modules/underscore/modules/where.js","../node_modules/lop/node_modules/underscore/modules/max.js","../node_modules/lop/node_modules/underscore/modules/min.js","../node_modules/lop/node_modules/underscore/modules/toArray.js","../node_modules/lop/node_modules/underscore/modules/sample.js","../node_modules/lop/node_modules/underscore/modules/shuffle.js","../node_modules/lop/node_modules/underscore/modules/sortBy.js","../node_modules/lop/node_modules/underscore/modules/_group.js","../node_modules/lop/node_modules/underscore/modules/groupBy.js","../node_modules/lop/node_modules/underscore/modules/indexBy.js","../node_modules/lop/node_modules/underscore/modules/countBy.js","../node_modules/lop/node_modules/underscore/modules/partition.js","../node_modules/lop/node_modules/underscore/modules/size.js","../node_modules/lop/node_modules/underscore/modules/_keyInObj.js","../node_modules/lop/node_modules/underscore/modules/pick.js","../node_modules/lop/node_modules/underscore/modules/omit.js","../node_modules/lop/node_modules/underscore/modules/initial.js","../node_modules/lop/node_modules/underscore/modules/first.js","../node_modules/lop/node_modules/underscore/modules/rest.js","../node_modules/lop/node_modules/underscore/modules/last.js","../node_modules/lop/node_modules/underscore/modules/compact.js","../node_modules/lop/node_modules/underscore/modules/flatten.js","../node_modules/lop/node_modules/underscore/modules/difference.js","../node_modules/lop/node_modules/underscore/modules/without.js","../node_modules/lop/node_modules/underscore/modules/uniq.js","../node_modules/lop/node_modules/underscore/modules/union.js","../node_modules/lop/node_modules/underscore/modules/intersection.js","../node_modules/lop/node_modules/underscore/modules/unzip.js","../node_modules/lop/node_modules/underscore/modules/zip.js","../node_modules/lop/node_modules/underscore/modules/object.js","../node_modules/lop/node_modules/underscore/modules/range.js","../node_modules/lop/node_modules/underscore/modules/chunk.js","../node_modules/lop/node_modules/underscore/modules/_chainResult.js","../node_modules/lop/node_modules/underscore/modules/mixin.js","../node_modules/lop/node_modules/underscore/modules/underscore-array-methods.js","../node_modules/lop/node_modules/underscore/modules/index-default.js","../node_modules/mammoth/node_modules/underscore/modules/_setup.js","../node_modules/mammoth/node_modules/underscore/modules/restArguments.js","../node_modules/mammoth/node_modules/underscore/modules/isObject.js","../node_modules/mammoth/node_modules/underscore/modules/isNull.js","../node_modules/mammoth/node_modules/underscore/modules/isUndefined.js","../node_modules/mammoth/node_modules/underscore/modules/isBoolean.js","../node_modules/mammoth/node_modules/underscore/modules/isElement.js","../node_modules/mammoth/node_modules/underscore/modules/_tagTester.js","../node_modules/mammoth/node_modules/underscore/modules/isString.js","../node_modules/mammoth/node_modules/underscore/modules/isNumber.js","../node_modules/mammoth/node_modules/underscore/modules/isDate.js","../node_modules/mammoth/node_modules/underscore/modules/isRegExp.js","../node_modules/mammoth/node_modules/underscore/modules/isError.js","../node_modules/mammoth/node_modules/underscore/modules/isSymbol.js","../node_modules/mammoth/node_modules/underscore/modules/isArrayBuffer.js","../node_modules/mammoth/node_modules/underscore/modules/isFunction.js","../node_modules/mammoth/node_modules/underscore/modules/_hasObjectTag.js","../node_modules/mammoth/node_modules/underscore/modules/_stringTagBug.js","../node_modules/mammoth/node_modules/underscore/modules/isDataView.js","../node_modules/mammoth/node_modules/underscore/modules/isArray.js","../node_modules/mammoth/node_modules/underscore/modules/_has.js","../node_modules/mammoth/node_modules/underscore/modules/isArguments.js","../node_modules/mammoth/node_modules/underscore/modules/isFinite.js","../node_modules/mammoth/node_modules/underscore/modules/isNaN.js","../node_modules/mammoth/node_modules/underscore/modules/constant.js","../node_modules/mammoth/node_modules/underscore/modules/_createSizePropertyCheck.js","../node_modules/mammoth/node_modules/underscore/modules/_shallowProperty.js","../node_modules/mammoth/node_modules/underscore/modules/_getByteLength.js","../node_modules/mammoth/node_modules/underscore/modules/_isBufferLike.js","../node_modules/mammoth/node_modules/underscore/modules/isTypedArray.js","../node_modules/mammoth/node_modules/underscore/modules/_getLength.js","../node_modules/mammoth/node_modules/underscore/modules/_collectNonEnumProps.js","../node_modules/mammoth/node_modules/underscore/modules/keys.js","../node_modules/mammoth/node_modules/underscore/modules/isEmpty.js","../node_modules/mammoth/node_modules/underscore/modules/isMatch.js","../node_modules/mammoth/node_modules/underscore/modules/underscore.js","../node_modules/mammoth/node_modules/underscore/modules/_toBufferView.js","../node_modules/mammoth/node_modules/underscore/modules/isEqual.js","../node_modules/mammoth/node_modules/underscore/modules/allKeys.js","../node_modules/mammoth/node_modules/underscore/modules/_methodFingerprint.js","../node_modules/mammoth/node_modules/underscore/modules/isMap.js","../node_modules/mammoth/node_modules/underscore/modules/isWeakMap.js","../node_modules/mammoth/node_modules/underscore/modules/isSet.js","../node_modules/mammoth/node_modules/underscore/modules/isWeakSet.js","../node_modules/mammoth/node_modules/underscore/modules/values.js","../node_modules/mammoth/node_modules/underscore/modules/pairs.js","../node_modules/mammoth/node_modules/underscore/modules/invert.js","../node_modules/mammoth/node_modules/underscore/modules/functions.js","../node_modules/mammoth/node_modules/underscore/modules/_createAssigner.js","../node_modules/mammoth/node_modules/underscore/modules/extend.js","../node_modules/mammoth/node_modules/underscore/modules/extendOwn.js","../node_modules/mammoth/node_modules/underscore/modules/defaults.js","../node_modules/mammoth/node_modules/underscore/modules/_baseCreate.js","../node_modules/mammoth/node_modules/underscore/modules/create.js","../node_modules/mammoth/node_modules/underscore/modules/clone.js","../node_modules/mammoth/node_modules/underscore/modules/tap.js","../node_modules/mammoth/node_modules/underscore/modules/toPath.js","../node_modules/mammoth/node_modules/underscore/modules/_toPath.js","../node_modules/mammoth/node_modules/underscore/modules/_deepGet.js","../node_modules/mammoth/node_modules/underscore/modules/get.js","../node_modules/mammoth/node_modules/underscore/modules/has.js","../node_modules/mammoth/node_modules/underscore/modules/identity.js","../node_modules/mammoth/node_modules/underscore/modules/matcher.js","../node_modules/mammoth/node_modules/underscore/modules/property.js","../node_modules/mammoth/node_modules/underscore/modules/_optimizeCb.js","../node_modules/mammoth/node_modules/underscore/modules/_baseIteratee.js","../node_modules/mammoth/node_modules/underscore/modules/iteratee.js","../node_modules/mammoth/node_modules/underscore/modules/_cb.js","../node_modules/mammoth/node_modules/underscore/modules/mapObject.js","../node_modules/mammoth/node_modules/underscore/modules/noop.js","../node_modules/mammoth/node_modules/underscore/modules/propertyOf.js","../node_modules/mammoth/node_modules/underscore/modules/times.js","../node_modules/mammoth/node_modules/underscore/modules/random.js","../node_modules/mammoth/node_modules/underscore/modules/now.js","../node_modules/mammoth/node_modules/underscore/modules/_createEscaper.js","../node_modules/mammoth/node_modules/underscore/modules/_escapeMap.js","../node_modules/mammoth/node_modules/underscore/modules/escape.js","../node_modules/mammoth/node_modules/underscore/modules/unescape.js","../node_modules/mammoth/node_modules/underscore/modules/_unescapeMap.js","../node_modules/mammoth/node_modules/underscore/modules/templateSettings.js","../node_modules/mammoth/node_modules/underscore/modules/template.js","../node_modules/mammoth/node_modules/underscore/modules/result.js","../node_modules/mammoth/node_modules/underscore/modules/uniqueId.js","../node_modules/mammoth/node_modules/underscore/modules/chain.js","../node_modules/mammoth/node_modules/underscore/modules/_executeBound.js","../node_modules/mammoth/node_modules/underscore/modules/partial.js","../node_modules/mammoth/node_modules/underscore/modules/bind.js","../node_modules/mammoth/node_modules/underscore/modules/_isArrayLike.js","../node_modules/mammoth/node_modules/underscore/modules/_flatten.js","../node_modules/mammoth/node_modules/underscore/modules/bindAll.js","../node_modules/mammoth/node_modules/underscore/modules/memoize.js","../node_modules/mammoth/node_modules/underscore/modules/delay.js","../node_modules/mammoth/node_modules/underscore/modules/defer.js","../node_modules/mammoth/node_modules/underscore/modules/throttle.js","../node_modules/mammoth/node_modules/underscore/modules/debounce.js","../node_modules/mammoth/node_modules/underscore/modules/wrap.js","../node_modules/mammoth/node_modules/underscore/modules/negate.js","../node_modules/mammoth/node_modules/underscore/modules/compose.js","../node_modules/mammoth/node_modules/underscore/modules/after.js","../node_modules/mammoth/node_modules/underscore/modules/before.js","../node_modules/mammoth/node_modules/underscore/modules/once.js","../node_modules/mammoth/node_modules/underscore/modules/findKey.js","../node_modules/mammoth/node_modules/underscore/modules/_createPredicateIndexFinder.js","../node_modules/mammoth/node_modules/underscore/modules/findIndex.js","../node_modules/mammoth/node_modules/underscore/modules/findLastIndex.js","../node_modules/mammoth/node_modules/underscore/modules/sortedIndex.js","../node_modules/mammoth/node_modules/underscore/modules/_createIndexFinder.js","../node_modules/mammoth/node_modules/underscore/modules/indexOf.js","../node_modules/mammoth/node_modules/underscore/modules/lastIndexOf.js","../node_modules/mammoth/node_modules/underscore/modules/find.js","../node_modules/mammoth/node_modules/underscore/modules/findWhere.js","../node_modules/mammoth/node_modules/underscore/modules/each.js","../node_modules/mammoth/node_modules/underscore/modules/map.js","../node_modules/mammoth/node_modules/underscore/modules/_createReduce.js","../node_modules/mammoth/node_modules/underscore/modules/reduce.js","../node_modules/mammoth/node_modules/underscore/modules/reduceRight.js","../node_modules/mammoth/node_modules/underscore/modules/filter.js","../node_modules/mammoth/node_modules/underscore/modules/reject.js","../node_modules/mammoth/node_modules/underscore/modules/every.js","../node_modules/mammoth/node_modules/underscore/modules/some.js","../node_modules/mammoth/node_modules/underscore/modules/contains.js","../node_modules/mammoth/node_modules/underscore/modules/invoke.js","../node_modules/mammoth/node_modules/underscore/modules/pluck.js","../node_modules/mammoth/node_modules/underscore/modules/where.js","../node_modules/mammoth/node_modules/underscore/modules/max.js","../node_modules/mammoth/node_modules/underscore/modules/min.js","../node_modules/mammoth/node_modules/underscore/modules/toArray.js","../node_modules/mammoth/node_modules/underscore/modules/sample.js","../node_modules/mammoth/node_modules/underscore/modules/shuffle.js","../node_modules/mammoth/node_modules/underscore/modules/sortBy.js","../node_modules/mammoth/node_modules/underscore/modules/_group.js","../node_modules/mammoth/node_modules/underscore/modules/groupBy.js","../node_modules/mammoth/node_modules/underscore/modules/indexBy.js","../node_modules/mammoth/node_modules/underscore/modules/countBy.js","../node_modules/mammoth/node_modules/underscore/modules/partition.js","../node_modules/mammoth/node_modules/underscore/modules/size.js","../node_modules/mammoth/node_modules/underscore/modules/_keyInObj.js","../node_modules/mammoth/node_modules/underscore/modules/pick.js","../node_modules/mammoth/node_modules/underscore/modules/omit.js","../node_modules/mammoth/node_modules/underscore/modules/initial.js","../node_modules/mammoth/node_modules/underscore/modules/first.js","../node_modules/mammoth/node_modules/underscore/modules/rest.js","../node_modules/mammoth/node_modules/underscore/modules/last.js","../node_modules/mammoth/node_modules/underscore/modules/compact.js","../node_modules/mammoth/node_modules/underscore/modules/flatten.js","../node_modules/mammoth/node_modules/underscore/modules/difference.js","../node_modules/mammoth/node_modules/underscore/modules/without.js","../node_modules/mammoth/node_modules/underscore/modules/uniq.js","../node_modules/mammoth/node_modules/underscore/modules/union.js","../node_modules/mammoth/node_modules/underscore/modules/intersection.js","../node_modules/mammoth/node_modules/underscore/modules/unzip.js","../node_modules/mammoth/node_modules/underscore/modules/zip.js","../node_modules/mammoth/node_modules/underscore/modules/object.js","../node_modules/mammoth/node_modules/underscore/modules/range.js","../node_modules/mammoth/node_modules/underscore/modules/chunk.js","../node_modules/mammoth/node_modules/underscore/modules/_chainResult.js","../node_modules/mammoth/node_modules/underscore/modules/mixin.js","../node_modules/mammoth/node_modules/underscore/modules/underscore-array-methods.js","../node_modules/mammoth/node_modules/underscore/modules/index-default.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/react-router/dist/development/chunk-IR6S3I6Y.mjs","Component/Navbar.js","../node_modules/react-helmet/es/Helmet.js","Component/Tools.js","Component/Conversion.js","Component/HeroSection.js","Component/Hero.js","Component/Footer.js","Component/ImageUpscaler.js","Component/PngToJpg.js","Component/ImageCompressor.js","Component/JpgtoPng.js","Component/WordToPdfConverter.js","Component/About.js","Component/PrivacyPolicy.js","Component/NotFound.js","Component/Contact.js","Component/JfifToPngConverter.js","Component/AllTools.js","../node_modules/react-image-crop/dist/index.js","Component/ImageCropperResizer.js","Component/SvgtoImage.js","Component/ImageFiltersEffects.js","Component/ImageWatermarker.js","Component/Loading.js","../node_modules/xlsx/xlsx.mjs","Component/ExcelCsvConverter.js","../node_modules/turndown/lib/turndown.browser.es.js","Component/HtmlMarkdownConverter.js","../node_modules/pdf-lib/node_modules/tslib/tslib.es6.js","../node_modules/pdf-lib/src/utils/base64.ts","../node_modules/pdf-lib/src/utils/unicode.ts","../node_modules/pdf-lib/src/utils/strings.ts","../node_modules/pdf-lib/src/utils/arrays.ts","../node_modules/pdf-lib/src/utils/async.ts","../node_modules/@pdf-lib/standard-fonts/es/utils.js","../node_modules/pdf-lib/src/utils/numbers.ts","../node_modules/pdf-lib/src/utils/errors.ts","../node_modules/@pdf-lib/standard-fonts/es/Font.js","../node_modules/pdf-lib/src/utils/pdfDocEncoding.ts","../node_modules/@pdf-lib/standard-fonts/es/Encoding.js","../node_modules/pdf-lib/src/utils/objects.ts","../node_modules/pdf-lib/src/utils/validators.ts","../node_modules/pdf-lib/src/utils/Cache.ts","../node_modules/pdf-lib/src/core/errors.ts","../node_modules/pdf-lib/src/core/syntax/CharCodes.ts","../node_modules/pdf-lib/src/core/document/PDFHeader.ts","../node_modules/pdf-lib/src/core/objects/PDFObject.ts","../node_modules/pdf-lib/src/core/objects/PDFNumber.ts","../node_modules/pdf-lib/src/core/objects/PDFArray.ts","../node_modules/pdf-lib/src/core/objects/PDFBool.ts","../node_modules/pdf-lib/src/core/syntax/Delimiters.ts","../node_modules/pdf-lib/src/core/syntax/Whitespace.ts","../node_modules/pdf-lib/src/core/syntax/Irregular.ts","../node_modules/pdf-lib/src/core/objects/PDFName.ts","../node_modules/pdf-lib/src/core/objects/PDFNull.ts","../node_modules/pdf-lib/src/core/objects/PDFDict.ts","../node_modules/pdf-lib/src/core/objects/PDFStream.ts","../node_modules/pdf-lib/src/core/objects/PDFRawStream.ts","../node_modules/pdf-lib/src/core/objects/PDFRef.ts","../node_modules/pdf-lib/src/core/operators/PDFOperator.ts","../node_modules/pdf-lib/src/core/operators/PDFOperatorNames.ts","../node_modules/pdf-lib/src/core/structures/PDFFlateStream.ts","../node_modules/pdf-lib/src/core/structures/PDFContentStream.ts","../node_modules/pdf-lib/src/utils/rng.ts","../node_modules/pdf-lib/src/core/PDFContext.ts","../node_modules/pdf-lib/src/core/structures/PDFPageLeaf.ts","../node_modules/pdf-lib/src/core/PDFObjectCopier.ts","../node_modules/pdf-lib/src/core/document/PDFCrossRefSection.ts","../node_modules/pdf-lib/src/core/document/PDFTrailer.ts","../node_modules/pdf-lib/src/core/document/PDFTrailerDict.ts","../node_modules/pdf-lib/src/core/structures/PDFObjectStream.ts","../node_modules/pdf-lib/src/core/writers/PDFWriter.ts","../node_modules/pdf-lib/src/core/objects/PDFInvalidObject.ts","../node_modules/pdf-lib/src/core/structures/PDFCrossRefStream.ts","../node_modules/pdf-lib/src/core/writers/PDFStreamWriter.ts","../node_modules/pdf-lib/src/core/objects/PDFHexString.ts","../node_modules/pdf-lib/src/core/embedders/StandardFontEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/CMap.ts","../node_modules/pdf-lib/src/core/embedders/FontFlags.ts","../node_modules/pdf-lib/src/core/objects/PDFString.ts","../node_modules/pdf-lib/src/core/embedders/CustomFontEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/CustomFontSubsetEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/FileEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/JpegEmbedder.ts","../node_modules/@pdf-lib/upng/UPNG.js","../node_modules/pdf-lib/src/utils/png.ts","../node_modules/pdf-lib/src/core/embedders/PngEmbedder.ts","../node_modules/pdf-lib/src/core/streams/Stream.ts","../node_modules/pdf-lib/src/core/streams/DecodeStream.ts","../node_modules/pdf-lib/src/core/streams/Ascii85Stream.ts","../node_modules/pdf-lib/src/core/streams/AsciiHexStream.ts","../node_modules/pdf-lib/src/core/streams/FlateStream.ts","../node_modules/pdf-lib/src/core/streams/LZWStream.ts","../node_modules/pdf-lib/src/core/streams/RunLengthStream.ts","../node_modules/pdf-lib/src/core/streams/decode.ts","../node_modules/pdf-lib/src/core/embedders/PDFPageEmbedder.ts","../node_modules/pdf-lib/src/core/interactive/ViewerPreferences.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroField.ts","../node_modules/pdf-lib/src/core/annotation/BorderStyle.ts","../node_modules/pdf-lib/src/core/annotation/PDFAnnotation.ts","../node_modules/pdf-lib/src/core/annotation/AppearanceCharacteristics.ts","../node_modules/pdf-lib/src/core/annotation/PDFWidgetAnnotation.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroTerminal.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroCheckBox.ts","../node_modules/pdf-lib/src/core/acroform/flags.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroChoice.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroComboBox.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroNonTerminal.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroSignature.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroText.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroPushButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroRadioButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroListBox.ts","../node_modules/pdf-lib/src/core/acroform/utils.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroForm.ts","../node_modules/pdf-lib/src/core/structures/PDFCatalog.ts","../node_modules/pdf-lib/src/core/structures/PDFPageTree.ts","../node_modules/pdf-lib/src/core/syntax/Numeric.ts","../node_modules/pdf-lib/src/core/parser/BaseParser.ts","../node_modules/pdf-lib/src/core/parser/ByteStream.ts","../node_modules/pdf-lib/src/core/syntax/Keywords.ts","../node_modules/pdf-lib/src/core/parser/PDFObjectParser.ts","../node_modules/pdf-lib/src/core/parser/PDFObjectStreamParser.ts","../node_modules/pdf-lib/src/core/parser/PDFXRefStreamParser.ts","../node_modules/pdf-lib/src/core/parser/PDFParser.ts","../node_modules/pdf-lib/src/core/annotation/flags.ts","../node_modules/pdf-lib/src/api/objects.ts","../node_modules/pdf-lib/src/api/rotations.ts","../node_modules/pdf-lib/src/api/operators.ts","../node_modules/pdf-lib/src/api/colors.ts","../node_modules/pdf-lib/src/api/text/alignment.ts","../node_modules/pdf-lib/src/api/svgPath.ts","../node_modules/pdf-lib/src/api/operations.ts","../node_modules/pdf-lib/src/api/errors.ts","../node_modules/pdf-lib/src/api/text/layout.ts","../node_modules/pdf-lib/src/api/form/appearances.ts","../node_modules/pdf-lib/src/api/PDFEmbeddedPage.ts","../node_modules/pdf-lib/src/api/PDFFont.ts","../node_modules/pdf-lib/src/api/PDFImage.ts","../node_modules/pdf-lib/src/api/image/alignment.ts","../node_modules/pdf-lib/src/api/form/PDFField.ts","../node_modules/pdf-lib/src/api/form/PDFCheckBox.ts","../node_modules/pdf-lib/src/api/form/PDFDropdown.ts","../node_modules/pdf-lib/src/api/form/PDFOptionList.ts","../node_modules/pdf-lib/src/api/form/PDFRadioGroup.ts","../node_modules/pdf-lib/src/api/form/PDFSignature.ts","../node_modules/pdf-lib/src/api/form/PDFTextField.ts","../node_modules/pdf-lib/src/api/StandardFonts.ts","../node_modules/pdf-lib/src/api/form/PDFForm.ts","../node_modules/pdf-lib/src/api/PDFDocumentOptions.ts","../node_modules/pdf-lib/src/api/sizes.ts","../node_modules/pdf-lib/src/api/PDFEmbeddedFile.ts","../node_modules/pdf-lib/src/api/PDFJavaScript.ts","../node_modules/pdf-lib/src/core/embedders/JavaScriptEmbedder.ts","../node_modules/pdf-lib/src/api/PDFDocument.ts","../node_modules/pdf-lib/src/api/PDFPageOptions.ts","../node_modules/pdf-lib/src/api/PDFPage.ts","../node_modules/pdf-lib/src/api/form/PDFButton.ts","Component/PdfMergerSplitter.js","Component/EncoderDecoder.js","Component/CodeBeautifierMinifier.js","../node_modules/qrcode.react/lib/esm/index.js","Component/QrCodeBarcodeGenerator.js","Component/PasswordGenerator.js","Component/HtmlCssLiveEditor.js","Component/PdfWatermarker.js","Component/ImageMemeGenerator.js","../node_modules/ts-custom-error/dist/src/utils.js","../node_modules/ts-custom-error/dist/src/custom-error.js","../node_modules/@zxing/library/esm/core/Exception.js","../node_modules/@zxing/library/esm/core/ArgumentException.js","../node_modules/@zxing/library/esm/core/IllegalArgumentException.js","../node_modules/@zxing/library/esm/core/BinaryBitmap.js","../node_modules/@zxing/library/esm/core/ChecksumException.js","../node_modules/@zxing/library/esm/core/Binarizer.js","../node_modules/@zxing/library/esm/core/util/System.js","../node_modules/@zxing/library/esm/core/IndexOutOfBoundsException.js","../node_modules/@zxing/library/esm/core/ArrayIndexOutOfBoundsException.js","../node_modules/@zxing/library/esm/core/util/Arrays.js","../node_modules/@zxing/library/esm/core/util/Integer.js","../node_modules/@zxing/library/esm/core/common/BitArray.js","../node_modules/@zxing/library/esm/core/DecodeHintType.js","../node_modules/@zxing/library/esm/core/FormatException.js","../node_modules/@zxing/library/esm/core/common/CharacterSetECI.js","../node_modules/@zxing/library/esm/core/UnsupportedOperationException.js","../node_modules/@zxing/library/esm/core/util/StringEncoding.js","../node_modules/@zxing/library/esm/core/common/StringUtils.js","../node_modules/@zxing/library/esm/core/util/StringBuilder.js","../node_modules/@zxing/library/esm/core/common/BitMatrix.js","../node_modules/@zxing/library/esm/core/NotFoundException.js","../node_modules/@zxing/library/esm/core/common/GlobalHistogramBinarizer.js","../node_modules/@zxing/library/esm/core/common/HybridBinarizer.js","../node_modules/@zxing/library/esm/core/LuminanceSource.js","../node_modules/@zxing/library/esm/core/InvertedLuminanceSource.js","../node_modules/@zxing/library/esm/browser/HTMLCanvasElementLuminanceSource.js","../node_modules/@zxing/library/esm/browser/VideoInputDevice.js","../node_modules/@zxing/library/esm/browser/BrowserCodeReader.js","../node_modules/@zxing/library/esm/core/Result.js","../node_modules/@zxing/library/esm/core/BarcodeFormat.js","../node_modules/@zxing/library/esm/core/ResultMetadataType.js","../node_modules/@zxing/library/esm/core/common/DecoderResult.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/AbstractGenericGF.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/GenericGFPoly.js","../node_modules/@zxing/library/esm/core/ArithmeticException.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/GenericGF.js","../node_modules/@zxing/library/esm/core/ReedSolomonException.js","../node_modules/@zxing/library/esm/core/IllegalStateException.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/ReedSolomonDecoder.js","../node_modules/@zxing/library/esm/core/aztec/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/common/detector/MathUtils.js","../node_modules/@zxing/library/esm/core/util/Float.js","../node_modules/@zxing/library/esm/core/ResultPoint.js","../node_modules/@zxing/library/esm/core/common/DetectorResult.js","../node_modules/@zxing/library/esm/core/aztec/AztecDetectorResult.js","../node_modules/@zxing/library/esm/core/common/detector/WhiteRectangleDetector.js","../node_modules/@zxing/library/esm/core/common/GridSampler.js","../node_modules/@zxing/library/esm/core/common/PerspectiveTransform.js","../node_modules/@zxing/library/esm/core/common/DefaultGridSampler.js","../node_modules/@zxing/library/esm/core/common/GridSamplerInstance.js","../node_modules/@zxing/library/esm/core/aztec/detector/Detector.js","../node_modules/@zxing/library/esm/core/aztec/AztecReader.js","../node_modules/@zxing/library/esm/browser/BrowserAztecCodeReader.js","../node_modules/@zxing/library/esm/core/oned/OneDReader.js","../node_modules/@zxing/library/esm/core/oned/Code128Reader.js","../node_modules/@zxing/library/esm/core/oned/Code39Reader.js","../node_modules/@zxing/library/esm/core/oned/Code93Reader.js","../node_modules/@zxing/library/esm/core/oned/ITFReader.js","../node_modules/@zxing/library/esm/core/oned/AbstractUPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtension5Support.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtension2Support.js","../node_modules/@zxing/library/esm/core/oned/UPCEANExtensionSupport.js","../node_modules/@zxing/library/esm/core/oned/UPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/EAN13Reader.js","../node_modules/@zxing/library/esm/core/oned/EAN8Reader.js","../node_modules/@zxing/library/esm/core/oned/UPCAReader.js","../node_modules/@zxing/library/esm/core/oned/UPCEReader.js","../node_modules/@zxing/library/esm/core/oned/MultiFormatUPCEANReader.js","../node_modules/@zxing/library/esm/core/oned/CodaBarReader.js","../node_modules/@zxing/library/esm/core/oned/rss/AbstractRSSReader.js","../node_modules/@zxing/library/esm/core/oned/rss/DataCharacter.js","../node_modules/@zxing/library/esm/core/oned/rss/FinderPattern.js","../node_modules/@zxing/library/esm/core/oned/rss/RSSUtils.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/BitArrayBuilder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/BlockParsedResult.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedObject.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedChar.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedInformation.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/DecodedNumeric.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/FieldParser.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/GeneralAppIdDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AbstractExpandedDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01decoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01AndOtherAIs.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AnyAIDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01weightDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013x0xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013103decoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01320xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01392xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI01393xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AI013x0x1xDecoder.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/ExpandedPair.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/ExpandedRow.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/RSSExpandedReader.js","../node_modules/@zxing/library/esm/core/oned/rss/expanded/decoders/AbstractExpandedDecoderComplement.js","../node_modules/@zxing/library/esm/core/oned/rss/Pair.js","../node_modules/@zxing/library/esm/core/oned/rss/RSS14Reader.js","../node_modules/@zxing/library/esm/core/oned/MultiFormatOneDReader.js","../node_modules/@zxing/library/esm/browser/BrowserBarcodeReader.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/Version.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/BitMatrixParser.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/DataBlock.js","../node_modules/@zxing/library/esm/core/common/BitSource.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/datamatrix/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/datamatrix/detector/Detector.js","../node_modules/@zxing/library/esm/core/datamatrix/DataMatrixReader.js","../node_modules/@zxing/library/esm/browser/BrowserDatamatrixCodeReader.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ErrorCorrectionLevel.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/FormatInformation.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ECBlocks.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/ECB.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Version.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DataMask.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/BitMatrixParser.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DataBlock.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Mode.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/QRCodeDecoderMetaData.js","../node_modules/@zxing/library/esm/core/qrcode/decoder/Decoder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/AlignmentPattern.js","../node_modules/@zxing/library/esm/core/qrcode/detector/AlignmentPatternFinder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPattern.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPatternInfo.js","../node_modules/@zxing/library/esm/core/qrcode/detector/FinderPatternFinder.js","../node_modules/@zxing/library/esm/core/qrcode/detector/Detector.js","../node_modules/@zxing/library/esm/core/qrcode/QRCodeReader.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417Common.js","../node_modules/@zxing/library/esm/core/pdf417/detector/PDF417DetectorResult.js","../node_modules/@zxing/library/esm/core/pdf417/detector/Detector.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusPoly.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusBase.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ModulusGF.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/ec/ErrorCorrection.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BoundingBox.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BarcodeMetadata.js","../node_modules/@zxing/library/esm/core/util/Formatter.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResultColumn.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/BarcodeValue.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResultRowIndicatorColumn.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DetectionResult.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/Codeword.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/PDF417CodewordDecoder.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417ResultMetadata.js","../node_modules/@zxing/library/esm/core/util/Long.js","../node_modules/@zxing/library/esm/core/NullPointerException.js","../node_modules/@zxing/library/esm/core/util/OutputStream.js","../node_modules/@zxing/library/esm/core/OutOfMemoryError.js","../node_modules/@zxing/library/esm/core/util/ByteArrayOutputStream.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/DecodedBitStreamParser.js","../node_modules/@zxing/library/esm/core/pdf417/decoder/PDF417ScanningDecoder.js","../node_modules/@zxing/library/esm/core/pdf417/PDF417Reader.js","../node_modules/@zxing/library/esm/core/ReaderException.js","../node_modules/@zxing/library/esm/core/MultiFormatReader.js","../node_modules/@zxing/library/esm/browser/BrowserMultiFormatReader.js","../node_modules/@zxing/library/esm/core/EncodeHintType.js","../node_modules/@zxing/library/esm/browser/BrowserPDF417Reader.js","../node_modules/@zxing/library/esm/browser/BrowserQRCodeReader.js","../node_modules/@zxing/library/esm/core/common/reedsolomon/ReedSolomonEncoder.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/MaskUtil.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/ByteMatrix.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/QRCode.js","../node_modules/@zxing/library/esm/core/WriterException.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/MatrixUtil.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/BlockPair.js","../node_modules/@zxing/library/esm/core/qrcode/encoder/Encoder.js","../node_modules/@zxing/library/esm/browser/BrowserQRCodeSvgWriter.js","../node_modules/@zxing/library/esm/core/qrcode/QRCodeWriter.js","../node_modules/@zxing/library/esm/core/MultiFormatWriter.js","../node_modules/@zxing/library/esm/core/PlanarYUVLuminanceSource.js","../node_modules/@zxing/library/esm/core/RGBLuminanceSource.js","../node_modules/@zxing/library/esm/core/util/Charset.js","../node_modules/@zxing/library/esm/core/util/StandardCharsets.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/DefaultPlacement.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/constants.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/ErrorCorrection.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/ASCIIEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/Base256Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/C40Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/EdifactEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/SymbolInfo.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/EncoderContext.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/X12Encoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/TextEncoder.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/HighLevelEncoder.js","../node_modules/@zxing/library/esm/core/common/ECIEncoderSet.js","../node_modules/@zxing/library/esm/core/datamatrix/encoder/MinimalEncoder.js","../node_modules/@zxing/library/esm/core/common/MinimalECIInput.js","../node_modules/@zxing/library/esm/core/datamatrix/DataMatrixWriter.js","../node_modules/@zxing/library/esm/core/aztec/encoder/AztecCode.js","../node_modules/@zxing/library/esm/core/util/Collections.js","../node_modules/@zxing/library/esm/core/aztec/encoder/Token.js","../node_modules/@zxing/library/esm/core/aztec/encoder/SimpleToken.js","../node_modules/@zxing/library/esm/core/aztec/encoder/BinaryShiftToken.js","../node_modules/@zxing/library/esm/core/aztec/encoder/TokenHelpers.js","../node_modules/@zxing/library/esm/core/aztec/encoder/EncoderConstants.js","../node_modules/@zxing/library/esm/core/aztec/encoder/LatchTable.js","../node_modules/@zxing/library/esm/core/aztec/encoder/ShiftTable.js","../node_modules/@zxing/library/esm/core/aztec/encoder/State.js","../node_modules/@zxing/library/esm/core/aztec/encoder/CharMap.js","../node_modules/@zxing/library/esm/core/aztec/encoder/HighLevelEncoder.js","../node_modules/@zxing/library/esm/core/aztec/encoder/Encoder.js","../node_modules/@zxing/library/esm/core/aztec/AztecWriter.js","Component/QrCodeScanner.js","Component/NumberBaseConverter.js","Component/FaviconGenerator.js","Component/AgeCalculator.js","Component/LoanCalculator.js","../node_modules/exifr/dist/full.esm.mjs","Component/ExifMetadataViewer.js","Component/RandomNamePicker.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//|]]>)$/.exec(text);\n\n // if we start to wrap but don't finish, print raw\n if (!matched) {\n printer.add_raw_token(raw_token);\n return;\n }\n\n pre = indentation + matched[1] + '\\n';\n text = matched[4];\n if (matched[5]) {\n post = indentation + matched[5];\n }\n\n // if there is at least one empty line at the end of this text, strip it\n // we'll be adding one back after the text but before the containing tag.\n text = text.replace(/\\n[ \\t]*$/, '');\n\n if (matched[2] || matched[3].indexOf('\\n') !== -1) {\n // if the first line of the non-comment text has spaces\n // use that as the basis for indenting in null case.\n matched = matched[3].match(/[ \\t]+$/);\n if (matched) {\n raw_token.whitespace_before = matched[0];\n }\n }\n }\n\n if (text) {\n if (_beautifier) {\n\n // call the Beautifier if avaliable\n var Child_options = function() {\n this.eol = '\\n';\n };\n Child_options.prototype = this._options.raw_options;\n var child_options = new Child_options();\n text = _beautifier(indentation + text, child_options);\n } else {\n // simply indent the string otherwise\n var white = raw_token.whitespace_before;\n if (white) {\n text = text.replace(new RegExp('\\n(' + white + ')?', 'g'), '\\n');\n }\n\n text = indentation + text.replace(/\\n/g, '\\n' + indentation);\n }\n }\n\n if (pre) {\n if (!text) {\n text = pre + post;\n } else {\n text = pre + text + '\\n' + post;\n }\n }\n\n printer.print_newline(false);\n if (text) {\n raw_token.text = text;\n raw_token.whitespace_before = '';\n raw_token.newlines = 0;\n printer.add_raw_token(raw_token);\n printer.print_newline(true);\n }\n }\n};\n\nBeautifier.prototype._handle_tag_open = function(printer, raw_token, last_tag_token, last_token, tokens) {\n var parser_token = this._get_tag_open_token(raw_token);\n\n if ((last_tag_token.is_unformatted || last_tag_token.is_content_unformatted) &&\n !last_tag_token.is_empty_element &&\n raw_token.type === TOKEN.TAG_OPEN && !parser_token.is_start_tag) {\n // End element tags for unformatted or content_unformatted elements\n // are printed raw to keep any newlines inside them exactly the same.\n printer.add_raw_token(raw_token);\n parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name);\n } else {\n printer.traverse_whitespace(raw_token);\n this._set_tag_position(printer, raw_token, parser_token, last_tag_token, last_token);\n if (!parser_token.is_inline_element) {\n printer.set_wrap_point();\n }\n printer.print_token(raw_token);\n }\n\n // count the number of attributes\n if (parser_token.is_start_tag && this._is_wrap_attributes_force) {\n var peek_index = 0;\n var peek_token;\n do {\n peek_token = tokens.peek(peek_index);\n if (peek_token.type === TOKEN.ATTRIBUTE) {\n parser_token.attr_count += 1;\n }\n peek_index += 1;\n } while (peek_token.type !== TOKEN.EOF && peek_token.type !== TOKEN.TAG_CLOSE);\n }\n\n //indent attributes an auto, forced, aligned or forced-align line-wrap\n if (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) {\n parser_token.alignment_size = raw_token.text.length + 1;\n }\n\n if (!parser_token.tag_complete && !parser_token.is_unformatted) {\n printer.alignment_size = parser_token.alignment_size;\n }\n\n return parser_token;\n};\n\nvar TagOpenParserToken = function(options, parent, raw_token) {\n this.parent = parent || null;\n this.text = '';\n this.type = 'TK_TAG_OPEN';\n this.tag_name = '';\n this.is_inline_element = false;\n this.is_unformatted = false;\n this.is_content_unformatted = false;\n this.is_empty_element = false;\n this.is_start_tag = false;\n this.is_end_tag = false;\n this.indent_content = false;\n this.multiline_content = false;\n this.custom_beautifier_name = null;\n this.start_tag_token = null;\n this.attr_count = 0;\n this.has_wrapped_attrs = false;\n this.alignment_size = 0;\n this.tag_complete = false;\n this.tag_start_char = '';\n this.tag_check = '';\n\n if (!raw_token) {\n this.tag_complete = true;\n } else {\n var tag_check_match;\n\n this.tag_start_char = raw_token.text[0];\n this.text = raw_token.text;\n\n if (this.tag_start_char === '<') {\n tag_check_match = raw_token.text.match(/^<([^\\s>]*)/);\n this.tag_check = tag_check_match ? tag_check_match[1] : '';\n } else {\n tag_check_match = raw_token.text.match(/^{{~?(?:[\\^]|#\\*?)?([^\\s}]+)/);\n this.tag_check = tag_check_match ? tag_check_match[1] : '';\n\n // handle \"{{#> myPartial}}\" or \"{{~#> myPartial}}\"\n if ((raw_token.text.startsWith('{{#>') || raw_token.text.startsWith('{{~#>')) && this.tag_check[0] === '>') {\n if (this.tag_check === '>' && raw_token.next !== null) {\n this.tag_check = raw_token.next.text.split(' ')[0];\n } else {\n this.tag_check = raw_token.text.split('>')[1];\n }\n }\n }\n\n this.tag_check = this.tag_check.toLowerCase();\n\n if (raw_token.type === TOKEN.COMMENT) {\n this.tag_complete = true;\n }\n\n this.is_start_tag = this.tag_check.charAt(0) !== '/';\n this.tag_name = !this.is_start_tag ? this.tag_check.substr(1) : this.tag_check;\n this.is_end_tag = !this.is_start_tag ||\n (raw_token.closed && raw_token.closed.text === '/>');\n\n // if whitespace handler ~ included (i.e. {{~#if true}}), handlebars tags start at pos 3 not pos 2\n var handlebar_starts = 2;\n if (this.tag_start_char === '{' && this.text.length >= 3) {\n if (this.text.charAt(2) === '~') {\n handlebar_starts = 3;\n }\n }\n\n // handlebars tags that don't start with # or ^ are single_tags, and so also start and end.\n // if they start with # or ^, they are still considered single tags if indenting of handlebars is set to false\n this.is_end_tag = this.is_end_tag ||\n (this.tag_start_char === '{' && (!options.indent_handlebars || this.text.length < 3 || (/[^#\\^]/.test(this.text.charAt(handlebar_starts)))));\n }\n};\n\nBeautifier.prototype._get_tag_open_token = function(raw_token) { //function to get a full tag and parse its type\n var parser_token = new TagOpenParserToken(this._options, this._tag_stack.get_parser_token(), raw_token);\n\n parser_token.alignment_size = this._options.wrap_attributes_indent_size;\n\n parser_token.is_end_tag = parser_token.is_end_tag ||\n in_array(parser_token.tag_check, this._options.void_elements);\n\n parser_token.is_empty_element = parser_token.tag_complete ||\n (parser_token.is_start_tag && parser_token.is_end_tag);\n\n parser_token.is_unformatted = !parser_token.tag_complete && in_array(parser_token.tag_check, this._options.unformatted);\n parser_token.is_content_unformatted = !parser_token.is_empty_element && in_array(parser_token.tag_check, this._options.content_unformatted);\n parser_token.is_inline_element = in_array(parser_token.tag_name, this._options.inline) || (this._options.inline_custom_elements && parser_token.tag_name.includes(\"-\")) || parser_token.tag_start_char === '{';\n\n return parser_token;\n};\n\nBeautifier.prototype._set_tag_position = function(printer, raw_token, parser_token, last_tag_token, last_token) {\n\n if (!parser_token.is_empty_element) {\n if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending\n parser_token.start_tag_token = this._tag_stack.try_pop(parser_token.tag_name); //remove it and all ancestors\n } else { // it's a start-tag\n // check if this tag is starting an element that has optional end element\n // and do an ending needed\n if (this._do_optional_end_element(parser_token)) {\n if (!parser_token.is_inline_element) {\n printer.print_newline(false);\n }\n }\n\n this._tag_stack.record_tag(parser_token); //push it on the tag stack\n\n if ((parser_token.tag_name === 'script' || parser_token.tag_name === 'style') &&\n !(parser_token.is_unformatted || parser_token.is_content_unformatted)) {\n parser_token.custom_beautifier_name = get_custom_beautifier_name(parser_token.tag_check, raw_token);\n }\n }\n }\n\n if (in_array(parser_token.tag_check, this._options.extra_liners)) { //check if this double needs an extra line\n printer.print_newline(false);\n if (!printer._output.just_added_blankline()) {\n printer.print_newline(true);\n }\n }\n\n if (parser_token.is_empty_element) { //if this tag name is a single tag type (either in the list or has a closing /)\n\n // if you hit an else case, reset the indent level if you are inside an:\n // 'if', 'unless', or 'each' block.\n if (parser_token.tag_start_char === '{' && parser_token.tag_check === 'else') {\n this._tag_stack.indent_to_tag(['if', 'unless', 'each']);\n parser_token.indent_content = true;\n // Don't add a newline if opening {{#if}} tag is on the current line\n var foundIfOnCurrentLine = printer.current_line_has_match(/{{#if/);\n if (!foundIfOnCurrentLine) {\n printer.print_newline(false);\n }\n }\n\n // Don't add a newline before elements that should remain where they are.\n if (parser_token.tag_name === '!--' && last_token.type === TOKEN.TAG_CLOSE &&\n last_tag_token.is_end_tag && parser_token.text.indexOf('\\n') === -1) {\n //Do nothing. Leave comments on same line.\n } else {\n if (!(parser_token.is_inline_element || parser_token.is_unformatted)) {\n printer.print_newline(false);\n }\n this._calcluate_parent_multiline(printer, parser_token);\n }\n } else if (parser_token.is_end_tag) { //this tag is a double tag so check for tag-ending\n var do_end_expand = false;\n\n // deciding whether a block is multiline should not be this hard\n do_end_expand = parser_token.start_tag_token && parser_token.start_tag_token.multiline_content;\n do_end_expand = do_end_expand || (!parser_token.is_inline_element &&\n !(last_tag_token.is_inline_element || last_tag_token.is_unformatted) &&\n !(last_token.type === TOKEN.TAG_CLOSE && parser_token.start_tag_token === last_tag_token) &&\n last_token.type !== 'TK_CONTENT'\n );\n\n if (parser_token.is_content_unformatted || parser_token.is_unformatted) {\n do_end_expand = false;\n }\n\n if (do_end_expand) {\n printer.print_newline(false);\n }\n } else { // it's a start-tag\n parser_token.indent_content = !parser_token.custom_beautifier_name;\n\n if (parser_token.tag_start_char === '<') {\n if (parser_token.tag_name === 'html') {\n parser_token.indent_content = this._options.indent_inner_html;\n } else if (parser_token.tag_name === 'head') {\n parser_token.indent_content = this._options.indent_head_inner_html;\n } else if (parser_token.tag_name === 'body') {\n parser_token.indent_content = this._options.indent_body_inner_html;\n }\n }\n\n if (!(parser_token.is_inline_element || parser_token.is_unformatted) &&\n (last_token.type !== 'TK_CONTENT' || parser_token.is_content_unformatted)) {\n printer.print_newline(false);\n }\n\n this._calcluate_parent_multiline(printer, parser_token);\n }\n};\n\nBeautifier.prototype._calcluate_parent_multiline = function(printer, parser_token) {\n if (parser_token.parent && printer._output.just_added_newline() &&\n !((parser_token.is_inline_element || parser_token.is_unformatted) && parser_token.parent.is_inline_element)) {\n parser_token.parent.multiline_content = true;\n }\n};\n\n//To be used for

tag special case:\nvar p_closers = ['address', 'article', 'aside', 'blockquote', 'details', 'div', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'main', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'];\nvar p_parent_excludes = ['a', 'audio', 'del', 'ins', 'map', 'noscript', 'video'];\n\nBeautifier.prototype._do_optional_end_element = function(parser_token) {\n var result = null;\n // NOTE: cases of \"if there is no more content in the parent element\"\n // are handled automatically by the beautifier.\n // It assumes parent or ancestor close tag closes all children.\n // https://www.w3.org/TR/html5/syntax.html#optional-tags\n if (parser_token.is_empty_element || !parser_token.is_start_tag || !parser_token.parent) {\n return;\n\n }\n\n if (parser_token.tag_name === 'body') {\n // A head element’s end tag may be omitted if the head element is not immediately followed by a space character or a comment.\n result = result || this._tag_stack.try_pop('head');\n\n //} else if (parser_token.tag_name === 'body') {\n // DONE: A body element’s end tag may be omitted if the body element is not immediately followed by a comment.\n\n } else if (parser_token.tag_name === 'li') {\n // An li element’s end tag may be omitted if the li element is immediately followed by another li element or if there is no more content in the parent element.\n result = result || this._tag_stack.try_pop('li', ['ol', 'ul', 'menu']);\n\n } else if (parser_token.tag_name === 'dd' || parser_token.tag_name === 'dt') {\n // A dd element’s end tag may be omitted if the dd element is immediately followed by another dd element or a dt element, or if there is no more content in the parent element.\n // A dt element’s end tag may be omitted if the dt element is immediately followed by another dt element or a dd element.\n result = result || this._tag_stack.try_pop('dt', ['dl']);\n result = result || this._tag_stack.try_pop('dd', ['dl']);\n\n\n } else if (parser_token.parent.tag_name === 'p' && p_closers.indexOf(parser_token.tag_name) !== -1) {\n // IMPORTANT: this else-if works because p_closers has no overlap with any other element we look for in this method\n // check for the parent element is an HTML element that is not an ,


\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\r\n * @param {boolean} [options.compress=false] Compress the generated PDF.\r\n * @param {number} [options.precision=16] Precision of the element-positions.\r\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\r\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\r\n * @param {Object} [options.encryption]\r\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\r\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\r\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\r\n * @param {number|\"smart\"} [options.floatPrecision=16]\r\n * @returns {jsPDF} jsPDF-instance\r\n * @description\r\n * ```\r\n * {\r\n * orientation: 'p',\r\n * unit: 'mm',\r\n * format: 'a4',\r\n * putOnlyUsedFonts:true,\r\n * floatPrecision: 16 // or \"smart\", default is 16\r\n * }\r\n * ```\r\n *\r\n * @constructor\r\n */\r\nfunction jsPDF(options) {\r\n var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\r\n var unit = arguments[1];\r\n var format = arguments[2];\r\n var compressPdf = arguments[3];\r\n var filters = [];\r\n var userUnit = 1.0;\r\n var precision;\r\n var floatPrecision = 16;\r\n var defaultPathOperation = \"S\";\r\n var encryptionOptions = null;\r\n\r\n options = options || {};\r\n\r\n if (typeof options === \"object\") {\r\n orientation = options.orientation;\r\n unit = options.unit || unit;\r\n format = options.format || format;\r\n compressPdf = options.compress || options.compressPdf || compressPdf;\r\n encryptionOptions = options.encryption || null;\r\n if (encryptionOptions !== null) {\r\n encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\r\n encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\r\n encryptionOptions.userPermissions =\r\n encryptionOptions.userPermissions || [];\r\n }\r\n userUnit =\r\n typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\r\n if (typeof options.precision !== \"undefined\") {\r\n precision = options.precision;\r\n }\r\n if (typeof options.floatPrecision !== \"undefined\") {\r\n floatPrecision = options.floatPrecision;\r\n }\r\n defaultPathOperation = options.defaultPathOperation || \"S\";\r\n }\r\n\r\n filters =\r\n options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\r\n\r\n unit = unit || \"mm\";\r\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\r\n var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\r\n var usedFonts = {};\r\n\r\n var API = {\r\n internal: {},\r\n __private__: {}\r\n };\r\n\r\n API.__private__.PubSub = PubSub;\r\n\r\n var pdfVersion = \"1.3\";\r\n var getPdfVersion = (API.__private__.getPdfVersion = function() {\r\n return pdfVersion;\r\n });\r\n\r\n API.__private__.setPdfVersion = function(value) {\r\n pdfVersion = value;\r\n };\r\n\r\n // Size in pt of various paper formats\r\n var pageFormats = {\r\n a0: [2383.94, 3370.39],\r\n a1: [1683.78, 2383.94],\r\n a2: [1190.55, 1683.78],\r\n a3: [841.89, 1190.55],\r\n a4: [595.28, 841.89],\r\n a5: [419.53, 595.28],\r\n a6: [297.64, 419.53],\r\n a7: [209.76, 297.64],\r\n a8: [147.4, 209.76],\r\n a9: [104.88, 147.4],\r\n a10: [73.7, 104.88],\r\n b0: [2834.65, 4008.19],\r\n b1: [2004.09, 2834.65],\r\n b2: [1417.32, 2004.09],\r\n b3: [1000.63, 1417.32],\r\n b4: [708.66, 1000.63],\r\n b5: [498.9, 708.66],\r\n b6: [354.33, 498.9],\r\n b7: [249.45, 354.33],\r\n b8: [175.75, 249.45],\r\n b9: [124.72, 175.75],\r\n b10: [87.87, 124.72],\r\n c0: [2599.37, 3676.54],\r\n c1: [1836.85, 2599.37],\r\n c2: [1298.27, 1836.85],\r\n c3: [918.43, 1298.27],\r\n c4: [649.13, 918.43],\r\n c5: [459.21, 649.13],\r\n c6: [323.15, 459.21],\r\n c7: [229.61, 323.15],\r\n c8: [161.57, 229.61],\r\n c9: [113.39, 161.57],\r\n c10: [79.37, 113.39],\r\n dl: [311.81, 623.62],\r\n letter: [612, 792],\r\n \"government-letter\": [576, 756],\r\n legal: [612, 1008],\r\n \"junior-legal\": [576, 360],\r\n ledger: [1224, 792],\r\n tabloid: [792, 1224],\r\n \"credit-card\": [153, 243]\r\n };\r\n\r\n API.__private__.getPageFormats = function() {\r\n return pageFormats;\r\n };\r\n\r\n var getPageFormat = (API.__private__.getPageFormat = function(value) {\r\n return pageFormats[value];\r\n });\r\n\r\n format = format || \"a4\";\r\n\r\n var ApiMode = {\r\n COMPAT: \"compat\",\r\n ADVANCED: \"advanced\"\r\n };\r\n var apiMode = ApiMode.COMPAT;\r\n\r\n function advancedAPI() {\r\n // prepend global change of basis matrix\r\n // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\r\n // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\r\n this.saveGraphicsState();\r\n out(\r\n new Matrix(\r\n scaleFactor,\r\n 0,\r\n 0,\r\n -scaleFactor,\r\n 0,\r\n getPageHeight() * scaleFactor\r\n ).toString() + \" cm\"\r\n );\r\n this.setFontSize(this.getFontSize() / scaleFactor);\r\n\r\n // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\r\n // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\r\n defaultPathOperation = \"n\";\r\n\r\n apiMode = ApiMode.ADVANCED;\r\n }\r\n\r\n function compatAPI() {\r\n this.restoreGraphicsState();\r\n defaultPathOperation = \"S\";\r\n apiMode = ApiMode.COMPAT;\r\n }\r\n\r\n /**\r\n * @function combineFontStyleAndFontWeight\r\n * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @returns {string}\r\n * @private\r\n */\r\n var combineFontStyleAndFontWeight = (API.__private__.combineFontStyleAndFontWeight = function(\r\n fontStyle,\r\n fontWeight\r\n ) {\r\n if (\r\n (fontStyle == \"bold\" && fontWeight == \"normal\") ||\r\n (fontStyle == \"bold\" && fontWeight == 400) ||\r\n (fontStyle == \"normal\" && fontWeight == \"italic\") ||\r\n (fontStyle == \"bold\" && fontWeight == \"italic\")\r\n ) {\r\n throw new Error(\"Invalid Combination of fontweight and fontstyle\");\r\n }\r\n if (fontWeight) {\r\n fontStyle =\r\n fontWeight == 400 || fontWeight === \"normal\"\r\n ? fontStyle === \"italic\"\r\n ? \"italic\"\r\n : \"normal\"\r\n : (fontWeight == 700 || fontWeight === \"bold\") &&\r\n fontStyle === \"normal\"\r\n ? \"bold\"\r\n : (fontWeight == 700 ? \"bold\" : fontWeight) + \"\" + fontStyle;\r\n }\r\n return fontStyle;\r\n });\r\n\r\n /**\r\n * @callback ApiSwitchBody\r\n * @param {jsPDF} pdf\r\n */\r\n\r\n /**\r\n * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\r\n * screen coordinates and the PDF coordinate system.\r\n * - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\r\n * - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\r\n * not support this mode, though.\r\n * Initial mode is \"compat\".\r\n *\r\n * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\r\n * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\r\n *\r\n * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\r\n * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\r\n * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name advancedAPI\r\n */\r\n API.advancedAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.COMPAT;\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @return {jsPDF}\r\n * @memberof jsPDF#\r\n * @name compatApi\r\n */\r\n API.compatAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.ADVANCED;\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\r\n * @memberof jsPDF#\r\n * @name isAdvancedAPI\r\n */\r\n API.isAdvancedAPI = function() {\r\n return apiMode === ApiMode.ADVANCED;\r\n };\r\n\r\n var advancedApiModeTrap = function(methodName) {\r\n if (apiMode !== ApiMode.ADVANCED) {\r\n throw new Error(\r\n methodName +\r\n \" is only available in 'advanced' API mode. \" +\r\n \"You need to call advancedAPI() first.\"\r\n );\r\n }\r\n };\r\n\r\n var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\r\n number,\r\n parmPrecision\r\n ) {\r\n var tmpPrecision = precision || parmPrecision;\r\n if (isNaN(number) || isNaN(tmpPrecision)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\r\n }\r\n return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\r\n });\r\n\r\n // high precision float\r\n var hpf;\r\n if (typeof floatPrecision === \"number\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, floatPrecision);\r\n };\r\n } else if (floatPrecision === \"smart\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n if (number > -1 && number < 1) {\r\n return roundToPrecision(number, 16);\r\n } else {\r\n return roundToPrecision(number, 5);\r\n }\r\n };\r\n } else {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, 16);\r\n };\r\n }\r\n var f2 = (API.f2 = API.__private__.f2 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f2\");\r\n }\r\n return roundToPrecision(number, 2);\r\n });\r\n\r\n var f3 = (API.__private__.f3 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f3\");\r\n }\r\n return roundToPrecision(number, 3);\r\n });\r\n\r\n var scale = (API.scale = API.__private__.scale = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.scale\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return number * scaleFactor;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return number;\r\n }\r\n });\r\n\r\n var transformY = function(y) {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return getPageHeight() - y;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return y;\r\n }\r\n };\r\n\r\n var transformScaleY = function(y) {\r\n return scale(transformY(y));\r\n };\r\n\r\n /**\r\n * @name setPrecision\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} precision\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setPrecision = API.setPrecision = function(value) {\r\n if (typeof parseInt(value, 10) === \"number\") {\r\n precision = parseInt(value, 10);\r\n }\r\n };\r\n\r\n var fileId = \"00000000000000000000000000000000\";\r\n\r\n var getFileId = (API.__private__.getFileId = function() {\r\n return fileId;\r\n });\r\n\r\n var setFileId = (API.__private__.setFileId = function(value) {\r\n if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\r\n fileId = value.toUpperCase();\r\n } else {\r\n fileId = fileId\r\n .split(\"\")\r\n .map(function() {\r\n return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\r\n })\r\n .join(\"\");\r\n }\r\n\r\n if (encryptionOptions !== null) {\r\n encryption = new PDFSecurity(\r\n encryptionOptions.userPermissions,\r\n encryptionOptions.userPassword,\r\n encryptionOptions.ownerPassword,\r\n fileId\r\n );\r\n }\r\n return fileId;\r\n });\r\n\r\n /**\r\n * @name setFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} value GUID.\r\n * @returns {jsPDF}\r\n */\r\n API.setFileId = function(value) {\r\n setFileId(value);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n *\r\n * @returns {string} GUID.\r\n */\r\n API.getFileId = function() {\r\n return getFileId();\r\n };\r\n\r\n var creationDate;\r\n\r\n var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\r\n parmDate\r\n ) {\r\n var result = \"\";\r\n var tzoffset = parmDate.getTimezoneOffset(),\r\n tzsign = tzoffset < 0 ? \"+\" : \"-\",\r\n tzhour = Math.floor(Math.abs(tzoffset / 60)),\r\n tzmin = Math.abs(tzoffset % 60),\r\n timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\r\n\r\n result = [\r\n \"D:\",\r\n parmDate.getFullYear(),\r\n padd2(parmDate.getMonth() + 1),\r\n padd2(parmDate.getDate()),\r\n padd2(parmDate.getHours()),\r\n padd2(parmDate.getMinutes()),\r\n padd2(parmDate.getSeconds()),\r\n timeZoneString\r\n ].join(\"\");\r\n return result;\r\n });\r\n\r\n var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\r\n parmPDFDate\r\n ) {\r\n var year = parseInt(parmPDFDate.substr(2, 4), 10);\r\n var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\r\n var date = parseInt(parmPDFDate.substr(8, 2), 10);\r\n var hour = parseInt(parmPDFDate.substr(10, 2), 10);\r\n var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\r\n var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\r\n // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\r\n // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\r\n\r\n var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\r\n return resultingDate;\r\n });\r\n\r\n var setCreationDate = (API.__private__.setCreationDate = function(date) {\r\n var tmpCreationDateString;\r\n var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\r\n if (typeof date === \"undefined\") {\r\n date = new Date();\r\n }\r\n\r\n if (date instanceof Date) {\r\n tmpCreationDateString = convertDateToPDFDate(date);\r\n } else if (regexPDFCreationDate.test(date)) {\r\n tmpCreationDateString = date;\r\n } else {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\r\n }\r\n creationDate = tmpCreationDateString;\r\n return creationDate;\r\n });\r\n\r\n var getCreationDate = (API.__private__.getCreationDate = function(type) {\r\n var result = creationDate;\r\n if (type === \"jsDate\") {\r\n result = convertPDFDateToDate(creationDate);\r\n }\r\n return result;\r\n });\r\n\r\n /**\r\n * @name setCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} date\r\n * @returns {jsPDF}\r\n */\r\n API.setCreationDate = function(date) {\r\n setCreationDate(date);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} type\r\n * @returns {Object}\r\n */\r\n API.getCreationDate = function(type) {\r\n return getCreationDate(type);\r\n };\r\n\r\n var padd2 = (API.__private__.padd2 = function(number) {\r\n return (\"0\" + parseInt(number)).slice(-2);\r\n });\r\n\r\n var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\r\n hexString = hexString.toString();\r\n return (\"00\" + hexString).substr(hexString.length);\r\n });\r\n\r\n var objectNumber = 0; // 'n' Current object number\r\n var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\r\n var content = [];\r\n var contentLength = 0;\r\n var additionalObjects = [];\r\n\r\n var pages = [];\r\n var currentPage;\r\n var hasCustomDestination = false;\r\n var outputDestination = content;\r\n\r\n var resetDocument = function() {\r\n //reset fields relevant for objectNumber generation and xref.\r\n objectNumber = 0;\r\n contentLength = 0;\r\n content = [];\r\n offsets = [];\r\n additionalObjects = [];\r\n\r\n rootDictionaryObjId = newObjectDeferred();\r\n resourceDictionaryObjId = newObjectDeferred();\r\n };\r\n\r\n API.__private__.setCustomOutputDestination = function(destination) {\r\n hasCustomDestination = true;\r\n outputDestination = destination;\r\n };\r\n var setOutputDestination = function(destination) {\r\n if (!hasCustomDestination) {\r\n outputDestination = destination;\r\n }\r\n };\r\n\r\n API.__private__.resetCustomOutputDestination = function() {\r\n hasCustomDestination = false;\r\n outputDestination = content;\r\n };\r\n\r\n var out = (API.__private__.out = function(string) {\r\n string = string.toString();\r\n contentLength += string.length + 1;\r\n outputDestination.push(string);\r\n\r\n return outputDestination;\r\n });\r\n\r\n var write = (API.__private__.write = function(value) {\r\n return out(\r\n arguments.length === 1\r\n ? value.toString()\r\n : Array.prototype.join.call(arguments, \" \")\r\n );\r\n });\r\n\r\n var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\r\n var len = data.length,\r\n ab = new ArrayBuffer(len),\r\n u8 = new Uint8Array(ab);\r\n\r\n while (len--) u8[len] = data.charCodeAt(len);\r\n return ab;\r\n });\r\n\r\n var standardFonts = [\r\n [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\r\n [\"Symbol\", \"symbol\", \"normal\", null]\r\n ];\r\n\r\n API.__private__.getStandardFonts = function() {\r\n return standardFonts;\r\n };\r\n\r\n var activeFontSize = options.fontSize || 16;\r\n\r\n /**\r\n * Sets font size for upcoming text elements.\r\n *\r\n * @param {number} size Font size in points.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFontSize\r\n */\r\n API.__private__.setFontSize = API.setFontSize = function(size) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n activeFontSize = size / scaleFactor;\r\n } else {\r\n activeFontSize = size;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the fontsize for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number}\r\n * @memberof jsPDF#\r\n * @name getFontSize\r\n */\r\n var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return activeFontSize;\r\n } else {\r\n return activeFontSize * scaleFactor;\r\n }\r\n });\r\n\r\n var R2L = options.R2L || false;\r\n\r\n /**\r\n * Set value of R2L functionality.\r\n *\r\n * @param {boolean} value\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setR2L\r\n */\r\n API.__private__.setR2L = API.setR2L = function(value) {\r\n R2L = value;\r\n return this;\r\n };\r\n\r\n /**\r\n * Get value of R2L functionality.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {boolean} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name getR2L\r\n */\r\n API.__private__.getR2L = API.getR2L = function() {\r\n return R2L;\r\n };\r\n\r\n var zoomMode; // default: 1;\r\n\r\n var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\r\n var validZoomModes = [\r\n undefined,\r\n null,\r\n \"fullwidth\",\r\n \"fullheight\",\r\n \"fullpage\",\r\n \"original\"\r\n ];\r\n\r\n if (/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(zoom)) {\r\n zoomMode = zoom;\r\n } else if (!isNaN(zoom)) {\r\n zoomMode = parseInt(zoom, 10);\r\n } else if (validZoomModes.indexOf(zoom) !== -1) {\r\n zoomMode = zoom;\r\n } else {\r\n throw new Error(\r\n 'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\r\n zoom +\r\n '\" is not recognized.'\r\n );\r\n }\r\n });\r\n\r\n API.__private__.getZoomMode = function() {\r\n return zoomMode;\r\n };\r\n\r\n var pageMode; // default: 'UseOutlines';\r\n var setPageMode = (API.__private__.setPageMode = function(pmode) {\r\n var validPageModes = [\r\n undefined,\r\n null,\r\n \"UseNone\",\r\n \"UseOutlines\",\r\n \"UseThumbs\",\r\n \"FullScreen\"\r\n ];\r\n\r\n if (validPageModes.indexOf(pmode) == -1) {\r\n throw new Error(\r\n 'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\r\n pmode +\r\n '\" is not recognized.'\r\n );\r\n }\r\n pageMode = pmode;\r\n });\r\n\r\n API.__private__.getPageMode = function() {\r\n return pageMode;\r\n };\r\n\r\n var layoutMode; // default: 'continuous';\r\n var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\r\n var validLayoutModes = [\r\n undefined,\r\n null,\r\n \"continuous\",\r\n \"single\",\r\n \"twoleft\",\r\n \"tworight\",\r\n \"two\"\r\n ];\r\n\r\n if (validLayoutModes.indexOf(layout) == -1) {\r\n throw new Error(\r\n 'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\r\n layout +\r\n '\" is not recognized.'\r\n );\r\n }\r\n layoutMode = layout;\r\n });\r\n\r\n API.__private__.getLayoutMode = function() {\r\n return layoutMode;\r\n };\r\n\r\n /**\r\n * Set the display mode options of the page like zoom and layout.\r\n *\r\n * @name setDisplayMode\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {integer|String} zoom You can pass an integer or percentage as\r\n * a string. 2 will scale the document up 2x, '200%' will scale up by the\r\n * same amount. You can also set it to 'fullwidth', 'fullheight',\r\n * 'fullpage', or 'original'.\r\n *\r\n * Only certain PDF readers support this, such as Adobe Acrobat.\r\n *\r\n * @param {string} layout Layout mode can be: 'continuous' - this is the\r\n * default continuous scroll. 'single' - the single page mode only shows one\r\n * page at a time. 'twoleft' - two column left mode, first page starts on\r\n * the left, and 'tworight' - pages are laid out in two columns, with the\r\n * first page on the right. This would be used for books.\r\n * @param {string} pmode 'UseOutlines' - it shows the\r\n * outline of the document on the left. 'UseThumbs' - shows thumbnails along\r\n * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\r\n *\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setDisplayMode = API.setDisplayMode = function(\r\n zoom,\r\n layout,\r\n pmode\r\n ) {\r\n setZoomMode(zoom);\r\n setLayoutMode(layout);\r\n setPageMode(pmode);\r\n return this;\r\n };\r\n\r\n var documentProperties = {\r\n title: \"\",\r\n subject: \"\",\r\n author: \"\",\r\n keywords: \"\",\r\n creator: \"\"\r\n };\r\n\r\n API.__private__.getDocumentProperty = function(key) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\r\n }\r\n return documentProperties[key];\r\n };\r\n\r\n API.__private__.getDocumentProperties = function() {\r\n return documentProperties;\r\n };\r\n\r\n /**\r\n * Adds a properties to the PDF document.\r\n *\r\n * @param {Object} A property_name-to-property_value object structure.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDocumentProperties\r\n */\r\n API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\r\n properties\r\n ) {\r\n // copying only those properties we can render.\r\n for (var property in documentProperties) {\r\n if (documentProperties.hasOwnProperty(property) && properties[property]) {\r\n documentProperties[property] = properties[property];\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n API.__private__.setDocumentProperty = function(key, value) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\r\n }\r\n return (documentProperties[key] = value);\r\n };\r\n\r\n var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\r\n var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\r\n var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\r\n var fontStateStack = []; //\r\n var patterns = {}; // collection of pattern objects\r\n var patternMap = {}; // see fonts\r\n var gStates = {}; // collection of graphic state objects\r\n var gStatesMap = {}; // see fonts\r\n var activeGState = null;\r\n var scaleFactor; // Scale factor\r\n var page = 0;\r\n var pagesContext = [];\r\n var events = new PubSub(API);\r\n var hotfixes = options.hotfixes || [];\r\n\r\n var renderTargets = {};\r\n var renderTargetMap = {};\r\n var renderTargetStack = [];\r\n var pageX;\r\n var pageY;\r\n var pageMatrix; // only used for FormObjects\r\n\r\n /**\r\n * A matrix object for 2D homogenous transformations:
\r\n * | a b 0 |
\r\n * | c d 0 |
\r\n * | e f 1 |
\r\n * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\r\n *\r\n * @class\r\n * @name Matrix\r\n * @param {number} sx\r\n * @param {number} shy\r\n * @param {number} shx\r\n * @param {number} sy\r\n * @param {number} tx\r\n * @param {number} ty\r\n * @constructor\r\n */\r\n var Matrix = function(sx, shy, shx, sy, tx, ty) {\r\n if (!(this instanceof Matrix)) {\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n }\r\n\r\n if (isNaN(sx)) sx = 1;\r\n if (isNaN(shy)) shy = 0;\r\n if (isNaN(shx)) shx = 0;\r\n if (isNaN(sy)) sy = 1;\r\n if (isNaN(tx)) tx = 0;\r\n if (isNaN(ty)) ty = 0;\r\n\r\n this._matrix = [sx, shy, shx, sy, tx, ty];\r\n };\r\n\r\n /**\r\n * @name sx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sx\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shy\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shx\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name sy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sy\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name tx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"tx\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ty\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"ty\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"a\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"b\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"c\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"d\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"e\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"f\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name rotation\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"rotation\", {\r\n get: function() {\r\n return Math.atan2(this.shx, this.sx);\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleX\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleX\", {\r\n get: function() {\r\n return this.decompose().scale.sx;\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleY\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleY\", {\r\n get: function() {\r\n return this.decompose().scale.sy;\r\n }\r\n });\r\n\r\n /**\r\n * @name isIdentity\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"isIdentity\", {\r\n get: function() {\r\n if (this.sx !== 1) {\r\n return false;\r\n }\r\n if (this.shy !== 0) {\r\n return false;\r\n }\r\n if (this.shx !== 0) {\r\n return false;\r\n }\r\n if (this.sy !== 1) {\r\n return false;\r\n }\r\n if (this.tx !== 0) {\r\n return false;\r\n }\r\n if (this.ty !== 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n\r\n /**\r\n * Join the Matrix Values to a String\r\n *\r\n * @function join\r\n * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\r\n * @returns {string} A string with all array elements joined.\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.join = function(separator) {\r\n return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\r\n .map(hpf)\r\n .join(separator);\r\n };\r\n\r\n /**\r\n * Multiply the matrix with given Matrix\r\n *\r\n * @function multiply\r\n * @param matrix\r\n * @returns {Matrix}\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.multiply = function(matrix) {\r\n var sx = matrix.sx * this.sx + matrix.shy * this.shx;\r\n var shy = matrix.sx * this.shy + matrix.shy * this.sy;\r\n var shx = matrix.shx * this.sx + matrix.sy * this.shx;\r\n var sy = matrix.shx * this.shy + matrix.sy * this.sy;\r\n var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\r\n var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n /**\r\n * @function decompose\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.decompose = function() {\r\n var a = this.sx;\r\n var b = this.shy;\r\n var c = this.shx;\r\n var d = this.sy;\r\n var e = this.tx;\r\n var f = this.ty;\r\n\r\n var scaleX = Math.sqrt(a * a + b * b);\r\n a /= scaleX;\r\n b /= scaleX;\r\n\r\n var shear = a * c + b * d;\r\n c -= a * shear;\r\n d -= b * shear;\r\n\r\n var scaleY = Math.sqrt(c * c + d * d);\r\n c /= scaleY;\r\n d /= scaleY;\r\n shear /= scaleY;\r\n\r\n if (a * d < b * c) {\r\n a = -a;\r\n b = -b;\r\n shear = -shear;\r\n scaleX = -scaleX;\r\n }\r\n\r\n return {\r\n scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\r\n translate: new Matrix(1, 0, 0, 1, e, f),\r\n rotate: new Matrix(a, b, -b, a, 0, 0),\r\n skew: new Matrix(1, 0, shear, 1, 0, 0)\r\n };\r\n };\r\n\r\n /**\r\n * @function toString\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.toString = function(parmPrecision) {\r\n return this.join(\" \");\r\n };\r\n\r\n /**\r\n * @function inversed\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.inversed = function() {\r\n var a = this.sx,\r\n b = this.shy,\r\n c = this.shx,\r\n d = this.sy,\r\n e = this.tx,\r\n f = this.ty;\r\n\r\n var quot = 1 / (a * d - b * c);\r\n\r\n var aInv = d * quot;\r\n var bInv = -b * quot;\r\n var cInv = -c * quot;\r\n var dInv = a * quot;\r\n var eInv = -aInv * e - cInv * f;\r\n var fInv = -bInv * e - dInv * f;\r\n\r\n return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\r\n };\r\n\r\n /**\r\n * @function applyToPoint\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToPoint = function(pt) {\r\n var x = pt.x * this.sx + pt.y * this.shx + this.tx;\r\n var y = pt.x * this.shy + pt.y * this.sy + this.ty;\r\n return new Point(x, y);\r\n };\r\n\r\n /**\r\n * @function applyToRectangle\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToRectangle = function(rect) {\r\n var pt1 = this.applyToPoint(rect);\r\n var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\r\n return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\r\n };\r\n\r\n /**\r\n * Clone the Matrix\r\n *\r\n * @function clone\r\n * @memberof Matrix#\r\n * @name clone\r\n * @instance\r\n */\r\n Matrix.prototype.clone = function() {\r\n var sx = this.sx;\r\n var shy = this.shy;\r\n var shx = this.shx;\r\n var sy = this.sy;\r\n var tx = this.tx;\r\n var ty = this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n API.Matrix = Matrix;\r\n\r\n /**\r\n * Multiplies two matrices. (see {@link Matrix})\r\n * @param {Matrix} m1\r\n * @param {Matrix} m2\r\n * @memberof jsPDF#\r\n * @name matrixMult\r\n */\r\n var matrixMult = (API.matrixMult = function(m1, m2) {\r\n return m2.multiply(m1);\r\n });\r\n\r\n /**\r\n * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\r\n * @type {Matrix}\r\n * @memberof! jsPDF#\r\n * @name identityMatrix\r\n */\r\n var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\r\n API.unitMatrix = API.identityMatrix = identityMatrix;\r\n\r\n /**\r\n * Adds a new pattern for later use.\r\n * @param {String} key The key by it can be referenced later. The keys must be unique!\r\n * @param {API.Pattern} pattern The pattern\r\n */\r\n var addPattern = function(key, pattern) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (patternMap[key]) return;\r\n\r\n var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\r\n var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\r\n pattern.id = patternKey;\r\n\r\n patternMap[key] = patternKey;\r\n patterns[patternKey] = pattern;\r\n\r\n events.publish(\"addPattern\", pattern);\r\n };\r\n\r\n /**\r\n * A pattern describing a shading pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {String} type One of \"axial\" or \"radial\"\r\n * @param {Array} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\r\n * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\r\n * @param {Array} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\r\n * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\r\n * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.ShadingPattern = ShadingPattern;\r\n\r\n /**\r\n * A PDF Tiling pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {Array.} boundingBox The bounding box at which one pattern cell gets clipped.\r\n * @param {Number} xStep Horizontal spacing between pattern cells.\r\n * @param {Number} yStep Vertical spacing between pattern cells.\r\n * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.TilingPattern = TilingPattern;\r\n\r\n /**\r\n * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\r\n * @param {String} key\r\n * @param {Pattern} pattern\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name addPattern\r\n */\r\n API.addShadingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"addShadingPattern()\");\r\n\r\n addPattern(key, pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\r\n * gets called. Only available in \"advanced\" API mode.\r\n * @param {API.Pattern} pattern\r\n * @memberof jsPDF#\r\n * @name beginTilingPattern\r\n */\r\n API.beginTilingPattern = function(pattern) {\r\n advancedApiModeTrap(\"beginTilingPattern()\");\r\n\r\n beginNewRenderTarget(\r\n pattern.boundingBox[0],\r\n pattern.boundingBox[1],\r\n pattern.boundingBox[2] - pattern.boundingBox[0],\r\n pattern.boundingBox[3] - pattern.boundingBox[1],\r\n pattern.matrix\r\n );\r\n };\r\n\r\n /**\r\n * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {string} key A unique key that is used to reference this pattern at later use.\r\n * @param {API.Pattern} pattern The pattern to end.\r\n * @memberof jsPDF#\r\n * @name endTilingPattern\r\n */\r\n API.endTilingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"endTilingPattern()\");\r\n\r\n // retrieve the stream\r\n pattern.stream = pages[currentPage].join(\"\\n\");\r\n\r\n addPattern(key, pattern);\r\n\r\n events.publish(\"endTilingPattern\", pattern);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n var newObject = (API.__private__.newObject = function() {\r\n var oid = newObjectDeferred();\r\n newObjectDeferredBegin(oid, true);\r\n return oid;\r\n });\r\n\r\n // Does not output the object. The caller must call newObjectDeferredBegin(oid) before outputing any data\r\n var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\r\n objectNumber++;\r\n offsets[objectNumber] = function() {\r\n return contentLength;\r\n };\r\n return objectNumber;\r\n });\r\n\r\n var newObjectDeferredBegin = function(oid, doOutput) {\r\n doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\r\n offsets[oid] = contentLength;\r\n if (doOutput) {\r\n out(oid + \" 0 obj\");\r\n }\r\n return oid;\r\n };\r\n // Does not output the object until after the pages have been output.\r\n // Returns an object containing the objectId and content.\r\n // All pages have been added so the object ID can be estimated to start right after.\r\n // This does not modify the current objectNumber; It must be updated after the newObjects are output.\r\n var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\r\n var objId = newObjectDeferred();\r\n var obj = {\r\n objId: objId,\r\n content: \"\"\r\n };\r\n additionalObjects.push(obj);\r\n return obj;\r\n });\r\n\r\n var rootDictionaryObjId = newObjectDeferred();\r\n var resourceDictionaryObjId = newObjectDeferred();\r\n\r\n /////////////////////\r\n // Private functions\r\n /////////////////////\r\n\r\n var decodeColorString = (API.__private__.decodeColorString = function(color) {\r\n var colorEncoded = color.split(\" \");\r\n if (\r\n colorEncoded.length === 2 &&\r\n (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\r\n ) {\r\n // convert grayscale value to rgb so that it can be converted to hex for consistency\r\n var floatVal = parseFloat(colorEncoded[0]);\r\n colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\r\n } else if (\r\n colorEncoded.length === 5 &&\r\n (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\r\n ) {\r\n // convert CMYK values to rbg so that it can be converted to hex for consistency\r\n var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\r\n var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\r\n var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\r\n\r\n colorEncoded = [red, green, blue, \"r\"];\r\n }\r\n var colorAsRGB = \"#\";\r\n for (var i = 0; i < 3; i++) {\r\n colorAsRGB += (\r\n \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\r\n ).slice(-2);\r\n }\r\n return colorAsRGB;\r\n });\r\n\r\n var encodeColorString = (API.__private__.encodeColorString = function(\r\n options\r\n ) {\r\n var color;\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n ch1: options\r\n };\r\n }\r\n var ch1 = options.ch1;\r\n var ch2 = options.ch2;\r\n var ch3 = options.ch3;\r\n var ch4 = options.ch4;\r\n var letterArray =\r\n options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\r\n\r\n if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(ch1);\r\n if (rgbColor.ok) {\r\n ch1 = rgbColor.toHex();\r\n } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\r\n throw new Error(\r\n 'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\r\n );\r\n }\r\n }\r\n //convert short rgb to long form\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\r\n ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\r\n }\r\n\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\r\n var hex = parseInt(ch1.substr(1), 16);\r\n ch1 = (hex >> 16) & 255;\r\n ch2 = (hex >> 8) & 255;\r\n ch3 = hex & 255;\r\n }\r\n\r\n if (\r\n typeof ch2 === \"undefined\" ||\r\n (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\r\n ) {\r\n // Gray color space.\r\n if (typeof ch1 === \"string\") {\r\n color = ch1 + \" \" + letterArray[0];\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = f2(ch1 / 255) + \" \" + letterArray[0];\r\n break;\r\n case 3:\r\n default:\r\n color = f3(ch1 / 255) + \" \" + letterArray[0];\r\n }\r\n }\r\n } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\r\n // assume RGBA\r\n if (ch4 && !isNaN(ch4.a)) {\r\n //TODO Implement transparency.\r\n //WORKAROUND use white for now, if transparent, otherwise handle as rgb\r\n if (ch4.a === 0) {\r\n color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\r\n return color;\r\n }\r\n }\r\n // assume RGB\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [\r\n f2(ch1 / 255),\r\n f2(ch2 / 255),\r\n f2(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n break;\r\n default:\r\n case 3:\r\n color = [\r\n f3(ch1 / 255),\r\n f3(ch2 / 255),\r\n f3(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n }\r\n }\r\n } else {\r\n // assume CMYK\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n break;\r\n case 3:\r\n default:\r\n color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n }\r\n }\r\n }\r\n return color;\r\n });\r\n\r\n var getFilters = (API.__private__.getFilters = function() {\r\n return filters;\r\n });\r\n\r\n var putStream = (API.__private__.putStream = function(options) {\r\n options = options || {};\r\n var data = options.data || \"\";\r\n var filters = options.filters || getFilters();\r\n var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\r\n var addLength1 = options.addLength1 || false;\r\n var valueOfLength1 = data.length;\r\n var objectId = options.objectId;\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null && typeof objectId == \"undefined\") {\r\n throw new Error(\r\n \"ObjectId must be passed to putStream for file encryption\"\r\n );\r\n }\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n\r\n var processedData = {};\r\n if (filters === true) {\r\n filters = [\"FlateEncode\"];\r\n }\r\n var keyValues = options.additionalKeyValues || [];\r\n if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\r\n processedData = jsPDF.API.processDataByFilters(data, filters);\r\n } else {\r\n processedData = { data: data, reverseChain: [] };\r\n }\r\n var filterAsString =\r\n processedData.reverseChain +\r\n (Array.isArray(alreadyAppliedFilters)\r\n ? alreadyAppliedFilters.join(\" \")\r\n : alreadyAppliedFilters.toString());\r\n\r\n if (processedData.data.length !== 0) {\r\n keyValues.push({\r\n key: \"Length\",\r\n value: processedData.data.length\r\n });\r\n if (addLength1 === true) {\r\n keyValues.push({\r\n key: \"Length1\",\r\n value: valueOfLength1\r\n });\r\n }\r\n }\r\n\r\n if (filterAsString.length != 0) {\r\n if (filterAsString.split(\"/\").length - 1 === 1) {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: filterAsString\r\n });\r\n } else {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: \"[\" + filterAsString + \"]\"\r\n });\r\n\r\n for (var j = 0; j < keyValues.length; j += 1) {\r\n if (keyValues[j].key === \"DecodeParms\") {\r\n var decodeParmsArray = [];\r\n\r\n for (\r\n var i = 0;\r\n i < processedData.reverseChain.split(\"/\").length - 1;\r\n i += 1\r\n ) {\r\n decodeParmsArray.push(\"null\");\r\n }\r\n\r\n decodeParmsArray.push(keyValues[j].value);\r\n keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n out(\"<<\");\r\n for (var k = 0; k < keyValues.length; k++) {\r\n out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\r\n }\r\n out(\">>\");\r\n if (processedData.data.length !== 0) {\r\n out(\"stream\");\r\n out(encryptor(processedData.data));\r\n out(\"endstream\");\r\n }\r\n });\r\n\r\n var putPage = (API.__private__.putPage = function(page) {\r\n var pageNumber = page.number;\r\n var data = page.data;\r\n var pageObjectNumber = page.objId;\r\n var pageContentsObjId = page.contentsObjId;\r\n\r\n newObjectDeferredBegin(pageObjectNumber, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n // Page content\r\n var pageContent = data.join(\"\\n\");\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\r\n pageContent += \"\\nQ\";\r\n }\r\n\r\n newObjectDeferredBegin(pageContentsObjId, true);\r\n putStream({\r\n data: pageContent,\r\n filters: getFilters(),\r\n objectId: pageContentsObjId\r\n });\r\n out(\"endobj\");\r\n return pageObjectNumber;\r\n });\r\n\r\n var putPages = (API.__private__.putPages = function() {\r\n var n,\r\n i,\r\n pageObjectNumbers = [];\r\n\r\n for (n = 1; n <= page; n++) {\r\n pagesContext[n].objId = newObjectDeferred();\r\n pagesContext[n].contentsObjId = newObjectDeferred();\r\n }\r\n\r\n for (n = 1; n <= page; n++) {\r\n pageObjectNumbers.push(\r\n putPage({\r\n number: n,\r\n data: pages[n],\r\n objId: pagesContext[n].objId,\r\n contentsObjId: pagesContext[n].contentsObjId,\r\n mediaBox: pagesContext[n].mediaBox,\r\n cropBox: pagesContext[n].cropBox,\r\n bleedBox: pagesContext[n].bleedBox,\r\n trimBox: pagesContext[n].trimBox,\r\n artBox: pagesContext[n].artBox,\r\n userUnit: pagesContext[n].userUnit,\r\n rootDictionaryObjId: rootDictionaryObjId,\r\n resourceDictionaryObjId: resourceDictionaryObjId\r\n })\r\n );\r\n }\r\n newObjectDeferredBegin(rootDictionaryObjId, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n events.publish(\"postPutPages\");\r\n });\r\n\r\n var putFont = function(font) {\r\n events.publish(\"putFont\", {\r\n font: font,\r\n out: out,\r\n newObject: newObject,\r\n putStream: putStream\r\n });\r\n\r\n if (font.isAlreadyPutted !== true) {\r\n font.objectNumber = newObject();\r\n out(\"<<\");\r\n out(\"/Type /Font\");\r\n out(\"/BaseFont /\" + toPDFName(font.postScriptName));\r\n out(\"/Subtype /Type1\");\r\n if (typeof font.encoding === \"string\") {\r\n out(\"/Encoding /\" + font.encoding);\r\n }\r\n out(\"/FirstChar 32\");\r\n out(\"/LastChar 255\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n }\r\n };\r\n\r\n var putFonts = function() {\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n putFont(fonts[fontKey]);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putXObject = function(xObject) {\r\n xObject.objectNumber = newObject();\r\n\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/XObject\" });\r\n options.push({ key: \"Subtype\", value: \"/Form\" });\r\n options.push({\r\n key: \"BBox\",\r\n value:\r\n \"[\" +\r\n [\r\n hpf(xObject.x),\r\n hpf(xObject.y),\r\n hpf(xObject.x + xObject.width),\r\n hpf(xObject.y + xObject.height)\r\n ].join(\" \") +\r\n \"]\"\r\n });\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + xObject.matrix.toString() + \"]\"\r\n });\r\n // TODO: /Resources\r\n\r\n var stream = xObject.pages[1].join(\"\\n\");\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n objectId: xObject.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putXObjects = function() {\r\n for (var xObjectKey in renderTargets) {\r\n if (renderTargets.hasOwnProperty(xObjectKey)) {\r\n putXObject(renderTargets[xObjectKey]);\r\n }\r\n }\r\n };\r\n\r\n var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\r\n var tValues = [];\r\n var t;\r\n var dT = 1.0 / (numberSamples - 1);\r\n for (t = 0.0; t < 1.0; t += dT) {\r\n tValues.push(t);\r\n }\r\n tValues.push(1.0);\r\n // add first and last control point if not present\r\n if (colors[0].offset != 0.0) {\r\n var c0 = {\r\n offset: 0.0,\r\n color: colors[0].color\r\n };\r\n colors.unshift(c0);\r\n }\r\n if (colors[colors.length - 1].offset != 1.0) {\r\n var c1 = {\r\n offset: 1.0,\r\n color: colors[colors.length - 1].color\r\n };\r\n colors.push(c1);\r\n }\r\n var out = \"\";\r\n var index = 0;\r\n\r\n for (var i = 0; i < tValues.length; i++) {\r\n t = tValues[i];\r\n while (t > colors[index + 1].offset) index++;\r\n var a = colors[index].offset;\r\n var b = colors[index + 1].offset;\r\n var d = (t - a) / (b - a);\r\n\r\n var aColor = colors[index].color;\r\n var bColor = colors[index + 1].color;\r\n\r\n out +=\r\n padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\r\n }\r\n return out.trim();\r\n };\r\n\r\n var putShadingPattern = function(pattern, numberSamples) {\r\n /*\r\n Axial patterns shade between the two points specified in coords, radial patterns between the inner\r\n and outer circle.\r\n The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\r\n interpolated to equidistant samples and written to pdf as a sample (type 0) function.\r\n */\r\n // The number of color samples that should be used to describe the shading.\r\n // The higher, the more accurate the gradient will be.\r\n numberSamples || (numberSamples = 21);\r\n var funcObjectNumber = newObject();\r\n var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\r\n\r\n var options = [];\r\n options.push({ key: \"FunctionType\", value: \"0\" });\r\n options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\r\n options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\r\n options.push({ key: \"BitsPerSample\", value: \"8\" });\r\n options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\r\n objectId: funcObjectNumber\r\n });\r\n out(\"endobj\");\r\n\r\n pattern.objectNumber = newObject();\r\n out(\"<< /ShadingType \" + pattern.type);\r\n out(\"/ColorSpace /DeviceRGB\");\r\n var coords =\r\n \"/Coords [\" +\r\n hpf(parseFloat(pattern.coords[0])) +\r\n \" \" + // x1\r\n hpf(parseFloat(pattern.coords[1])) +\r\n \" \"; // y1\r\n if (pattern.type === 2) {\r\n // axial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[3])); // y2\r\n } else {\r\n // radial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // r1\r\n hpf(parseFloat(pattern.coords[3])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[4])) +\r\n \" \" + // y2\r\n hpf(parseFloat(pattern.coords[5])); // r2\r\n }\r\n coords += \"]\";\r\n out(coords);\r\n\r\n if (pattern.matrix) {\r\n out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\r\n }\r\n out(\"/Function \" + funcObjectNumber + \" 0 R\");\r\n out(\"/Extend [true true]\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\r\n var resourcesObjectId = newObjectDeferred();\r\n var patternObjectId = newObject();\r\n\r\n deferredResourceDictionaryIds.push({\r\n resourcesOid: resourcesObjectId,\r\n objectOid: patternObjectId\r\n });\r\n\r\n pattern.objectNumber = patternObjectId;\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/Pattern\" });\r\n options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\r\n options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\r\n options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\r\n options.push({\r\n key: \"BBox\",\r\n value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\r\n });\r\n options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\r\n options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\r\n options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\r\n if (pattern.matrix) {\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + pattern.matrix.toString() + \"]\"\r\n });\r\n }\r\n\r\n putStream({\r\n data: pattern.stream,\r\n additionalKeyValues: options,\r\n objectId: pattern.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putPatterns = function(deferredResourceDictionaryIds) {\r\n var patternKey;\r\n for (patternKey in patterns) {\r\n if (patterns.hasOwnProperty(patternKey)) {\r\n if (patterns[patternKey] instanceof ShadingPattern) {\r\n putShadingPattern(patterns[patternKey]);\r\n } else if (patterns[patternKey] instanceof TilingPattern) {\r\n putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putGState = function(gState) {\r\n gState.objectNumber = newObject();\r\n out(\"<<\");\r\n for (var p in gState) {\r\n switch (p) {\r\n case \"opacity\":\r\n out(\"/ca \" + f2(gState[p]));\r\n break;\r\n case \"stroke-opacity\":\r\n out(\"/CA \" + f2(gState[p]));\r\n break;\r\n }\r\n }\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putGStates = function() {\r\n var gStateKey;\r\n for (gStateKey in gStates) {\r\n if (gStates.hasOwnProperty(gStateKey)) {\r\n putGState(gStates[gStateKey]);\r\n }\r\n }\r\n };\r\n\r\n var putXobjectDict = function() {\r\n out(\"/XObject <<\");\r\n for (var xObjectKey in renderTargets) {\r\n if (\r\n renderTargets.hasOwnProperty(xObjectKey) &&\r\n renderTargets[xObjectKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" +\r\n xObjectKey +\r\n \" \" +\r\n renderTargets[xObjectKey].objectNumber +\r\n \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n // Loop through images, or other data objects\r\n events.publish(\"putXobjectDict\");\r\n out(\">>\");\r\n };\r\n\r\n var putEncryptionDict = function() {\r\n encryption.oid = newObject();\r\n out(\"<<\");\r\n out(\"/Filter /Standard\");\r\n out(\"/V \" + encryption.v);\r\n out(\"/R \" + encryption.r);\r\n out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\r\n out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\r\n out(\"/P \" + encryption.P);\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putFontDict = function() {\r\n out(\"/Font <<\");\r\n\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n }\r\n out(\">>\");\r\n };\r\n\r\n var putShadingPatternDict = function() {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Shading <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof ShadingPattern &&\r\n patterns[patternKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n events.publish(\"putShadingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putTilingPatternDict = function(objectOid) {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Pattern <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof API.TilingPattern &&\r\n patterns[patternKey].objectNumber >= 0 &&\r\n patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n events.publish(\"putTilingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putGStatesDict = function() {\r\n if (Object.keys(gStates).length > 0) {\r\n var gStateKey;\r\n out(\"/ExtGState <<\");\r\n for (gStateKey in gStates) {\r\n if (\r\n gStates.hasOwnProperty(gStateKey) &&\r\n gStates[gStateKey].objectNumber >= 0\r\n ) {\r\n out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n\r\n events.publish(\"putGStateDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putResourceDictionary = function(objectIds) {\r\n newObjectDeferredBegin(objectIds.resourcesOid, true);\r\n out(\"<<\");\r\n out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\r\n putFontDict();\r\n putShadingPatternDict();\r\n putTilingPatternDict(objectIds.objectOid);\r\n putGStatesDict();\r\n putXobjectDict();\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putResources = function() {\r\n // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\r\n // which means their resource dictionaries must contain the already resolved\r\n // object ids. For this reason we defer the serialization of the resource\r\n // dicts until all objects have been serialized and have object ids.\r\n //\r\n // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\r\n // we only put all oids that are smaller than the oid of the object the\r\n // resource dict belongs to. This is correct behavior, since the streams\r\n // may only use other objects that have already been defined and thus appear\r\n // earlier in their respective collection.\r\n // Currently, this only affects tiling patterns, but a (more) correct\r\n // implementation of FormObjects would also define their own resource dicts.\r\n var deferredResourceDictionaryIds = [];\r\n\r\n putFonts();\r\n putGStates();\r\n putXObjects();\r\n putPatterns(deferredResourceDictionaryIds);\r\n\r\n events.publish(\"putResources\");\r\n deferredResourceDictionaryIds.forEach(putResourceDictionary);\r\n putResourceDictionary({\r\n resourcesOid: resourceDictionaryObjId,\r\n objectOid: Number.MAX_SAFE_INTEGER // output all objects\r\n });\r\n events.publish(\"postPutResources\");\r\n };\r\n\r\n var putAdditionalObjects = function() {\r\n events.publish(\"putAdditionalObjects\");\r\n for (var i = 0; i < additionalObjects.length; i++) {\r\n var obj = additionalObjects[i];\r\n newObjectDeferredBegin(obj.objId, true);\r\n out(obj.content);\r\n out(\"endobj\");\r\n }\r\n events.publish(\"postPutAdditionalObjects\");\r\n };\r\n\r\n var addFontToFontDictionary = function(font) {\r\n fontmap[font.fontName] = fontmap[font.fontName] || {};\r\n fontmap[font.fontName][font.fontStyle] = font.id;\r\n };\r\n\r\n var addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n encoding,\r\n isStandardFont\r\n ) {\r\n var font = {\r\n id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\r\n postScriptName: postScriptName,\r\n fontName: fontName,\r\n fontStyle: fontStyle,\r\n encoding: encoding,\r\n isStandardFont: isStandardFont || false,\r\n metadata: {}\r\n };\r\n\r\n events.publish(\"addFont\", {\r\n font: font,\r\n instance: this\r\n });\r\n\r\n fonts[font.id] = font;\r\n addFontToFontDictionary(font);\r\n return font.id;\r\n };\r\n\r\n var addFonts = function(arrayOfFonts) {\r\n for (var i = 0, l = standardFonts.length; i < l; i++) {\r\n var fontKey = addFont.call(\r\n this,\r\n arrayOfFonts[i][0],\r\n arrayOfFonts[i][1],\r\n arrayOfFonts[i][2],\r\n standardFonts[i][3],\r\n true\r\n );\r\n\r\n if (putOnlyUsedFonts === false) {\r\n usedFonts[fontKey] = true;\r\n }\r\n // adding aliases for standard fonts, this time matching the capitalization\r\n var parts = arrayOfFonts[i][0].split(\"-\");\r\n addFontToFontDictionary({\r\n id: fontKey,\r\n fontName: parts[0],\r\n fontStyle: parts[1] || \"\"\r\n });\r\n }\r\n events.publish(\"addFonts\", {\r\n fonts: fonts,\r\n dictionary: fontmap\r\n });\r\n };\r\n\r\n var SAFE = function __safeCall(fn) {\r\n fn.foo = function __safeCallWrapper() {\r\n try {\r\n return fn.apply(this, arguments);\r\n } catch (e) {\r\n var stack = e.stack || \"\";\r\n if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\r\n var m =\r\n \"Error in function \" +\r\n stack.split(\"\\n\")[0].split(\"<\")[0] +\r\n \": \" +\r\n e.message;\r\n if (globalObject.console) {\r\n globalObject.console.error(m, e);\r\n if (globalObject.alert) alert(m);\r\n } else {\r\n throw new Error(m);\r\n }\r\n }\r\n };\r\n fn.foo.bar = fn;\r\n return fn.foo;\r\n };\r\n\r\n var to8bitStream = function(text, flags) {\r\n /**\r\n * PDF 1.3 spec:\r\n * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\r\n * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\r\n * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\r\n * to be a meaningful beginning of a word or phrase.) The remainder of the\r\n * string consists of Unicode character codes, according to the UTF-16 encoding\r\n * specified in the Unicode standard, version 2.0. Commonly used Unicode values\r\n * are represented as 2 bytes per character, with the high-order byte appearing first\r\n * in the string.\"\r\n *\r\n * In other words, if there are chars in a string with char code above 255, we\r\n * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\r\n *\r\n * HOWEVER!\r\n * Actual *content* (body) text (as opposed to strings used in document properties etc)\r\n * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\r\n *\r\n * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\r\n * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\r\n * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\r\n * code page. There, however, all characters in the stream are treated as GIDs,\r\n * including BOM, which is the reason we need to skip BOM in content text (i.e. that\r\n * that is tied to a font).\r\n *\r\n * To signal this \"special\" PDFEscape / to8bitStream handling mode,\r\n * API.text() function sets (unless you overwrite it with manual values\r\n * given to API.text(.., flags) )\r\n * flags.autoencode = true\r\n * flags.noBOM = true\r\n *\r\n * ===================================================================================\r\n * `flags` properties relied upon:\r\n * .sourceEncoding = string with encoding label.\r\n * \"Unicode\" by default. = encoding of the incoming text.\r\n * pass some non-existing encoding name\r\n * (ex: 'Do not touch my strings! I know what I am doing.')\r\n * to make encoding code skip the encoding step.\r\n * .outputEncoding = Either valid PDF encoding name\r\n * (must be supported by jsPDF font metrics, otherwise no encoding)\r\n * or a JS object, where key = sourceCharCode, value = outputCharCode\r\n * missing keys will be treated as: sourceCharCode === outputCharCode\r\n * .noBOM\r\n * See comment higher above for explanation for why this is important\r\n * .autoencode\r\n * See comment higher above for explanation for why this is important\r\n */\r\n\r\n var i,\r\n l,\r\n sourceEncoding,\r\n encodingBlock,\r\n outputEncoding,\r\n newtext,\r\n isUnicode,\r\n ch,\r\n bch;\r\n\r\n flags = flags || {};\r\n sourceEncoding = flags.sourceEncoding || \"Unicode\";\r\n outputEncoding = flags.outputEncoding;\r\n\r\n // This 'encoding' section relies on font metrics format\r\n // attached to font objects by, among others,\r\n // \"Willow Systems' standard_font_metrics plugin\"\r\n // see jspdf.plugin.standard_font_metrics.js for format\r\n // of the font.metadata.encoding Object.\r\n // It should be something like\r\n // .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\r\n // .widths = {0:width, code:width, ..., 'fof':divisor}\r\n // .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\r\n if (\r\n (flags.autoencode || outputEncoding) &&\r\n fonts[activeFontKey].metadata &&\r\n fonts[activeFontKey].metadata[sourceEncoding] &&\r\n fonts[activeFontKey].metadata[sourceEncoding].encoding\r\n ) {\r\n encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\r\n\r\n // each font has default encoding. Some have it clearly defined.\r\n if (!outputEncoding && fonts[activeFontKey].encoding) {\r\n outputEncoding = fonts[activeFontKey].encoding;\r\n }\r\n\r\n // Hmmm, the above did not work? Let's try again, in different place.\r\n if (!outputEncoding && encodingBlock.codePages) {\r\n outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\r\n }\r\n\r\n if (typeof outputEncoding === \"string\") {\r\n outputEncoding = encodingBlock[outputEncoding];\r\n }\r\n // we want output encoding to be a JS Object, where\r\n // key = sourceEncoding's character code and\r\n // value = outputEncoding's character code.\r\n if (outputEncoding) {\r\n isUnicode = false;\r\n newtext = [];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = outputEncoding[text.charCodeAt(i)];\r\n if (ch) {\r\n newtext.push(String.fromCharCode(ch));\r\n } else {\r\n newtext.push(text[i]);\r\n }\r\n\r\n // since we are looping over chars anyway, might as well\r\n // check for residual unicodeness\r\n if (newtext[i].charCodeAt(0) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n }\r\n text = newtext.join(\"\");\r\n }\r\n }\r\n\r\n i = text.length;\r\n // isUnicode may be set to false above. Hence the triple-equal to undefined\r\n while (isUnicode === undefined && i !== 0) {\r\n if (text.charCodeAt(i - 1) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n i--;\r\n }\r\n if (!isUnicode) {\r\n return text;\r\n }\r\n\r\n newtext = flags.noBOM ? [] : [254, 255];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = text.charCodeAt(i);\r\n bch = ch >> 8; // divide by 256\r\n if (bch >> 8) {\r\n /* something left after dividing by 256 second time */\r\n throw new Error(\r\n \"Character at position \" +\r\n i +\r\n \" of string '\" +\r\n text +\r\n \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\r\n );\r\n }\r\n newtext.push(bch);\r\n newtext.push(ch - (bch << 8));\r\n }\r\n return String.fromCharCode.apply(undefined, newtext);\r\n };\r\n\r\n var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\r\n text,\r\n flags\r\n ) {\r\n /**\r\n * Replace '/', '(', and ')' with pdf-safe versions\r\n *\r\n * Doing to8bitStream does NOT make this PDF display unicode text. For that\r\n * we also need to reference a unicode font and embed it - royal pain in the rear.\r\n *\r\n * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\r\n * which JavaScript Strings are happy to provide. So, while we still cannot display\r\n * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\r\n * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\r\n * is still parseable.\r\n * This will allow immediate support for unicode in document properties strings.\r\n */\r\n return to8bitStream(text, flags)\r\n .replace(/\\\\/g, \"\\\\\\\\\")\r\n .replace(/\\(/g, \"\\\\(\")\r\n .replace(/\\)/g, \"\\\\)\");\r\n });\r\n\r\n var beginPage = (API.__private__.beginPage = function(format) {\r\n pages[++page] = [];\r\n pagesContext[page] = {\r\n objId: 0,\r\n contentsObjId: 0,\r\n userUnit: Number(userUnit),\r\n artBox: null,\r\n bleedBox: null,\r\n cropBox: null,\r\n trimBox: null,\r\n mediaBox: {\r\n bottomLeftX: 0,\r\n bottomLeftY: 0,\r\n topRightX: Number(format[0]),\r\n topRightY: Number(format[1])\r\n }\r\n };\r\n _setPage(page);\r\n setOutputDestination(pages[currentPage]);\r\n });\r\n\r\n var _addPage = function(parmFormat, parmOrientation) {\r\n var dimensions, width, height;\r\n\r\n orientation = parmOrientation || orientation;\r\n\r\n if (typeof parmFormat === \"string\") {\r\n dimensions = getPageFormat(parmFormat.toLowerCase());\r\n if (Array.isArray(dimensions)) {\r\n width = dimensions[0];\r\n height = dimensions[1];\r\n }\r\n }\r\n\r\n if (Array.isArray(parmFormat)) {\r\n width = parmFormat[0] * scaleFactor;\r\n height = parmFormat[1] * scaleFactor;\r\n }\r\n\r\n if (isNaN(width)) {\r\n width = format[0];\r\n height = format[1];\r\n }\r\n\r\n if (width > 14400 || height > 14400) {\r\n console.warn(\r\n \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\r\n );\r\n width = Math.min(14400, width);\r\n height = Math.min(14400, height);\r\n }\r\n\r\n format = [width, height];\r\n\r\n switch (orientation.substr(0, 1)) {\r\n case \"l\":\r\n if (height > width) {\r\n format = [height, width];\r\n }\r\n break;\r\n case \"p\":\r\n if (width > height) {\r\n format = [height, width];\r\n }\r\n break;\r\n }\r\n\r\n beginPage(format);\r\n\r\n // Set line width\r\n setLineWidth(lineWidth);\r\n // Set draw color\r\n out(strokeColor);\r\n // resurrecting non-default line caps, joins\r\n if (lineCapID !== 0) {\r\n out(lineCapID + \" J\");\r\n }\r\n if (lineJoinID !== 0) {\r\n out(lineJoinID + \" j\");\r\n }\r\n events.publish(\"addPage\", {\r\n pageNumber: page\r\n });\r\n };\r\n\r\n var _deletePage = function(n) {\r\n if (n > 0 && n <= page) {\r\n pages.splice(n, 1);\r\n pagesContext.splice(n, 1);\r\n page--;\r\n if (currentPage > page) {\r\n currentPage = page;\r\n }\r\n this.setPage(currentPage);\r\n }\r\n };\r\n\r\n var _setPage = function(n) {\r\n if (n > 0 && n <= page) {\r\n currentPage = n;\r\n }\r\n };\r\n\r\n var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\r\n return pages.length - 1;\r\n });\r\n\r\n /**\r\n * Returns a document-specific font key - a label assigned to a\r\n * font name + font type combination at the time the font was added\r\n * to the font inventory.\r\n *\r\n * Font key is used as label for the desired font for a block of text\r\n * to be added to the PDF document stream.\r\n * @private\r\n * @function\r\n * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @returns {string} Font key.\r\n * @ignore\r\n */\r\n var getFont = function(fontName, fontStyle, options) {\r\n var key = undefined,\r\n fontNameLowerCase;\r\n options = options || {};\r\n\r\n fontName =\r\n fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\r\n fontStyle =\r\n fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\r\n fontNameLowerCase = fontName.toLowerCase();\r\n\r\n if (\r\n fontmap[fontNameLowerCase] !== undefined &&\r\n fontmap[fontNameLowerCase][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontNameLowerCase][fontStyle];\r\n } else if (\r\n fontmap[fontName] !== undefined &&\r\n fontmap[fontName][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontName][fontStyle];\r\n } else {\r\n if (options.disableWarning === false) {\r\n console.warn(\r\n \"Unable to look up font label for font '\" +\r\n fontName +\r\n \"', '\" +\r\n fontStyle +\r\n \"'. Refer to getFontList() for available fonts.\"\r\n );\r\n }\r\n }\r\n\r\n if (!key && !options.noFallback) {\r\n key = fontmap[\"times\"][fontStyle];\r\n if (key == null) {\r\n key = fontmap[\"times\"][\"normal\"];\r\n }\r\n }\r\n return key;\r\n };\r\n\r\n var putInfo = (API.__private__.putInfo = function() {\r\n var objectId = newObject();\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n out(\"<<\");\r\n out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\r\n for (var key in documentProperties) {\r\n if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\r\n out(\r\n \"/\" +\r\n key.substr(0, 1).toUpperCase() +\r\n key.substr(1) +\r\n \" (\" +\r\n pdfEscape(encryptor(documentProperties[key])) +\r\n \")\"\r\n );\r\n }\r\n }\r\n out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putCatalog = (API.__private__.putCatalog = function(options) {\r\n options = options || {};\r\n var tmpRootDictionaryObjId =\r\n options.rootDictionaryObjId || rootDictionaryObjId;\r\n newObject();\r\n out(\"<<\");\r\n out(\"/Type /Catalog\");\r\n out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\r\n // PDF13ref Section 7.2.1\r\n if (!zoomMode) zoomMode = \"fullwidth\";\r\n switch (zoomMode) {\r\n case \"fullwidth\":\r\n out(\"/OpenAction [3 0 R /FitH null]\");\r\n break;\r\n case \"fullheight\":\r\n out(\"/OpenAction [3 0 R /FitV null]\");\r\n break;\r\n case \"fullpage\":\r\n out(\"/OpenAction [3 0 R /Fit]\");\r\n break;\r\n case \"original\":\r\n out(\"/OpenAction [3 0 R /XYZ null null 1]\");\r\n break;\r\n default:\r\n var pcn = \"\" + zoomMode;\r\n if (pcn.substr(pcn.length - 1) === \"%\")\r\n zoomMode = parseInt(zoomMode) / 100;\r\n if (typeof zoomMode === \"number\") {\r\n out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\r\n }\r\n }\r\n if (!layoutMode) layoutMode = \"continuous\";\r\n switch (layoutMode) {\r\n case \"continuous\":\r\n out(\"/PageLayout /OneColumn\");\r\n break;\r\n case \"single\":\r\n out(\"/PageLayout /SinglePage\");\r\n break;\r\n case \"two\":\r\n case \"twoleft\":\r\n out(\"/PageLayout /TwoColumnLeft\");\r\n break;\r\n case \"tworight\":\r\n out(\"/PageLayout /TwoColumnRight\");\r\n break;\r\n }\r\n if (pageMode) {\r\n /**\r\n * A name object specifying how the document should be displayed when opened:\r\n * UseNone : Neither document outline nor thumbnail images visible -- DEFAULT\r\n * UseOutlines : Document outline visible\r\n * UseThumbs : Thumbnail images visible\r\n * FullScreen : Full-screen mode, with no menu bar, window controls, or any other window visible\r\n */\r\n out(\"/PageMode /\" + pageMode);\r\n }\r\n events.publish(\"putCatalog\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putTrailer = (API.__private__.putTrailer = function() {\r\n out(\"trailer\");\r\n out(\"<<\");\r\n out(\"/Size \" + (objectNumber + 1));\r\n // Root and Info must be the last and second last objects written respectively\r\n out(\"/Root \" + objectNumber + \" 0 R\");\r\n out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\r\n if (encryptionOptions !== null) {\r\n out(\"/Encrypt \" + encryption.oid + \" 0 R\");\r\n }\r\n out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\r\n out(\">>\");\r\n });\r\n\r\n var putHeader = (API.__private__.putHeader = function() {\r\n out(\"%PDF-\" + pdfVersion);\r\n out(\"%\\xBA\\xDF\\xAC\\xE0\");\r\n });\r\n\r\n var putXRef = (API.__private__.putXRef = function() {\r\n var p = \"0000000000\";\r\n\r\n out(\"xref\");\r\n out(\"0 \" + (objectNumber + 1));\r\n out(\"0000000000 65535 f \");\r\n for (var i = 1; i <= objectNumber; i++) {\r\n var offset = offsets[i];\r\n if (typeof offset === \"function\") {\r\n out((p + offsets[i]()).slice(-10) + \" 00000 n \");\r\n } else {\r\n if (typeof offsets[i] !== \"undefined\") {\r\n out((p + offsets[i]).slice(-10) + \" 00000 n \");\r\n } else {\r\n out(\"0000000000 00000 n \");\r\n }\r\n }\r\n }\r\n });\r\n\r\n var buildDocument = (API.__private__.buildDocument = function() {\r\n resetDocument();\r\n setOutputDestination(content);\r\n\r\n events.publish(\"buildDocument\");\r\n\r\n putHeader();\r\n putPages();\r\n putAdditionalObjects();\r\n putResources();\r\n if (encryptionOptions !== null) putEncryptionDict();\r\n putInfo();\r\n putCatalog();\r\n\r\n var offsetOfXRef = contentLength;\r\n putXRef();\r\n putTrailer();\r\n out(\"startxref\");\r\n out(\"\" + offsetOfXRef);\r\n out(\"%%EOF\");\r\n\r\n setOutputDestination(pages[currentPage]);\r\n\r\n return content.join(\"\\n\");\r\n });\r\n\r\n var getBlob = (API.__private__.getBlob = function(data) {\r\n return new Blob([getArrayBuffer(data)], {\r\n type: \"application/pdf\"\r\n });\r\n });\r\n\r\n /**\r\n * Generates the PDF document.\r\n *\r\n * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\r\n *\r\n * @param {string} type A string identifying one of the possible output types.
\r\n * Possible values are:
\r\n * 'arraybuffer' -> (ArrayBuffer)
\r\n * 'blob' -> (Blob)
\r\n * 'bloburi'/'bloburl' -> (string)
\r\n * 'datauristring'/'dataurlstring' -> (string)
\r\n * 'datauri'/'dataurl' -> (undefined) -> change location to generated datauristring/dataurlstring
\r\n * 'dataurlnewwindow' -> (window | null | undefined) throws error if global isn't a window object(node)
\r\n * 'pdfobjectnewwindow' -> (window | null) throws error if global isn't a window object(node)
\r\n * 'pdfjsnewwindow' -> (wind | null)\r\n * @param {Object|string} options An object providing some additional signalling to PDF generator.
\r\n * Possible options are 'filename'.
\r\n * A string can be passed instead of {filename:string} and defaults to 'generated.pdf'\r\n * @function\r\n * @instance\r\n * @returns {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}\r\n * @memberof jsPDF#\r\n * @name output\r\n */\r\n var output = (API.output = API.__private__.output = SAFE(function output(\r\n type,\r\n options\r\n ) {\r\n options = options || {};\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n filename: options\r\n };\r\n } else {\r\n options.filename = options.filename || \"generated.pdf\";\r\n }\r\n\r\n switch (type) {\r\n case undefined:\r\n return buildDocument();\r\n case \"save\":\r\n API.save(options.filename);\r\n break;\r\n case \"arraybuffer\":\r\n return getArrayBuffer(buildDocument());\r\n case \"blob\":\r\n return getBlob(buildDocument());\r\n case \"bloburi\":\r\n case \"bloburl\":\r\n // Developer is responsible of calling revokeObjectURL\r\n if (\r\n typeof globalObject.URL !== \"undefined\" &&\r\n typeof globalObject.URL.createObjectURL === \"function\"\r\n ) {\r\n return (\r\n (globalObject.URL &&\r\n globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\r\n void 0\r\n );\r\n } else {\r\n console.warn(\r\n \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\r\n );\r\n }\r\n break;\r\n case \"datauristring\":\r\n case \"dataurlstring\":\r\n var dataURI = \"\";\r\n var pdfDocument = buildDocument();\r\n try {\r\n dataURI = btoa(pdfDocument);\r\n } catch (e) {\r\n dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\r\n }\r\n return (\r\n \"data:application/pdf;filename=\" +\r\n options.filename +\r\n \";base64,\" +\r\n dataURI\r\n );\r\n case \"pdfobjectnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfObjectUrl =\r\n \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\r\n var integrity =\r\n ' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';\r\n\r\n if (options.pdfObjectUrl) {\r\n pdfObjectUrl = options.pdfObjectUrl;\r\n integrity = \"\";\r\n }\r\n\r\n var htmlForNewWindow =\r\n \"\" +\r\n '\";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n var findWidth = function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n };\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(findWidth);\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n // when using unicode fonts, wordSpacePerLine does not apply\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n let backToStartX = 0;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n if (l < len - 1) {\r\n let spacing = scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n );\r\n let words = da[l].split(\" \");\r\n text.push([words[0] + \" \", newX, newY]);\r\n backToStartX = 0; // distance to reset back to the left\r\n for (let i = 1; i < words.length; i++) {\r\n let shiftAmount =\r\n (findWidth(words[i - 1] + \" \" + words[i]) -\r\n findWidth(words[i])) *\r\n scaleFactor +\r\n spacing;\r\n if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n else text.push([words[i] + \" \", shiftAmount, 0]);\r\n backToStartX -= shiftAmount;\r\n }\r\n } else {\r\n text.push([da[l], newX, newY]);\r\n }\r\n }\r\n text.push([\"\", backToStartX, 0]);\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r startIndex) {\n var value = result[1];\n var token = new Token(\n rules[i].name,\n value,\n source.range(startIndex, endIndex)\n );\n return {token: token, endIndex: endIndex};\n }\n }\n }\n var endIndex = startIndex + 1;\n var token = new Token(\n \"unrecognisedCharacter\",\n string.substring(startIndex, endIndex),\n source.range(startIndex, endIndex)\n );\n return {token: token, endIndex: endIndex};\n }\n \n function endToken(input, source) {\n return new Token(\n \"end\",\n null,\n source.range(input.length, input.length)\n );\n }\n \n return {\n tokenise: tokenise\n }\n}\n\n\n","var _ = require(\"underscore\");\nvar options = require(\"option\");\nvar results = require(\"./parsing-results\");\nvar errors = require(\"./errors\");\nvar lazyIterators = require(\"./lazy-iterators\");\n\nexports.token = function(tokenType, value) {\n var matchValue = value !== undefined;\n return function(input) {\n var token = input.head();\n if (token && token.name === tokenType && (!matchValue || token.value === value)) {\n return results.success(token.value, input.tail(), token.source);\n } else {\n var expected = describeToken({name: tokenType, value: value});\n return describeTokenMismatch(input, expected);\n }\n };\n};\n\nexports.tokenOfType = function(tokenType) {\n return exports.token(tokenType);\n};\n\nexports.firstOf = function(name, parsers) {\n if (!_.isArray(parsers)) {\n parsers = Array.prototype.slice.call(arguments, 1);\n }\n return function(input) {\n return lazyIterators\n .fromArray(parsers)\n .map(function(parser) {\n return parser(input);\n })\n .filter(function(result) {\n return result.isSuccess() || result.isError();\n })\n .first() || describeTokenMismatch(input, name);\n };\n};\n\nexports.then = function(parser, func) {\n return function(input) {\n var result = parser(input);\n if (!result.map) {\n console.log(result);\n }\n return result.map(func);\n };\n};\n\nexports.sequence = function() {\n var parsers = Array.prototype.slice.call(arguments, 0);\n var rule = function(input) {\n var result = _.foldl(parsers, function(memo, parser) {\n var result = memo.result;\n var hasCut = memo.hasCut;\n if (!result.isSuccess()) {\n return {result: result, hasCut: hasCut};\n }\n var subResult = parser(result.remaining());\n if (subResult.isCut()) {\n return {result: result, hasCut: true};\n } else if (subResult.isSuccess()) {\n var values;\n if (parser.isCaptured) {\n values = result.value().withValue(parser, subResult.value());\n } else {\n values = result.value();\n }\n var remaining = subResult.remaining();\n var source = input.to(remaining);\n return {\n result: results.success(values, remaining, source),\n hasCut: hasCut\n };\n } else if (hasCut) {\n return {result: results.error(subResult.errors(), subResult.remaining()), hasCut: hasCut};\n } else {\n return {result: subResult, hasCut: hasCut};\n }\n }, {result: results.success(new SequenceValues(), input), hasCut: false}).result;\n var source = input.to(result.remaining());\n return result.map(function(values) {\n return values.withValue(exports.sequence.source, source);\n });\n };\n rule.head = function() {\n var firstCapture = _.find(parsers, isCapturedRule);\n return exports.then(\n rule,\n exports.sequence.extract(firstCapture)\n );\n };\n rule.map = function(func) {\n return exports.then(\n rule,\n function(result) {\n return func.apply(this, result.toArray());\n }\n );\n };\n \n function isCapturedRule(subRule) {\n return subRule.isCaptured;\n }\n \n return rule;\n};\n\nvar SequenceValues = function(values, valuesArray) {\n this._values = values || {};\n this._valuesArray = valuesArray || [];\n};\n\nSequenceValues.prototype.withValue = function(rule, value) {\n if (rule.captureName && rule.captureName in this._values) {\n throw new Error(\"Cannot add second value for capture \\\"\" + rule.captureName + \"\\\"\");\n } else {\n var newValues = _.clone(this._values);\n newValues[rule.captureName] = value;\n var newValuesArray = this._valuesArray.concat([value]);\n return new SequenceValues(newValues, newValuesArray);\n }\n};\n\nSequenceValues.prototype.get = function(rule) {\n if (rule.captureName in this._values) {\n return this._values[rule.captureName];\n } else {\n throw new Error(\"No value for capture \\\"\" + rule.captureName + \"\\\"\");\n }\n};\n\nSequenceValues.prototype.toArray = function() {\n return this._valuesArray;\n};\n\nexports.sequence.capture = function(rule, name) {\n var captureRule = function() {\n return rule.apply(this, arguments);\n };\n captureRule.captureName = name;\n captureRule.isCaptured = true;\n return captureRule;\n};\n\nexports.sequence.extract = function(rule) {\n return function(result) {\n return result.get(rule);\n };\n};\n\nexports.sequence.applyValues = function(func) {\n // TODO: check captureName doesn't conflict with source or other captures\n var rules = Array.prototype.slice.call(arguments, 1);\n return function(result) {\n var values = rules.map(function(rule) {\n return result.get(rule);\n });\n return func.apply(this, values);\n };\n};\n\nexports.sequence.source = {\n captureName: \"☃source☃\"\n};\n\nexports.sequence.cut = function() {\n return function(input) {\n return results.cut(input);\n };\n};\n\nexports.optional = function(rule) {\n return function(input) {\n var result = rule(input);\n if (result.isSuccess()) {\n return result.map(options.some);\n } else if (result.isFailure()) {\n return results.success(options.none, input);\n } else {\n return result;\n }\n };\n};\n\nexports.zeroOrMoreWithSeparator = function(rule, separator) {\n return repeatedWithSeparator(rule, separator, false);\n};\n\nexports.oneOrMoreWithSeparator = function(rule, separator) {\n return repeatedWithSeparator(rule, separator, true);\n};\n\nvar zeroOrMore = exports.zeroOrMore = function(rule) {\n return function(input) {\n var values = [];\n var result;\n while ((result = rule(input)) && result.isSuccess()) {\n input = result.remaining();\n values.push(result.value());\n }\n if (result.isError()) {\n return result;\n } else {\n return results.success(values, input);\n }\n };\n};\n\nexports.oneOrMore = function(rule) {\n return exports.oneOrMoreWithSeparator(rule, noOpRule);\n};\n\nfunction noOpRule(input) {\n return results.success(null, input);\n}\n\nvar repeatedWithSeparator = function(rule, separator, isOneOrMore) {\n return function(input) {\n var result = rule(input);\n if (result.isSuccess()) {\n var mainRule = exports.sequence.capture(rule, \"main\");\n var remainingRule = zeroOrMore(exports.then(\n exports.sequence(separator, mainRule),\n exports.sequence.extract(mainRule)\n ));\n var remainingResult = remainingRule(result.remaining());\n return results.success([result.value()].concat(remainingResult.value()), remainingResult.remaining());\n } else if (isOneOrMore || result.isError()) {\n return result;\n } else {\n return results.success([], input);\n }\n };\n};\n\nexports.leftAssociative = function(leftRule, rightRule, func) {\n var rights;\n if (func) {\n rights = [{func: func, rule: rightRule}];\n } else {\n rights = rightRule;\n }\n rights = rights.map(function(right) {\n return exports.then(right.rule, function(rightValue) {\n return function(leftValue, source) {\n return right.func(leftValue, rightValue, source);\n };\n });\n });\n var repeatedRule = exports.firstOf.apply(null, [\"rules\"].concat(rights));\n \n return function(input) {\n var start = input;\n var leftResult = leftRule(input);\n if (!leftResult.isSuccess()) {\n return leftResult;\n }\n var repeatedResult = repeatedRule(leftResult.remaining());\n while (repeatedResult.isSuccess()) {\n var remaining = repeatedResult.remaining();\n var source = start.to(repeatedResult.remaining());\n var right = repeatedResult.value();\n leftResult = results.success(\n right(leftResult.value(), source),\n remaining,\n source\n );\n repeatedResult = repeatedRule(leftResult.remaining());\n }\n if (repeatedResult.isError()) {\n return repeatedResult;\n }\n return leftResult;\n };\n};\n\nexports.leftAssociative.firstOf = function() {\n return Array.prototype.slice.call(arguments, 0);\n};\n\nexports.nonConsuming = function(rule) {\n return function(input) {\n return rule(input).changeRemaining(input);\n };\n};\n\nvar describeToken = function(token) {\n if (token.value) {\n return token.name + \" \\\"\" + token.value + \"\\\"\";\n } else {\n return token.name;\n }\n};\n\nfunction describeTokenMismatch(input, expected) {\n var error;\n var token = input.head();\n if (token) {\n error = errors.error({\n expected: expected,\n actual: describeToken(token),\n location: token.source\n });\n } else {\n error = errors.error({\n expected: expected,\n actual: \"end of tokens\"\n });\n }\n return results.failure([error], input);\n}\n","var promises = require(\"../../lib/promises\");\n\nexports.Files = Files;\n\n\nfunction Files() {\n function read(uri) {\n return promises.reject(new Error(\"could not open external image: '\" + uri + \"'\\ncannot open linked files from a web browser\"));\n }\n \n return {\n read: read\n };\n}\n","var promises = require(\"../lib/promises\");\nvar zipfile = require(\"../lib/zipfile\");\n\nexports.openZip = openZip;\n\nfunction openZip(options) {\n if (options.arrayBuffer) {\n return promises.resolve(zipfile.openArrayBuffer(options.arrayBuffer));\n } else {\n return promises.reject(new Error(\"Could not find file in options\"));\n }\n}\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar documents = require(\"./documents\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar results = require(\"./results\");\nvar images = require(\"./images\");\nvar Html = require(\"./html\");\nvar writers = require(\"./writers\");\n\nexports.DocumentConverter = DocumentConverter;\n\n\nfunction DocumentConverter(options) {\n return {\n convertToHtml: function(element) {\n var comments = _.indexBy(\n element.type === documents.types.document ? element.comments : [],\n \"commentId\"\n );\n var conversion = new DocumentConversion(options, comments);\n return conversion.convertToHtml(element);\n }\n };\n}\n\nfunction DocumentConversion(options, comments) {\n var noteNumber = 1;\n\n var noteReferences = [];\n\n var referencedComments = [];\n\n options = _.extend({ignoreEmptyParagraphs: true}, options);\n var idPrefix = options.idPrefix === undefined ? \"\" : options.idPrefix;\n var ignoreEmptyParagraphs = options.ignoreEmptyParagraphs;\n\n var defaultParagraphStyle = htmlPaths.topLevelElement(\"p\");\n\n var styleMap = options.styleMap || [];\n\n function convertToHtml(document) {\n var messages = [];\n\n var html = elementToHtml(document, messages, {});\n\n var deferredNodes = [];\n walkHtml(html, function(node) {\n if (node.type === \"deferred\") {\n deferredNodes.push(node);\n }\n });\n var deferredValues = {};\n return promises.mapSeries(deferredNodes, function(deferred) {\n return deferred.value().then(function(value) {\n deferredValues[deferred.id] = value;\n });\n }).then(function() {\n function replaceDeferred(nodes) {\n return flatMap(nodes, function(node) {\n if (node.type === \"deferred\") {\n return deferredValues[node.id];\n } else if (node.children) {\n return [\n _.extend({}, node, {\n children: replaceDeferred(node.children)\n })\n ];\n } else {\n return [node];\n }\n });\n }\n var writer = writers.writer({\n prettyPrint: options.prettyPrint,\n outputFormat: options.outputFormat\n });\n Html.write(writer, Html.simplify(replaceDeferred(html)));\n return new results.Result(writer.asString(), messages);\n });\n }\n\n function convertElements(elements, messages, options) {\n return flatMap(elements, function(element) {\n return elementToHtml(element, messages, options);\n });\n }\n\n function elementToHtml(element, messages, options) {\n if (!options) {\n throw new Error(\"options not set\");\n }\n var handler = elementConverters[element.type];\n if (handler) {\n return handler(element, messages, options);\n } else {\n return [];\n }\n }\n\n function convertParagraph(element, messages, options) {\n return htmlPathForParagraph(element, messages).wrap(function() {\n var content = convertElements(element.children, messages, options);\n if (ignoreEmptyParagraphs) {\n return content;\n } else {\n return [Html.forceWrite].concat(content);\n }\n });\n }\n\n function htmlPathForParagraph(element, messages) {\n var style = findStyle(element);\n\n if (style) {\n return style.to;\n } else {\n if (element.styleId) {\n messages.push(unrecognisedStyleWarning(\"paragraph\", element));\n }\n return defaultParagraphStyle;\n }\n }\n\n function convertRun(run, messages, options) {\n var nodes = function() {\n return convertElements(run.children, messages, options);\n };\n var paths = [];\n if (run.highlight !== null) {\n var path = findHtmlPath({type: \"highlight\", color: run.highlight});\n if (path) {\n paths.push(path);\n }\n }\n if (run.isSmallCaps) {\n paths.push(findHtmlPathForRunProperty(\"smallCaps\"));\n }\n if (run.isAllCaps) {\n paths.push(findHtmlPathForRunProperty(\"allCaps\"));\n }\n if (run.isStrikethrough) {\n paths.push(findHtmlPathForRunProperty(\"strikethrough\", \"s\"));\n }\n if (run.isUnderline) {\n paths.push(findHtmlPathForRunProperty(\"underline\"));\n }\n if (run.verticalAlignment === documents.verticalAlignment.subscript) {\n paths.push(htmlPaths.element(\"sub\", {}, {fresh: false}));\n }\n if (run.verticalAlignment === documents.verticalAlignment.superscript) {\n paths.push(htmlPaths.element(\"sup\", {}, {fresh: false}));\n }\n if (run.isItalic) {\n paths.push(findHtmlPathForRunProperty(\"italic\", \"em\"));\n }\n if (run.isBold) {\n paths.push(findHtmlPathForRunProperty(\"bold\", \"strong\"));\n }\n var stylePath = htmlPaths.empty;\n var style = findStyle(run);\n if (style) {\n stylePath = style.to;\n } else if (run.styleId) {\n messages.push(unrecognisedStyleWarning(\"run\", run));\n }\n paths.push(stylePath);\n\n paths.forEach(function(path) {\n nodes = path.wrap.bind(path, nodes);\n });\n\n return nodes();\n }\n\n function findHtmlPathForRunProperty(elementType, defaultTagName) {\n var path = findHtmlPath({type: elementType});\n if (path) {\n return path;\n } else if (defaultTagName) {\n return htmlPaths.element(defaultTagName, {}, {fresh: false});\n } else {\n return htmlPaths.empty;\n }\n }\n\n function findHtmlPath(element, defaultPath) {\n var style = findStyle(element);\n return style ? style.to : defaultPath;\n }\n\n function findStyle(element) {\n for (var i = 0; i < styleMap.length; i++) {\n if (styleMap[i].from.matches(element)) {\n return styleMap[i];\n }\n }\n }\n\n function recoveringConvertImage(convertImage) {\n return function(image, messages) {\n return promises.attempt(function() {\n return convertImage(image, messages);\n }).caught(function(error) {\n messages.push(results.error(error));\n return [];\n });\n };\n }\n\n function noteHtmlId(note) {\n return referentHtmlId(note.noteType, note.noteId);\n }\n\n function noteRefHtmlId(note) {\n return referenceHtmlId(note.noteType, note.noteId);\n }\n\n function referentHtmlId(referenceType, referenceId) {\n return htmlId(referenceType + \"-\" + referenceId);\n }\n\n function referenceHtmlId(referenceType, referenceId) {\n return htmlId(referenceType + \"-ref-\" + referenceId);\n }\n\n function htmlId(suffix) {\n return idPrefix + suffix;\n }\n\n var defaultTablePath = htmlPaths.elements([\n htmlPaths.element(\"table\", {}, {fresh: true})\n ]);\n\n function convertTable(element, messages, options) {\n return findHtmlPath(element, defaultTablePath).wrap(function() {\n return convertTableChildren(element, messages, options);\n });\n }\n\n function convertTableChildren(element, messages, options) {\n var bodyIndex = _.findIndex(element.children, function(child) {\n return !child.type === documents.types.tableRow || !child.isHeader;\n });\n if (bodyIndex === -1) {\n bodyIndex = element.children.length;\n }\n var children;\n if (bodyIndex === 0) {\n children = convertElements(\n element.children,\n messages,\n _.extend({}, options, {isTableHeader: false})\n );\n } else {\n var headRows = convertElements(\n element.children.slice(0, bodyIndex),\n messages,\n _.extend({}, options, {isTableHeader: true})\n );\n var bodyRows = convertElements(\n element.children.slice(bodyIndex),\n messages,\n _.extend({}, options, {isTableHeader: false})\n );\n children = [\n Html.freshElement(\"thead\", {}, headRows),\n Html.freshElement(\"tbody\", {}, bodyRows)\n ];\n }\n return [Html.forceWrite].concat(children);\n }\n\n function convertTableRow(element, messages, options) {\n var children = convertElements(element.children, messages, options);\n return [\n Html.freshElement(\"tr\", {}, [Html.forceWrite].concat(children))\n ];\n }\n\n function convertTableCell(element, messages, options) {\n var tagName = options.isTableHeader ? \"th\" : \"td\";\n var children = convertElements(element.children, messages, options);\n var attributes = {};\n if (element.colSpan !== 1) {\n attributes.colspan = element.colSpan.toString();\n }\n if (element.rowSpan !== 1) {\n attributes.rowspan = element.rowSpan.toString();\n }\n\n return [\n Html.freshElement(tagName, attributes, [Html.forceWrite].concat(children))\n ];\n }\n\n function convertCommentReference(reference, messages, options) {\n return findHtmlPath(reference, htmlPaths.ignore).wrap(function() {\n var comment = comments[reference.commentId];\n var count = referencedComments.length + 1;\n var label = \"[\" + commentAuthorLabel(comment) + count + \"]\";\n referencedComments.push({label: label, comment: comment});\n // TODO: remove duplication with note references\n return [\n Html.freshElement(\"a\", {\n href: \"#\" + referentHtmlId(\"comment\", reference.commentId),\n id: referenceHtmlId(\"comment\", reference.commentId)\n }, [Html.text(label)])\n ];\n });\n }\n\n function convertComment(referencedComment, messages, options) {\n // TODO: remove duplication with note references\n\n var label = referencedComment.label;\n var comment = referencedComment.comment;\n var body = convertElements(comment.body, messages, options).concat([\n Html.nonFreshElement(\"p\", {}, [\n Html.text(\" \"),\n Html.freshElement(\"a\", {\"href\": \"#\" + referenceHtmlId(\"comment\", comment.commentId)}, [\n Html.text(\"↑\")\n ])\n ])\n ]);\n\n return [\n Html.freshElement(\n \"dt\",\n {\"id\": referentHtmlId(\"comment\", comment.commentId)},\n [Html.text(\"Comment \" + label)]\n ),\n Html.freshElement(\"dd\", {}, body)\n ];\n }\n\n function convertBreak(element, messages, options) {\n return htmlPathForBreak(element).wrap(function() {\n return [];\n });\n }\n\n function htmlPathForBreak(element) {\n var style = findStyle(element);\n if (style) {\n return style.to;\n } else if (element.breakType === \"line\") {\n return htmlPaths.topLevelElement(\"br\");\n } else {\n return htmlPaths.empty;\n }\n }\n\n var elementConverters = {\n \"document\": function(document, messages, options) {\n var children = convertElements(document.children, messages, options);\n var notes = noteReferences.map(function(noteReference) {\n return document.notes.resolve(noteReference);\n });\n var notesNodes = convertElements(notes, messages, options);\n return children.concat([\n Html.freshElement(\"ol\", {}, notesNodes),\n Html.freshElement(\"dl\", {}, flatMap(referencedComments, function(referencedComment) {\n return convertComment(referencedComment, messages, options);\n }))\n ]);\n },\n \"paragraph\": convertParagraph,\n \"run\": convertRun,\n \"text\": function(element, messages, options) {\n return [Html.text(element.value)];\n },\n \"tab\": function(element, messages, options) {\n return [Html.text(\"\\t\")];\n },\n \"hyperlink\": function(element, messages, options) {\n var href = element.anchor ? \"#\" + htmlId(element.anchor) : element.href;\n var attributes = {href: href};\n if (element.targetFrame != null) {\n attributes.target = element.targetFrame;\n }\n\n var children = convertElements(element.children, messages, options);\n return [Html.nonFreshElement(\"a\", attributes, children)];\n },\n \"checkbox\": function(element) {\n var attributes = {type: \"checkbox\"};\n if (element.checked) {\n attributes[\"checked\"] = \"checked\";\n }\n return [Html.freshElement(\"input\", attributes)];\n },\n \"bookmarkStart\": function(element, messages, options) {\n var anchor = Html.freshElement(\"a\", {\n id: htmlId(element.name)\n }, [Html.forceWrite]);\n return [anchor];\n },\n \"noteReference\": function(element, messages, options) {\n noteReferences.push(element);\n var anchor = Html.freshElement(\"a\", {\n href: \"#\" + noteHtmlId(element),\n id: noteRefHtmlId(element)\n }, [Html.text(\"[\" + (noteNumber++) + \"]\")]);\n\n return [Html.freshElement(\"sup\", {}, [anchor])];\n },\n \"note\": function(element, messages, options) {\n var children = convertElements(element.body, messages, options);\n var backLink = Html.elementWithTag(htmlPaths.element(\"p\", {}, {fresh: false}), [\n Html.text(\" \"),\n Html.freshElement(\"a\", {href: \"#\" + noteRefHtmlId(element)}, [Html.text(\"↑\")])\n ]);\n var body = children.concat([backLink]);\n\n return Html.freshElement(\"li\", {id: noteHtmlId(element)}, body);\n },\n \"commentReference\": convertCommentReference,\n \"comment\": convertComment,\n \"image\": deferredConversion(recoveringConvertImage(options.convertImage || images.dataUri)),\n \"table\": convertTable,\n \"tableRow\": convertTableRow,\n \"tableCell\": convertTableCell,\n \"break\": convertBreak\n };\n return {\n convertToHtml: convertToHtml\n };\n}\n\nvar deferredId = 1;\n\nfunction deferredConversion(func) {\n return function(element, messages, options) {\n return [\n {\n type: \"deferred\",\n id: deferredId++,\n value: function() {\n return func(element, messages, options);\n }\n }\n ];\n };\n}\n\nfunction unrecognisedStyleWarning(type, element) {\n return results.warning(\n \"Unrecognised \" + type + \" style: '\" + element.styleName + \"'\" +\n \" (Style ID: \" + element.styleId + \")\"\n );\n}\n\nfunction flatMap(values, func) {\n return _.flatten(values.map(func), true);\n}\n\nfunction walkHtml(nodes, callback) {\n nodes.forEach(function(node) {\n callback(node);\n if (node.children) {\n walkHtml(node.children, callback);\n }\n });\n}\n\nvar commentAuthorLabel = exports.commentAuthorLabel = function commentAuthorLabel(comment) {\n return comment.authorInitials || \"\";\n};\n","var _ = require(\"underscore\");\n\nvar types = exports.types = {\n document: \"document\",\n paragraph: \"paragraph\",\n run: \"run\",\n text: \"text\",\n tab: \"tab\",\n checkbox: \"checkbox\",\n hyperlink: \"hyperlink\",\n noteReference: \"noteReference\",\n image: \"image\",\n note: \"note\",\n commentReference: \"commentReference\",\n comment: \"comment\",\n table: \"table\",\n tableRow: \"tableRow\",\n tableCell: \"tableCell\",\n \"break\": \"break\",\n bookmarkStart: \"bookmarkStart\"\n};\n\nfunction Document(children, options) {\n options = options || {};\n return {\n type: types.document,\n children: children,\n notes: options.notes || new Notes({}),\n comments: options.comments || []\n };\n}\n\nfunction Paragraph(children, properties) {\n properties = properties || {};\n var indent = properties.indent || {};\n return {\n type: types.paragraph,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null,\n numbering: properties.numbering || null,\n alignment: properties.alignment || null,\n indent: {\n start: indent.start || null,\n end: indent.end || null,\n firstLine: indent.firstLine || null,\n hanging: indent.hanging || null\n }\n };\n}\n\nfunction Run(children, properties) {\n properties = properties || {};\n return {\n type: types.run,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null,\n isBold: !!properties.isBold,\n isUnderline: !!properties.isUnderline,\n isItalic: !!properties.isItalic,\n isStrikethrough: !!properties.isStrikethrough,\n isAllCaps: !!properties.isAllCaps,\n isSmallCaps: !!properties.isSmallCaps,\n verticalAlignment: properties.verticalAlignment || verticalAlignment.baseline,\n font: properties.font || null,\n fontSize: properties.fontSize || null,\n highlight: properties.highlight || null\n };\n}\n\nvar verticalAlignment = {\n baseline: \"baseline\",\n superscript: \"superscript\",\n subscript: \"subscript\"\n};\n\nfunction Text(value) {\n return {\n type: types.text,\n value: value\n };\n}\n\nfunction Tab() {\n return {\n type: types.tab\n };\n}\n\nfunction Checkbox(options) {\n return {\n type: types.checkbox,\n checked: options.checked\n };\n}\n\nfunction Hyperlink(children, options) {\n return {\n type: types.hyperlink,\n children: children,\n href: options.href,\n anchor: options.anchor,\n targetFrame: options.targetFrame\n };\n}\n\nfunction NoteReference(options) {\n return {\n type: types.noteReference,\n noteType: options.noteType,\n noteId: options.noteId\n };\n}\n\nfunction Notes(notes) {\n this._notes = _.indexBy(notes, function(note) {\n return noteKey(note.noteType, note.noteId);\n });\n}\n\nNotes.prototype.resolve = function(reference) {\n return this.findNoteByKey(noteKey(reference.noteType, reference.noteId));\n};\n\nNotes.prototype.findNoteByKey = function(key) {\n return this._notes[key] || null;\n};\n\nfunction Note(options) {\n return {\n type: types.note,\n noteType: options.noteType,\n noteId: options.noteId,\n body: options.body\n };\n}\n\nfunction commentReference(options) {\n return {\n type: types.commentReference,\n commentId: options.commentId\n };\n}\n\nfunction comment(options) {\n return {\n type: types.comment,\n commentId: options.commentId,\n body: options.body,\n authorName: options.authorName,\n authorInitials: options.authorInitials\n };\n}\n\nfunction noteKey(noteType, id) {\n return noteType + \"-\" + id;\n}\n\nfunction Image(options) {\n return {\n type: types.image,\n // `read` is retained for backwards compatibility, but other read\n // methods should be preferred.\n read: function(encoding) {\n if (encoding) {\n return options.readImage(encoding);\n } else {\n return options.readImage().then(function(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n });\n }\n },\n readAsArrayBuffer: function() {\n return options.readImage();\n },\n readAsBase64String: function() {\n return options.readImage(\"base64\");\n },\n readAsBuffer: function() {\n return options.readImage().then(function(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n });\n },\n altText: options.altText,\n contentType: options.contentType\n };\n}\n\nfunction Table(children, properties) {\n properties = properties || {};\n return {\n type: types.table,\n children: children,\n styleId: properties.styleId || null,\n styleName: properties.styleName || null\n };\n}\n\nfunction TableRow(children, options) {\n options = options || {};\n return {\n type: types.tableRow,\n children: children,\n isHeader: options.isHeader || false\n };\n}\n\nfunction TableCell(children, options) {\n options = options || {};\n return {\n type: types.tableCell,\n children: children,\n colSpan: options.colSpan == null ? 1 : options.colSpan,\n rowSpan: options.rowSpan == null ? 1 : options.rowSpan\n };\n}\n\nfunction Break(breakType) {\n return {\n type: types[\"break\"],\n breakType: breakType\n };\n}\n\nfunction BookmarkStart(options) {\n return {\n type: types.bookmarkStart,\n name: options.name\n };\n}\n\nexports.document = exports.Document = Document;\nexports.paragraph = exports.Paragraph = Paragraph;\nexports.run = exports.Run = Run;\nexports.text = exports.Text = Text;\nexports.tab = exports.Tab = Tab;\nexports.checkbox = exports.Checkbox = Checkbox;\nexports.Hyperlink = Hyperlink;\nexports.noteReference = exports.NoteReference = NoteReference;\nexports.Notes = Notes;\nexports.Note = Note;\nexports.commentReference = commentReference;\nexports.comment = comment;\nexports.Image = Image;\nexports.Table = Table;\nexports.TableRow = TableRow;\nexports.TableCell = TableCell;\nexports.lineBreak = Break(\"line\");\nexports.pageBreak = Break(\"page\");\nexports.columnBreak = Break(\"column\");\nexports.BookmarkStart = BookmarkStart;\n\nexports.verticalAlignment = verticalAlignment;\n","exports.createBodyReader = createBodyReader;\nexports._readNumberingProperties = readNumberingProperties;\n\nvar dingbatToUnicode = require(\"dingbat-to-unicode\");\nvar _ = require(\"underscore\");\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar warning = require(\"../results\").warning;\nvar xml = require(\"../xml\");\nvar uris = require(\"./uris\");\n\nfunction createBodyReader(options) {\n return {\n readXmlElement: function(element) {\n return new BodyReader(options).readXmlElement(element);\n },\n readXmlElements: function(elements) {\n return new BodyReader(options).readXmlElements(elements);\n }\n };\n}\n\nfunction BodyReader(options) {\n var complexFieldStack = [];\n var currentInstrText = [];\n\n // When a paragraph is marked as deleted, its contents should be combined\n // with the following paragraph. See 17.13.5.15 del (Deleted Paragraph) of\n // ECMA-376 4th edition Part 1.\n var deletedParagraphContents = [];\n\n var relationships = options.relationships;\n var contentTypes = options.contentTypes;\n var docxFile = options.docxFile;\n var files = options.files;\n var numbering = options.numbering;\n var styles = options.styles;\n\n function readXmlElements(elements) {\n var results = elements.map(readXmlElement);\n return combineResults(results);\n }\n\n function readXmlElement(element) {\n if (element.type === \"element\") {\n var handler = xmlElementReaders[element.name];\n if (handler) {\n return handler(element);\n } else if (!Object.prototype.hasOwnProperty.call(ignoreElements, element.name)) {\n var message = warning(\"An unrecognised element was ignored: \" + element.name);\n return emptyResultWithMessages([message]);\n }\n }\n return emptyResult();\n }\n\n function readParagraphProperties(element) {\n return readParagraphStyle(element).map(function(style) {\n return {\n type: \"paragraphProperties\",\n styleId: style.styleId,\n styleName: style.name,\n alignment: element.firstOrEmpty(\"w:jc\").attributes[\"w:val\"],\n numbering: readNumberingProperties(style.styleId, element.firstOrEmpty(\"w:numPr\"), numbering),\n indent: readParagraphIndent(element.firstOrEmpty(\"w:ind\"))\n };\n });\n }\n\n function readParagraphIndent(element) {\n return {\n start: element.attributes[\"w:start\"] || element.attributes[\"w:left\"],\n end: element.attributes[\"w:end\"] || element.attributes[\"w:right\"],\n firstLine: element.attributes[\"w:firstLine\"],\n hanging: element.attributes[\"w:hanging\"]\n };\n }\n\n function readRunProperties(element) {\n return readRunStyle(element).map(function(style) {\n var fontSizeString = element.firstOrEmpty(\"w:sz\").attributes[\"w:val\"];\n // w:sz gives the font size in half points, so halve the value to get the size in points\n var fontSize = /^[0-9]+$/.test(fontSizeString) ? parseInt(fontSizeString, 10) / 2 : null;\n\n return {\n type: \"runProperties\",\n styleId: style.styleId,\n styleName: style.name,\n verticalAlignment: element.firstOrEmpty(\"w:vertAlign\").attributes[\"w:val\"],\n font: element.firstOrEmpty(\"w:rFonts\").attributes[\"w:ascii\"],\n fontSize: fontSize,\n isBold: readBooleanElement(element.first(\"w:b\")),\n isUnderline: readUnderline(element.first(\"w:u\")),\n isItalic: readBooleanElement(element.first(\"w:i\")),\n isStrikethrough: readBooleanElement(element.first(\"w:strike\")),\n isAllCaps: readBooleanElement(element.first(\"w:caps\")),\n isSmallCaps: readBooleanElement(element.first(\"w:smallCaps\")),\n highlight: readHighlightValue(element.firstOrEmpty(\"w:highlight\").attributes[\"w:val\"])\n };\n });\n }\n\n function readUnderline(element) {\n if (element) {\n var value = element.attributes[\"w:val\"];\n return value !== undefined && value !== \"false\" && value !== \"0\" && value !== \"none\";\n } else {\n return false;\n }\n }\n\n function readBooleanElement(element) {\n if (element) {\n var value = element.attributes[\"w:val\"];\n return value !== \"false\" && value !== \"0\";\n } else {\n return false;\n }\n }\n\n function readBooleanAttributeValue(value) {\n return value !== \"false\" && value !== \"0\";\n }\n\n function readHighlightValue(value) {\n if (!value || value === \"none\") {\n return null;\n } else {\n return value;\n }\n }\n\n function readParagraphStyle(element) {\n return readStyle(element, \"w:pStyle\", \"Paragraph\", styles.findParagraphStyleById);\n }\n\n function readRunStyle(element) {\n return readStyle(element, \"w:rStyle\", \"Run\", styles.findCharacterStyleById);\n }\n\n function readTableStyle(element) {\n return readStyle(element, \"w:tblStyle\", \"Table\", styles.findTableStyleById);\n }\n\n function readStyle(element, styleTagName, styleType, findStyleById) {\n var messages = [];\n var styleElement = element.first(styleTagName);\n var styleId = null;\n var name = null;\n if (styleElement) {\n styleId = styleElement.attributes[\"w:val\"];\n if (styleId) {\n var style = findStyleById(styleId);\n if (style) {\n name = style.name;\n } else {\n messages.push(undefinedStyleWarning(styleType, styleId));\n }\n }\n }\n return elementResultWithMessages({styleId: styleId, name: name}, messages);\n }\n\n function readFldChar(element) {\n var type = element.attributes[\"w:fldCharType\"];\n if (type === \"begin\") {\n complexFieldStack.push({type: \"begin\", fldChar: element});\n currentInstrText = [];\n } else if (type === \"end\") {\n var complexFieldEnd = complexFieldStack.pop();\n if (complexFieldEnd.type === \"begin\") {\n complexFieldEnd = parseCurrentInstrText(complexFieldEnd);\n }\n if (complexFieldEnd.type === \"checkbox\") {\n return elementResult(documents.checkbox({\n checked: complexFieldEnd.checked\n }));\n }\n } else if (type === \"separate\") {\n var complexFieldSeparate = complexFieldStack.pop();\n var complexField = parseCurrentInstrText(complexFieldSeparate);\n complexFieldStack.push(complexField);\n }\n return emptyResult();\n }\n\n function currentHyperlinkOptions() {\n var topHyperlink = _.last(complexFieldStack.filter(function(complexField) {\n return complexField.type === \"hyperlink\";\n }));\n return topHyperlink ? topHyperlink.options : null;\n }\n\n function parseCurrentInstrText(complexField) {\n return parseInstrText(\n currentInstrText.join(''),\n complexField.type === \"begin\"\n ? complexField.fldChar\n : xml.emptyElement\n );\n }\n\n function parseInstrText(instrText, fldChar) {\n var externalLinkResult = /\\s*HYPERLINK \"(.*)\"/.exec(instrText);\n if (externalLinkResult) {\n return {type: \"hyperlink\", options: {href: externalLinkResult[1]}};\n }\n\n var internalLinkResult = /\\s*HYPERLINK\\s+\\\\l\\s+\"(.*)\"/.exec(instrText);\n if (internalLinkResult) {\n return {type: \"hyperlink\", options: {anchor: internalLinkResult[1]}};\n }\n\n var checkboxResult = /\\s*FORMCHECKBOX\\s*/.exec(instrText);\n if (checkboxResult) {\n var checkboxElement = fldChar\n .firstOrEmpty(\"w:ffData\")\n .firstOrEmpty(\"w:checkBox\");\n var checkedElement = checkboxElement.first(\"w:checked\");\n var checked = checkedElement == null\n ? readBooleanElement(checkboxElement.first(\"w:default\"))\n : readBooleanElement(checkedElement);\n return {type: \"checkbox\", checked: checked};\n }\n\n return {type: \"unknown\"};\n }\n\n function readInstrText(element) {\n currentInstrText.push(element.text());\n return emptyResult();\n }\n\n function readSymbol(element) {\n // See 17.3.3.30 sym (Symbol Character) of ECMA-376 4th edition Part 1\n var font = element.attributes[\"w:font\"];\n var char = element.attributes[\"w:char\"];\n var unicodeCharacter = dingbatToUnicode.hex(font, char);\n if (unicodeCharacter == null && /^F0..$/.test(char)) {\n unicodeCharacter = dingbatToUnicode.hex(font, char.substring(2));\n }\n\n if (unicodeCharacter == null) {\n return emptyResultWithMessages([warning(\n \"A w:sym element with an unsupported character was ignored: char \" + char + \" in font \" + font\n )]);\n } else {\n return elementResult(new documents.Text(unicodeCharacter.string));\n }\n }\n\n function noteReferenceReader(noteType) {\n return function(element) {\n var noteId = element.attributes[\"w:id\"];\n return elementResult(new documents.NoteReference({\n noteType: noteType,\n noteId: noteId\n }));\n };\n }\n\n function readCommentReference(element) {\n return elementResult(documents.commentReference({\n commentId: element.attributes[\"w:id\"]\n }));\n }\n\n function readChildElements(element) {\n return readXmlElements(element.children);\n }\n\n var xmlElementReaders = {\n \"w:p\": function(element) {\n var paragraphPropertiesElement = element.firstOrEmpty(\"w:pPr\");\n\n var isDeleted = !!paragraphPropertiesElement\n .firstOrEmpty(\"w:rPr\")\n .first(\"w:del\");\n\n if (isDeleted) {\n element.children.forEach(function(child) {\n deletedParagraphContents.push(child);\n });\n return emptyResult();\n } else {\n var childrenXml = element.children;\n if (deletedParagraphContents.length > 0) {\n childrenXml = deletedParagraphContents.concat(childrenXml);\n deletedParagraphContents = [];\n }\n return ReadResult.map(\n readParagraphProperties(paragraphPropertiesElement),\n readXmlElements(childrenXml),\n function(properties, children) {\n return new documents.Paragraph(children, properties);\n }\n ).insertExtra();\n }\n },\n \"w:r\": function(element) {\n return ReadResult.map(\n readRunProperties(element.firstOrEmpty(\"w:rPr\")),\n readXmlElements(element.children),\n function(properties, children) {\n var hyperlinkOptions = currentHyperlinkOptions();\n if (hyperlinkOptions !== null) {\n children = [new documents.Hyperlink(children, hyperlinkOptions)];\n }\n\n return new documents.Run(children, properties);\n }\n );\n },\n \"w:fldChar\": readFldChar,\n \"w:instrText\": readInstrText,\n \"w:t\": function(element) {\n return elementResult(new documents.Text(element.text()));\n },\n \"w:tab\": function(element) {\n return elementResult(new documents.Tab());\n },\n \"w:noBreakHyphen\": function() {\n return elementResult(new documents.Text(\"\\u2011\"));\n },\n \"w:softHyphen\": function(element) {\n return elementResult(new documents.Text(\"\\u00AD\"));\n },\n \"w:sym\": readSymbol,\n \"w:hyperlink\": function(element) {\n var relationshipId = element.attributes[\"r:id\"];\n var anchor = element.attributes[\"w:anchor\"];\n return readXmlElements(element.children).map(function(children) {\n function create(options) {\n var targetFrame = element.attributes[\"w:tgtFrame\"] || null;\n\n return new documents.Hyperlink(\n children,\n _.extend({targetFrame: targetFrame}, options)\n );\n }\n\n if (relationshipId) {\n var href = relationships.findTargetByRelationshipId(relationshipId);\n if (anchor) {\n href = uris.replaceFragment(href, anchor);\n }\n return create({href: href});\n } else if (anchor) {\n return create({anchor: anchor});\n } else {\n return children;\n }\n });\n },\n \"w:tbl\": readTable,\n \"w:tr\": readTableRow,\n \"w:tc\": readTableCell,\n \"w:footnoteReference\": noteReferenceReader(\"footnote\"),\n \"w:endnoteReference\": noteReferenceReader(\"endnote\"),\n \"w:commentReference\": readCommentReference,\n \"w:br\": function(element) {\n var breakType = element.attributes[\"w:type\"];\n if (breakType == null || breakType === \"textWrapping\") {\n return elementResult(documents.lineBreak);\n } else if (breakType === \"page\") {\n return elementResult(documents.pageBreak);\n } else if (breakType === \"column\") {\n return elementResult(documents.columnBreak);\n } else {\n return emptyResultWithMessages([warning(\"Unsupported break type: \" + breakType)]);\n }\n },\n \"w:bookmarkStart\": function(element){\n var name = element.attributes[\"w:name\"];\n if (name === \"_GoBack\") {\n return emptyResult();\n } else {\n return elementResult(new documents.BookmarkStart({name: name}));\n }\n },\n\n \"mc:AlternateContent\": function(element) {\n return readChildElements(element.first(\"mc:Fallback\"));\n },\n\n \"w:sdt\": function(element) {\n var checkbox = element\n .firstOrEmpty(\"w:sdtPr\")\n .first(\"wordml:checkbox\");\n\n if (checkbox) {\n var checkedElement = checkbox.first(\"wordml:checked\");\n var isChecked = !!checkedElement && readBooleanAttributeValue(\n checkedElement.attributes[\"wordml:val\"]\n );\n return elementResult(documents.checkbox({\n checked: isChecked\n }));\n } else {\n return readXmlElements(element.firstOrEmpty(\"w:sdtContent\").children);\n }\n },\n\n \"w:ins\": readChildElements,\n \"w:object\": readChildElements,\n \"w:smartTag\": readChildElements,\n \"w:drawing\": readChildElements,\n \"w:pict\": function(element) {\n return readChildElements(element).toExtra();\n },\n \"v:roundrect\": readChildElements,\n \"v:shape\": readChildElements,\n \"v:textbox\": readChildElements,\n \"w:txbxContent\": readChildElements,\n \"wp:inline\": readDrawingElement,\n \"wp:anchor\": readDrawingElement,\n \"v:imagedata\": readImageData,\n \"v:group\": readChildElements,\n \"v:rect\": readChildElements\n };\n\n return {\n readXmlElement: readXmlElement,\n readXmlElements: readXmlElements\n };\n\n\n function readTable(element) {\n var propertiesResult = readTableProperties(element.firstOrEmpty(\"w:tblPr\"));\n return readXmlElements(element.children)\n .flatMap(calculateRowSpans)\n .flatMap(function(children) {\n return propertiesResult.map(function(properties) {\n return documents.Table(children, properties);\n });\n });\n }\n\n function readTableProperties(element) {\n return readTableStyle(element).map(function(style) {\n return {\n styleId: style.styleId,\n styleName: style.name\n };\n });\n }\n\n function readTableRow(element) {\n var properties = element.firstOrEmpty(\"w:trPr\");\n var isHeader = !!properties.first(\"w:tblHeader\");\n return readXmlElements(element.children).map(function(children) {\n return documents.TableRow(children, {isHeader: isHeader});\n });\n }\n\n function readTableCell(element) {\n return readXmlElements(element.children).map(function(children) {\n var properties = element.firstOrEmpty(\"w:tcPr\");\n\n var gridSpan = properties.firstOrEmpty(\"w:gridSpan\").attributes[\"w:val\"];\n var colSpan = gridSpan ? parseInt(gridSpan, 10) : 1;\n\n var cell = documents.TableCell(children, {colSpan: colSpan});\n cell._vMerge = readVMerge(properties);\n return cell;\n });\n }\n\n function readVMerge(properties) {\n var element = properties.first(\"w:vMerge\");\n if (element) {\n var val = element.attributes[\"w:val\"];\n return val === \"continue\" || !val;\n } else {\n return null;\n }\n }\n\n function calculateRowSpans(rows) {\n var unexpectedNonRows = _.any(rows, function(row) {\n return row.type !== documents.types.tableRow;\n });\n if (unexpectedNonRows) {\n return elementResultWithMessages(rows, [warning(\n \"unexpected non-row element in table, cell merging may be incorrect\"\n )]);\n }\n var unexpectedNonCells = _.any(rows, function(row) {\n return _.any(row.children, function(cell) {\n return cell.type !== documents.types.tableCell;\n });\n });\n if (unexpectedNonCells) {\n return elementResultWithMessages(rows, [warning(\n \"unexpected non-cell element in table row, cell merging may be incorrect\"\n )]);\n }\n\n var columns = {};\n\n rows.forEach(function(row) {\n var cellIndex = 0;\n row.children.forEach(function(cell) {\n if (cell._vMerge && columns[cellIndex]) {\n columns[cellIndex].rowSpan++;\n } else {\n columns[cellIndex] = cell;\n cell._vMerge = false;\n }\n cellIndex += cell.colSpan;\n });\n });\n\n rows.forEach(function(row) {\n row.children = row.children.filter(function(cell) {\n return !cell._vMerge;\n });\n row.children.forEach(function(cell) {\n delete cell._vMerge;\n });\n });\n\n return elementResult(rows);\n }\n\n function readDrawingElement(element) {\n var blips = element\n .getElementsByTagName(\"a:graphic\")\n .getElementsByTagName(\"a:graphicData\")\n .getElementsByTagName(\"pic:pic\")\n .getElementsByTagName(\"pic:blipFill\")\n .getElementsByTagName(\"a:blip\");\n\n return combineResults(blips.map(readBlip.bind(null, element)));\n }\n\n function readBlip(element, blip) {\n var properties = element.first(\"wp:docPr\").attributes;\n var altText = isBlank(properties.descr) ? properties.title : properties.descr;\n var blipImageFile = findBlipImageFile(blip);\n if (blipImageFile === null) {\n return emptyResultWithMessages([warning(\"Could not find image file for a:blip element\")]);\n } else {\n return readImage(blipImageFile, altText);\n }\n }\n\n function isBlank(value) {\n return value == null || /^\\s*$/.test(value);\n }\n\n function findBlipImageFile(blip) {\n var embedRelationshipId = blip.attributes[\"r:embed\"];\n var linkRelationshipId = blip.attributes[\"r:link\"];\n if (embedRelationshipId) {\n return findEmbeddedImageFile(embedRelationshipId);\n } else if (linkRelationshipId) {\n var imagePath = relationships.findTargetByRelationshipId(linkRelationshipId);\n return {\n path: imagePath,\n read: files.read.bind(files, imagePath)\n };\n } else {\n return null;\n }\n }\n\n function readImageData(element) {\n var relationshipId = element.attributes['r:id'];\n\n if (relationshipId) {\n return readImage(\n findEmbeddedImageFile(relationshipId),\n element.attributes[\"o:title\"]);\n } else {\n return emptyResultWithMessages([warning(\"A v:imagedata element without a relationship ID was ignored\")]);\n }\n }\n\n function findEmbeddedImageFile(relationshipId) {\n var path = uris.uriToZipEntryName(\"word\", relationships.findTargetByRelationshipId(relationshipId));\n return {\n path: path,\n read: docxFile.read.bind(docxFile, path)\n };\n }\n\n function readImage(imageFile, altText) {\n var contentType = contentTypes.findContentType(imageFile.path);\n\n var image = documents.Image({\n readImage: imageFile.read,\n altText: altText,\n contentType: contentType\n });\n var warnings = supportedImageTypes[contentType] ?\n [] : warning(\"Image of type \" + contentType + \" is unlikely to display in web browsers\");\n return elementResultWithMessages(image, warnings);\n }\n\n function undefinedStyleWarning(type, styleId) {\n return warning(\n type + \" style with ID \" + styleId + \" was referenced but not defined in the document\");\n }\n}\n\n\nfunction readNumberingProperties(styleId, element, numbering) {\n var level = element.firstOrEmpty(\"w:ilvl\").attributes[\"w:val\"];\n var numId = element.firstOrEmpty(\"w:numId\").attributes[\"w:val\"];\n if (level !== undefined && numId !== undefined) {\n return numbering.findLevel(numId, level);\n }\n\n if (styleId != null) {\n var levelByStyleId = numbering.findLevelByParagraphStyleId(styleId);\n if (levelByStyleId != null) {\n return levelByStyleId;\n }\n }\n\n return null;\n}\n\nvar supportedImageTypes = {\n \"image/png\": true,\n \"image/gif\": true,\n \"image/jpeg\": true,\n \"image/svg+xml\": true,\n \"image/tiff\": true\n};\n\nvar ignoreElements = {\n \"office-word:wrap\": true,\n \"v:shadow\": true,\n \"v:shapetype\": true,\n \"w:annotationRef\": true,\n \"w:bookmarkEnd\": true,\n \"w:sectPr\": true,\n \"w:proofErr\": true,\n \"w:lastRenderedPageBreak\": true,\n \"w:commentRangeStart\": true,\n \"w:commentRangeEnd\": true,\n \"w:del\": true,\n \"w:footnoteRef\": true,\n \"w:endnoteRef\": true,\n \"w:pPr\": true,\n \"w:rPr\": true,\n \"w:tblPr\": true,\n \"w:tblGrid\": true,\n \"w:trPr\": true,\n \"w:tcPr\": true\n};\n\nfunction emptyResultWithMessages(messages) {\n return new ReadResult(null, null, messages);\n}\n\nfunction emptyResult() {\n return new ReadResult(null);\n}\n\nfunction elementResult(element) {\n return new ReadResult(element);\n}\n\nfunction elementResultWithMessages(element, messages) {\n return new ReadResult(element, null, messages);\n}\n\nfunction ReadResult(element, extra, messages) {\n this.value = element || [];\n this.extra = extra || [];\n this._result = new Result({\n element: this.value,\n extra: extra\n }, messages);\n this.messages = this._result.messages;\n}\n\nReadResult.prototype.toExtra = function() {\n return new ReadResult(null, joinElements(this.extra, this.value), this.messages);\n};\n\nReadResult.prototype.insertExtra = function() {\n var extra = this.extra;\n if (extra && extra.length) {\n return new ReadResult(joinElements(this.value, extra), null, this.messages);\n } else {\n return this;\n }\n};\n\nReadResult.prototype.map = function(func) {\n var result = this._result.map(function(value) {\n return func(value.element);\n });\n return new ReadResult(result.value, this.extra, result.messages);\n};\n\nReadResult.prototype.flatMap = function(func) {\n var result = this._result.flatMap(function(value) {\n return func(value.element)._result;\n });\n return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages);\n};\n\nReadResult.map = function(first, second, func) {\n return new ReadResult(\n func(first.value, second.value),\n joinElements(first.extra, second.extra),\n first.messages.concat(second.messages)\n );\n};\n\nfunction combineResults(results) {\n var result = Result.combine(_.pluck(results, \"_result\"));\n return new ReadResult(\n _.flatten(_.pluck(result.value, \"element\")),\n _.filter(_.flatten(_.pluck(result.value, \"extra\")), identity),\n result.messages\n );\n}\n\nfunction joinElements(first, second) {\n return _.flatten([first, second]);\n}\n\nfunction identity(value) {\n return value;\n}\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nfunction createCommentsReader(bodyReader) {\n function readCommentsXml(element) {\n return Result.combine(element.getElementsByTagName(\"w:comment\")\n .map(readCommentElement));\n }\n\n function readCommentElement(element) {\n var id = element.attributes[\"w:id\"];\n\n function readOptionalAttribute(name) {\n return (element.attributes[name] || \"\").trim() || null;\n }\n\n return bodyReader.readXmlElements(element.children)\n .map(function(body) {\n return documents.comment({\n commentId: id,\n body: body,\n authorName: readOptionalAttribute(\"w:author\"),\n authorInitials: readOptionalAttribute(\"w:initials\")\n });\n });\n }\n \n return readCommentsXml;\n}\n\nexports.createCommentsReader = createCommentsReader;\n","exports.readContentTypesFromXml = readContentTypesFromXml;\n\nvar fallbackContentTypes = {\n \"png\": \"png\",\n \"gif\": \"gif\",\n \"jpeg\": \"jpeg\",\n \"jpg\": \"jpeg\",\n \"tif\": \"tiff\",\n \"tiff\": \"tiff\",\n \"bmp\": \"bmp\"\n};\n\nexports.defaultContentTypes = contentTypes({}, {});\n\n\nfunction readContentTypesFromXml(element) {\n var extensionDefaults = {};\n var overrides = {};\n \n element.children.forEach(function(child) {\n if (child.name === \"content-types:Default\") {\n extensionDefaults[child.attributes.Extension] = child.attributes.ContentType;\n }\n if (child.name === \"content-types:Override\") {\n var name = child.attributes.PartName;\n if (name.charAt(0) === \"/\") {\n name = name.substring(1);\n }\n overrides[name] = child.attributes.ContentType;\n }\n });\n return contentTypes(overrides, extensionDefaults);\n}\n\nfunction contentTypes(overrides, extensionDefaults) {\n return {\n findContentType: function(path) {\n var overrideContentType = overrides[path];\n if (overrideContentType) {\n return overrideContentType;\n } else {\n var pathParts = path.split(\".\");\n var extension = pathParts[pathParts.length - 1];\n if (extensionDefaults.hasOwnProperty(extension)) {\n return extensionDefaults[extension];\n } else {\n var fallback = fallbackContentTypes[extension.toLowerCase()];\n if (fallback) {\n return \"image/\" + fallback;\n } else {\n return null;\n }\n }\n }\n }\n };\n \n}\n","exports.DocumentXmlReader = DocumentXmlReader;\n\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\n\nfunction DocumentXmlReader(options) {\n var bodyReader = options.bodyReader;\n\n function convertXmlToDocument(element) {\n var body = element.first(\"w:body\");\n\n if (body == null) {\n throw new Error(\"Could not find the body element: are you sure this is a docx file?\");\n }\n\n var result = bodyReader.readXmlElements(body.children)\n .map(function(children) {\n return new documents.Document(children, {\n notes: options.notes,\n comments: options.comments\n });\n });\n return new Result(result.value, result.messages);\n }\n\n return {\n convertXmlToDocument: convertXmlToDocument\n };\n}\n","exports.read = read;\nexports._findPartPaths = findPartPaths;\n\nvar promises = require(\"../promises\");\nvar documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\nvar zipfile = require(\"../zipfile\");\n\nvar readXmlFromZipFile = require(\"./office-xml-reader\").readXmlFromZipFile;\nvar createBodyReader = require(\"./body-reader\").createBodyReader;\nvar DocumentXmlReader = require(\"./document-xml-reader\").DocumentXmlReader;\nvar relationshipsReader = require(\"./relationships-reader\");\nvar contentTypesReader = require(\"./content-types-reader\");\nvar numberingXml = require(\"./numbering-xml\");\nvar stylesReader = require(\"./styles-reader\");\nvar notesReader = require(\"./notes-reader\");\nvar commentsReader = require(\"./comments-reader\");\nvar Files = require(\"./files\").Files;\n\n\nfunction read(docxFile, input) {\n input = input || {};\n\n return promises.props({\n contentTypes: readContentTypesFromZipFile(docxFile),\n partPaths: findPartPaths(docxFile),\n docxFile: docxFile,\n files: input.path ? Files.relativeToFile(input.path) : new Files(null)\n }).also(function(result) {\n return {\n styles: readStylesFromZipFile(docxFile, result.partPaths.styles)\n };\n }).also(function(result) {\n return {\n numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles)\n };\n }).also(function(result) {\n return {\n footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function(bodyReader, xml) {\n if (xml) {\n return notesReader.createFootnotesReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n }),\n endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function(bodyReader, xml) {\n if (xml) {\n return notesReader.createEndnotesReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n }),\n comments: readXmlFileWithBody(result.partPaths.comments, result, function(bodyReader, xml) {\n if (xml) {\n return commentsReader.createCommentsReader(bodyReader)(xml);\n } else {\n return new Result([]);\n }\n })\n };\n }).also(function(result) {\n return {\n notes: result.footnotes.flatMap(function(footnotes) {\n return result.endnotes.map(function(endnotes) {\n return new documents.Notes(footnotes.concat(endnotes));\n });\n })\n };\n }).then(function(result) {\n return readXmlFileWithBody(result.partPaths.mainDocument, result, function(bodyReader, xml) {\n return result.notes.flatMap(function(notes) {\n return result.comments.flatMap(function(comments) {\n var reader = new DocumentXmlReader({\n bodyReader: bodyReader,\n notes: notes,\n comments: comments\n });\n return reader.convertXmlToDocument(xml);\n });\n });\n });\n });\n}\n\nfunction findPartPaths(docxFile) {\n return readPackageRelationships(docxFile).then(function(packageRelationships) {\n var mainDocumentPath = findPartPath({\n docxFile: docxFile,\n relationships: packageRelationships,\n relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n basePath: \"\",\n fallbackPath: \"word/document.xml\"\n });\n\n if (!docxFile.exists(mainDocumentPath)) {\n throw new Error(\"Could not find main document part. Are you sure this is a valid .docx file?\");\n }\n\n return xmlFileReader({\n filename: relationshipsFilename(mainDocumentPath),\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n })(docxFile).then(function(documentRelationships) {\n function findPartRelatedToMainDocument(name) {\n return findPartPath({\n docxFile: docxFile,\n relationships: documentRelationships,\n relationshipType: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/\" + name,\n basePath: zipfile.splitPath(mainDocumentPath).dirname,\n fallbackPath: \"word/\" + name + \".xml\"\n });\n }\n\n return {\n mainDocument: mainDocumentPath,\n comments: findPartRelatedToMainDocument(\"comments\"),\n endnotes: findPartRelatedToMainDocument(\"endnotes\"),\n footnotes: findPartRelatedToMainDocument(\"footnotes\"),\n numbering: findPartRelatedToMainDocument(\"numbering\"),\n styles: findPartRelatedToMainDocument(\"styles\")\n };\n });\n });\n}\n\nfunction findPartPath(options) {\n var docxFile = options.docxFile;\n var relationships = options.relationships;\n var relationshipType = options.relationshipType;\n var basePath = options.basePath;\n var fallbackPath = options.fallbackPath;\n\n var targets = relationships.findTargetsByType(relationshipType);\n var normalisedTargets = targets.map(function(target) {\n return stripPrefix(zipfile.joinPath(basePath, target), \"/\");\n });\n var validTargets = normalisedTargets.filter(function(target) {\n return docxFile.exists(target);\n });\n if (validTargets.length === 0) {\n return fallbackPath;\n } else {\n return validTargets[0];\n }\n}\n\nfunction stripPrefix(value, prefix) {\n if (value.substring(0, prefix.length) === prefix) {\n return value.substring(prefix.length);\n } else {\n return value;\n }\n}\n\nfunction xmlFileReader(options) {\n return function(zipFile) {\n return readXmlFromZipFile(zipFile, options.filename)\n .then(function(element) {\n return element ? options.readElement(element) : options.defaultValue;\n });\n };\n}\n\nfunction readXmlFileWithBody(filename, options, func) {\n var readRelationshipsFromZipFile = xmlFileReader({\n filename: relationshipsFilename(filename),\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n });\n\n return readRelationshipsFromZipFile(options.docxFile).then(function(relationships) {\n var bodyReader = new createBodyReader({\n relationships: relationships,\n contentTypes: options.contentTypes,\n docxFile: options.docxFile,\n numbering: options.numbering,\n styles: options.styles,\n files: options.files\n });\n return readXmlFromZipFile(options.docxFile, filename)\n .then(function(xml) {\n return func(bodyReader, xml);\n });\n });\n}\n\nfunction relationshipsFilename(filename) {\n var split = zipfile.splitPath(filename);\n return zipfile.joinPath(split.dirname, \"_rels\", split.basename + \".rels\");\n}\n\nvar readContentTypesFromZipFile = xmlFileReader({\n filename: \"[Content_Types].xml\",\n readElement: contentTypesReader.readContentTypesFromXml,\n defaultValue: contentTypesReader.defaultContentTypes\n});\n\nfunction readNumberingFromZipFile(zipFile, path, styles) {\n return xmlFileReader({\n filename: path,\n readElement: function(element) {\n return numberingXml.readNumberingXml(element, {styles: styles});\n },\n defaultValue: numberingXml.defaultNumbering\n })(zipFile);\n}\n\nfunction readStylesFromZipFile(zipFile, path) {\n return xmlFileReader({\n filename: path,\n readElement: stylesReader.readStylesXml,\n defaultValue: stylesReader.defaultStyles\n })(zipFile);\n}\n\nvar readPackageRelationships = xmlFileReader({\n filename: \"_rels/.rels\",\n readElement: relationshipsReader.readRelationships,\n defaultValue: relationshipsReader.defaultValue\n});\n","var documents = require(\"../documents\");\nvar Result = require(\"../results\").Result;\n\nexports.createFootnotesReader = createReader.bind(this, \"footnote\");\nexports.createEndnotesReader = createReader.bind(this, \"endnote\");\n\nfunction createReader(noteType, bodyReader) {\n function readNotesXml(element) {\n return Result.combine(element.getElementsByTagName(\"w:\" + noteType)\n .filter(isFootnoteElement)\n .map(readFootnoteElement));\n }\n\n function isFootnoteElement(element) {\n var type = element.attributes[\"w:type\"];\n return type !== \"continuationSeparator\" && type !== \"separator\";\n }\n\n function readFootnoteElement(footnoteElement) {\n var id = footnoteElement.attributes[\"w:id\"];\n return bodyReader.readXmlElements(footnoteElement.children)\n .map(function(body) {\n return documents.Note({noteType: noteType, noteId: id, body: body});\n });\n }\n \n return readNotesXml;\n}\n","var _ = require(\"underscore\");\n\nexports.readNumberingXml = readNumberingXml;\nexports.Numbering = Numbering;\nexports.defaultNumbering = new Numbering({}, {});\n\nfunction Numbering(nums, abstractNums, styles) {\n var allLevels = _.flatten(_.values(abstractNums).map(function(abstractNum) {\n return _.values(abstractNum.levels);\n }));\n\n var levelsByParagraphStyleId = _.indexBy(\n allLevels.filter(function(level) {\n return level.paragraphStyleId != null;\n }),\n \"paragraphStyleId\"\n );\n\n function findLevel(numId, level) {\n var num = nums[numId];\n if (num) {\n var abstractNum = abstractNums[num.abstractNumId];\n if (!abstractNum) {\n return null;\n } else if (abstractNum.numStyleLink == null) {\n return abstractNums[num.abstractNumId].levels[level];\n } else {\n var style = styles.findNumberingStyleById(abstractNum.numStyleLink);\n return findLevel(style.numId, level);\n }\n } else {\n return null;\n }\n }\n\n function findLevelByParagraphStyleId(styleId) {\n return levelsByParagraphStyleId[styleId] || null;\n }\n\n return {\n findLevel: findLevel,\n findLevelByParagraphStyleId: findLevelByParagraphStyleId\n };\n}\n\nfunction readNumberingXml(root, options) {\n if (!options || !options.styles) {\n throw new Error(\"styles is missing\");\n }\n\n var abstractNums = readAbstractNums(root);\n var nums = readNums(root, abstractNums);\n return new Numbering(nums, abstractNums, options.styles);\n}\n\nfunction readAbstractNums(root) {\n var abstractNums = {};\n root.getElementsByTagName(\"w:abstractNum\").forEach(function(element) {\n var id = element.attributes[\"w:abstractNumId\"];\n abstractNums[id] = readAbstractNum(element);\n });\n return abstractNums;\n}\n\nfunction readAbstractNum(element) {\n var levels = {};\n element.getElementsByTagName(\"w:lvl\").forEach(function(levelElement) {\n var levelIndex = levelElement.attributes[\"w:ilvl\"];\n var numFmt = levelElement.firstOrEmpty(\"w:numFmt\").attributes[\"w:val\"];\n var paragraphStyleId = levelElement.firstOrEmpty(\"w:pStyle\").attributes[\"w:val\"];\n\n levels[levelIndex] = {\n isOrdered: numFmt !== \"bullet\",\n level: levelIndex,\n paragraphStyleId: paragraphStyleId\n };\n });\n\n var numStyleLink = element.firstOrEmpty(\"w:numStyleLink\").attributes[\"w:val\"];\n\n return {levels: levels, numStyleLink: numStyleLink};\n}\n\nfunction readNums(root) {\n var nums = {};\n root.getElementsByTagName(\"w:num\").forEach(function(element) {\n var numId = element.attributes[\"w:numId\"];\n var abstractNumId = element.first(\"w:abstractNumId\").attributes[\"w:val\"];\n nums[numId] = {abstractNumId: abstractNumId};\n });\n return nums;\n}\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\n\nexports.read = read;\nexports.readXmlFromZipFile = readXmlFromZipFile;\n\nvar xmlNamespaceMap = {\n // Transitional format\n \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\": \"w\",\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\": \"r\",\n \"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\": \"wp\",\n \"http://schemas.openxmlformats.org/drawingml/2006/main\": \"a\",\n \"http://schemas.openxmlformats.org/drawingml/2006/picture\": \"pic\",\n\n // Strict format\n \"http://purl.oclc.org/ooxml/wordprocessingml/main\": \"w\",\n \"http://purl.oclc.org/ooxml/officeDocument/relationships\": \"r\",\n \"http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing\": \"wp\",\n \"http://purl.oclc.org/ooxml/drawingml/main\": \"a\",\n \"http://purl.oclc.org/ooxml/drawingml/picture\": \"pic\",\n\n // Common\n \"http://schemas.openxmlformats.org/package/2006/content-types\": \"content-types\",\n \"http://schemas.openxmlformats.org/package/2006/relationships\": \"relationships\",\n \"http://schemas.openxmlformats.org/markup-compatibility/2006\": \"mc\",\n \"urn:schemas-microsoft-com:vml\": \"v\",\n \"urn:schemas-microsoft-com:office:word\": \"office-word\",\n\n // [MS-DOCX]: Word Extensions to the Office Open XML (.docx) File Format\n // https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/b839fe1f-e1ca-4fa6-8c26-5954d0abbccd\n \"http://schemas.microsoft.com/office/word/2010/wordml\": \"wordml\"\n};\n\n\nfunction read(xmlString) {\n return xml.readString(xmlString, xmlNamespaceMap)\n .then(function(document) {\n return collapseAlternateContent(document)[0];\n });\n}\n\n\nfunction readXmlFromZipFile(docxFile, path) {\n if (docxFile.exists(path)) {\n return docxFile.read(path, \"utf-8\")\n .then(stripUtf8Bom)\n .then(read);\n } else {\n return promises.resolve(null);\n }\n}\n\n\nfunction stripUtf8Bom(xmlString) {\n return xmlString.replace(/^\\uFEFF/g, '');\n}\n\n\nfunction collapseAlternateContent(node) {\n if (node.type === \"element\") {\n if (node.name === \"mc:AlternateContent\") {\n return node.first(\"mc:Fallback\").children;\n } else {\n node.children = _.flatten(node.children.map(collapseAlternateContent, true));\n return [node];\n }\n } else {\n return [node];\n }\n}\n","exports.readRelationships = readRelationships;\nexports.defaultValue = new Relationships([]);\nexports.Relationships = Relationships;\n\n\nfunction readRelationships(element) {\n var relationships = [];\n element.children.forEach(function(child) {\n if (child.name === \"relationships:Relationship\") {\n var relationship = {\n relationshipId: child.attributes.Id,\n target: child.attributes.Target,\n type: child.attributes.Type\n };\n relationships.push(relationship);\n }\n });\n return new Relationships(relationships);\n}\n\nfunction Relationships(relationships) {\n var targetsByRelationshipId = {};\n relationships.forEach(function(relationship) {\n targetsByRelationshipId[relationship.relationshipId] = relationship.target;\n });\n\n var targetsByType = {};\n relationships.forEach(function(relationship) {\n if (!targetsByType[relationship.type]) {\n targetsByType[relationship.type] = [];\n }\n targetsByType[relationship.type].push(relationship.target);\n });\n\n return {\n findTargetByRelationshipId: function(relationshipId) {\n return targetsByRelationshipId[relationshipId];\n },\n findTargetsByType: function(type) {\n return targetsByType[type] || [];\n }\n };\n}\n","var _ = require(\"underscore\");\n\nvar promises = require(\"../promises\");\nvar xml = require(\"../xml\");\n\nexports.writeStyleMap = writeStyleMap;\nexports.readStyleMap = readStyleMap;\n\n\nvar schema = \"http://schemas.zwobble.org/mammoth/style-map\";\nvar styleMapPath = \"mammoth/style-map\";\nvar styleMapAbsolutePath = \"/\" + styleMapPath;\n\nfunction writeStyleMap(docxFile, styleMap) {\n docxFile.write(styleMapPath, styleMap);\n return updateRelationships(docxFile).then(function() {\n return updateContentTypes(docxFile);\n });\n}\n\nfunction updateRelationships(docxFile) {\n var path = \"word/_rels/document.xml.rels\";\n var relationshipsUri = \"http://schemas.openxmlformats.org/package/2006/relationships\";\n var relationshipElementName = \"{\" + relationshipsUri + \"}Relationship\";\n return docxFile.read(path, \"utf8\")\n .then(xml.readString)\n .then(function(relationshipsContainer) {\n var relationships = relationshipsContainer.children;\n addOrUpdateElement(relationships, relationshipElementName, \"Id\", {\n \"Id\": \"rMammothStyleMap\",\n \"Type\": schema,\n \"Target\": styleMapAbsolutePath\n });\n \n var namespaces = {\"\": relationshipsUri};\n return docxFile.write(path, xml.writeString(relationshipsContainer, namespaces));\n });\n}\n\nfunction updateContentTypes(docxFile) {\n var path = \"[Content_Types].xml\";\n var contentTypesUri = \"http://schemas.openxmlformats.org/package/2006/content-types\";\n var overrideName = \"{\" + contentTypesUri + \"}Override\";\n return docxFile.read(path, \"utf8\")\n .then(xml.readString)\n .then(function(typesElement) {\n var children = typesElement.children;\n addOrUpdateElement(children, overrideName, \"PartName\", {\n \"PartName\": styleMapAbsolutePath,\n \"ContentType\": \"text/prs.mammoth.style-map\"\n });\n var namespaces = {\"\": contentTypesUri};\n return docxFile.write(path, xml.writeString(typesElement, namespaces));\n });\n}\n\nfunction addOrUpdateElement(elements, name, identifyingAttribute, attributes) {\n var existingElement = _.find(elements, function(element) {\n return element.name === name &&\n element.attributes[identifyingAttribute] === attributes[identifyingAttribute];\n });\n if (existingElement) {\n existingElement.attributes = attributes;\n } else {\n elements.push(xml.element(name, attributes));\n }\n}\n\nfunction readStyleMap(docxFile) {\n if (docxFile.exists(styleMapPath)) {\n return docxFile.read(styleMapPath, \"utf8\");\n } else {\n return promises.resolve(null);\n }\n}\n","exports.readStylesXml = readStylesXml;\nexports.Styles = Styles;\nexports.defaultStyles = new Styles({}, {});\n\nfunction Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles) {\n return {\n findParagraphStyleById: function(styleId) {\n return paragraphStyles[styleId];\n },\n findCharacterStyleById: function(styleId) {\n return characterStyles[styleId];\n },\n findTableStyleById: function(styleId) {\n return tableStyles[styleId];\n },\n findNumberingStyleById: function(styleId) {\n return numberingStyles[styleId];\n }\n };\n}\n\nStyles.EMPTY = new Styles({}, {}, {}, {});\n\nfunction readStylesXml(root) {\n var paragraphStyles = {};\n var characterStyles = {};\n var tableStyles = {};\n var numberingStyles = {};\n\n var styles = {\n \"paragraph\": paragraphStyles,\n \"character\": characterStyles,\n \"table\": tableStyles\n };\n\n root.getElementsByTagName(\"w:style\").forEach(function(styleElement) {\n var style = readStyleElement(styleElement);\n if (style.type === \"numbering\") {\n numberingStyles[style.styleId] = readNumberingStyleElement(styleElement);\n } else {\n var styleSet = styles[style.type];\n if (styleSet) {\n styleSet[style.styleId] = style;\n }\n }\n });\n\n return new Styles(paragraphStyles, characterStyles, tableStyles, numberingStyles);\n}\n\nfunction readStyleElement(styleElement) {\n var type = styleElement.attributes[\"w:type\"];\n var styleId = styleElement.attributes[\"w:styleId\"];\n var name = styleName(styleElement);\n return {type: type, styleId: styleId, name: name};\n}\n\nfunction styleName(styleElement) {\n var nameElement = styleElement.first(\"w:name\");\n return nameElement ? nameElement.attributes[\"w:val\"] : null;\n}\n\nfunction readNumberingStyleElement(styleElement) {\n var numId = styleElement\n .firstOrEmpty(\"w:pPr\")\n .firstOrEmpty(\"w:numPr\")\n .firstOrEmpty(\"w:numId\")\n .attributes[\"w:val\"];\n return {numId: numId};\n}\n","exports.uriToZipEntryName = uriToZipEntryName;\nexports.replaceFragment = replaceFragment;\n\nfunction uriToZipEntryName(base, uri) {\n if (uri.charAt(0) === \"/\") {\n return uri.substr(1);\n } else {\n // In general, we should check first and second for trailing and leading slashes,\n // but in our specific case this seems to be sufficient\n return base + \"/\" + uri;\n }\n}\n\n\nfunction replaceFragment(uri, fragment) {\n var hashIndex = uri.indexOf(\"#\");\n if (hashIndex !== -1) {\n uri = uri.substring(0, hashIndex);\n }\n return uri + \"#\" + fragment;\n}\n","var htmlPaths = require(\"../styles/html-paths\");\n\n\nfunction nonFreshElement(tagName, attributes, children) {\n return elementWithTag(\n htmlPaths.element(tagName, attributes, {fresh: false}),\n children);\n}\n\nfunction freshElement(tagName, attributes, children) {\n var tag = htmlPaths.element(tagName, attributes, {fresh: true});\n return elementWithTag(tag, children);\n}\n\nfunction elementWithTag(tag, children) {\n return {\n type: \"element\",\n tag: tag,\n children: children || []\n };\n}\n\nfunction text(value) {\n return {\n type: \"text\",\n value: value\n };\n}\n\nvar forceWrite = {\n type: \"forceWrite\"\n};\n\nexports.freshElement = freshElement;\nexports.nonFreshElement = nonFreshElement;\nexports.elementWithTag = elementWithTag;\nexports.text = text;\nexports.forceWrite = forceWrite;\n\nvar voidTagNames = {\n \"br\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true\n};\n\nfunction isVoidElement(node) {\n return (node.children.length === 0) && voidTagNames[node.tag.tagName];\n}\n\nexports.isVoidElement = isVoidElement;\n","var ast = require(\"./ast\");\n\nexports.freshElement = ast.freshElement;\nexports.nonFreshElement = ast.nonFreshElement;\nexports.elementWithTag = ast.elementWithTag;\nexports.text = ast.text;\nexports.forceWrite = ast.forceWrite;\n\nexports.simplify = require(\"./simplify\");\n\nfunction write(writer, nodes) {\n nodes.forEach(function(node) {\n writeNode(writer, node);\n });\n}\n\nfunction writeNode(writer, node) {\n toStrings[node.type](writer, node);\n}\n\nvar toStrings = {\n element: generateElementString,\n text: generateTextString,\n forceWrite: function() { }\n};\n\nfunction generateElementString(writer, node) {\n if (ast.isVoidElement(node)) {\n writer.selfClosing(node.tag.tagName, node.tag.attributes);\n } else {\n writer.open(node.tag.tagName, node.tag.attributes);\n write(writer, node.children);\n writer.close(node.tag.tagName);\n }\n}\n\nfunction generateTextString(writer, node) {\n writer.text(node.value);\n}\n\nexports.write = write;\n","var _ = require(\"underscore\");\n\nvar ast = require(\"./ast\");\n\nfunction simplify(nodes) {\n return collapse(removeEmpty(nodes));\n}\n\nfunction collapse(nodes) {\n var children = [];\n \n nodes.map(collapseNode).forEach(function(child) {\n appendChild(children, child);\n });\n return children;\n}\n\nfunction collapseNode(node) {\n return collapsers[node.type](node);\n}\n\nvar collapsers = {\n element: collapseElement,\n text: identity,\n forceWrite: identity\n};\n\nfunction collapseElement(node) {\n return ast.elementWithTag(node.tag, collapse(node.children));\n}\n\nfunction identity(value) {\n return value;\n}\n\nfunction appendChild(children, child) {\n var lastChild = children[children.length - 1];\n if (child.type === \"element\" && !child.tag.fresh && lastChild && lastChild.type === \"element\" && child.tag.matchesElement(lastChild.tag)) {\n if (child.tag.separator) {\n appendChild(lastChild.children, ast.text(child.tag.separator));\n }\n child.children.forEach(function(grandChild) {\n // Mutation is fine since simplifying elements create a copy of the children.\n appendChild(lastChild.children, grandChild);\n });\n } else {\n children.push(child);\n }\n}\n\nfunction removeEmpty(nodes) {\n return flatMap(nodes, function(node) {\n return emptiers[node.type](node);\n });\n}\n\nfunction flatMap(values, func) {\n return _.flatten(_.map(values, func), true);\n}\n\nvar emptiers = {\n element: elementEmptier,\n text: textEmptier,\n forceWrite: neverEmpty\n};\n\nfunction neverEmpty(node) {\n return [node];\n}\n\nfunction elementEmptier(element) {\n var children = removeEmpty(element.children);\n if (children.length === 0 && !ast.isVoidElement(element)) {\n return [];\n } else {\n return [ast.elementWithTag(element.tag, children)];\n }\n}\n\nfunction textEmptier(node) {\n if (node.value.length === 0) {\n return [];\n } else {\n return [node];\n }\n}\n\nmodule.exports = simplify;\n","var _ = require(\"underscore\");\n\nvar promises = require(\"./promises\");\nvar Html = require(\"./html\");\n\nexports.imgElement = imgElement;\n\nfunction imgElement(func) {\n return function(element, messages) {\n return promises.when(func(element)).then(function(result) {\n var attributes = {};\n if (element.altText) {\n attributes.alt = element.altText;\n }\n _.extend(attributes, result);\n\n return [Html.freshElement(\"img\", attributes)];\n });\n };\n}\n\n// Undocumented, but retained for backwards-compatibility with 0.3.x\nexports.inline = exports.imgElement;\n\nexports.dataUri = imgElement(function(element) {\n return element.readAsBase64String().then(function(imageBuffer) {\n return {\n src: \"data:\" + element.contentType + \";base64,\" + imageBuffer\n };\n });\n});\n","var _ = require(\"underscore\");\n\nvar docxReader = require(\"./docx/docx-reader\");\nvar docxStyleMap = require(\"./docx/style-map\");\nvar DocumentConverter = require(\"./document-to-html\").DocumentConverter;\nvar convertElementToRawText = require(\"./raw-text\").convertElementToRawText;\nvar readStyle = require(\"./style-reader\").readStyle;\nvar readOptions = require(\"./options-reader\").readOptions;\nvar unzip = require(\"./unzip\");\nvar Result = require(\"./results\").Result;\n\nexports.convertToHtml = convertToHtml;\nexports.convertToMarkdown = convertToMarkdown;\nexports.convert = convert;\nexports.extractRawText = extractRawText;\nexports.images = require(\"./images\");\nexports.transforms = require(\"./transforms\");\nexports.underline = require(\"./underline\");\nexports.embedStyleMap = embedStyleMap;\nexports.readEmbeddedStyleMap = readEmbeddedStyleMap;\n\nfunction convertToHtml(input, options) {\n return convert(input, options);\n}\n\nfunction convertToMarkdown(input, options) {\n var markdownOptions = Object.create(options || {});\n markdownOptions.outputFormat = \"markdown\";\n return convert(input, markdownOptions);\n}\n\nfunction convert(input, options) {\n options = readOptions(options);\n\n return unzip.openZip(input)\n .tap(function(docxFile) {\n return docxStyleMap.readStyleMap(docxFile).then(function(styleMap) {\n options.embeddedStyleMap = styleMap;\n });\n })\n .then(function(docxFile) {\n return docxReader.read(docxFile, input)\n .then(function(documentResult) {\n return documentResult.map(options.transformDocument);\n })\n .then(function(documentResult) {\n return convertDocumentToHtml(documentResult, options);\n });\n });\n}\n\nfunction readEmbeddedStyleMap(input) {\n return unzip.openZip(input)\n .then(docxStyleMap.readStyleMap);\n}\n\nfunction convertDocumentToHtml(documentResult, options) {\n var styleMapResult = parseStyleMap(options.readStyleMap());\n var parsedOptions = _.extend({}, options, {\n styleMap: styleMapResult.value\n });\n var documentConverter = new DocumentConverter(parsedOptions);\n\n return documentResult.flatMapThen(function(document) {\n return styleMapResult.flatMapThen(function(styleMap) {\n return documentConverter.convertToHtml(document);\n });\n });\n}\n\nfunction parseStyleMap(styleMap) {\n return Result.combine((styleMap || []).map(readStyle))\n .map(function(styleMap) {\n return styleMap.filter(function(styleMapping) {\n return !!styleMapping;\n });\n });\n}\n\n\nfunction extractRawText(input) {\n return unzip.openZip(input)\n .then(docxReader.read)\n .then(function(documentResult) {\n return documentResult.map(convertElementToRawText);\n });\n}\n\nfunction embedStyleMap(input, styleMap) {\n return unzip.openZip(input)\n .tap(function(docxFile) {\n return docxStyleMap.writeStyleMap(docxFile, styleMap);\n })\n .then(function(docxFile) {\n return docxFile.toArrayBuffer();\n })\n .then(function(arrayBuffer) {\n return {\n toArrayBuffer: function() {\n return arrayBuffer;\n },\n toBuffer: function() {\n return Buffer.from(arrayBuffer);\n }\n };\n });\n}\n\nexports.styleMapping = function() {\n throw new Error('Use a raw string instead of mammoth.styleMapping e.g. \"p[style-name=\\'Title\\'] => h1\" instead of mammoth.styleMapping(\"p[style-name=\\'Title\\'] => h1\")');\n};\n","exports.readOptions = readOptions;\n\n\nvar _ = require(\"underscore\");\n\nvar defaultStyleMap = exports._defaultStyleMap = [\n \"p.Heading1 => h1:fresh\",\n \"p.Heading2 => h2:fresh\",\n \"p.Heading3 => h3:fresh\",\n \"p.Heading4 => h4:fresh\",\n \"p.Heading5 => h5:fresh\",\n \"p.Heading6 => h6:fresh\",\n \"p[style-name='Heading 1'] => h1:fresh\",\n \"p[style-name='Heading 2'] => h2:fresh\",\n \"p[style-name='Heading 3'] => h3:fresh\",\n \"p[style-name='Heading 4'] => h4:fresh\",\n \"p[style-name='Heading 5'] => h5:fresh\",\n \"p[style-name='Heading 6'] => h6:fresh\",\n \"p[style-name='heading 1'] => h1:fresh\",\n \"p[style-name='heading 2'] => h2:fresh\",\n \"p[style-name='heading 3'] => h3:fresh\",\n \"p[style-name='heading 4'] => h4:fresh\",\n \"p[style-name='heading 5'] => h5:fresh\",\n \"p[style-name='heading 6'] => h6:fresh\",\n \n \"r[style-name='Strong'] => strong\",\n \n \"p[style-name='footnote text'] => p:fresh\",\n \"r[style-name='footnote reference'] =>\",\n \"p[style-name='endnote text'] => p:fresh\",\n \"r[style-name='endnote reference'] =>\",\n \"p[style-name='annotation text'] => p:fresh\",\n \"r[style-name='annotation reference'] =>\",\n \n // LibreOffice\n \"p[style-name='Footnote'] => p:fresh\",\n \"r[style-name='Footnote anchor'] =>\",\n \"p[style-name='Endnote'] => p:fresh\",\n \"r[style-name='Endnote anchor'] =>\",\n \n \"p:unordered-list(1) => ul > li:fresh\",\n \"p:unordered-list(2) => ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh\",\n \"p:ordered-list(1) => ol > li:fresh\",\n \"p:ordered-list(2) => ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n \"p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh\",\n \n \"r[style-name='Hyperlink'] =>\",\n \n \"p[style-name='Normal'] => p:fresh\"\n];\n\nvar standardOptions = exports._standardOptions = {\n transformDocument: identity,\n includeDefaultStyleMap: true,\n includeEmbeddedStyleMap: true\n};\n\nfunction readOptions(options) {\n options = options || {};\n return _.extend({}, standardOptions, options, {\n customStyleMap: readStyleMap(options.styleMap),\n readStyleMap: function() {\n var styleMap = this.customStyleMap;\n if (this.includeEmbeddedStyleMap) {\n styleMap = styleMap.concat(readStyleMap(this.embeddedStyleMap));\n }\n if (this.includeDefaultStyleMap) {\n styleMap = styleMap.concat(defaultStyleMap);\n }\n return styleMap;\n }\n });\n}\n\nfunction readStyleMap(styleMap) {\n if (!styleMap) {\n return [];\n } else if (_.isString(styleMap)) {\n return styleMap.split(\"\\n\")\n .map(function(line) {\n return line.trim();\n })\n .filter(function(line) {\n return line !== \"\" && line.charAt(0) !== \"#\";\n });\n } else {\n return styleMap;\n }\n}\n\nfunction identity(value) {\n return value;\n}\n","var _ = require(\"underscore\");\nvar bluebird = require(\"bluebird/js/release/promise\")();\n\nexports.defer = defer;\nexports.when = bluebird.resolve;\nexports.resolve = bluebird.resolve;\nexports.all = bluebird.all;\nexports.props = bluebird.props;\nexports.reject = bluebird.reject;\nexports.promisify = bluebird.promisify;\nexports.mapSeries = bluebird.mapSeries;\nexports.attempt = bluebird.attempt;\n\nexports.nfcall = function(func) {\n var args = Array.prototype.slice.call(arguments, 1);\n var promisedFunc = bluebird.promisify(func);\n return promisedFunc.apply(null, args);\n};\n\nbluebird.prototype.fail = bluebird.prototype.caught;\n\nbluebird.prototype.also = function(func) {\n return this.then(function(value) {\n var returnValue = _.extend({}, value, func(value));\n return bluebird.props(returnValue);\n });\n};\n\nfunction defer() {\n var resolve;\n var reject;\n var promise = new bluebird.Promise(function(resolveArg, rejectArg) {\n resolve = resolveArg;\n reject = rejectArg;\n });\n\n return {\n resolve: resolve,\n reject: reject,\n promise: promise\n };\n}\n","var documents = require(\"./documents\");\n\nfunction convertElementToRawText(element) {\n if (element.type === \"text\") {\n return element.value;\n } else if (element.type === documents.types.tab) {\n return \"\\t\";\n } else {\n var tail = element.type === \"paragraph\" ? \"\\n\\n\" : \"\";\n return (element.children || []).map(convertElementToRawText).join(\"\") + tail;\n }\n}\n\nexports.convertElementToRawText = convertElementToRawText;\n","var _ = require(\"underscore\");\n\n\nexports.Result = Result;\nexports.success = success;\nexports.warning = warning;\nexports.error = error;\n\n\nfunction Result(value, messages) {\n this.value = value;\n this.messages = messages || [];\n}\n\nResult.prototype.map = function(func) {\n return new Result(func(this.value), this.messages);\n};\n\nResult.prototype.flatMap = function(func) {\n var funcResult = func(this.value);\n return new Result(funcResult.value, combineMessages([this, funcResult]));\n};\n\nResult.prototype.flatMapThen = function(func) {\n var that = this;\n return func(this.value).then(function(otherResult) {\n return new Result(otherResult.value, combineMessages([that, otherResult]));\n });\n};\n\nResult.combine = function(results) {\n var values = _.flatten(_.pluck(results, \"value\"));\n var messages = combineMessages(results);\n return new Result(values, messages);\n};\n\nfunction success(value) {\n return new Result(value, []);\n}\n\nfunction warning(message) {\n return {\n type: \"warning\",\n message: message\n };\n}\n\nfunction error(exception) {\n return {\n type: \"error\",\n message: exception.message,\n error: exception\n };\n}\n\nfunction combineMessages(results) {\n var messages = [];\n _.flatten(_.pluck(results, \"messages\"), true).forEach(function(message) {\n if (!containsMessage(messages, message)) {\n messages.push(message);\n }\n });\n return messages;\n}\n\nfunction containsMessage(messages, message) {\n return _.find(messages, isSameMessage.bind(null, message)) !== undefined;\n}\n\nfunction isSameMessage(first, second) {\n return first.type === second.type && first.message === second.message;\n}\n","var _ = require(\"underscore\");\nvar lop = require(\"lop\");\n\nvar documentMatchers = require(\"./styles/document-matchers\");\nvar htmlPaths = require(\"./styles/html-paths\");\nvar tokenise = require(\"./styles/parser/tokeniser\").tokenise;\nvar results = require(\"./results\");\n\nexports.readHtmlPath = readHtmlPath;\nexports.readDocumentMatcher = readDocumentMatcher;\nexports.readStyle = readStyle;\n\n\nfunction readStyle(string) {\n return parseString(styleRule, string);\n}\n\nfunction createStyleRule() {\n return lop.rules.sequence(\n lop.rules.sequence.capture(documentMatcherRule()),\n lop.rules.tokenOfType(\"whitespace\"),\n lop.rules.tokenOfType(\"arrow\"),\n lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"whitespace\"),\n lop.rules.sequence.capture(htmlPathRule())\n ).head())),\n lop.rules.tokenOfType(\"end\")\n ).map(function(documentMatcher, htmlPath) {\n return {\n from: documentMatcher,\n to: htmlPath.valueOrElse(htmlPaths.empty)\n };\n });\n}\n\nfunction readDocumentMatcher(string) {\n return parseString(documentMatcherRule(), string);\n}\n\nfunction documentMatcherRule() {\n var sequence = lop.rules.sequence;\n\n var identifierToConstant = function(identifier, constant) {\n return lop.rules.then(\n lop.rules.token(\"identifier\", identifier),\n function() {\n return constant;\n }\n );\n };\n\n var paragraphRule = identifierToConstant(\"p\", documentMatchers.paragraph);\n var runRule = identifierToConstant(\"r\", documentMatchers.run);\n\n var elementTypeRule = lop.rules.firstOf(\"p or r or table\",\n paragraphRule,\n runRule\n );\n\n var styleIdRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"dot\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule)\n ).map(function(styleId) {\n return {styleId: styleId};\n });\n\n var styleNameMatcherRule = lop.rules.firstOf(\"style name matcher\",\n lop.rules.then(\n lop.rules.sequence(\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(stringRule)\n ).head(),\n function(styleName) {\n return {styleName: documentMatchers.equalTo(styleName)};\n }\n ),\n lop.rules.then(\n lop.rules.sequence(\n lop.rules.tokenOfType(\"startsWith\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(stringRule)\n ).head(),\n function(styleName) {\n return {styleName: documentMatchers.startsWith(styleName)};\n }\n )\n );\n\n var styleNameRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.token(\"identifier\", \"style-name\"),\n lop.rules.sequence.capture(styleNameMatcherRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).head();\n\n\n var listTypeRule = lop.rules.firstOf(\"list type\",\n identifierToConstant(\"ordered-list\", {isOrdered: true}),\n identifierToConstant(\"unordered-list\", {isOrdered: false})\n );\n var listRule = sequence(\n lop.rules.tokenOfType(\"colon\"),\n sequence.capture(listTypeRule),\n sequence.cut(),\n lop.rules.tokenOfType(\"open-paren\"),\n sequence.capture(integerRule),\n lop.rules.tokenOfType(\"close-paren\")\n ).map(function(listType, levelNumber) {\n return {\n list: {\n isOrdered: listType.isOrdered,\n levelIndex: levelNumber - 1\n }\n };\n });\n\n function createMatcherSuffixesRule(rules) {\n var matcherSuffix = lop.rules.firstOf.apply(\n lop.rules.firstOf,\n [\"matcher suffix\"].concat(rules)\n );\n var matcherSuffixes = lop.rules.zeroOrMore(matcherSuffix);\n return lop.rules.then(matcherSuffixes, function(suffixes) {\n var matcherOptions = {};\n suffixes.forEach(function(suffix) {\n _.extend(matcherOptions, suffix);\n });\n return matcherOptions;\n });\n }\n\n var paragraphOrRun = sequence(\n sequence.capture(elementTypeRule),\n sequence.capture(createMatcherSuffixesRule([\n styleIdRule,\n styleNameRule,\n listRule\n ]))\n ).map(function(createMatcher, matcherOptions) {\n return createMatcher(matcherOptions);\n });\n\n var table = sequence(\n lop.rules.token(\"identifier\", \"table\"),\n sequence.capture(createMatcherSuffixesRule([\n styleIdRule,\n styleNameRule\n ]))\n ).map(function(options) {\n return documentMatchers.table(options);\n });\n\n var bold = identifierToConstant(\"b\", documentMatchers.bold);\n var italic = identifierToConstant(\"i\", documentMatchers.italic);\n var underline = identifierToConstant(\"u\", documentMatchers.underline);\n var strikethrough = identifierToConstant(\"strike\", documentMatchers.strikethrough);\n var allCaps = identifierToConstant(\"all-caps\", documentMatchers.allCaps);\n var smallCaps = identifierToConstant(\"small-caps\", documentMatchers.smallCaps);\n\n var highlight = sequence(\n lop.rules.token(\"identifier\", \"highlight\"),\n lop.rules.sequence.capture(lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.token(\"identifier\", \"color\"),\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).head()))\n ).map(function(color) {\n return documentMatchers.highlight({\n color: color.valueOrElse(undefined)\n });\n });\n\n var commentReference = identifierToConstant(\"comment-reference\", documentMatchers.commentReference);\n\n var breakMatcher = sequence(\n lop.rules.token(\"identifier\", \"br\"),\n sequence.cut(),\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.token(\"identifier\", \"type\"),\n lop.rules.tokenOfType(\"equals\"),\n sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n ).map(function(breakType) {\n switch (breakType) {\n case \"line\":\n return documentMatchers.lineBreak;\n case \"page\":\n return documentMatchers.pageBreak;\n case \"column\":\n return documentMatchers.columnBreak;\n default:\n // TODO: handle unknown document matchers\n }\n });\n\n return lop.rules.firstOf(\"element type\",\n paragraphOrRun,\n table,\n bold,\n italic,\n underline,\n strikethrough,\n allCaps,\n smallCaps,\n highlight,\n commentReference,\n breakMatcher\n );\n}\n\nfunction readHtmlPath(string) {\n return parseString(htmlPathRule(), string);\n}\n\nfunction htmlPathRule() {\n var capture = lop.rules.sequence.capture;\n var whitespaceRule = lop.rules.tokenOfType(\"whitespace\");\n var freshRule = lop.rules.then(\n lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"colon\"),\n lop.rules.token(\"identifier\", \"fresh\")\n )),\n function(option) {\n return option.map(function() {\n return true;\n }).valueOrElse(false);\n }\n );\n\n var separatorRule = lop.rules.then(\n lop.rules.optional(lop.rules.sequence(\n lop.rules.tokenOfType(\"colon\"),\n lop.rules.token(\"identifier\", \"separator\"),\n lop.rules.tokenOfType(\"open-paren\"),\n capture(stringRule),\n lop.rules.tokenOfType(\"close-paren\")\n ).head()),\n function(option) {\n return option.valueOrElse(\"\");\n }\n );\n\n var tagNamesRule = lop.rules.oneOrMoreWithSeparator(\n identifierRule,\n lop.rules.tokenOfType(\"choice\")\n );\n\n var styleElementRule = lop.rules.sequence(\n capture(tagNamesRule),\n capture(lop.rules.zeroOrMore(attributeOrClassRule)),\n capture(freshRule),\n capture(separatorRule)\n ).map(function(tagName, attributesList, fresh, separator) {\n var attributes = {};\n var options = {};\n attributesList.forEach(function(attribute) {\n if (attribute.append && attributes[attribute.name]) {\n attributes[attribute.name] += \" \" + attribute.value;\n } else {\n attributes[attribute.name] = attribute.value;\n }\n });\n if (fresh) {\n options.fresh = true;\n }\n if (separator) {\n options.separator = separator;\n }\n return htmlPaths.element(tagName, attributes, options);\n });\n\n return lop.rules.firstOf(\"html path\",\n lop.rules.then(lop.rules.tokenOfType(\"bang\"), function() {\n return htmlPaths.ignore;\n }),\n lop.rules.then(\n lop.rules.zeroOrMoreWithSeparator(\n styleElementRule,\n lop.rules.sequence(\n whitespaceRule,\n lop.rules.tokenOfType(\"gt\"),\n whitespaceRule\n )\n ),\n htmlPaths.elements\n )\n );\n}\n\nvar identifierRule = lop.rules.then(\n lop.rules.tokenOfType(\"identifier\"),\n decodeEscapeSequences\n);\nvar integerRule = lop.rules.tokenOfType(\"integer\");\n\nvar stringRule = lop.rules.then(\n lop.rules.tokenOfType(\"string\"),\n decodeEscapeSequences\n);\n\nvar escapeSequences = {\n \"n\": \"\\n\",\n \"r\": \"\\r\",\n \"t\": \"\\t\"\n};\n\nfunction decodeEscapeSequences(value) {\n return value.replace(/\\\\(.)/g, function(match, code) {\n return escapeSequences[code] || code;\n });\n}\n\nvar attributeRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"open-square-bracket\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule),\n lop.rules.tokenOfType(\"equals\"),\n lop.rules.sequence.capture(stringRule),\n lop.rules.tokenOfType(\"close-square-bracket\")\n).map(function(name, value) {\n return {name: name, value: value, append: false};\n});\n\nvar classRule = lop.rules.sequence(\n lop.rules.tokenOfType(\"dot\"),\n lop.rules.sequence.cut(),\n lop.rules.sequence.capture(identifierRule)\n).map(function(className) {\n return {name: \"class\", value: className, append: true};\n});\n\nvar attributeOrClassRule = lop.rules.firstOf(\n \"attribute or class\",\n attributeRule,\n classRule\n);\n\nfunction parseString(rule, string) {\n var tokens = tokenise(string);\n var parser = lop.Parser();\n var parseResult = parser.parseTokens(rule, tokens);\n if (parseResult.isSuccess()) {\n return results.success(parseResult.value());\n } else {\n return new results.Result(null, [results.warning(describeFailure(string, parseResult))]);\n }\n}\n\nfunction describeFailure(input, parseResult) {\n return \"Did not understand this style mapping, so ignored it: \" + input + \"\\n\" +\n parseResult.errors().map(describeError).join(\"\\n\");\n}\n\nfunction describeError(error) {\n return \"Error was at character number \" + error.characterNumber() + \": \" +\n \"Expected \" + error.expected + \" but got \" + error.actual;\n}\n\nvar styleRule = createStyleRule();\n","exports.paragraph = paragraph;\nexports.run = run;\nexports.table = table;\nexports.bold = new Matcher(\"bold\");\nexports.italic = new Matcher(\"italic\");\nexports.underline = new Matcher(\"underline\");\nexports.strikethrough = new Matcher(\"strikethrough\");\nexports.allCaps = new Matcher(\"allCaps\");\nexports.smallCaps = new Matcher(\"smallCaps\");\nexports.highlight = highlight;\nexports.commentReference = new Matcher(\"commentReference\");\nexports.lineBreak = new BreakMatcher({breakType: \"line\"});\nexports.pageBreak = new BreakMatcher({breakType: \"page\"});\nexports.columnBreak = new BreakMatcher({breakType: \"column\"});\nexports.equalTo = equalTo;\nexports.startsWith = startsWith;\n\n\nfunction paragraph(options) {\n return new Matcher(\"paragraph\", options);\n}\n\nfunction run(options) {\n return new Matcher(\"run\", options);\n}\n\nfunction table(options) {\n return new Matcher(\"table\", options);\n}\n\nfunction highlight(options) {\n return new HighlightMatcher(options);\n}\n\nfunction Matcher(elementType, options) {\n options = options || {};\n this._elementType = elementType;\n this._styleId = options.styleId;\n this._styleName = options.styleName;\n if (options.list) {\n this._listIndex = options.list.levelIndex;\n this._listIsOrdered = options.list.isOrdered;\n }\n}\n\nMatcher.prototype.matches = function(element) {\n return element.type === this._elementType &&\n (this._styleId === undefined || element.styleId === this._styleId) &&\n (this._styleName === undefined || (element.styleName && this._styleName.operator(this._styleName.operand, element.styleName))) &&\n (this._listIndex === undefined || isList(element, this._listIndex, this._listIsOrdered)) &&\n (this._breakType === undefined || this._breakType === element.breakType);\n};\n\nfunction HighlightMatcher(options) {\n options = options || {};\n this._color = options.color;\n}\n\nHighlightMatcher.prototype.matches = function(element) {\n return element.type === \"highlight\" &&\n (this._color === undefined || element.color === this._color);\n};\n\nfunction BreakMatcher(options) {\n options = options || {};\n this._breakType = options.breakType;\n}\n\nBreakMatcher.prototype.matches = function(element) {\n return element.type === \"break\" &&\n (this._breakType === undefined || element.breakType === this._breakType);\n};\n\nfunction isList(element, levelIndex, isOrdered) {\n return element.numbering &&\n element.numbering.level == levelIndex &&\n element.numbering.isOrdered == isOrdered;\n}\n\nfunction equalTo(value) {\n return {\n operator: operatorEqualTo,\n operand: value\n };\n}\n\nfunction startsWith(value) {\n return {\n operator: operatorStartsWith,\n operand: value\n };\n}\n\nfunction operatorEqualTo(first, second) {\n return first.toUpperCase() === second.toUpperCase();\n}\n\nfunction operatorStartsWith(first, second) {\n return second.toUpperCase().indexOf(first.toUpperCase()) === 0;\n}\n","var _ = require(\"underscore\");\n\nvar html = require(\"../html\");\n\nexports.topLevelElement = topLevelElement;\nexports.elements = elements;\nexports.element = element;\n\nfunction topLevelElement(tagName, attributes) {\n return elements([element(tagName, attributes, {fresh: true})]);\n}\n\nfunction elements(elementStyles) {\n return new HtmlPath(elementStyles.map(function(elementStyle) {\n if (_.isString(elementStyle)) {\n return element(elementStyle);\n } else {\n return elementStyle;\n }\n }));\n}\n\nfunction HtmlPath(elements) {\n this._elements = elements;\n}\n\nHtmlPath.prototype.wrap = function wrap(children) {\n var result = children();\n for (var index = this._elements.length - 1; index >= 0; index--) {\n result = this._elements[index].wrapNodes(result);\n }\n return result;\n};\n\nfunction element(tagName, attributes, options) {\n options = options || {};\n return new Element(tagName, attributes, options);\n}\n\nfunction Element(tagName, attributes, options) {\n var tagNames = {};\n if (_.isArray(tagName)) {\n tagName.forEach(function(tagName) {\n tagNames[tagName] = true;\n });\n tagName = tagName[0];\n } else {\n tagNames[tagName] = true;\n }\n \n this.tagName = tagName;\n this.tagNames = tagNames;\n this.attributes = attributes || {};\n this.fresh = options.fresh;\n this.separator = options.separator;\n}\n\nElement.prototype.matchesElement = function(element) {\n return this.tagNames[element.tagName] && _.isEqual(this.attributes || {}, element.attributes || {});\n};\n\nElement.prototype.wrap = function wrap(generateNodes) {\n return this.wrapNodes(generateNodes());\n};\n\nElement.prototype.wrapNodes = function wrapNodes(nodes) {\n return [html.elementWithTag(this, nodes)];\n};\n\nexports.empty = elements([]);\nexports.ignore = {\n wrap: function() {\n return [];\n }\n};\n","var lop = require(\"lop\");\nvar RegexTokeniser = lop.RegexTokeniser;\n\nexports.tokenise = tokenise;\n\nvar stringPrefix = \"'((?:\\\\\\\\.|[^'])*)\";\n\nfunction tokenise(string) {\n var identifierCharacter = \"(?:[a-zA-Z\\\\-_]|\\\\\\\\.)\";\n var tokeniser = new RegexTokeniser([\n {name: \"identifier\", regex: new RegExp(\"(\" + identifierCharacter + \"(?:\" + identifierCharacter + \"|[0-9])*)\")},\n {name: \"dot\", regex: /\\./},\n {name: \"colon\", regex: /:/},\n {name: \"gt\", regex: />/},\n {name: \"whitespace\", regex: /\\s+/},\n {name: \"arrow\", regex: /=>/},\n {name: \"equals\", regex: /=/},\n {name: \"startsWith\", regex: /\\^=/},\n {name: \"open-paren\", regex: /\\(/},\n {name: \"close-paren\", regex: /\\)/},\n {name: \"open-square-bracket\", regex: /\\[/},\n {name: \"close-square-bracket\", regex: /\\]/},\n {name: \"string\", regex: new RegExp(stringPrefix + \"'\")},\n {name: \"unterminated-string\", regex: new RegExp(stringPrefix)},\n {name: \"integer\", regex: /([0-9]+)/},\n {name: \"choice\", regex: /\\|/},\n {name: \"bang\", regex: /(!)/}\n ]);\n return tokeniser.tokenise(string);\n}\n","var _ = require(\"underscore\");\n\nexports.paragraph = paragraph;\nexports.run = run;\nexports._elements = elements;\nexports.getDescendantsOfType = getDescendantsOfType;\nexports.getDescendants = getDescendants;\n\nfunction paragraph(transform) {\n return elementsOfType(\"paragraph\", transform);\n}\n\nfunction run(transform) {\n return elementsOfType(\"run\", transform);\n}\n\nfunction elementsOfType(elementType, transform) {\n return elements(function(element) {\n if (element.type === elementType) {\n return transform(element);\n } else {\n return element;\n }\n });\n}\n\nfunction elements(transform) {\n return function transformElement(element) {\n if (element.children) {\n var children = _.map(element.children, transformElement);\n element = _.extend(element, {children: children});\n }\n return transform(element);\n };\n}\n\n\nfunction getDescendantsOfType(element, type) {\n return getDescendants(element).filter(function(descendant) {\n return descendant.type === type;\n });\n}\n\nfunction getDescendants(element) {\n var descendants = [];\n\n visitDescendants(element, function(descendant) {\n descendants.push(descendant);\n });\n\n return descendants;\n}\n\nfunction visitDescendants(element, visit) {\n if (element.children) {\n element.children.forEach(function(child) {\n visitDescendants(child, visit);\n visit(child);\n });\n }\n}\n","var htmlPaths = require(\"./styles/html-paths\");\nvar Html = require(\"./html\");\n\n\nexports.element = element;\n\nfunction element(name) {\n return function(html) {\n return Html.elementWithTag(htmlPaths.element(name), [html]);\n };\n}\n","var _ = require(\"underscore\");\n\nexports.writer = writer;\n\nfunction writer(options) {\n options = options || {};\n if (options.prettyPrint) {\n return prettyWriter();\n } else {\n return simpleWriter();\n }\n}\n\n\nvar indentedElements = {\n div: true,\n p: true,\n ul: true,\n li: true\n};\n\n\nfunction prettyWriter() {\n var indentationLevel = 0;\n var indentation = \" \";\n var stack = [];\n var start = true;\n var inText = false;\n\n var writer = simpleWriter();\n\n function open(tagName, attributes) {\n if (indentedElements[tagName]) {\n indent();\n }\n stack.push(tagName);\n writer.open(tagName, attributes);\n if (indentedElements[tagName]) {\n indentationLevel++;\n }\n start = false;\n }\n\n function close(tagName) {\n if (indentedElements[tagName]) {\n indentationLevel--;\n indent();\n }\n stack.pop();\n writer.close(tagName);\n }\n\n function text(value) {\n startText();\n var text = isInPre() ? value : value.replace(\"\\n\", \"\\n\" + indentation);\n writer.text(text);\n }\n\n function selfClosing(tagName, attributes) {\n indent();\n writer.selfClosing(tagName, attributes);\n }\n\n function insideIndentedElement() {\n return stack.length === 0 || indentedElements[stack[stack.length - 1]];\n }\n\n function startText() {\n if (!inText) {\n indent();\n inText = true;\n }\n }\n\n function indent() {\n inText = false;\n if (!start && insideIndentedElement() && !isInPre()) {\n writer._append(\"\\n\");\n for (var i = 0; i < indentationLevel; i++) {\n writer._append(indentation);\n }\n }\n }\n\n function isInPre() {\n return _.some(stack, function(tagName) {\n return tagName === \"pre\";\n });\n }\n\n return {\n asString: writer.asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing\n };\n}\n\n\nfunction simpleWriter() {\n var fragments = [];\n\n function open(tagName, attributes) {\n var attributeString = generateAttributeString(attributes);\n fragments.push(\"<\" + tagName + attributeString + \">\");\n }\n\n function close(tagName) {\n fragments.push(\"\");\n }\n\n function selfClosing(tagName, attributes) {\n var attributeString = generateAttributeString(attributes);\n fragments.push(\"<\" + tagName + attributeString + \" />\");\n }\n\n function generateAttributeString(attributes) {\n return _.map(attributes, function(value, key) {\n return \" \" + key + '=\"' + escapeHtmlAttribute(value) + '\"';\n }).join(\"\");\n }\n\n function text(value) {\n fragments.push(escapeHtmlText(value));\n }\n\n function append(html) {\n fragments.push(html);\n }\n\n function asString() {\n return fragments.join(\"\");\n }\n\n return {\n asString: asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing,\n _append: append\n };\n}\n\nfunction escapeHtmlText(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>');\n}\n\nfunction escapeHtmlAttribute(value) {\n return value\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(//g, '>');\n}\n","var htmlWriter = require(\"./html-writer\");\nvar markdownWriter = require(\"./markdown-writer\");\n\nexports.writer = writer;\n\n\nfunction writer(options) {\n options = options || {};\n if (options.outputFormat === \"markdown\") {\n return markdownWriter.writer();\n } else {\n return htmlWriter.writer(options);\n }\n}\n","var _ = require(\"underscore\");\n\n\nfunction symmetricMarkdownElement(end) {\n return markdownElement(end, end);\n}\n\nfunction markdownElement(start, end) {\n return function() {\n return {start: start, end: end};\n };\n}\n\nfunction markdownLink(attributes) {\n var href = attributes.href || \"\";\n if (href) {\n return {\n start: \"[\",\n end: \"](\" + href + \")\",\n anchorPosition: \"before\"\n };\n } else {\n return {};\n }\n}\n\nfunction markdownImage(attributes) {\n var src = attributes.src || \"\";\n var altText = attributes.alt || \"\";\n if (src || altText) {\n return {start: \"![\" + altText + \"](\" + src + \")\"};\n } else {\n return {};\n }\n}\n\nfunction markdownList(options) {\n return function(attributes, list) {\n return {\n start: list ? \"\\n\" : \"\",\n end: list ? \"\" : \"\\n\",\n list: {\n isOrdered: options.isOrdered,\n indent: list ? list.indent + 1 : 0,\n count: 0\n }\n };\n };\n}\n\nfunction markdownListItem(attributes, list, listItem) {\n list = list || {indent: 0, isOrdered: false, count: 0};\n list.count++;\n listItem.hasClosed = false;\n \n var bullet = list.isOrdered ? list.count + \".\" : \"-\";\n var start = repeatString(\"\\t\", list.indent) + bullet + \" \";\n \n return {\n start: start,\n end: function() {\n if (!listItem.hasClosed) {\n listItem.hasClosed = true;\n return \"\\n\";\n }\n }\n };\n}\n\nvar htmlToMarkdown = {\n \"p\": markdownElement(\"\", \"\\n\\n\"),\n \"br\": markdownElement(\"\", \" \\n\"),\n \"ul\": markdownList({isOrdered: false}),\n \"ol\": markdownList({isOrdered: true}),\n \"li\": markdownListItem,\n \"strong\": symmetricMarkdownElement(\"__\"),\n \"em\": symmetricMarkdownElement(\"*\"),\n \"a\": markdownLink,\n \"img\": markdownImage\n};\n\n(function() {\n for (var i = 1; i <= 6; i++) {\n htmlToMarkdown[\"h\" + i] = markdownElement(repeatString(\"#\", i) + \" \", \"\\n\\n\");\n }\n})();\n\nfunction repeatString(value, count) {\n return new Array(count + 1).join(value);\n}\n\nfunction markdownWriter() {\n var fragments = [];\n var elementStack = [];\n var list = null;\n var listItem = {};\n \n function open(tagName, attributes) {\n attributes = attributes || {};\n \n var createElement = htmlToMarkdown[tagName] || function() {\n return {};\n };\n var element = createElement(attributes, list, listItem);\n elementStack.push({end: element.end, list: list});\n \n if (element.list) {\n list = element.list;\n }\n \n var anchorBeforeStart = element.anchorPosition === \"before\";\n if (anchorBeforeStart) {\n writeAnchor(attributes);\n }\n\n fragments.push(element.start || \"\");\n if (!anchorBeforeStart) {\n writeAnchor(attributes);\n }\n }\n \n function writeAnchor(attributes) {\n if (attributes.id) {\n fragments.push('');\n }\n }\n \n function close(tagName) {\n var element = elementStack.pop();\n list = element.list;\n var end = _.isFunction(element.end) ? element.end() : element.end;\n fragments.push(end || \"\");\n }\n \n function selfClosing(tagName, attributes) {\n open(tagName, attributes);\n close(tagName);\n }\n \n function text(value) {\n fragments.push(escapeMarkdown(value));\n }\n \n function asString() {\n return fragments.join(\"\");\n }\n\n return {\n asString: asString,\n open: open,\n close: close,\n text: text,\n selfClosing: selfClosing\n };\n}\n\nexports.writer = markdownWriter;\n\nfunction escapeMarkdown(value) {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/([\\`\\*_\\{\\}\\[\\]\\(\\)\\#\\+\\-\\.\\!])/g, '\\\\$1');\n}\n","var nodes = require(\"./nodes\");\n\nexports.Element = nodes.Element;\nexports.element = nodes.element;\nexports.emptyElement = nodes.emptyElement;\nexports.text = nodes.text;\nexports.readString = require(\"./reader\").readString;\nexports.writeString = require(\"./writer\").writeString;\n","var _ = require(\"underscore\");\n\n\nexports.Element = Element;\nexports.element = function(name, attributes, children) {\n return new Element(name, attributes, children);\n};\nexports.text = function(value) {\n return {\n type: \"text\",\n value: value\n };\n};\n\n\nvar emptyElement = exports.emptyElement = {\n first: function() {\n return null;\n },\n firstOrEmpty: function() {\n return emptyElement;\n },\n attributes: {},\n children: []\n};\n\nfunction Element(name, attributes, children) {\n this.type = \"element\";\n this.name = name;\n this.attributes = attributes || {};\n this.children = children || [];\n}\n\nElement.prototype.first = function(name) {\n return _.find(this.children, function(child) {\n return child.name === name;\n });\n};\n\nElement.prototype.firstOrEmpty = function(name) {\n return this.first(name) || emptyElement;\n};\n\nElement.prototype.getElementsByTagName = function(name) {\n var elements = _.filter(this.children, function(child) {\n return child.name === name;\n });\n return toElementList(elements);\n};\n\nElement.prototype.text = function() {\n if (this.children.length === 0) {\n return \"\";\n } else if (this.children.length !== 1 || this.children[0].type !== \"text\") {\n throw new Error(\"Not implemented\");\n }\n return this.children[0].value;\n};\n\nvar elementListPrototype = {\n getElementsByTagName: function(name) {\n return toElementList(_.flatten(this.map(function(element) {\n return element.getElementsByTagName(name);\n }, true)));\n }\n};\n\nfunction toElementList(array) {\n return _.extend(array, elementListPrototype);\n}\n","var promises = require(\"../promises\");\nvar _ = require(\"underscore\");\n\nvar xmldom = require(\"./xmldom\");\nvar nodes = require(\"./nodes\");\nvar Element = nodes.Element;\n\nexports.readString = readString;\n\nvar Node = xmldom.Node;\n\nfunction readString(xmlString, namespaceMap) {\n namespaceMap = namespaceMap || {};\n\n try {\n var document = xmldom.parseFromString(xmlString, \"text/xml\");\n } catch (error) {\n return promises.reject(error);\n }\n\n if (document.documentElement.tagName === \"parsererror\") {\n return promises.resolve(new Error(document.documentElement.textContent));\n }\n\n function convertNode(node) {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE:\n return convertElement(node);\n case Node.TEXT_NODE:\n return nodes.text(node.nodeValue);\n }\n }\n\n function convertElement(element) {\n var convertedName = convertName(element);\n\n var convertedChildren = [];\n _.forEach(element.childNodes, function(childNode) {\n var convertedNode = convertNode(childNode);\n if (convertedNode) {\n convertedChildren.push(convertedNode);\n }\n });\n\n var convertedAttributes = {};\n _.forEach(element.attributes, function(attribute) {\n convertedAttributes[convertName(attribute)] = attribute.value;\n });\n\n return new Element(convertedName, convertedAttributes, convertedChildren);\n }\n\n function convertName(node) {\n if (node.namespaceURI) {\n var mappedPrefix = namespaceMap[node.namespaceURI];\n var prefix;\n if (mappedPrefix) {\n prefix = mappedPrefix + \":\";\n } else {\n prefix = \"{\" + node.namespaceURI + \"}\";\n }\n return prefix + node.localName;\n } else {\n return node.localName;\n }\n }\n\n return promises.resolve(convertNode(document.documentElement));\n}\n","var _ = require(\"underscore\");\nvar xmlbuilder = require(\"xmlbuilder\");\n\n\nexports.writeString = writeString;\n\n\nfunction writeString(root, namespaces) {\n var uriToPrefix = _.invert(namespaces);\n \n var nodeWriters = {\n element: writeElement,\n text: writeTextNode\n };\n\n function writeNode(builder, node) {\n return nodeWriters[node.type](builder, node);\n }\n\n function writeElement(builder, element) {\n var elementBuilder = builder.element(mapElementName(element.name), element.attributes);\n element.children.forEach(function(child) {\n writeNode(elementBuilder, child);\n });\n }\n \n function mapElementName(name) {\n var longFormMatch = /^\\{(.*)\\}(.*)$/.exec(name);\n if (longFormMatch) {\n var prefix = uriToPrefix[longFormMatch[1]];\n return prefix + (prefix === \"\" ? \"\" : \":\") + longFormMatch[2];\n } else {\n return name;\n }\n }\n \n function writeDocument(root) {\n var builder = xmlbuilder\n .create(mapElementName(root.name), {\n version: '1.0',\n encoding: 'UTF-8',\n standalone: true\n });\n \n _.forEach(namespaces, function(uri, prefix) {\n var key = \"xmlns\" + (prefix === \"\" ? \"\" : \":\" + prefix);\n builder.attribute(key, uri);\n });\n \n root.children.forEach(function(child) {\n writeNode(builder, child);\n });\n return builder.end();\n }\n\n return writeDocument(root);\n}\n\nfunction writeTextNode(builder, node) {\n builder.text(node.value);\n}\n","var xmldom = require(\"@xmldom/xmldom\");\nvar dom = require(\"@xmldom/xmldom/lib/dom\");\n\nfunction parseFromString(string) {\n var error = null;\n\n var domParser = new xmldom.DOMParser({\n errorHandler: function(level, message) {\n error = {level: level, message: message};\n }\n });\n\n var document = domParser.parseFromString(string);\n\n if (error === null) {\n return document;\n } else {\n throw new Error(error.level + \": \" + error.message);\n }\n}\n\nexports.parseFromString = parseFromString;\nexports.Node = dom.Node;\n","var base64js = require(\"base64-js\");\nvar JSZip = require(\"jszip\");\n\nexports.openArrayBuffer = openArrayBuffer;\nexports.splitPath = splitPath;\nexports.joinPath = joinPath;\n\nfunction openArrayBuffer(arrayBuffer) {\n return JSZip.loadAsync(arrayBuffer).then(function(zipFile) {\n function exists(name) {\n return zipFile.file(name) !== null;\n }\n\n function read(name, encoding) {\n return zipFile.file(name).async(\"uint8array\").then(function(array) {\n if (encoding === \"base64\") {\n return base64js.fromByteArray(array);\n } else if (encoding) {\n var decoder = new TextDecoder(encoding);\n return decoder.decode(array);\n } else {\n return array;\n }\n });\n }\n\n function write(name, contents) {\n zipFile.file(name, contents);\n }\n\n function toArrayBuffer() {\n return zipFile.generateAsync({type: \"arraybuffer\"});\n }\n\n return {\n exists: exists,\n read: read,\n write: write,\n toArrayBuffer: toArrayBuffer\n };\n });\n}\n\nfunction splitPath(path) {\n var lastIndex = path.lastIndexOf(\"/\");\n if (lastIndex === -1) {\n return {dirname: \"\", basename: path};\n } else {\n return {\n dirname: path.substring(0, lastIndex),\n basename: path.substring(lastIndex + 1)\n };\n }\n}\n\nfunction joinPath() {\n var nonEmptyPaths = Array.prototype.filter.call(arguments, function(path) {\n return path;\n });\n\n var relevantPaths = [];\n\n nonEmptyPaths.forEach(function(path) {\n if (/^\\//.test(path)) {\n relevantPaths = [path];\n } else {\n relevantPaths.push(path);\n }\n });\n\n return relevantPaths.join(\"/\");\n}\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar SomePromiseArray = Promise._SomePromiseArray;\nfunction any(promises) {\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(1);\n ret.setUnwrap();\n ret.init();\n return promise;\n}\n\nPromise.any = function (promises) {\n return any(promises);\n};\n\nPromise.prototype.any = function () {\n return any(this);\n};\n\n};\n","\"use strict\";\nvar firstLineError;\ntry {throw new Error(); } catch (e) {firstLineError = e;}\nvar schedule = require(\"./schedule\");\nvar Queue = require(\"./queue\");\nvar util = require(\"./util\");\n\nfunction Async() {\n this._customScheduler = false;\n this._isTickUsed = false;\n this._lateQueue = new Queue(16);\n this._normalQueue = new Queue(16);\n this._haveDrainedQueues = false;\n this._trampolineEnabled = true;\n var self = this;\n this.drainQueues = function () {\n self._drainQueues();\n };\n this._schedule = schedule;\n}\n\nAsync.prototype.setScheduler = function(fn) {\n var prev = this._schedule;\n this._schedule = fn;\n this._customScheduler = true;\n return prev;\n};\n\nAsync.prototype.hasCustomScheduler = function() {\n return this._customScheduler;\n};\n\nAsync.prototype.enableTrampoline = function() {\n this._trampolineEnabled = true;\n};\n\nAsync.prototype.disableTrampolineIfNecessary = function() {\n if (util.hasDevTools) {\n this._trampolineEnabled = false;\n }\n};\n\nAsync.prototype.haveItemsQueued = function () {\n return this._isTickUsed || this._haveDrainedQueues;\n};\n\n\nAsync.prototype.fatalError = function(e, isNode) {\n if (isNode) {\n process.stderr.write(\"Fatal \" + (e instanceof Error ? e.stack : e) +\n \"\\n\");\n process.exit(2);\n } else {\n this.throwLater(e);\n }\n};\n\nAsync.prototype.throwLater = function(fn, arg) {\n if (arguments.length === 1) {\n arg = fn;\n fn = function () { throw arg; };\n }\n if (typeof setTimeout !== \"undefined\") {\n setTimeout(function() {\n fn(arg);\n }, 0);\n } else try {\n this._schedule(function() {\n fn(arg);\n });\n } catch (e) {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n};\n\nfunction AsyncInvokeLater(fn, receiver, arg) {\n this._lateQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncInvoke(fn, receiver, arg) {\n this._normalQueue.push(fn, receiver, arg);\n this._queueTick();\n}\n\nfunction AsyncSettlePromises(promise) {\n this._normalQueue._pushOne(promise);\n this._queueTick();\n}\n\nif (!util.hasDevTools) {\n Async.prototype.invokeLater = AsyncInvokeLater;\n Async.prototype.invoke = AsyncInvoke;\n Async.prototype.settlePromises = AsyncSettlePromises;\n} else {\n Async.prototype.invokeLater = function (fn, receiver, arg) {\n if (this._trampolineEnabled) {\n AsyncInvokeLater.call(this, fn, receiver, arg);\n } else {\n this._schedule(function() {\n setTimeout(function() {\n fn.call(receiver, arg);\n }, 100);\n });\n }\n };\n\n Async.prototype.invoke = function (fn, receiver, arg) {\n if (this._trampolineEnabled) {\n AsyncInvoke.call(this, fn, receiver, arg);\n } else {\n this._schedule(function() {\n fn.call(receiver, arg);\n });\n }\n };\n\n Async.prototype.settlePromises = function(promise) {\n if (this._trampolineEnabled) {\n AsyncSettlePromises.call(this, promise);\n } else {\n this._schedule(function() {\n promise._settlePromises();\n });\n }\n };\n}\n\nAsync.prototype._drainQueue = function(queue) {\n while (queue.length() > 0) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n continue;\n }\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n};\n\nAsync.prototype._drainQueues = function () {\n this._drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n this._drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n","\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!false) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n if (!false) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n","\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = require(\"./util\");\nvar getKeys = require(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n","\"use strict\";\nmodule.exports = function(Promise, Context) {\nvar getDomain = Promise._getDomain;\nvar async = Promise._async;\nvar Warning = require(\"./errors\").Warning;\nvar util = require(\"./util\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (false ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n async.invokeLater(this._notifyUnhandledRejection, this, undefined);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var domain = getDomain();\n possiblyUnhandledRejection =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var domain = getDomain();\n unhandledRejectionHandled =\n typeof fn === \"function\" ? (domain === null ?\n fn : util.domainBind(domain, fn))\n : undefined;\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Context.deactivateLongStackTraces();\n async.enableTrampoline();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Context.activateLongStackTraces();\n async.disableTrampolineIfNecessary();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\nvar fireDomEvent = (function() {\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new CustomEvent(name.toLowerCase(), {\n detail: event,\n cancelable: true\n });\n return !util.global.dispatchEvent(domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = new Event(name.toLowerCase(), {\n cancelable: true\n });\n domEvent.detail = event;\n return !util.global.dispatchEvent(domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name.toLowerCase(), false, true,\n event);\n return !util.global.dispatchEvent(domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = firstLineError.stack.split(\"\\n\");\n var lastStackLines = lastLineError.stack.split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = require(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n","var isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n","\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise) {\nvar util = require(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nreturn PassThroughHandlerContext;\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = require(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", value) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,\n getDomain) {\nvar util = require(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!false) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!false) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var domain = getDomain();\n if (domain !== null) {\n holder.fn = util.domainBind(domain, holder.fn);\n }\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];};\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var domain = getDomain();\n this._callback = domain === null ? fn : util.domainBind(domain, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n","\"use strict\";\nvar util = require(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = require(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = require(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n","\"use strict\";\nmodule.exports = function(Promise) {\nvar util = require(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n","\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = require(\"./util\");\n\nvar getDomain;\nif (util.isNode) {\n getDomain = function() {\n var ret = process.domain;\n if (ret === undefined) ret = null;\n return ret;\n };\n} else {\n getDomain = function() {\n return null;\n };\n}\nutil.notEnumerableProp(Promise, \"_getDomain\", getDomain);\n\nvar es5 = require(\"./es5\");\nvar Async = require(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = require(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = require(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n require(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = require(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\nvar debug = require(\"./debuggability\")(Promise, Context);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n require(\"./finally\")(Promise, tryConvertToPromise);\nvar catchFilter = require(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = require(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n if (self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n}\n\nfunction Promise(executor) {\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n if (executor !== INTERNAL) {\n check(this, executor);\n this._resolveFromExecutor(executor);\n }\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"expecting an object but got \" +\n \"A catch statement predicate \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var domain = getDomain();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: domain === null ? handler\n : (typeof handler === \"function\" &&\n util.domainBind(domain, handler)),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise, receiver, domain);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n this._bitField = this._bitField | 134217728;\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n domain\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n domain === null ? fulfill : util.domainBind(domain, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n domain === null ? reject : util.domainBind(domain, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(promise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\nrequire(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\nrequire(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\nrequire(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\nrequire(\"./direct_resolve\")(Promise);\nrequire(\"./synchronous_inspection\")(Promise);\nrequire(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);\nPromise.Promise = Promise;\nPromise.version = \"3.4.7\";\nrequire('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./call_get.js')(Promise);\nrequire('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\nrequire('./timers.js')(Promise, INTERNAL, debug);\nrequire('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\nrequire('./nodeify.js')(Promise);\nrequire('./promisify.js')(Promise, INTERNAL);\nrequire('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\nrequire('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\nrequire('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\nrequire('./settle.js')(Promise, PromiseArray, debug);\nrequire('./some.js')(Promise, PromiseArray, apiRejection);\nrequire('./filter.js')(Promise, INTERNAL);\nrequire('./each.js')(Promise, INTERNAL);\nrequire('./any.js')(Promise);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = require(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = require(\"./util\");\nvar nodebackForPromise = require(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = require(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!false) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n","\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\nvar isObject = util.isObject;\nvar es5 = require(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n","\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n","\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = require(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n","\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar getDomain = Promise._getDomain;\nvar util = require(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var domain = getDomain();\n this._fn = domain === null ? fn : util.domainBind(domain, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined && \n this._eachValues !== null && \n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n","\"use strict\";\nvar util = require(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova))) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n","\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = require(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n","\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = require(\"./util\");\nvar RangeError = require(\"./errors\").RangeError;\nvar AggregateError = require(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n","\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = require(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n","\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = require(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n","\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = require(\"./util\");\n var TypeError = require(\"./errors\").TypeError;\n var inherits = require(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n","\"use strict\";\nvar es5 = require(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var l = 8;\n while (l--) new FakeConstructor();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\";\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if ({}.toString.call(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nfunction domainBind(self, cb) {\n return self.bind(cb);\n}\n\nvar ret = {\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n hasDevTools: typeof chrome !== \"undefined\" && chrome &&\n typeof chrome.loadTimes === \"function\",\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n domainBind: domainBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version = process.versions.node.split(\".\").map(Number);\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","exports.none = Object.create({\n value: function() {\n throw new Error('Called value on none');\n },\n isNone: function() {\n return true;\n },\n isSome: function() {\n return false;\n },\n map: function() {\n return exports.none;\n },\n flatMap: function() {\n return exports.none;\n },\n filter: function() {\n return exports.none;\n },\n toArray: function() {\n return [];\n },\n orElse: callOrReturn,\n valueOrElse: callOrReturn\n});\n\nfunction callOrReturn(value) {\n if (typeof(value) == \"function\") {\n return value();\n } else {\n return value;\n }\n}\n\nexports.some = function(value) {\n return new Some(value);\n};\n\nvar Some = function(value) {\n this._value = value;\n};\n\nSome.prototype.value = function() {\n return this._value;\n};\n\nSome.prototype.isNone = function() {\n return false;\n};\n\nSome.prototype.isSome = function() {\n return true;\n};\n\nSome.prototype.map = function(func) {\n return new Some(func(this._value));\n};\n\nSome.prototype.flatMap = function(func) {\n return func(this._value);\n};\n\nSome.prototype.filter = function(predicate) {\n return predicate(this._value) ? this : exports.none;\n};\n\nSome.prototype.toArray = function() {\n return [this._value];\n};\n\nSome.prototype.orElse = function(value) {\n return this;\n};\n\nSome.prototype.valueOrElse = function(value) {\n return this._value;\n};\n\nexports.isOption = function(value) {\n return value === exports.none || value instanceof Some;\n};\n\nexports.fromNullable = function(value) {\n if (value == null) {\n return exports.none;\n }\n return new Some(value);\n}\n","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = require('./lib/utils/common').assign;\n\nvar deflate = require('./lib/deflate');\nvar inflate = require('./lib/inflate');\nvar constants = require('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n","'use strict';\n\n\nvar zlib_deflate = require('./zlib/deflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\n\nvar toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_SYNC_FLUSH = 2;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n if (!(this instanceof Deflate)) return new Deflate(options);\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n","'use strict';\n\n\nvar zlib_inflate = require('./zlib/inflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar c = require('./zlib/constants');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\nvar GZheader = require('./zlib/gzheader');\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status === c.Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);\n }\n\n if (status === c.Z_BUF_ERROR && allowBufError === true) {\n status = c.Z_OK;\n allowBufError = false;\n }\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === c.Z_SYNC_FLUSH) {\n this.onEnd(c.Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar trees = require('./trees');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar inflate_fast = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _jsbarcode = _interopRequireDefault(require(\"jsbarcode\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar getDOMNode; // Super naive semver detection but it's good enough. We support 0.12, 0.13\n// which both have getDOMNode on the ref. 0.14 and 15 make the DOM node the ref.\n\nvar version = _react[\"default\"].version.split(/[.-]/);\n\nif (version[0] === '0' && (version[1] === '13' || version[1] === '12')) {\n getDOMNode = function getDOMNode(ref) {\n return ref.getDOMNode();\n };\n} else {\n getDOMNode = function getDOMNode(ref) {\n return ref;\n };\n}\n\nvar Barcode =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Barcode, _React$Component);\n\n function Barcode(props) {\n var _this;\n\n _classCallCheck(this, Barcode);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Barcode).call(this, props));\n _this.renderElementRef = _react[\"default\"].createRef();\n _this.update = _this.update.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Barcode, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this2 = this;\n\n return Object.keys(Barcode.propTypes).some(function (k) {\n return _this2.props[k] !== nextProps[k];\n });\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.update();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: \"update\",\n value: function update() {\n var renderElement = getDOMNode(this.renderElementRef.current);\n\n try {\n new _jsbarcode[\"default\"](renderElement, this.props.value, Object.assign({}, this.props));\n } catch (e) {\n // prevent stop the parent process\n window.console.error(e);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n id = _this$props.id,\n className = _this$props.className;\n\n if (this.props.renderer === 'svg') {\n return _react[\"default\"].createElement(\"svg\", {\n ref: this.renderElementRef,\n id: id,\n className: className\n });\n } else if (this.props.renderer === 'canvas') {\n return _react[\"default\"].createElement(\"canvas\", {\n ref: this.renderElementRef,\n id: id,\n className: className\n });\n } else if (this.props.renderer === 'img') {\n return _react[\"default\"].createElement(\"img\", {\n ref: this.renderElementRef,\n id: id,\n className: className\n });\n }\n }\n }]);\n\n return Barcode;\n}(_react[\"default\"].Component);\n\nBarcode.propTypes = {\n value: _propTypes[\"default\"].string.isRequired,\n renderer: _propTypes[\"default\"].string,\n format: _propTypes[\"default\"].string,\n width: _propTypes[\"default\"].number,\n height: _propTypes[\"default\"].number,\n displayValue: _propTypes[\"default\"].bool,\n fontOptions: _propTypes[\"default\"].string,\n font: _propTypes[\"default\"].string,\n textAlign: _propTypes[\"default\"].string,\n textPosition: _propTypes[\"default\"].string,\n textMargin: _propTypes[\"default\"].number,\n fontSize: _propTypes[\"default\"].number,\n background: _propTypes[\"default\"].string,\n lineColor: _propTypes[\"default\"].string,\n margin: _propTypes[\"default\"].number,\n marginTop: _propTypes[\"default\"].number,\n marginBottom: _propTypes[\"default\"].number,\n marginLeft: _propTypes[\"default\"].number,\n marginRight: _propTypes[\"default\"].number,\n id: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n ean128: _propTypes[\"default\"].bool\n};\nBarcode.defaultProps = {\n format: 'CODE128',\n renderer: 'svg',\n width: 2,\n height: 100,\n displayValue: true,\n fontOptions: '',\n font: 'monospace',\n textAlign: 'center',\n textPosition: 'bottom',\n textMargin: 2,\n fontSize: 20,\n background: '#ffffff',\n lineColor: '#000000',\n margin: 10,\n className: '',\n ean128: false\n};\nmodule.exports = Barcode;","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nvar REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n assign = Object.assign,\n prefix,\n suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return (fiber = describeNativeComponentFrame(fiber.type, !1)), fiber;\n case 11:\n return (\n (fiber = describeNativeComponentFrame(fiber.type.render, !1)), fiber\n );\n case 1:\n return (fiber = describeNativeComponentFrame(fiber.type, !0)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$2 = parentA.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) {\n for (child$2 = parentB.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n fiber = nextRootInstance.nodeType;\n switch (fiber) {\n case 9:\n case 11:\n nextRootInstance = (nextRootInstance = nextRootInstance.documentElement)\n ? (nextRootInstance = nextRootInstance.namespaceURI)\n ? getOwnHostContext(nextRootInstance)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = 8 === fiber ? nextRootInstance.parentNode : nextRootInstance),\n (nextRootInstance = fiber.tagName),\n (fiber = fiber.namespaceURI))\n )\n (fiber = getOwnHostContext(fiber)),\n (nextRootInstance = getChildHostContextProd(fiber, nextRootInstance));\n else\n switch (nextRootInstance) {\n case \"svg\":\n nextRootInstance = 1;\n break;\n case \"math\":\n nextRootInstance = 2;\n break;\n default:\n nextRootInstance = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, nextRootInstance);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 128,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194176;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n warmLanes = root.warmLanes;\n root = 0 !== root.finishedLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = nonIdlePendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = pendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (warmLanes = wipLanes & -wipLanes),\n suspendedLanes >= warmLanes ||\n (32 === suspendedLanes && 0 !== (warmLanes & 4194176)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n return currentTime + 250;\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194176) && (nextTransitionLane = 128);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194218);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n ),\n currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$283;\n if (canUseDOM) {\n var isSupported$jscomp$inline_418 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_418) {\n var element$jscomp$inline_419 = document.createElement(\"div\");\n element$jscomp$inline_419.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_418 =\n \"function\" === typeof element$jscomp$inline_419.oninput;\n }\n JSCompiler_inline_result$jscomp$283 = isSupported$jscomp$inline_418;\n } else JSCompiler_inline_result$jscomp$283 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$283 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nfunction restoreSelection(priorSelectionInformation, containerInfo) {\n var curFocusedElem = getActiveElementDeep(containerInfo);\n containerInfo = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== containerInfo &&\n containerInfo &&\n containerInfo.ownerDocument &&\n containsNode(containerInfo.ownerDocument.documentElement, containerInfo)\n ) {\n if (null !== priorSelectionRange && hasSelectionCapabilities(containerInfo))\n if (\n ((priorSelectionInformation = priorSelectionRange.start),\n (curFocusedElem = priorSelectionRange.end),\n void 0 === curFocusedElem &&\n (curFocusedElem = priorSelectionInformation),\n \"selectionStart\" in containerInfo)\n )\n (containerInfo.selectionStart = priorSelectionInformation),\n (containerInfo.selectionEnd = Math.min(\n curFocusedElem,\n containerInfo.value.length\n ));\n else if (\n ((curFocusedElem =\n ((priorSelectionInformation =\n containerInfo.ownerDocument || document) &&\n priorSelectionInformation.defaultView) ||\n window),\n curFocusedElem.getSelection)\n ) {\n curFocusedElem = curFocusedElem.getSelection();\n var length = containerInfo.textContent.length,\n start = Math.min(priorSelectionRange.start, length);\n priorSelectionRange =\n void 0 === priorSelectionRange.end\n ? start\n : Math.min(priorSelectionRange.end, length);\n !curFocusedElem.extend &&\n start > priorSelectionRange &&\n ((length = priorSelectionRange),\n (priorSelectionRange = start),\n (start = length));\n length = getNodeForCharacterOffset(containerInfo, start);\n var endMarker = getNodeForCharacterOffset(\n containerInfo,\n priorSelectionRange\n );\n length &&\n endMarker &&\n (1 !== curFocusedElem.rangeCount ||\n curFocusedElem.anchorNode !== length.node ||\n curFocusedElem.anchorOffset !== length.offset ||\n curFocusedElem.focusNode !== endMarker.node ||\n curFocusedElem.focusOffset !== endMarker.offset) &&\n ((priorSelectionInformation =\n priorSelectionInformation.createRange()),\n priorSelectionInformation.setStart(length.node, length.offset),\n curFocusedElem.removeAllRanges(),\n start > priorSelectionRange\n ? (curFocusedElem.addRange(priorSelectionInformation),\n curFocusedElem.extend(endMarker.node, endMarker.offset))\n : (priorSelectionInformation.setEnd(\n endMarker.node,\n endMarker.offset\n ),\n curFocusedElem.addRange(priorSelectionInformation)));\n }\n priorSelectionInformation = [];\n for (\n curFocusedElem = containerInfo;\n (curFocusedElem = curFocusedElem.parentNode);\n\n )\n 1 === curFocusedElem.nodeType &&\n priorSelectionInformation.push({\n element: curFocusedElem,\n left: curFocusedElem.scrollLeft,\n top: curFocusedElem.scrollTop\n });\n \"function\" === typeof containerInfo.focus && containerInfo.focus();\n for (\n containerInfo = 0;\n containerInfo < priorSelectionInformation.length;\n containerInfo++\n )\n (curFocusedElem = priorSelectionInformation[containerInfo]),\n (curFocusedElem.element.scrollLeft = curFocusedElem.left),\n (curFocusedElem.element.scrollTop = curFocusedElem.top);\n }\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel\".split(\n \" \"\n );\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n isHidden &&\n null !== update &&\n 3 === sourceFiber.tag &&\n ((parent = sourceFiber.stateNode),\n (isHidden = 31 - clz32(lane)),\n (parent = parent.hiddenUpdates),\n (sourceFiber = parent[isHidden]),\n null === sourceFiber\n ? (parent[isHidden] = [update])\n : sourceFiber.push(update),\n (update.lane = lane | 536870912));\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {},\n CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(formatProdErrorMessage(418, \"\"));\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(instance);\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children),\n track(instance);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 3:\n case 27:\n rootOrSingletonContext = !0;\n return;\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var shouldClear = !1,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== fiber.tag && 27 !== fiber.tag)) {\n if ((JSCompiler_temp = 5 === fiber.tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && (shouldClear = !0);\n shouldClear && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === fiber.tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n a: {\n fiber = fiber.nextSibling;\n for (shouldClear = 0; fiber; ) {\n if (8 === fiber.nodeType)\n if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n if (0 === shouldClear) {\n nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n break a;\n }\n shouldClear--;\n } else\n (\"$\" !== JSCompiler_temp &&\n \"$!\" !== JSCompiler_temp &&\n \"$?\" !== JSCompiler_temp) ||\n shouldClear++;\n fiber = fiber.nextSibling;\n }\n nextHydratableInstance = null;\n }\n } else\n nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null;\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 33554434), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 33554434;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 33554434);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state || \"$?\" === state.data || \"$!\" === state.data)\n )\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber$1 = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber$1.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber$1.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nvar createFunctionComponentUpdateQueue;\ncreateFunctionComponentUpdateQueue = function () {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n};\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber$1;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber$1.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber$1.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$54 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber$1.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber$1.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$54 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$60) {\n onActionError(actionQueue, node, error$60);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber$1;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n currentStateHook =\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n ? useThenable(currentStateHook)\n : currentStateHook;\n var actionQueueHook = updateWorkInProgressHook(),\n actionQueue = actionQueueHook.queue,\n dispatch = actionQueue.dispatch;\n action !== actionQueueHook.memoizedState &&\n ((currentlyRenderingFiber$1.flags |= 2048),\n pushEffect(\n 9,\n actionStateActionEffect.bind(null, actionQueue, action),\n { destroy: void 0 },\n null\n ));\n return [currentStateHook, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushEffect(tag, create, inst, deps) {\n tag = { tag: tag, create: create, inst: inst, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create &&\n ((create = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = create));\n inst = create.lastEffect;\n null === inst\n ? (create.lastEffect = tag.next = tag)\n : ((deps = inst.next),\n (inst.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n { destroy: void 0 },\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushEffect(hookFlags, create, inst, deps))\n : ((currentlyRenderingFiber$1.flags |= fiberFlags),\n (hook.memoizedState = pushEffect(1 | hookFlags, create, inst, deps)));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$63 = enqueueUpdate(provider, fiber, lane);\n null !== root$63 &&\n (scheduleUpdateOnFiber(root$63, provider, lane),\n entangleTransitions(root$63, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194176)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError\n};\nContextOnlyDispatcher.useCacheRefresh = throwInvalidHookError;\nContextOnlyDispatcher.useMemoCache = throwInvalidHookError;\nContextOnlyDispatcher.useHostTransitionStatus = throwInvalidHookError;\nContextOnlyDispatcher.useFormState = throwInvalidHookError;\nContextOnlyDispatcher.useActionState = throwInvalidHookError;\nContextOnlyDispatcher.useOptimistic = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber$1,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \":\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \":\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \":\" +\n identifierPrefix +\n \"r\" +\n JSCompiler_inline_result.toString(32) +\n \":\");\n return (hook.memoizedState = identifierPrefix);\n },\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber$1\n ));\n }\n};\nHooksDispatcherOnMount.useMemoCache = useMemoCache;\nHooksDispatcherOnMount.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnMount.useFormState = mountActionState;\nHooksDispatcherOnMount.useActionState = mountActionState;\nHooksDispatcherOnMount.useOptimistic = function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n};\nvar HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnUpdate.useCacheRefresh = updateRefresh;\nHooksDispatcherOnUpdate.useMemoCache = useMemoCache;\nHooksDispatcherOnUpdate.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnUpdate.useFormState = updateActionState;\nHooksDispatcherOnUpdate.useActionState = updateActionState;\nHooksDispatcherOnUpdate.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n};\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnRerender.useCacheRefresh = updateRefresh;\nHooksDispatcherOnRerender.useMemoCache = useMemoCache;\nHooksDispatcherOnRerender.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnRerender.useFormState = rerenderActionState;\nHooksDispatcherOnRerender.useActionState = rerenderActionState;\nHooksDispatcherOnRerender.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n};\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function (component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$67 in Component)\n void 0 === newProps[propName$67] &&\n (newProps[propName$67] = Component[propName$67]);\n }\n return newProps;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$68) {\n setTimeout(function () {\n throw e$68;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$69) {\n setTimeout(function () {\n throw e$69;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n nextIsDetached = 0 !== (workInProgress.stateNode._pendingVisibility & 2),\n prevState = null !== current ? current.memoizedState : null;\n markRef(current, workInProgress);\n if (\"hidden\" === nextProps.mode || nextIsDetached) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (nextIsDetached = 0; null !== nextChildren; )\n (nextIsDetached =\n nextIsDetached | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = nextIsDetached & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 2097664);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 2097664;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var nextInstance = nextHydratableInstance,\n JSCompiler_temp$jscomp$0;\n if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n c: {\n JSCompiler_temp$jscomp$0 = nextInstance;\n for (\n nextInstance = rootOrSingletonContext;\n 8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n ) {\n if (!nextInstance) {\n nextInstance = null;\n break c;\n }\n JSCompiler_temp$jscomp$0 = getNextHydratable(\n JSCompiler_temp$jscomp$0.nextSibling\n );\n if (null === JSCompiler_temp$jscomp$0) {\n nextInstance = null;\n break c;\n }\n }\n nextInstance = JSCompiler_temp$jscomp$0;\n }\n null !== nextInstance\n ? ((workInProgress.memoizedState = {\n dehydrated: nextInstance,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912\n }),\n (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n 18,\n null,\n null,\n 0\n )),\n (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n (JSCompiler_temp$jscomp$0.return = workInProgress),\n (workInProgress.child = JSCompiler_temp$jscomp$0),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp$jscomp$0 = !0))\n : (JSCompiler_temp$jscomp$0 = !1);\n }\n JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n }\n nextInstance = workInProgress.memoizedState;\n if (\n null !== nextInstance &&\n ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n )\n return (\n \"$!\" === nextInstance.data\n ? (workInProgress.lanes = 16)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n nextInstance = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextInstance = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextInstance },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextInstance.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextInstance.sibling = nextProps),\n (workInProgress.child = nextInstance),\n (showFallback = workInProgress.child),\n (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n }\n JSCompiler_temp$jscomp$0 = current.memoizedState;\n if (\n null !== JSCompiler_temp$jscomp$0 &&\n ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n null !== nextInstance)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n nextInstance\n )),\n (showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2),\n (nextProps.return = workInProgress),\n (showFallback.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = showFallback));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n \"$!\" === nextInstance.data)\n ) {\n JSCompiler_temp =\n nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (null !== JSCompiler_temp) {\n nextProps = renderLanes & -renderLanes;\n if (0 !== (nextProps & 42)) nextProps = 1;\n else\n switch (nextProps) {\n case 2:\n nextProps = 1;\n break;\n case 8:\n nextProps = 4;\n break;\n case 32:\n nextProps = 16;\n break;\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n nextProps = 64;\n break;\n case 268435456:\n nextProps = 134217728;\n break;\n default:\n nextProps = 0;\n }\n nextProps =\n 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n ? 0\n : nextProps;\n if (0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n throw (\n ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n }\n \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n \"$?\" === nextInstance.data\n ? ((workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n (workInProgress = retryDehydratedSuspenseBoundary.bind(\n null,\n current\n )),\n (nextInstance._reactRetry = workInProgress),\n (workInProgress = null))\n : ((current = JSCompiler_temp$jscomp$0.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n ((idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (JSCompiler_temp$jscomp$0 = current.child),\n (digest = JSCompiler_temp$jscomp$0.sibling),\n (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags =\n JSCompiler_temp$jscomp$0.subtreeFlags & 31457280),\n null !== digest\n ? (showFallback = createWorkInProgress(digest, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n (nextProps = showFallback),\n (showFallback = workInProgress.child),\n (nextInstance = current.child.memoizedState),\n null === nextInstance\n ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n null !== JSCompiler_temp$jscomp$0\n ? ((digest = CacheContext._currentValue),\n (JSCompiler_temp$jscomp$0 =\n JSCompiler_temp$jscomp$0.parent !== digest\n ? { parent: digest, pool: digest }\n : JSCompiler_temp$jscomp$0))\n : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n (nextInstance = {\n baseLanes: nextInstance.baseLanes | renderLanes,\n cachePool: JSCompiler_temp$jscomp$0\n })),\n (showFallback.memoizedState = nextInstance),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n return createFiberFromOffscreen(offscreenProps, mode, 0, null);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 13:\n var state = workInProgress.memoizedState;\n if (null !== state) {\n if (null !== state.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state = 0 !== (renderLanes & workInProgress.childLanes);\n state ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n var nextProps = workInProgress.pendingProps;\n init = workInProgress.memoizedState;\n lazyComponent = init.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n nextProps = nextState.cache;\n pushProvider(workInProgress, CacheContext, nextProps);\n nextProps !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n nextProps = nextState.element;\n if (init.isDehydrated)\n if (\n ((init = {\n element: nextProps,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = init),\n (workInProgress.memoizedState = init),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else if (nextProps !== lazyComponent) {\n lazyComponent = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(lazyComponent);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else\n for (\n nextHydratableInstance = getNextHydratable(\n workInProgress.stateNode.containerInfo.firstChild\n ),\n hydrationParentFiber = workInProgress,\n isHydrating = !0,\n hydrationErrors = null,\n rootOrSingletonContext = !0,\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n nextProps,\n renderLanes\n ),\n workInProgress.child = renderLanes;\n renderLanes;\n\n )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n else {\n resetHydrationState();\n if (nextProps === lazyComponent) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n ))),\n (lazyComponent = workInProgress.pendingProps.children),\n null !== current || isHydrating\n ? reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n )\n : (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n )),\n markRef(current, workInProgress),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n nextProps = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = nextProps.children;\n shouldSetTextContent(init, nextProps)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (nextProps = createCache()),\n (init.pooledCache = nextProps),\n nextProps.refCount++,\n null !== nextProps && (init.pooledCacheLanes |= renderLanes),\n (init = nextProps)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (nextProps = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = nextProps.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194176))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0;\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n var instance = current.stateNode;\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = instance;\n break;\n default:\n instanceToUse = instance;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$112) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$112);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n 27 === fiber.tag ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag &&\n 6 !== fiber.tag &&\n 27 !== fiber.tag &&\n 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? 8 === parent.nodeType\n ? parent.parentNode.insertBefore(node, before)\n : parent.insertBefore(node, before)\n : (8 === parent.nodeType\n ? ((before = parent.parentNode), before.insertBefore(node, parent))\n : ((before = parent), before.appendChild(node)),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset,\n JSCompiler_temp.elementType === JSCompiler_temp.type\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n resolvedPrevProps = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return resolvedPrevProps;\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$111) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$111\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 64 && ((flags = finishedWork.updateQueue), null !== flags)) {\n finishedRoot = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n finishedRoot = finishedWork.child.stateNode;\n break;\n case 1:\n finishedRoot = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(flags, finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 26:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n prevProps =\n null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!prevProps) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevProps;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n flags & 512 &&\n (\"manual\" === finishedWork.memoizedProps.mode\n ? safelyAttachRef(finishedWork, finishedWork.return)\n : safelyDetachRef(finishedWork, finishedWork.return));\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber = deletedFiber.stateNode;\n for (\n nearestMountedAncestor = deletedFiber.attributes;\n nearestMountedAncestor.length;\n\n )\n deletedFiber.removeAttributeNode(nearestMountedAncestor[0]);\n detachDeletedInstance(deletedFiber);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParentIsContainer = hostParent;\n var prevHostParentIsContainer$119 = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParentIsContainer;\n hostParentIsContainer = prevHostParentIsContainer$119;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (finishedRoot = hostParent),\n (prevHostParent = deletedFiber.stateNode),\n 8 === finishedRoot.nodeType\n ? finishedRoot.parentNode.removeChild(prevHostParent)\n : finishedRoot.removeChild(prevHostParent);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((nearestMountedAncestor = hostParent),\n (deletedFiber = deletedFiber.stateNode),\n 8 === nearestMountedAncestor.nodeType\n ? clearSuspenseBoundary(\n nearestMountedAncestor.parentNode,\n deletedFiber\n )\n : 1 === nearestMountedAncestor.nodeType &&\n clearSuspenseBoundary(nearestMountedAncestor, deletedFiber),\n retryIfBlockedOn(nearestMountedAncestor))\n : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href ? null : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n if (flags & 4 && null === finishedWork.alternate) {\n hoistableRoot = finishedWork.stateNode;\n currentResource = finishedWork.memoizedProps;\n try {\n for (var node = hoistableRoot.firstChild; node; ) {\n var nextNode = node.nextSibling,\n nodeName = node.nodeName;\n node[internalHoistableMarker] ||\n \"HEAD\" === nodeName ||\n \"BODY\" === nodeName ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node.rel.toLowerCase()) ||\n hoistableRoot.removeChild(node);\n node = nextNode;\n }\n for (\n var type = finishedWork.type, attributes = hoistableRoot.attributes;\n attributes.length;\n\n )\n hoistableRoot.removeAttributeNode(attributes[0]);\n setInitialProperties(hoistableRoot, type, currentResource);\n hoistableRoot[internalInstanceKey] = finishedWork;\n hoistableRoot[internalPropsKey] = currentResource;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n node = null !== finishedWork.memoizedState;\n nextNode = null !== current && null !== current.memoizedState;\n nodeName = offscreenSubtreeIsHidden;\n type = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = nodeName || node;\n offscreenSubtreeWasHidden = type || nextNode;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = type;\n offscreenSubtreeIsHidden = nodeName;\n commitReconciliationEffects(finishedWork);\n root = finishedWork.stateNode;\n root._current = finishedWork;\n root._visibility &= -3;\n root._visibility |= root._pendingVisibility & 2;\n if (\n flags & 8192 &&\n ((root._visibility = node\n ? root._visibility & -2\n : root._visibility | 1),\n node &&\n ((root = offscreenSubtreeIsHidden || offscreenSubtreeWasHidden),\n null === current ||\n nextNode ||\n root ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n null === finishedWork.memoizedProps ||\n \"manual\" !== finishedWork.memoizedProps.mode)\n )\n a: for (current = null, root = finishedWork; ; ) {\n if (5 === root.tag || 26 === root.tag || 27 === root.tag) {\n if (null === current) {\n nextNode = current = root;\n try {\n if (((hoistableRoot = nextNode.stateNode), node))\n (currentResource = hoistableRoot.style),\n \"function\" === typeof currentResource.setProperty\n ? currentResource.setProperty(\n \"display\",\n \"none\",\n \"important\"\n )\n : (currentResource.display = \"none\");\n else {\n maybeNodes = nextNode.stateNode;\n i = nextNode.memoizedProps.style;\n var display =\n void 0 !== i && null !== i && i.hasOwnProperty(\"display\")\n ? i.display\n : null;\n maybeNodes.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n nextNode = root;\n try {\n nextNode.stateNode.nodeValue = node\n ? \"\"\n : nextNode.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n if (27 !== finishedWork.tag) {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(formatProdErrorMessage(160));\n }\n switch (JSCompiler_inline_result.tag) {\n case 27:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 5:\n var parent$113 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (setTextContent(parent$113, \"\"),\n (JSCompiler_inline_result.flags &= -33));\n var before$114 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$114, parent$113);\n break;\n case 3:\n case 4:\n var parent$115 = JSCompiler_inline_result.stateNode.containerInfo,\n before$116 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$116,\n parent$115\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 26:\n case 27:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n safelyDetachRef(finishedWork, finishedWork.return);\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 26:\n case 27:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 4\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 4 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 4 &&\n ((i._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 31457280;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 31457282;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiberImplClass(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n var primaryChildInstance = {\n _visibility: 1,\n _pendingVisibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null,\n _current: null,\n detach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 === (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility |= 2),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n },\n attach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 !== (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility &= -3),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n }\n };\n pendingProps.stateNode = primaryChildInstance;\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource))) {\n resource = suspenseHandlerStackCursor.current;\n if (\n null !== resource &&\n ((workInProgressRootRenderLanes & 4194176) ===\n workInProgressRootRenderLanes\n ? null !== shellBoundary\n : ((workInProgressRootRenderLanes & 62914560) !==\n workInProgressRootRenderLanes &&\n 0 === (workInProgressRootRenderLanes & 536870912)) ||\n resource !== shellBoundary)\n )\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n workInProgress.flags |= 8192;\n }\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$131 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$131 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$131\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$131.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags & 31457280),\n (subtreeFlags |= child$132.flags & 31457280),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n else\n for (child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags),\n (subtreeFlags |= child$132.flags),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null)));\n bubbleProperties(workInProgress);\n return null;\n case 26:\n return (\n (renderLanes = workInProgress.memoizedState),\n null === current\n ? (markUpdate(workInProgress),\n null !== renderLanes\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)))\n : renderLanes\n ? renderLanes !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : (current.memoizedProps !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)),\n null\n );\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n renderLanes = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, current);\n else {\n type = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (current) {\n case 1:\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case 2:\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n default:\n switch (renderLanes) {\n case \"svg\":\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case \"math\":\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n case \"script\":\n current = type.createElement(\"div\");\n current.innerHTML = \"\r\n Image Compressor - Compress Your Images Online\r\n \r\n \r\n \r\n

    Image Compressor

    \r\n
    \r\n \r\n

    Select up to 10 images to compress

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {originalImages.length > 0 && (\r\n
    \r\n

    Original Images

    \r\n
    \r\n {originalImages.map((img, idx) => (\r\n
    \r\n {`Original\r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n {compressedImages.length > 0 && (\r\n
    \r\n

    Compressed Images

    \r\n
    \r\n {compressedImages.map((img, idx) => (\r\n
    \r\n {`Compressed\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ImageCompressor;\r\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\nimport JSZip from 'jszip';\r\n\r\nconst JpgToPngConverter = () => {\r\n const [images, setImages] = useState([]);\r\n const [convertedImages, setConvertedImages] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const files = Array.from(e.target.files).slice(0, 20);\r\n setConvertedImages([]);\r\n if (!files.length) return;\r\n const imagesData = [];\r\n\r\n files.forEach((file) => {\r\n const fileName = file.name.toLowerCase();\r\n if (!fileName.endsWith('.jpg') && !fileName.endsWith('.jpeg')) {\r\n alert(\"Only JPG images are allowed.\");\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n imagesData.push({\r\n originalSrc: ev.target.result,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n if (imagesData.length === files.length) {\r\n setImages(imagesData);\r\n }\r\n };\r\n reader.onerror = () => {\r\n alert(\"Error reading file.\");\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const convertImage = (imageSrc) => {\r\n return new Promise((resolve) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n const dataURL = canvas.toDataURL('image/png');\r\n resolve(dataURL);\r\n };\r\n img.src = imageSrc;\r\n });\r\n };\r\n\r\n const handleConvert = () => {\r\n if (images.length === 0) return;\r\n setLoading(true);\r\n Promise.all(images.map(img => convertImage(img.originalSrc)))\r\n .then((results) => {\r\n setConvertedImages(results);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const downloadImage = (dataURL) => {\r\n const link = document.createElement('a');\r\n link.href = dataURL;\r\n link.download = `NomiStock.png`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const downloadZip = async () => {\r\n if (convertedImages.length === 0) {\r\n alert(\"Please convert images first.\");\r\n return;\r\n }\r\n const zip = new JSZip();\r\n convertedImages.forEach((dataURL, index) => {\r\n const base64Data = dataURL.split(',')[1];\r\n const name = `${images[index]?.fileName || 'image'}.png`;\r\n zip.file(name, base64Data, { base64: true });\r\n });\r\n const content = await zip.generateAsync({ type: 'blob' });\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(content);\r\n link.download = 'converted_images.zip';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const removeImage = (index) => {\r\n const newImages = images.filter((_, i) => i !== index);\r\n setImages(newImages);\r\n setConvertedImages(prev => prev.filter((_, i) => i !== index));\r\n };\r\n\r\n const handleReset = () => {\r\n setImages([]);\r\n setConvertedImages([]);\r\n setLoading(false);\r\n if (fileInputRef.current) fileInputRef.current.value = '';\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n JPG to PNG Converter - Convert Your JPG Images to PNG\r\n \r\n \r\n \r\n

    JPG to PNG Converter

    \r\n
    \r\n \r\n

    Select up to 20 JPG images

    \r\n {images.length > 0 && (\r\n
    \r\n

    Selected Images

    \r\n
    \r\n {images.map((img, index) => (\r\n
    \r\n
    \r\n {img.fileName}\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n {images.length > 0 && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n {convertedImages.length > 0 && (\r\n
    \r\n

    Converted PNG Images

    \r\n
    \r\n {convertedImages.map((dataURL, index) => (\r\n
    \r\n {`Converted\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default JpgToPngConverter;\r\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport mammoth from 'mammoth';\r\nimport html2pdf from 'html2pdf.js';\r\nimport '../CSS/WordToPdf.css';\r\n\r\nconst WordToPdfConverter = () => {\r\n const [selectedFile, setSelectedFile] = useState(null);\r\n const [pdfUrl, setPdfUrl] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n\r\n const fileName = file.name.toLowerCase();\r\n if (!fileName.endsWith('.docx') && !fileName.endsWith('.doc')) {\r\n alert('Please select a valid Word document (.doc or .docx).');\r\n return;\r\n }\r\n setSelectedFile(file);\r\n setPdfUrl(null);\r\n\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const convertWordToPdf = (file) => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = async (event) => {\r\n try {\r\n const arrayBuffer = event.target.result;\r\n // Convert Word to HTML using mammoth\r\n const { value: html } = await mammoth.convertToHtml({ arrayBuffer });\r\n const tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = html;\r\n\r\n // Generate PDF from the HTML using html2pdf\r\n const pdfBlob = await html2pdf()\r\n .from(tempDiv)\r\n .set({\r\n margin: 1,\r\n filename: file.name.replace(/\\.[^/.]+$/, '') + '.pdf',\r\n image: { type: 'jpeg', quality: 0.98 },\r\n html2canvas: { scale: 2 },\r\n jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }\r\n })\r\n .outputPdf('blob');\r\n resolve(pdfBlob);\r\n } catch (error) {\r\n reject(error);\r\n }\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n\r\n const handleConvert = async () => {\r\n if (!selectedFile) return;\r\n setLoading(true);\r\n try {\r\n const pdfBlob = await convertWordToPdf(selectedFile);\r\n const url = URL.createObjectURL(pdfBlob);\r\n setPdfUrl(url);\r\n } catch (error) {\r\n console.error('Conversion error:', error);\r\n alert('There was an error converting the document.');\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const downloadPdf = () => {\r\n if (!pdfUrl) return;\r\n const link = document.createElement('a');\r\n link.href = pdfUrl;\r\n const baseName = selectedFile.name.replace(/\\.[^/.]+$/, '');\r\n link.download = `${baseName}.pdf`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleReset = () => {\r\n setSelectedFile(null);\r\n setPdfUrl(null);\r\n setLoading(false);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n Free Word to PDF Converter - Convert Documents Online\r\n \r\n \r\n \r\n \r\n \r\n\r\n

    Word to PDF Converter

    \r\n\r\n
    \r\n \r\n

    Select one Word document (.doc or .docx)

    \r\n
    \r\n\r\n {/* Display selected file details */}\r\n {selectedFile && (\r\n
    \r\n

    Selected File

    \r\n

    {selectedFile.name}

    \r\n
    \r\n )}\r\n\r\n {/* Convert button */}\r\n {selectedFile && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n\r\n {/* PDF Preview and Download */}\r\n {pdfUrl && (\r\n
    \r\n

    Converted PDF

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default WordToPdfConverter;\r\n","import React, { useEffect } from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport ToolsImage from \"../Images/NomiStock-2.png\";\r\nimport \"../CSS/About.css\";\r\nimport Aos from \"aos\";\r\nimport \"aos/dist/aos.css\";\r\n\r\nconst About = () => {\r\n useEffect(() => {\r\n Aos.init({ duration: 1500, once: true, easing: \"ease-in-out\" });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n About NomiStock - Powerful Online Conversion Tools\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"NomiStock\r\n
    \r\n
    \r\n
    \r\n About NomiStock\r\n

    Your One-Stop Conversion Hub

    \r\n
    \r\n

    \r\n Welcome to NomiStock! We provide a suite of free online tools designed to help you convert, compress, and upscale your images and documents quickly and efficiently. Our advanced technology ensures high-quality results every time.\r\n

    \r\n

    \r\n Whether you need to convert Word documents to PDF, compress large images, or upscale visuals for better resolution, NomiStock is here to empower your creative projects—all for free.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default About;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport \"../CSS/PrivacyPolicy.css\";\r\n\r\nconst PrivacyPolicy = () => {\r\n\r\n return (\r\n
    \r\n \r\n Privacy Policy - NomiStock\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Privacy Policy\r\n

    Your Privacy Matters to NomiStock

    \r\n
    \r\n

    \r\n At NomiStock, we are committed to protecting your privacy. This privacy policy outlines how we collect, use, and safeguard your personal information when you use our online conversion tools.\r\n

    \r\n\r\n

    Information We Collect

    \r\n

    \r\n When you visit our website, we may collect basic information such as your browser type and the pages you visit. We also use cookies to enhance your experience on our platform.\r\n

    \r\n\r\n

    How We Use Your Information

    \r\n

    \r\n The information we collect is used solely to improve your browsing experience and provide you with better services. We do not share your personal information with third parties, except when required by law.\r\n

    \r\n\r\n

    Cookies

    \r\n

    \r\n Our website uses cookies to remember your preferences and make your experience smoother. You can manage or disable cookies through your browser settings if you wish.\r\n

    \r\n\r\n

    Data Security

    \r\n

    \r\n We take reasonable precautions to protect your data from unauthorized access. However, no method of data transmission over the internet or electronic storage is 100% secure.\r\n

    \r\n\r\n

    Policy Changes

    \r\n

    \r\n As we continuously improve our platform, we may update this privacy policy. Any changes will be posted here, and we encourage you to check back periodically for updates.\r\n

    \r\n\r\n

    Contact Us

    \r\n

    \r\n If you have any questions about how we handle your information, please feel free to reach out via our contact page. We're here to help!\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PrivacyPolicy;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport \"../CSS/NotFound.css\"; \r\nconst NotFound = () => {\r\n return (\r\n
    \r\n

    404

    \r\n

    Oops! The page you're looking for doesn't exist.

    \r\n Go Back to Home\r\n
    \r\n );\r\n};\r\n\r\nexport default NotFound;\r\n","import React from 'react';\r\nimport '../CSS/Contact.css';\r\n\r\nconst Contact = () => {\r\n return (\r\n
    \r\n
    \r\n

    Contact Me

    \r\n

    \r\n Reach out to me for any inquiries, collaboration, or innovative creative solutions. Email contact@nomistock.com today.\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Contact;\r\n","import React, { useState, useRef } from 'react';\r\nimport JSZip from 'jszip';\r\nimport { Helmet } from \"react-helmet\";\r\nconst JfifToPngConverter = () => {\r\n const [images, setImages] = useState([]);\r\n const [convertedImages, setConvertedImages] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const files = Array.from(e.target.files).slice(0, 20);\r\n if (!files.length) return;\r\n const filePromises = files.map((file) => {\r\n return new Promise((resolve, reject) => {\r\n if (!file.name.toLowerCase().endsWith('.jfif')) {\r\n return reject(new Error('Only JFIF images are allowed.'));\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n resolve({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n };\r\n img.onerror = reject;\r\n img.src = ev.target.result;\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(file);\r\n });\r\n });\r\n Promise.all(filePromises)\r\n .then((loadedImages) => {\r\n setImages(loadedImages);\r\n setConvertedImages([]);\r\n })\r\n .catch((err) => {\r\n console.error('Error loading images:', err);\r\n alert(err.message);\r\n });\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const removeImage = (index) => {\r\n const newImages = images.filter((_, i) => i !== index);\r\n setImages(newImages);\r\n setConvertedImages((prev) => prev.filter((_, i) => i !== index));\r\n };\r\n\r\n const convertImage = (imageObj) => {\r\n return new Promise((resolve) => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = imageObj.width;\r\n canvas.height = imageObj.height;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(imageObj, 0, 0);\r\n const dataUrl = canvas.toDataURL('image/png');\r\n resolve(dataUrl);\r\n });\r\n };\r\n\r\n const handleConvert = () => {\r\n if (!images.length) return;\r\n setLoading(true);\r\n Promise.all(images.map((img) => convertImage(img.imageObj)))\r\n .then((results) => {\r\n setConvertedImages(results);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const downloadImage = (dataURL, originalName) => {\r\n const link = document.createElement('a');\r\n link.href = dataURL;\r\n link.download = `${originalName}.png`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleDownloadZip = () => {\r\n if (convertedImages.length === 0) return;\r\n const zip = new JSZip();\r\n convertedImages.forEach((dataURL, index) => {\r\n const base64Data = dataURL.split(',')[1];\r\n const fileName = `${images[index]?.fileName || 'image'}.png`;\r\n zip.file(fileName, base64Data, { base64: true });\r\n });\r\n zip.generateAsync({ type: 'blob' }).then((content) => {\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(content);\r\n link.download = 'converted_images.zip';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n });\r\n };\r\n\r\n const handleReset = () => {\r\n setImages([]);\r\n setConvertedImages([]);\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n JFIF to PNG Converter - Convert Your Images Online\r\n \r\n \r\n \r\n

    JFIF to PNG Converter

    \r\n
    \r\n \r\n

    Select up to 20 JFIF images

    \r\n
    \r\n {images.length > 0 && (\r\n
    \r\n

    Selected Images

    \r\n
    \r\n {images.map((img, index) => (\r\n
    \r\n
    \r\n {img.fileName}\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n {images.length > 0 && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n {images.length > 0 && (\r\n
    \r\n

    Converted PNG Images

    \r\n {!loading && convertedImages.length > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {loading &&\r\n images.map((_, index) => (\r\n
    \r\n
    \r\n \r\n
    \r\n

    Converting...

    \r\n
    \r\n ))}\r\n {!loading &&\r\n convertedImages.length > 0 &&\r\n convertedImages.map((dataURL, index) => (\r\n
    \r\n \r\n downloadImage(dataURL, images[index]?.fileName)}\r\n >\r\n Download\r\n \r\n
    \r\n ))}\r\n {!loading && convertedImages.length === 0 && (\r\n

    \r\n Click \"Convert to PNG\" to process your images.\r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\nexport default JfifToPngConverter;\r\n","import React from \"react\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport \"../CSS/Tools.css\";\r\n\r\nconst Tools = () => {\r\n return (\r\n
    \r\n \r\n NomiStock - Powerful Online Conversion Tools\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n

    Conversion Tools

    \r\n

    \r\n Enhance, convert, and optimize your media with our powerful online tools.\r\n

    \r\n
    \r\n {/* Image Compressor */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Compressor

    \r\n

    Reduce file size with minimal loss.

    \r\n
    \r\n
    \r\n\r\n {/* PNG to JPG Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    PNG

    \r\n

    Convert PNG images to JPG.

    \r\n
    \r\n
    \r\n\r\n {/* Image Upscaler */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Upscaler

    \r\n

    Increase image resolution using AI.

    \r\n
    \r\n
    \r\n\r\n {/* JPG to PNG Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    JPG

    \r\n

    Convert JPG images to PNG.

    \r\n
    \r\n
    \r\n\r\n {/* Word to PDF Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    PDF

    \r\n

    Transform Word docs into PDF.

    \r\n
    \r\n
    \r\n\r\n {/* JFIF to PNG Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    JFIF

    \r\n

    Convert JFIF images to PNG.

    \r\n
    \r\n
    \r\n\r\n {/* Crop and Resize Image */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Crop

    \r\n

    Trim and adjust image size.

    \r\n
    \r\n
    \r\n\r\n {/* SVG Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    SVG

    \r\n

    Convert SVG files to images.

    \r\n
    \r\n
    \r\n\r\n {/* Filter Image */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Filter

    \r\n

    Enhance images with filter effects.

    \r\n
    \r\n
    \r\n\r\n {/* Add Watermark */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Watermark

    \r\n

    Overlay text on your images.

    \r\n
    \r\n
    \r\n\r\n {/* Excel to CSV Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Excel

    \r\n

    Convert spreadsheets to CSV format.

    \r\n
    \r\n
    \r\n\r\n {/* HTML Markdown Converter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Markdown

    \r\n

    Transform HTML into Markdown text.

    \r\n
    \r\n
    \r\n\r\n {/* PDF Merger and Splitter */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Merge

    \r\n

    Combine or split PDF documents.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Encoder/Decoder

    \r\n

    Quickly encode or decode strings for URLs.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Code Beautifier

    \r\n

    Format or Minify Your Code.

    \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    QR Code & Barcode

    \r\n

    Generate QR codes or barcodes.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Password Generator

    \r\n

    Create Random Passwords.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    HTML CSS

    \r\n

    HTML and CSS Live Preview.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Pdf Watermark

    \r\n

    Overlay Watermark On Your PDF

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Image Meme Generator

    \r\n

    Add Text to Any Image

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Qr Code Scanner

    \r\n

    Scan QR Codes Online

    \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Base Converter

    \r\n

    Convert numbers between bases.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Favicon

    \r\n

    Create Favicons in Multiple Sizes.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Age Calculator

    \r\n

    calculate your current age.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Loan Calculator

    \r\n

    Calculate your monthly loan payments.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Exif Viewer

    \r\n

    View image metadata instantly.

    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Name Picker

    \r\n

    Pick random names easily.

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Tools;\r\n","import p, { PureComponent as k, createRef as E } from \"react\";\nconst M = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n unit: \"px\"\n}, v = (o, e, t) => Math.min(Math.max(o, e), t), S = (...o) => o.filter((e) => e && typeof e == \"string\").join(\" \"), Y = (o, e) => o === e || o.width === e.width && o.height === e.height && o.x === e.x && o.y === e.y && o.unit === e.unit;\nfunction H(o, e, t, h) {\n const i = y(o, t, h);\n return o.width && (i.height = i.width / e), o.height && (i.width = i.height * e), i.y + i.height > h && (i.height = h - i.y, i.width = i.height * e), i.x + i.width > t && (i.width = t - i.x, i.height = i.width / e), o.unit === \"%\" ? D(i, t, h) : i;\n}\nfunction I(o, e, t) {\n const h = y(o, e, t);\n return h.x = (e - h.width) / 2, h.y = (t - h.height) / 2, o.unit === \"%\" ? D(h, e, t) : h;\n}\nfunction D(o, e, t) {\n return o.unit === \"%\" ? { ...M, ...o, unit: \"%\" } : {\n unit: \"%\",\n x: o.x ? o.x / e * 100 : 0,\n y: o.y ? o.y / t * 100 : 0,\n width: o.width ? o.width / e * 100 : 0,\n height: o.height ? o.height / t * 100 : 0\n };\n}\nfunction y(o, e, t) {\n return o.unit ? o.unit === \"px\" ? { ...M, ...o, unit: \"px\" } : {\n unit: \"px\",\n x: o.x ? o.x * e / 100 : 0,\n y: o.y ? o.y * t / 100 : 0,\n width: o.width ? o.width * e / 100 : 0,\n height: o.height ? o.height * t / 100 : 0\n } : { ...M, ...o, unit: \"px\" };\n}\nfunction P(o, e, t, h, i, n = 0, s = 0, w = h, a = i) {\n const r = { ...o };\n let c = Math.min(n, h), d = Math.min(s, i), g = Math.min(w, h), l = Math.min(a, i);\n e && (e > 1 ? (c = s ? s * e : c, d = c / e, g = w * e) : (d = n ? n / e : d, c = d * e, l = a / e)), r.y < 0 && (r.height = Math.max(r.height + r.y, d), r.y = 0), r.x < 0 && (r.width = Math.max(r.width + r.x, c), r.x = 0);\n const m = h - (r.x + r.width);\n m < 0 && (r.x = Math.min(r.x, h - c), r.width += m);\n const x = i - (r.y + r.height);\n if (x < 0 && (r.y = Math.min(r.y, i - d), r.height += x), r.width < c && ((t === \"sw\" || t == \"nw\") && (r.x -= c - r.width), r.width = c), r.height < d && ((t === \"nw\" || t == \"ne\") && (r.y -= d - r.height), r.height = d), r.width > g && ((t === \"sw\" || t == \"nw\") && (r.x -= g - r.width), r.width = g), r.height > l && ((t === \"nw\" || t == \"ne\") && (r.y -= l - r.height), r.height = l), e) {\n const b = r.width / r.height;\n if (b < e) {\n const C = Math.max(r.width / e, d);\n (t === \"nw\" || t == \"ne\") && (r.y -= C - r.height), r.height = C;\n } else if (b > e) {\n const C = Math.max(r.height * e, c);\n (t === \"sw\" || t == \"nw\") && (r.x -= C - r.width), r.width = C;\n }\n }\n return r;\n}\nfunction _(o, e, t, h) {\n const i = { ...o };\n return e === \"ArrowLeft\" ? h === \"nw\" ? (i.x -= t, i.y -= t, i.width += t, i.height += t) : h === \"w\" ? (i.x -= t, i.width += t) : h === \"sw\" ? (i.x -= t, i.width += t, i.height += t) : h === \"ne\" ? (i.y += t, i.width -= t, i.height -= t) : h === \"e\" ? i.width -= t : h === \"se\" && (i.width -= t, i.height -= t) : e === \"ArrowRight\" && (h === \"nw\" ? (i.x += t, i.y += t, i.width -= t, i.height -= t) : h === \"w\" ? (i.x += t, i.width -= t) : h === \"sw\" ? (i.x += t, i.width -= t, i.height -= t) : h === \"ne\" ? (i.y -= t, i.width += t, i.height += t) : h === \"e\" ? i.width += t : h === \"se\" && (i.width += t, i.height += t)), e === \"ArrowUp\" ? h === \"nw\" ? (i.x -= t, i.y -= t, i.width += t, i.height += t) : h === \"n\" ? (i.y -= t, i.height += t) : h === \"ne\" ? (i.y -= t, i.width += t, i.height += t) : h === \"sw\" ? (i.x += t, i.width -= t, i.height -= t) : h === \"s\" ? i.height -= t : h === \"se\" && (i.width -= t, i.height -= t) : e === \"ArrowDown\" && (h === \"nw\" ? (i.x += t, i.y += t, i.width -= t, i.height -= t) : h === \"n\" ? (i.y += t, i.height -= t) : h === \"ne\" ? (i.y += t, i.width -= t, i.height -= t) : h === \"sw\" ? (i.x -= t, i.width += t, i.height += t) : h === \"s\" ? i.height += t : h === \"se\" && (i.width += t, i.height += t)), i;\n}\nconst f = { capture: !0, passive: !1 };\nlet $ = 0;\nconst u = class u extends k {\n constructor() {\n super(...arguments), this.docMoveBound = !1, this.mouseDownOnCrop = !1, this.dragStarted = !1, this.evData = {\n startClientX: 0,\n startClientY: 0,\n startCropX: 0,\n startCropY: 0,\n clientX: 0,\n clientY: 0,\n isResize: !0\n }, this.componentRef = E(), this.mediaRef = E(), this.initChangeCalled = !1, this.instanceId = `rc-${$++}`, this.state = {\n cropIsActive: !1,\n newCropIsBeingDrawn: !1\n }, this.onCropPointerDown = (e) => {\n const { crop: t, disabled: h } = this.props, i = this.getBox();\n if (!t)\n return;\n const n = y(t, i.width, i.height);\n if (h)\n return;\n e.cancelable && e.preventDefault(), this.bindDocMove(), this.componentRef.current.focus({ preventScroll: !0 });\n const s = e.target.dataset.ord, w = !!s;\n let a = e.clientX, r = e.clientY, c = n.x, d = n.y;\n if (s) {\n const g = e.clientX - i.x, l = e.clientY - i.y;\n let m = 0, x = 0;\n s === \"ne\" || s == \"e\" ? (m = g - (n.x + n.width), x = l - n.y, c = n.x, d = n.y + n.height) : s === \"se\" || s === \"s\" ? (m = g - (n.x + n.width), x = l - (n.y + n.height), c = n.x, d = n.y) : s === \"sw\" || s == \"w\" ? (m = g - n.x, x = l - (n.y + n.height), c = n.x + n.width, d = n.y) : (s === \"nw\" || s == \"n\") && (m = g - n.x, x = l - n.y, c = n.x + n.width, d = n.y + n.height), a = c + i.x + m, r = d + i.y + x;\n }\n this.evData = {\n startClientX: a,\n startClientY: r,\n startCropX: c,\n startCropY: d,\n clientX: e.clientX,\n clientY: e.clientY,\n isResize: w,\n ord: s\n }, this.mouseDownOnCrop = !0, this.setState({ cropIsActive: !0 });\n }, this.onComponentPointerDown = (e) => {\n const { crop: t, disabled: h, locked: i, keepSelection: n, onChange: s } = this.props, w = this.getBox();\n if (h || i || n && t)\n return;\n e.cancelable && e.preventDefault(), this.bindDocMove(), this.componentRef.current.focus({ preventScroll: !0 });\n const a = e.clientX - w.x, r = e.clientY - w.y, c = {\n unit: \"px\",\n x: a,\n y: r,\n width: 0,\n height: 0\n };\n this.evData = {\n startClientX: e.clientX,\n startClientY: e.clientY,\n startCropX: a,\n startCropY: r,\n clientX: e.clientX,\n clientY: e.clientY,\n isResize: !0\n }, this.mouseDownOnCrop = !0, s(y(c, w.width, w.height), D(c, w.width, w.height)), this.setState({ cropIsActive: !0, newCropIsBeingDrawn: !0 });\n }, this.onDocPointerMove = (e) => {\n const { crop: t, disabled: h, onChange: i, onDragStart: n } = this.props, s = this.getBox();\n if (h || !t || !this.mouseDownOnCrop)\n return;\n e.cancelable && e.preventDefault(), this.dragStarted || (this.dragStarted = !0, n && n(e));\n const { evData: w } = this;\n w.clientX = e.clientX, w.clientY = e.clientY;\n let a;\n w.isResize ? a = this.resizeCrop() : a = this.dragCrop(), Y(t, a) || i(\n y(a, s.width, s.height),\n D(a, s.width, s.height)\n );\n }, this.onComponentKeyDown = (e) => {\n const { crop: t, disabled: h, onChange: i, onComplete: n } = this.props;\n if (h)\n return;\n const s = e.key;\n let w = !1;\n if (!t)\n return;\n const a = this.getBox(), r = this.makePixelCrop(a), d = (navigator.platform.match(\"Mac\") ? e.metaKey : e.ctrlKey) ? u.nudgeStepLarge : e.shiftKey ? u.nudgeStepMedium : u.nudgeStep;\n if (s === \"ArrowLeft\" ? (r.x -= d, w = !0) : s === \"ArrowRight\" ? (r.x += d, w = !0) : s === \"ArrowUp\" ? (r.y -= d, w = !0) : s === \"ArrowDown\" && (r.y += d, w = !0), w) {\n e.cancelable && e.preventDefault(), r.x = v(r.x, 0, a.width - r.width), r.y = v(r.y, 0, a.height - r.height);\n const g = y(r, a.width, a.height), l = D(r, a.width, a.height);\n i(g, l), n && n(g, l);\n }\n }, this.onHandlerKeyDown = (e, t) => {\n const {\n aspect: h = 0,\n crop: i,\n disabled: n,\n minWidth: s = 0,\n minHeight: w = 0,\n maxWidth: a,\n maxHeight: r,\n onChange: c,\n onComplete: d\n } = this.props, g = this.getBox();\n if (n || !i)\n return;\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\" || e.key === \"ArrowLeft\" || e.key === \"ArrowRight\")\n e.stopPropagation(), e.preventDefault();\n else\n return;\n const m = (navigator.platform.match(\"Mac\") ? e.metaKey : e.ctrlKey) ? u.nudgeStepLarge : e.shiftKey ? u.nudgeStepMedium : u.nudgeStep, x = y(i, g.width, g.height), b = _(x, e.key, m, t), C = P(\n b,\n h,\n t,\n g.width,\n g.height,\n s,\n w,\n a,\n r\n );\n if (!Y(i, C)) {\n const R = D(C, g.width, g.height);\n c(C, R), d && d(C, R);\n }\n }, this.onDocPointerDone = (e) => {\n const { crop: t, disabled: h, onComplete: i, onDragEnd: n } = this.props, s = this.getBox();\n this.unbindDocMove(), !(h || !t) && this.mouseDownOnCrop && (this.mouseDownOnCrop = !1, this.dragStarted = !1, n && n(e), i && i(y(t, s.width, s.height), D(t, s.width, s.height)), this.setState({ cropIsActive: !1, newCropIsBeingDrawn: !1 }));\n }, this.onDragFocus = () => {\n var e;\n (e = this.componentRef.current) == null || e.scrollTo(0, 0);\n };\n }\n get document() {\n return document;\n }\n // We unfortunately get the bounding box every time as x+y changes\n // due to scrolling.\n getBox() {\n const e = this.mediaRef.current;\n if (!e)\n return { x: 0, y: 0, width: 0, height: 0 };\n const { x: t, y: h, width: i, height: n } = e.getBoundingClientRect();\n return { x: t, y: h, width: i, height: n };\n }\n componentDidUpdate(e) {\n const { crop: t, onComplete: h } = this.props;\n if (h && !e.crop && t) {\n const { width: i, height: n } = this.getBox();\n i && n && h(y(t, i, n), D(t, i, n));\n }\n }\n componentWillUnmount() {\n this.resizeObserver && this.resizeObserver.disconnect(), this.unbindDocMove();\n }\n bindDocMove() {\n this.docMoveBound || (this.document.addEventListener(\"pointermove\", this.onDocPointerMove, f), this.document.addEventListener(\"pointerup\", this.onDocPointerDone, f), this.document.addEventListener(\"pointercancel\", this.onDocPointerDone, f), this.docMoveBound = !0);\n }\n unbindDocMove() {\n this.docMoveBound && (this.document.removeEventListener(\"pointermove\", this.onDocPointerMove, f), this.document.removeEventListener(\"pointerup\", this.onDocPointerDone, f), this.document.removeEventListener(\"pointercancel\", this.onDocPointerDone, f), this.docMoveBound = !1);\n }\n getCropStyle() {\n const { crop: e } = this.props;\n if (e)\n return {\n top: `${e.y}${e.unit}`,\n left: `${e.x}${e.unit}`,\n width: `${e.width}${e.unit}`,\n height: `${e.height}${e.unit}`\n };\n }\n dragCrop() {\n const { evData: e } = this, t = this.getBox(), h = this.makePixelCrop(t), i = e.clientX - e.startClientX, n = e.clientY - e.startClientY;\n return h.x = v(e.startCropX + i, 0, t.width - h.width), h.y = v(e.startCropY + n, 0, t.height - h.height), h;\n }\n getPointRegion(e, t, h, i) {\n const { evData: n } = this, s = n.clientX - e.x, w = n.clientY - e.y;\n let a;\n i && t ? a = t === \"nw\" || t === \"n\" || t === \"ne\" : a = w < n.startCropY;\n let r;\n return h && t ? r = t === \"nw\" || t === \"w\" || t === \"sw\" : r = s < n.startCropX, r ? a ? \"nw\" : \"sw\" : a ? \"ne\" : \"se\";\n }\n resolveMinDimensions(e, t, h = 0, i = 0) {\n const n = Math.min(h, e.width), s = Math.min(i, e.height);\n return !t || !n && !s ? [n, s] : t > 1 ? n ? [n, n / t] : [s * t, s] : s ? [s * t, s] : [n, n / t];\n }\n resizeCrop() {\n const { evData: e } = this, { aspect: t = 0, maxWidth: h, maxHeight: i } = this.props, n = this.getBox(), [s, w] = this.resolveMinDimensions(n, t, this.props.minWidth, this.props.minHeight);\n let a = this.makePixelCrop(n);\n const r = this.getPointRegion(n, e.ord, s, w), c = e.ord || r;\n let d = e.clientX - e.startClientX, g = e.clientY - e.startClientY;\n (s && c === \"nw\" || c === \"w\" || c === \"sw\") && (d = Math.min(d, -s)), (w && c === \"nw\" || c === \"n\" || c === \"ne\") && (g = Math.min(g, -w));\n const l = {\n unit: \"px\",\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n r === \"ne\" ? (l.x = e.startCropX, l.width = d, t ? (l.height = l.width / t, l.y = e.startCropY - l.height) : (l.height = Math.abs(g), l.y = e.startCropY - l.height)) : r === \"se\" ? (l.x = e.startCropX, l.y = e.startCropY, l.width = d, t ? l.height = l.width / t : l.height = g) : r === \"sw\" ? (l.x = e.startCropX + d, l.y = e.startCropY, l.width = Math.abs(d), t ? l.height = l.width / t : l.height = g) : r === \"nw\" && (l.x = e.startCropX + d, l.width = Math.abs(d), t ? (l.height = l.width / t, l.y = e.startCropY - l.height) : (l.height = Math.abs(g), l.y = e.startCropY + g));\n const m = P(\n l,\n t,\n r,\n n.width,\n n.height,\n s,\n w,\n h,\n i\n );\n return t || u.xyOrds.indexOf(c) > -1 ? a = m : u.xOrds.indexOf(c) > -1 ? (a.x = m.x, a.width = m.width) : u.yOrds.indexOf(c) > -1 && (a.y = m.y, a.height = m.height), a.x = v(a.x, 0, n.width - a.width), a.y = v(a.y, 0, n.height - a.height), a;\n }\n renderCropSelection() {\n const {\n ariaLabels: e = u.defaultProps.ariaLabels,\n disabled: t,\n locked: h,\n renderSelectionAddon: i,\n ruleOfThirds: n,\n crop: s\n } = this.props, w = this.getCropStyle();\n if (s)\n return /* @__PURE__ */ p.createElement(\n \"div\",\n {\n style: w,\n className: \"ReactCrop__crop-selection\",\n onPointerDown: this.onCropPointerDown,\n \"aria-label\": e.cropArea,\n tabIndex: 0,\n onKeyDown: this.onComponentKeyDown,\n role: \"group\"\n },\n !t && !h && /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__drag-elements\", onFocus: this.onDragFocus }, /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-n\", \"data-ord\": \"n\" }), /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-e\", \"data-ord\": \"e\" }), /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-s\", \"data-ord\": \"s\" }), /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-w\", \"data-ord\": \"w\" }), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-nw\",\n \"data-ord\": \"nw\",\n tabIndex: 0,\n \"aria-label\": e.nwDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"nw\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-n\",\n \"data-ord\": \"n\",\n tabIndex: 0,\n \"aria-label\": e.nDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"n\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-ne\",\n \"data-ord\": \"ne\",\n tabIndex: 0,\n \"aria-label\": e.neDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"ne\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-e\",\n \"data-ord\": \"e\",\n tabIndex: 0,\n \"aria-label\": e.eDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"e\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-se\",\n \"data-ord\": \"se\",\n tabIndex: 0,\n \"aria-label\": e.seDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"se\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-s\",\n \"data-ord\": \"s\",\n tabIndex: 0,\n \"aria-label\": e.sDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"s\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-sw\",\n \"data-ord\": \"sw\",\n tabIndex: 0,\n \"aria-label\": e.swDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"sw\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ p.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-w\",\n \"data-ord\": \"w\",\n tabIndex: 0,\n \"aria-label\": e.wDragHandle,\n onKeyDown: (a) => this.onHandlerKeyDown(a, \"w\"),\n role: \"button\"\n }\n )),\n i && /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__selection-addon\", onPointerDown: (a) => a.stopPropagation() }, i(this.state)),\n n && /* @__PURE__ */ p.createElement(p.Fragment, null, /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__rule-of-thirds-hz\" }), /* @__PURE__ */ p.createElement(\"div\", { className: \"ReactCrop__rule-of-thirds-vt\" }))\n );\n }\n makePixelCrop(e) {\n const t = { ...M, ...this.props.crop || {} };\n return y(t, e.width, e.height);\n }\n render() {\n const { aspect: e, children: t, circularCrop: h, className: i, crop: n, disabled: s, locked: w, style: a, ruleOfThirds: r } = this.props, { cropIsActive: c, newCropIsBeingDrawn: d } = this.state, g = n ? this.renderCropSelection() : null, l = S(\n \"ReactCrop\",\n i,\n c && \"ReactCrop--active\",\n s && \"ReactCrop--disabled\",\n w && \"ReactCrop--locked\",\n d && \"ReactCrop--new-crop\",\n n && e && \"ReactCrop--fixed-aspect\",\n n && h && \"ReactCrop--circular-crop\",\n n && r && \"ReactCrop--rule-of-thirds\",\n !this.dragStarted && n && !n.width && !n.height && \"ReactCrop--invisible-crop\",\n h && \"ReactCrop--no-animate\"\n );\n return /* @__PURE__ */ p.createElement(\"div\", { ref: this.componentRef, className: l, style: a }, /* @__PURE__ */ p.createElement(\"div\", { ref: this.mediaRef, className: \"ReactCrop__child-wrapper\", onPointerDown: this.onComponentPointerDown }, t), n ? /* @__PURE__ */ p.createElement(\"svg\", { className: \"ReactCrop__crop-mask\", width: \"100%\", height: \"100%\" }, /* @__PURE__ */ p.createElement(\"defs\", null, /* @__PURE__ */ p.createElement(\"mask\", { id: `hole-${this.instanceId}` }, /* @__PURE__ */ p.createElement(\"rect\", { width: \"100%\", height: \"100%\", fill: \"white\" }), h ? /* @__PURE__ */ p.createElement(\n \"ellipse\",\n {\n cx: `${n.x + n.width / 2}${n.unit}`,\n cy: `${n.y + n.height / 2}${n.unit}`,\n rx: `${n.width / 2}${n.unit}`,\n ry: `${n.height / 2}${n.unit}`,\n fill: \"black\"\n }\n ) : /* @__PURE__ */ p.createElement(\n \"rect\",\n {\n x: `${n.x}${n.unit}`,\n y: `${n.y}${n.unit}`,\n width: `${n.width}${n.unit}`,\n height: `${n.height}${n.unit}`,\n fill: \"black\"\n }\n ))), /* @__PURE__ */ p.createElement(\"rect\", { fill: \"black\", fillOpacity: 0.5, width: \"100%\", height: \"100%\", mask: `url(#hole-${this.instanceId})` })) : void 0, g);\n }\n};\nu.xOrds = [\"e\", \"w\"], u.yOrds = [\"n\", \"s\"], u.xyOrds = [\"nw\", \"ne\", \"se\", \"sw\"], u.nudgeStep = 1, u.nudgeStepMedium = 10, u.nudgeStepLarge = 100, u.defaultProps = {\n ariaLabels: {\n cropArea: \"Use the arrow keys to move the crop selection area\",\n nwDragHandle: \"Use the arrow keys to move the north west drag handle to change the crop selection area\",\n nDragHandle: \"Use the up and down arrow keys to move the north drag handle to change the crop selection area\",\n neDragHandle: \"Use the arrow keys to move the north east drag handle to change the crop selection area\",\n eDragHandle: \"Use the up and down arrow keys to move the east drag handle to change the crop selection area\",\n seDragHandle: \"Use the arrow keys to move the south east drag handle to change the crop selection area\",\n sDragHandle: \"Use the up and down arrow keys to move the south drag handle to change the crop selection area\",\n swDragHandle: \"Use the arrow keys to move the south west drag handle to change the crop selection area\",\n wDragHandle: \"Use the up and down arrow keys to move the west drag handle to change the crop selection area\"\n }\n};\nlet X = u;\nexport {\n X as Component,\n X as ReactCrop,\n Y as areCropsEqual,\n I as centerCrop,\n v as clamp,\n S as cls,\n P as containCrop,\n D as convertToPercentCrop,\n y as convertToPixelCrop,\n X as default,\n M as defaultCrop,\n H as makeAspectCrop,\n _ as nudgeCrop\n};\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport ReactCrop from 'react-image-crop';\r\nimport 'react-image-crop/dist/ReactCrop.css';\r\nimport JSZip from 'jszip';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst ImageCropperResizer = () => {\r\n const [images, setImages] = useState([]);\r\n const [convertedImages, setConvertedImages] = useState([]);\r\n const [activeImageIndex, setActiveImageIndex] = useState(null);\r\n const [crop, setCrop] = useState({ unit: '%', width: 50 });\r\n const [completedCrop, setCompletedCrop] = useState(null);\r\n const [resizeWidth, setResizeWidth] = useState('');\r\n const [resizeHeight, setResizeHeight] = useState('');\r\n const fileInputRef = useRef(null);\r\n const cropImgRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n\r\n new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n resolve({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n };\r\n img.onerror = reject;\r\n img.src = ev.target.result;\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(file);\r\n })\r\n .then((loadedImage) => {\r\n setImages([loadedImage]);\r\n setConvertedImages([]);\r\n })\r\n .catch((err) => {\r\n console.error('Error loading image:', err);\r\n alert(err.message);\r\n });\r\n\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const removeImage = () => {\r\n setImages([]);\r\n setConvertedImages([]);\r\n setActiveImageIndex(null);\r\n };\r\n\r\n const getCroppedImg = (image, crop, fileName, outputWidth, outputHeight) => {\r\n const canvas = document.createElement('canvas');\r\n const scaleX = image.naturalWidth / image.width;\r\n const scaleY = image.naturalHeight / image.height;\r\n const cropWidth = crop.width * scaleX;\r\n const cropHeight = crop.height * scaleY;\r\n canvas.width = outputWidth || cropWidth;\r\n canvas.height = outputHeight || cropHeight;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(\r\n image,\r\n crop.x * scaleX,\r\n crop.y * scaleY,\r\n cropWidth,\r\n cropHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height\r\n );\r\n return canvas.toDataURL('image/png');\r\n };\r\n\r\n const handleCropButton = () => {\r\n setActiveImageIndex(0);\r\n setCrop({ unit: '%', width: 50, x: 25, y: 25 });\r\n setCompletedCrop(null);\r\n setResizeWidth('');\r\n setResizeHeight('');\r\n };\r\n\r\n const handleSaveCrop = () => {\r\n if (!completedCrop || !cropImgRef.current) return;\r\n const outputW = resizeWidth ? parseInt(resizeWidth, 10) : null;\r\n const outputH = resizeHeight ? parseInt(resizeHeight, 10) : null;\r\n const croppedDataUrl = getCroppedImg(\r\n cropImgRef.current,\r\n completedCrop,\r\n images[activeImageIndex].fileName,\r\n outputW,\r\n outputH\r\n );\r\n setConvertedImages([croppedDataUrl]);\r\n setActiveImageIndex(null);\r\n setCrop({ unit: '%', width: 50 });\r\n setCompletedCrop(null);\r\n setResizeWidth('');\r\n setResizeHeight('');\r\n };\r\n\r\n const handleCancelCrop = () => {\r\n setActiveImageIndex(null);\r\n setCrop({ unit: '%', width: 50 });\r\n setCompletedCrop(null);\r\n setResizeWidth('');\r\n setResizeHeight('');\r\n };\r\n\r\n useEffect(() => {\r\n if (completedCrop && completedCrop.width && completedCrop.height) {\r\n setResizeWidth(Math.round(completedCrop.width));\r\n setResizeHeight(Math.round(completedCrop.height));\r\n }\r\n }, [completedCrop]);\r\n\r\n const downloadImage = (dataURL) => {\r\n const link = document.createElement('a');\r\n link.href = dataURL;\r\n link.download = `NomiStock.png`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleDownloadZip = () => {\r\n if (convertedImages.length === 0) return;\r\n const zip = new JSZip();\r\n convertedImages.forEach((dataURL, index) => {\r\n if (dataURL) {\r\n const base64Data = dataURL.split(',')[1];\r\n const fileName = `${images[index]?.fileName || 'image'}.png`;\r\n zip.file(fileName, base64Data, { base64: true });\r\n }\r\n });\r\n zip.generateAsync({ type: 'blob' }).then((content) => {\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(content);\r\n link.download = 'cropped_images.zip';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n Image Cropper/Resizer - Crop and Resize Your Images Online\r\n \r\n \r\n \r\n

    Image Cropper/Resizer

    \r\n
    \r\n \r\n

    Select an image

    \r\n
    \r\n\r\n {images.length > 0 && (\r\n
    \r\n

    Selected Image

    \r\n
    \r\n {images.map((img, index) => (\r\n
    \r\n
    \r\n {img.fileName}\r\n \r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n\r\n {activeImageIndex !== null && (\r\n
    \r\n

    Crop & Resize: {images[activeImageIndex]?.fileName}

    \r\n setCrop(newCrop)}\r\n onComplete={(c) => setCompletedCrop(c)}\r\n >\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n {images.length > 0 && (\r\n
    \r\n

    Cropped/Resized Image

    \r\n {!activeImageIndex && convertedImages.some(img => img) && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {convertedImages.map((dataURL, index) => (\r\n dataURL && (\r\n
    \r\n \r\n downloadImage(dataURL, images[index]?.fileName)}\r\n >\r\n Download\r\n \r\n
    \r\n )\r\n ))}\r\n {!activeImageIndex && convertedImages.filter(Boolean).length === 0 && (\r\n

    \r\n Click \"Crop/Resize\" on the image to edit it.\r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ImageCropperResizer;\r\n","import React, { useState, useRef } from 'react';\r\nimport JSZip from 'jszip';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst SvgToImageConverter = () => {\r\n const [images, setImages] = useState([]);\r\n const [convertedImages, setConvertedImages] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [outputFormat, setOutputFormat] = useState('png');\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const files = Array.from(e.target.files).slice(0, 10);\r\n if (!files.length) return;\r\n\r\n const filePromises = files.map((file) => {\r\n return new Promise((resolve, reject) => {\r\n if (!file.name.toLowerCase().endsWith('.svg')) {\r\n return reject(new Error('Only SVG images are allowed.'));\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n resolve({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n };\r\n img.onerror = () => reject(new Error(\"Failed to load image.\"));\r\n img.src = ev.target.result;\r\n };\r\n reader.onerror = () => reject(new Error(\"Error reading file.\"));\r\n reader.readAsDataURL(file);\r\n });\r\n });\r\n\r\n Promise.all(filePromises)\r\n .then((loadedImages) => {\r\n setImages(loadedImages);\r\n setConvertedImages([]);\r\n })\r\n .catch((err) => {\r\n console.error('Error loading images:', err);\r\n alert(err.message);\r\n });\r\n\r\n // Clear file input for re-upload\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const removeImage = (index) => {\r\n const newImages = images.filter((_, i) => i !== index);\r\n setImages(newImages);\r\n setConvertedImages((prev) => prev.filter((_, i) => i !== index));\r\n };\r\n\r\n const convertImage = (imageObj) => {\r\n return new Promise((resolve) => {\r\n const canvas = document.createElement('canvas');\r\n canvas.width = imageObj.naturalWidth;\r\n canvas.height = imageObj.naturalHeight;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(imageObj, 0, 0);\r\n const mimeType = outputFormat === 'jpg' ? 'image/jpeg' : 'image/png';\r\n const dataUrl = canvas.toDataURL(mimeType);\r\n resolve(dataUrl);\r\n });\r\n };\r\n\r\n const handleConvert = () => {\r\n if (!images.length) return;\r\n setLoading(true);\r\n Promise.all(images.map((img) => convertImage(img.imageObj)))\r\n .then((results) => {\r\n setConvertedImages(results);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const downloadImage = (dataURL, originalName) => {\r\n const link = document.createElement('a');\r\n link.href = dataURL;\r\n link.download = `${originalName}.${outputFormat === 'jpg' ? 'jpg' : 'png'}`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleDownloadZip = () => {\r\n if (convertedImages.length === 0) return;\r\n const zip = new JSZip();\r\n convertedImages.forEach((dataURL, index) => {\r\n const base64Data = dataURL.split(',')[1];\r\n const fileName = `${images[index]?.fileName || 'image'}.${outputFormat === 'jpg' ? 'jpg' : 'png'}`;\r\n zip.file(fileName, base64Data, { base64: true });\r\n });\r\n zip.generateAsync({ type: 'blob' }).then((content) => {\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(content);\r\n link.download = 'converted_images.zip';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n });\r\n };\r\n\r\n const handleReset = () => {\r\n setImages([]);\r\n setConvertedImages([]);\r\n setLoading(false);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n SVG to PNG/JPG Converter - Convert Your SVG Images Online\r\n \r\n \r\n \r\n

    SVG to PNG/JPG Converter

    \r\n
    \r\n \r\n

    Select up to 10 SVG images

    \r\n
    \r\n\r\n {images.length > 0 && (\r\n
    \r\n

    Selected Images

    \r\n
    \r\n {images.map((img, index) => (\r\n
    \r\n
    \r\n {img.fileName}\r\n \r\n
    \r\n

    {img.fileName}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n\r\n {images.length > 0 && (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n\r\n {images.length > 0 && (\r\n
    \r\n

    Converted {outputFormat.toUpperCase()} Images

    \r\n {!loading && convertedImages.length > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n {loading &&\r\n images.map((_, index) => (\r\n
    \r\n
    \r\n \r\n
    \r\n

    Converting...

    \r\n
    \r\n ))}\r\n {!loading &&\r\n convertedImages.length > 0 &&\r\n convertedImages.map((dataURL, index) => (\r\n
    \r\n \r\n downloadImage(dataURL, images[index]?.fileName)}\r\n >\r\n Download\r\n \r\n
    \r\n ))}\r\n {!loading && convertedImages.length === 0 && (\r\n

    \r\n Click \"Convert to {outputFormat.toUpperCase()}\" to process your images.\r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SvgToImageConverter;\r\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst ImageFiltersEffects = () => {\r\n const [selectedImage, setSelectedImage] = useState(null);\r\n const [convertedImage, setConvertedImage] = useState(null);\r\n const [filterSettings, setFilterSettings] = useState({\r\n grayscale: 0,\r\n sepia: 0,\r\n brightness: 100,\r\n contrast: 100,\r\n });\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n setSelectedImage({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n setConvertedImage(null);\r\n };\r\n img.onerror = () => alert(\"Failed to load image\");\r\n img.src = ev.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const applyFilters = () => {\r\n if (!selectedImage || !selectedImage.imageObj) return;\r\n const img = selectedImage.imageObj;\r\n const canvas = document.createElement('canvas');\r\n canvas.width = img.naturalWidth;\r\n canvas.height = img.naturalHeight;\r\n const ctx = canvas.getContext('2d');\r\n const { grayscale, sepia, brightness, contrast } = filterSettings;\r\n ctx.filter = `grayscale(${grayscale}%) sepia(${sepia}%) brightness(${brightness}%) contrast(${contrast}%)`;\r\n ctx.drawImage(img, 0, 0);\r\n const dataUrl = canvas.toDataURL('image/png');\r\n setConvertedImage(dataUrl);\r\n };\r\n\r\n const handleDownload = () => {\r\n if (!convertedImage) return;\r\n const link = document.createElement('a');\r\n link.href = convertedImage;\r\n link.download = `NomiStock.png`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleReset = () => {\r\n setSelectedImage(null);\r\n setConvertedImage(null);\r\n setFilterSettings({\r\n grayscale: 0,\r\n sepia: 0,\r\n brightness: 100,\r\n contrast: 100,\r\n });\r\n };\r\n\r\n const handleFilterChange = (e) => {\r\n const { name, value } = e.target;\r\n setFilterSettings(prev => ({ ...prev, [name]: value }));\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n Image Filters & Effects - Apply Filters to Your Images\r\n \r\n \r\n \r\n

    Image Filters & Effects

    \r\n
    \r\n \r\n

    Select an image

    \r\n
    \r\n {selectedImage && (\r\n
    \r\n

    Selected Image

    \r\n
    \r\n
    \r\n
    \r\n {selectedImage.fileName}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {selectedImage && (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n )}\r\n {selectedImage && (\r\n
    \r\n

    Filtered Image

    \r\n
    \r\n {convertedImage ? (\r\n
    \r\n {`Filtered\r\n \r\n
    \r\n ) : (\r\n

    \r\n Click \"Apply Effects\" to process your image.\r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ImageFiltersEffects;\r\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst ImageWatermarker = () => {\r\n const [selectedImage, setSelectedImage] = useState(null);\r\n const [watermarkedImage, setWatermarkedImage] = useState(null);\r\n const [watermarkType, setWatermarkType] = useState('text');\r\n const [watermarkText, setWatermarkText] = useState('');\r\n const [watermarkImage, setWatermarkImage] = useState(null);\r\n const fileInputRef = useRef(null);\r\n const watermarkFileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n setSelectedImage({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n setWatermarkedImage(null);\r\n };\r\n img.onerror = () => alert(\"Failed to load image\");\r\n img.src = ev.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const handleWatermarkImageChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n setWatermarkImage({\r\n originalSrc: ev.target.result,\r\n imageObj: img,\r\n fileName: file.name.replace(/\\.[^/.]+$/, '')\r\n });\r\n };\r\n img.onerror = () => alert(\"Failed to load watermark image\");\r\n img.src = ev.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n if (watermarkFileInputRef.current) {\r\n watermarkFileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const applyWatermark = () => {\r\n if (!selectedImage || !selectedImage.imageObj) return;\r\n const baseImg = selectedImage.imageObj;\r\n const canvas = document.createElement('canvas');\r\n canvas.width = baseImg.naturalWidth;\r\n canvas.height = baseImg.naturalHeight;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(baseImg, 0, 0);\r\n const margin = 10;\r\n if (watermarkType === 'text') {\r\n if (watermarkText.trim() !== '') {\r\n const fontSize = Math.floor(canvas.width * 0.05);\r\n ctx.font = `${fontSize}px sans-serif`;\r\n ctx.fillStyle = \"rgba(255, 255, 255, 0.5)\";\r\n const textWidth = ctx.measureText(watermarkText).width;\r\n ctx.fillText(watermarkText, canvas.width - textWidth - margin, canvas.height - margin);\r\n }\r\n } else if (watermarkType === 'image') {\r\n if (watermarkImage && watermarkImage.imageObj) {\r\n const wmImg = watermarkImage.imageObj;\r\n const scale = 0.2;\r\n const wmWidth = canvas.width * scale;\r\n const wmHeight = (wmImg.naturalHeight / wmImg.naturalWidth) * wmWidth;\r\n const x = canvas.width - wmWidth - margin;\r\n const y = canvas.height - wmHeight - margin;\r\n ctx.globalAlpha = 0.5;\r\n ctx.drawImage(wmImg, x, y, wmWidth, wmHeight);\r\n ctx.globalAlpha = 1.0;\r\n }\r\n }\r\n const watermarkedDataUrl = canvas.toDataURL('image/png');\r\n setWatermarkedImage(watermarkedDataUrl);\r\n };\r\n\r\n const handleDownload = () => {\r\n if (!watermarkedImage) return;\r\n const link = document.createElement('a');\r\n link.href = watermarkedImage;\r\n link.download = `NomiStock.jpg`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleReset = () => {\r\n setSelectedImage(null);\r\n setWatermarkedImage(null);\r\n setWatermarkText('');\r\n setWatermarkImage(null);\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n Image Watermarker - Add Watermarks to Your Photos\r\n \r\n \r\n \r\n

    Image Watermarker

    \r\n
    \r\n \r\n

    Select an image

    \r\n
    \r\n {selectedImage && (\r\n
    \r\n

    Selected Image

    \r\n
    \r\n
    \r\n
    \r\n {selectedImage.fileName}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {selectedImage && (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {watermarkType === 'text' && (\r\n
    \r\n \r\n
    \r\n )}\r\n {watermarkType === 'image' && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n )}\r\n {selectedImage && (\r\n
    \r\n

    Watermarked Image

    \r\n
    \r\n {watermarkedImage ? (\r\n
    \r\n {`Watermarked\r\n \r\n
    \r\n ) : (\r\n

    \r\n Click \"Apply Watermark\" to process your image.\r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ImageWatermarker;\r\n","import React from \"react\";\r\nimport \"../CSS/Loading.css\";\r\n\r\nconst LoadingSpinner = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default LoadingSpinner;\r\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
    \").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
    ') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
    ',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
    ': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
    \" + t + \"
    \");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
    \");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
    \" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst ExcelCsvConverter = () => {\r\n const [conversionType, setConversionType] = useState('excel-to-csv'); // \"excel-to-csv\" or \"csv-to-excel\"\r\n const [selectedFile, setSelectedFile] = useState(null);\r\n const [convertedData, setConvertedData] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n // Reset all states\r\n const handleReset = () => {\r\n setSelectedFile(null);\r\n setConvertedData(null);\r\n setLoading(false);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n // Handle file selection\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n setSelectedFile(file);\r\n setConvertedData(null);\r\n // Reset the input so that the same file can be reselected if needed.\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n // Convert the file based on conversion type\r\n const handleConvert = () => {\r\n if (!selectedFile) return;\r\n setLoading(true);\r\n const fileName = selectedFile.name;\r\n const ext = fileName.split('.').pop().toLowerCase();\r\n\r\n if (conversionType === 'excel-to-csv') {\r\n if (ext !== 'xlsx' && ext !== 'xls') {\r\n alert('Please select a valid Excel file (.xlsx or .xls) for conversion.');\r\n setLoading(false);\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const data = new Uint8Array(ev.target.result);\r\n const workbook = XLSX.read(data, { type: 'array' });\r\n const firstSheetName = workbook.SheetNames[0];\r\n const csvData = XLSX.utils.sheet_to_csv(workbook.Sheets[firstSheetName]);\r\n setConvertedData(csvData);\r\n setLoading(false);\r\n };\r\n reader.onerror = () => {\r\n alert('Error reading file.');\r\n setLoading(false);\r\n };\r\n reader.readAsArrayBuffer(selectedFile);\r\n } else if (conversionType === 'csv-to-excel') {\r\n if (ext !== 'csv') {\r\n alert('Please select a valid CSV file for conversion.');\r\n setLoading(false);\r\n return;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const csvText = ev.target.result;\r\n const workbook = XLSX.read(csvText, { type: 'string' });\r\n const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });\r\n const blobUrl = URL.createObjectURL(blob);\r\n setConvertedData(blobUrl);\r\n setLoading(false);\r\n };\r\n reader.onerror = () => {\r\n alert('Error reading file.');\r\n setLoading(false);\r\n };\r\n reader.readAsText(selectedFile);\r\n }\r\n };\r\n\r\n // Download the converted file\r\n const handleDownload = () => {\r\n if (!convertedData || !selectedFile) return;\r\n if (conversionType === 'excel-to-csv') {\r\n const blob = new Blob([convertedData], { type: 'text/csv;charset=utf-8;' });\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = `NomiStock.csv`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else if (conversionType === 'csv-to-excel') {\r\n const link = document.createElement('a');\r\n link.href = convertedData;\r\n link.download = `NomiStock.xlsx`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n Excel ↔ CSV Converter - Convert Your Files Online\r\n \r\n \r\n \r\n

    Excel ↔ CSV Converter

    \r\n
    \r\n \r\n \r\n

    Select a file

    \r\n
    \r\n\r\n {/* Display selected file details */}\r\n {selectedFile && (\r\n
    \r\n

    Selected File

    \r\n
    \r\n
    \r\n
    \r\n

    {selectedFile.name}

    \r\n {/* */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {/* Convert button */}\r\n {selectedFile && (\r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n )}\r\n\r\n {selectedFile && convertedData && (\r\n
    \r\n

    Converted File

    \r\n
    \r\n
    \r\n {conversionType === 'excel-to-csv' ? (\r\n \r\n ) : (\r\n

    Your Excel file is ready for download.

    \r\n )}\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ExcelCsvConverter;\r\n","function extend (destination) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (source.hasOwnProperty(key)) destination[key] = source[key];\n }\n }\n return destination\n}\n\nfunction repeat (character, count) {\n return Array(count + 1).join(character)\n}\n\nfunction trimLeadingNewlines (string) {\n return string.replace(/^\\n*/, '')\n}\n\nfunction trimTrailingNewlines (string) {\n // avoid match-at-end regexp bottleneck, see #370\n var indexEnd = string.length;\n while (indexEnd > 0 && string[indexEnd - 1] === '\\n') indexEnd--;\n return string.substring(0, indexEnd)\n}\n\nvar blockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS',\n 'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',\n 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER',\n 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES',\n 'NOSCRIPT', 'OL', 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD',\n 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\n\nfunction isBlock (node) {\n return is(node, blockElements)\n}\n\nvar voidElements = [\n 'AREA', 'BASE', 'BR', 'COL', 'COMMAND', 'EMBED', 'HR', 'IMG', 'INPUT',\n 'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'\n];\n\nfunction isVoid (node) {\n return is(node, voidElements)\n}\n\nfunction hasVoid (node) {\n return has(node, voidElements)\n}\n\nvar meaningfulWhenBlankElements = [\n 'A', 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TH', 'TD', 'IFRAME', 'SCRIPT',\n 'AUDIO', 'VIDEO'\n];\n\nfunction isMeaningfulWhenBlank (node) {\n return is(node, meaningfulWhenBlankElements)\n}\n\nfunction hasMeaningfulWhenBlank (node) {\n return has(node, meaningfulWhenBlankElements)\n}\n\nfunction is (node, tagNames) {\n return tagNames.indexOf(node.nodeName) >= 0\n}\n\nfunction has (node, tagNames) {\n return (\n node.getElementsByTagName &&\n tagNames.some(function (tagName) {\n return node.getElementsByTagName(tagName).length\n })\n )\n}\n\nvar rules = {};\n\nrules.paragraph = {\n filter: 'p',\n\n replacement: function (content) {\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.lineBreak = {\n filter: 'br',\n\n replacement: function (content, node, options) {\n return options.br + '\\n'\n }\n};\n\nrules.heading = {\n filter: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n replacement: function (content, node, options) {\n var hLevel = Number(node.nodeName.charAt(1));\n\n if (options.headingStyle === 'setext' && hLevel < 3) {\n var underline = repeat((hLevel === 1 ? '=' : '-'), content.length);\n return (\n '\\n\\n' + content + '\\n' + underline + '\\n\\n'\n )\n } else {\n return '\\n\\n' + repeat('#', hLevel) + ' ' + content + '\\n\\n'\n }\n }\n};\n\nrules.blockquote = {\n filter: 'blockquote',\n\n replacement: function (content) {\n content = content.replace(/^\\n+|\\n+$/g, '');\n content = content.replace(/^/gm, '> ');\n return '\\n\\n' + content + '\\n\\n'\n }\n};\n\nrules.list = {\n filter: ['ul', 'ol'],\n\n replacement: function (content, node) {\n var parent = node.parentNode;\n if (parent.nodeName === 'LI' && parent.lastElementChild === node) {\n return '\\n' + content\n } else {\n return '\\n\\n' + content + '\\n\\n'\n }\n }\n};\n\nrules.listItem = {\n filter: 'li',\n\n replacement: function (content, node, options) {\n content = content\n .replace(/^\\n+/, '') // remove leading newlines\n .replace(/\\n+$/, '\\n') // replace trailing newlines with just a single one\n .replace(/\\n/gm, '\\n '); // indent\n var prefix = options.bulletListMarker + ' ';\n var parent = node.parentNode;\n if (parent.nodeName === 'OL') {\n var start = parent.getAttribute('start');\n var index = Array.prototype.indexOf.call(parent.children, node);\n prefix = (start ? Number(start) + index : index + 1) + '. ';\n }\n return (\n prefix + content + (node.nextSibling && !/\\n$/.test(content) ? '\\n' : '')\n )\n }\n};\n\nrules.indentedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'indented' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n return (\n '\\n\\n ' +\n node.firstChild.textContent.replace(/\\n/g, '\\n ') +\n '\\n\\n'\n )\n }\n};\n\nrules.fencedCodeBlock = {\n filter: function (node, options) {\n return (\n options.codeBlockStyle === 'fenced' &&\n node.nodeName === 'PRE' &&\n node.firstChild &&\n node.firstChild.nodeName === 'CODE'\n )\n },\n\n replacement: function (content, node, options) {\n var className = node.firstChild.getAttribute('class') || '';\n var language = (className.match(/language-(\\S+)/) || [null, ''])[1];\n var code = node.firstChild.textContent;\n\n var fenceChar = options.fence.charAt(0);\n var fenceSize = 3;\n var fenceInCodeRegex = new RegExp('^' + fenceChar + '{3,}', 'gm');\n\n var match;\n while ((match = fenceInCodeRegex.exec(code))) {\n if (match[0].length >= fenceSize) {\n fenceSize = match[0].length + 1;\n }\n }\n\n var fence = repeat(fenceChar, fenceSize);\n\n return (\n '\\n\\n' + fence + language + '\\n' +\n code.replace(/\\n$/, '') +\n '\\n' + fence + '\\n\\n'\n )\n }\n};\n\nrules.horizontalRule = {\n filter: 'hr',\n\n replacement: function (content, node, options) {\n return '\\n\\n' + options.hr + '\\n\\n'\n }\n};\n\nrules.inlineLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'inlined' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node) {\n var href = node.getAttribute('href');\n if (href) href = href.replace(/([()])/g, '\\\\$1');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title.replace(/\"/g, '\\\\\"') + '\"';\n return '[' + content + '](' + href + title + ')'\n }\n};\n\nrules.referenceLink = {\n filter: function (node, options) {\n return (\n options.linkStyle === 'referenced' &&\n node.nodeName === 'A' &&\n node.getAttribute('href')\n )\n },\n\n replacement: function (content, node, options) {\n var href = node.getAttribute('href');\n var title = cleanAttribute(node.getAttribute('title'));\n if (title) title = ' \"' + title + '\"';\n var replacement;\n var reference;\n\n switch (options.linkReferenceStyle) {\n case 'collapsed':\n replacement = '[' + content + '][]';\n reference = '[' + content + ']: ' + href + title;\n break\n case 'shortcut':\n replacement = '[' + content + ']';\n reference = '[' + content + ']: ' + href + title;\n break\n default:\n var id = this.references.length + 1;\n replacement = '[' + content + '][' + id + ']';\n reference = '[' + id + ']: ' + href + title;\n }\n\n this.references.push(reference);\n return replacement\n },\n\n references: [],\n\n append: function (options) {\n var references = '';\n if (this.references.length) {\n references = '\\n\\n' + this.references.join('\\n') + '\\n\\n';\n this.references = []; // Reset references\n }\n return references\n }\n};\n\nrules.emphasis = {\n filter: ['em', 'i'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.emDelimiter + content + options.emDelimiter\n }\n};\n\nrules.strong = {\n filter: ['strong', 'b'],\n\n replacement: function (content, node, options) {\n if (!content.trim()) return ''\n return options.strongDelimiter + content + options.strongDelimiter\n }\n};\n\nrules.code = {\n filter: function (node) {\n var hasSiblings = node.previousSibling || node.nextSibling;\n var isCodeBlock = node.parentNode.nodeName === 'PRE' && !hasSiblings;\n\n return node.nodeName === 'CODE' && !isCodeBlock\n },\n\n replacement: function (content) {\n if (!content) return ''\n content = content.replace(/\\r?\\n|\\r/g, ' ');\n\n var extraSpace = /^`|^ .*?[^ ].* $|`$/.test(content) ? ' ' : '';\n var delimiter = '`';\n var matches = content.match(/`+/gm) || [];\n while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';\n\n return delimiter + extraSpace + content + extraSpace + delimiter\n }\n};\n\nrules.image = {\n filter: 'img',\n\n replacement: function (content, node) {\n var alt = cleanAttribute(node.getAttribute('alt'));\n var src = node.getAttribute('src') || '';\n var title = cleanAttribute(node.getAttribute('title'));\n var titlePart = title ? ' \"' + title + '\"' : '';\n return src ? '![' + alt + ']' + '(' + src + titlePart + ')' : ''\n }\n};\n\nfunction cleanAttribute (attribute) {\n return attribute ? attribute.replace(/(\\n+\\s*)+/g, '\\n') : ''\n}\n\n/**\n * Manages a collection of rules used to convert HTML to Markdown\n */\n\nfunction Rules (options) {\n this.options = options;\n this._keep = [];\n this._remove = [];\n\n this.blankRule = {\n replacement: options.blankReplacement\n };\n\n this.keepReplacement = options.keepReplacement;\n\n this.defaultRule = {\n replacement: options.defaultReplacement\n };\n\n this.array = [];\n for (var key in options.rules) this.array.push(options.rules[key]);\n}\n\nRules.prototype = {\n add: function (key, rule) {\n this.array.unshift(rule);\n },\n\n keep: function (filter) {\n this._keep.unshift({\n filter: filter,\n replacement: this.keepReplacement\n });\n },\n\n remove: function (filter) {\n this._remove.unshift({\n filter: filter,\n replacement: function () {\n return ''\n }\n });\n },\n\n forNode: function (node) {\n if (node.isBlank) return this.blankRule\n var rule;\n\n if ((rule = findRule(this.array, node, this.options))) return rule\n if ((rule = findRule(this._keep, node, this.options))) return rule\n if ((rule = findRule(this._remove, node, this.options))) return rule\n\n return this.defaultRule\n },\n\n forEach: function (fn) {\n for (var i = 0; i < this.array.length; i++) fn(this.array[i], i);\n }\n};\n\nfunction findRule (rules, node, options) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (filterValue(rule, node, options)) return rule\n }\n return void 0\n}\n\nfunction filterValue (rule, node, options) {\n var filter = rule.filter;\n if (typeof filter === 'string') {\n if (filter === node.nodeName.toLowerCase()) return true\n } else if (Array.isArray(filter)) {\n if (filter.indexOf(node.nodeName.toLowerCase()) > -1) return true\n } else if (typeof filter === 'function') {\n if (filter.call(rule, node, options)) return true\n } else {\n throw new TypeError('`filter` needs to be a string, array, or function')\n }\n}\n\n/**\n * The collapseWhitespace function is adapted from collapse-whitespace\n * by Luc Thevenard.\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014 Luc Thevenard \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * collapseWhitespace(options) removes extraneous whitespace from an the given element.\n *\n * @param {Object} options\n */\nfunction collapseWhitespace (options) {\n var element = options.element;\n var isBlock = options.isBlock;\n var isVoid = options.isVoid;\n var isPre = options.isPre || function (node) {\n return node.nodeName === 'PRE'\n };\n\n if (!element.firstChild || isPre(element)) return\n\n var prevText = null;\n var keepLeadingWs = false;\n\n var prev = null;\n var node = next(prev, element, isPre);\n\n while (node !== element) {\n if (node.nodeType === 3 || node.nodeType === 4) { // Node.TEXT_NODE or Node.CDATA_SECTION_NODE\n var text = node.data.replace(/[ \\r\\n\\t]+/g, ' ');\n\n if ((!prevText || / $/.test(prevText.data)) &&\n !keepLeadingWs && text[0] === ' ') {\n text = text.substr(1);\n }\n\n // `text` might be empty at this point.\n if (!text) {\n node = remove(node);\n continue\n }\n\n node.data = text;\n\n prevText = node;\n } else if (node.nodeType === 1) { // Node.ELEMENT_NODE\n if (isBlock(node) || node.nodeName === 'BR') {\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n }\n\n prevText = null;\n keepLeadingWs = false;\n } else if (isVoid(node) || isPre(node)) {\n // Avoid trimming space around non-block, non-BR void elements and inline PRE.\n prevText = null;\n keepLeadingWs = true;\n } else if (prevText) {\n // Drop protection if set previously.\n keepLeadingWs = false;\n }\n } else {\n node = remove(node);\n continue\n }\n\n var nextNode = next(prev, node, isPre);\n prev = node;\n node = nextNode;\n }\n\n if (prevText) {\n prevText.data = prevText.data.replace(/ $/, '');\n if (!prevText.data) {\n remove(prevText);\n }\n }\n}\n\n/**\n * remove(node) removes the given node from the DOM and returns the\n * next node in the sequence.\n *\n * @param {Node} node\n * @return {Node} node\n */\nfunction remove (node) {\n var next = node.nextSibling || node.parentNode;\n\n node.parentNode.removeChild(node);\n\n return next\n}\n\n/**\n * next(prev, current, isPre) returns the next node in the sequence, given the\n * current and previous nodes.\n *\n * @param {Node} prev\n * @param {Node} current\n * @param {Function} isPre\n * @return {Node}\n */\nfunction next (prev, current, isPre) {\n if ((prev && prev.parentNode === current) || isPre(current)) {\n return current.nextSibling || current.parentNode\n }\n\n return current.firstChild || current.nextSibling || current.parentNode\n}\n\n/*\n * Set up window for Node.js\n */\n\nvar root = (typeof window !== 'undefined' ? window : {});\n\n/*\n * Parsing HTML strings\n */\n\nfunction canParseHTMLNatively () {\n var Parser = root.DOMParser;\n var canParse = false;\n\n // Adapted from https://gist.github.com/1129031\n // Firefox/Opera/IE throw errors on unsupported types\n try {\n // WebKit returns null on unsupported types\n if (new Parser().parseFromString('', 'text/html')) {\n canParse = true;\n }\n } catch (e) {}\n\n return canParse\n}\n\nfunction createHTMLParser () {\n var Parser = function () {};\n\n {\n if (shouldUseActiveX()) {\n Parser.prototype.parseFromString = function (string) {\n var doc = new window.ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n } else {\n Parser.prototype.parseFromString = function (string) {\n var doc = document.implementation.createHTMLDocument('');\n doc.open();\n doc.write(string);\n doc.close();\n return doc\n };\n }\n }\n return Parser\n}\n\nfunction shouldUseActiveX () {\n var useActiveX = false;\n try {\n document.implementation.createHTMLDocument('').open();\n } catch (e) {\n if (root.ActiveXObject) useActiveX = true;\n }\n return useActiveX\n}\n\nvar HTMLParser = canParseHTMLNatively() ? root.DOMParser : createHTMLParser();\n\nfunction RootNode (input, options) {\n var root;\n if (typeof input === 'string') {\n var doc = htmlParser().parseFromString(\n // DOM parsers arrange elements in the and .\n // Wrapping in a custom element ensures elements are reliably arranged in\n // a single element.\n '' + input + '',\n 'text/html'\n );\n root = doc.getElementById('turndown-root');\n } else {\n root = input.cloneNode(true);\n }\n collapseWhitespace({\n element: root,\n isBlock: isBlock,\n isVoid: isVoid,\n isPre: options.preformattedCode ? isPreOrCode : null\n });\n\n return root\n}\n\nvar _htmlParser;\nfunction htmlParser () {\n _htmlParser = _htmlParser || new HTMLParser();\n return _htmlParser\n}\n\nfunction isPreOrCode (node) {\n return node.nodeName === 'PRE' || node.nodeName === 'CODE'\n}\n\nfunction Node (node, options) {\n node.isBlock = isBlock(node);\n node.isCode = node.nodeName === 'CODE' || node.parentNode.isCode;\n node.isBlank = isBlank(node);\n node.flankingWhitespace = flankingWhitespace(node, options);\n return node\n}\n\nfunction isBlank (node) {\n return (\n !isVoid(node) &&\n !isMeaningfulWhenBlank(node) &&\n /^\\s*$/i.test(node.textContent) &&\n !hasVoid(node) &&\n !hasMeaningfulWhenBlank(node)\n )\n}\n\nfunction flankingWhitespace (node, options) {\n if (node.isBlock || (options.preformattedCode && node.isCode)) {\n return { leading: '', trailing: '' }\n }\n\n var edges = edgeWhitespace(node.textContent);\n\n // abandon leading ASCII WS if left-flanked by ASCII WS\n if (edges.leadingAscii && isFlankedByWhitespace('left', node, options)) {\n edges.leading = edges.leadingNonAscii;\n }\n\n // abandon trailing ASCII WS if right-flanked by ASCII WS\n if (edges.trailingAscii && isFlankedByWhitespace('right', node, options)) {\n edges.trailing = edges.trailingNonAscii;\n }\n\n return { leading: edges.leading, trailing: edges.trailing }\n}\n\nfunction edgeWhitespace (string) {\n var m = string.match(/^(([ \\t\\r\\n]*)(\\s*))(?:(?=\\S)[\\s\\S]*\\S)?((\\s*?)([ \\t\\r\\n]*))$/);\n return {\n leading: m[1], // whole string for whitespace-only strings\n leadingAscii: m[2],\n leadingNonAscii: m[3],\n trailing: m[4], // empty for whitespace-only strings\n trailingNonAscii: m[5],\n trailingAscii: m[6]\n }\n}\n\nfunction isFlankedByWhitespace (side, node, options) {\n var sibling;\n var regExp;\n var isFlanked;\n\n if (side === 'left') {\n sibling = node.previousSibling;\n regExp = / $/;\n } else {\n sibling = node.nextSibling;\n regExp = /^ /;\n }\n\n if (sibling) {\n if (sibling.nodeType === 3) {\n isFlanked = regExp.test(sibling.nodeValue);\n } else if (options.preformattedCode && sibling.nodeName === 'CODE') {\n isFlanked = false;\n } else if (sibling.nodeType === 1 && !isBlock(sibling)) {\n isFlanked = regExp.test(sibling.textContent);\n }\n }\n return isFlanked\n}\n\nvar reduce = Array.prototype.reduce;\nvar escapes = [\n [/\\\\/g, '\\\\\\\\'],\n [/\\*/g, '\\\\*'],\n [/^-/g, '\\\\-'],\n [/^\\+ /g, '\\\\+ '],\n [/^(=+)/g, '\\\\$1'],\n [/^(#{1,6}) /g, '\\\\$1 '],\n [/`/g, '\\\\`'],\n [/^~~~/g, '\\\\~~~'],\n [/\\[/g, '\\\\['],\n [/\\]/g, '\\\\]'],\n [/^>/g, '\\\\>'],\n [/_/g, '\\\\_'],\n [/^(\\d+)\\. /g, '$1\\\\. ']\n];\n\nfunction TurndownService (options) {\n if (!(this instanceof TurndownService)) return new TurndownService(options)\n\n var defaults = {\n rules: rules,\n headingStyle: 'setext',\n hr: '* * *',\n bulletListMarker: '*',\n codeBlockStyle: 'indented',\n fence: '```',\n emDelimiter: '_',\n strongDelimiter: '**',\n linkStyle: 'inlined',\n linkReferenceStyle: 'full',\n br: ' ',\n preformattedCode: false,\n blankReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' : ''\n },\n keepReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + node.outerHTML + '\\n\\n' : node.outerHTML\n },\n defaultReplacement: function (content, node) {\n return node.isBlock ? '\\n\\n' + content + '\\n\\n' : content\n }\n };\n this.options = extend({}, defaults, options);\n this.rules = new Rules(this.options);\n}\n\nTurndownService.prototype = {\n /**\n * The entry point for converting a string or DOM node to Markdown\n * @public\n * @param {String|HTMLElement} input The string or DOM node to convert\n * @returns A Markdown representation of the input\n * @type String\n */\n\n turndown: function (input) {\n if (!canConvert(input)) {\n throw new TypeError(\n input + ' is not a string, or an element/document/fragment node.'\n )\n }\n\n if (input === '') return ''\n\n var output = process.call(this, new RootNode(input, this.options));\n return postProcess.call(this, output)\n },\n\n /**\n * Add one or more plugins\n * @public\n * @param {Function|Array} plugin The plugin or array of plugins to add\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n use: function (plugin) {\n if (Array.isArray(plugin)) {\n for (var i = 0; i < plugin.length; i++) this.use(plugin[i]);\n } else if (typeof plugin === 'function') {\n plugin(this);\n } else {\n throw new TypeError('plugin must be a Function or an Array of Functions')\n }\n return this\n },\n\n /**\n * Adds a rule\n * @public\n * @param {String} key The unique key of the rule\n * @param {Object} rule The rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n addRule: function (key, rule) {\n this.rules.add(key, rule);\n return this\n },\n\n /**\n * Keep a node (as HTML) that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n keep: function (filter) {\n this.rules.keep(filter);\n return this\n },\n\n /**\n * Remove a node that matches the filter\n * @public\n * @param {String|Array|Function} filter The unique key of the rule\n * @returns The Turndown instance for chaining\n * @type Object\n */\n\n remove: function (filter) {\n this.rules.remove(filter);\n return this\n },\n\n /**\n * Escapes Markdown syntax\n * @public\n * @param {String} string The string to escape\n * @returns A string with Markdown syntax escaped\n * @type String\n */\n\n escape: function (string) {\n return escapes.reduce(function (accumulator, escape) {\n return accumulator.replace(escape[0], escape[1])\n }, string)\n }\n};\n\n/**\n * Reduces a DOM node down to its Markdown string equivalent\n * @private\n * @param {HTMLElement} parentNode The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction process (parentNode) {\n var self = this;\n return reduce.call(parentNode.childNodes, function (output, node) {\n node = new Node(node, self.options);\n\n var replacement = '';\n if (node.nodeType === 3) {\n replacement = node.isCode ? node.nodeValue : self.escape(node.nodeValue);\n } else if (node.nodeType === 1) {\n replacement = replacementForNode.call(self, node);\n }\n\n return join(output, replacement)\n }, '')\n}\n\n/**\n * Appends strings as each rule requires and trims the output\n * @private\n * @param {String} output The conversion output\n * @returns A trimmed version of the ouput\n * @type String\n */\n\nfunction postProcess (output) {\n var self = this;\n this.rules.forEach(function (rule) {\n if (typeof rule.append === 'function') {\n output = join(output, rule.append(self.options));\n }\n });\n\n return output.replace(/^[\\t\\r\\n]+/, '').replace(/[\\t\\r\\n\\s]+$/, '')\n}\n\n/**\n * Converts an element node to its Markdown equivalent\n * @private\n * @param {HTMLElement} node The node to convert\n * @returns A Markdown representation of the node\n * @type String\n */\n\nfunction replacementForNode (node) {\n var rule = this.rules.forNode(node);\n var content = process.call(this, node);\n var whitespace = node.flankingWhitespace;\n if (whitespace.leading || whitespace.trailing) content = content.trim();\n return (\n whitespace.leading +\n rule.replacement(content, node, this.options) +\n whitespace.trailing\n )\n}\n\n/**\n * Joins replacement to the current output with appropriate number of new lines\n * @private\n * @param {String} output The current conversion output\n * @param {String} replacement The string to append to the output\n * @returns Joined output\n * @type String\n */\n\nfunction join (output, replacement) {\n var s1 = trimTrailingNewlines(output);\n var s2 = trimLeadingNewlines(replacement);\n var nls = Math.max(output.length - s1.length, replacement.length - s2.length);\n var separator = '\\n\\n'.substring(0, nls);\n\n return s1 + separator + s2\n}\n\n/**\n * Determines whether an input can be converted\n * @private\n * @param {String|HTMLElement} input Describe this parameter\n * @returns Describe what it returns\n * @type String|Object|Array|Boolean|Number\n */\n\nfunction canConvert (input) {\n return (\n input != null && (\n typeof input === 'string' ||\n (input.nodeType && (\n input.nodeType === 1 || input.nodeType === 9 || input.nodeType === 11\n ))\n )\n )\n}\n\nexport default TurndownService;\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\nimport TurndownService from 'turndown';\r\nimport showdown from 'showdown';\r\nimport '../CSS/WordToPdf.css';\r\n\r\nconst HtmlMarkdownConverter = () => {\r\n const [conversionType, setConversionType] = useState('html-to-markdown');\r\n const [selectedFile, setSelectedFile] = useState(null);\r\n const [convertedData, setConvertedData] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n const handleFileChange = (e) => {\r\n const file = e.target.files[0];\r\n if (!file) return;\r\n setSelectedFile(file);\r\n setConvertedData(null);\r\n if (fileInputRef.current) {\r\n fileInputRef.current.value = '';\r\n }\r\n };\r\n\r\n const handleConvert = () => {\r\n if (!selectedFile) return;\r\n setLoading(true);\r\n const reader = new FileReader();\r\n reader.onload = (ev) => {\r\n const content = ev.target.result;\r\n try {\r\n if (conversionType === 'html-to-markdown') {\r\n const turndownService = new TurndownService();\r\n const markdown = turndownService.turndown(content);\r\n setConvertedData(markdown);\r\n } else if (conversionType === 'markdown-to-html') {\r\n const converter = new showdown.Converter();\r\n const html = converter.makeHtml(content);\r\n setConvertedData(html);\r\n }\r\n } catch (error) {\r\n alert('Conversion error: ' + error.message);\r\n }\r\n setLoading(false);\r\n };\r\n reader.onerror = () => {\r\n alert('Error reading file.');\r\n setLoading(false);\r\n };\r\n reader.readAsText(selectedFile);\r\n };\r\n\r\n const handleDownload = () => {\r\n if (!convertedData || !selectedFile) return;\r\n const baseName = selectedFile.name.replace(/\\.[^/.]+$/, '');\r\n const ext = conversionType === 'html-to-markdown' ? 'md' : 'html';\r\n const blob = new Blob([convertedData], { type: 'text/plain;charset=utf-8;' });\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = `${baseName}.${ext}`;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleReset = () => {\r\n setSelectedFile(null);\r\n setConvertedData(null);\r\n setLoading(false);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n HTML/Markdown Converter - Convert Your Files Online\r\n \r\n \r\n \r\n

    HTML/Markdown Converter

    \r\n
    \r\n \r\n \r\n

    Select a file

    \r\n
    \r\n {selectedFile && (\r\n
    \r\n

    Selected File

    \r\n
    \r\n
    \r\n
    \r\n

    {selectedFile.name}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {selectedFile && (\r\n
    \r\n \r\n \r\n Reset\r\n \r\n
    \r\n )}\r\n {selectedFile && convertedData && (\r\n
    \r\n

    Converted Content

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default HtmlMarkdownConverter;\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * The `chars`, `lookup`, `encode`, and `decode` members of this file are\n * licensed under the following:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n *\n */\n\nconst chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encodeToBase64 = (bytes: Uint8Array): string => {\n let base64 = '';\n const len = bytes.length;\n for (let i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decodeFromBase64 = (base64: string): Uint8Array => {\n let bufferLength = base64.length * 0.75;\n const len = base64.length;\n let i;\n let p = 0;\n let encoded1;\n let encoded2;\n let encoded3;\n let encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const bytes = new Uint8Array(bufferLength);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return bytes;\n};\n\n// This regex is designed to be as flexible as possible. It will parse certain\n// invalid data URIs.\nconst DATA_URI_PREFIX_REGEX = /^(data)?:?([\\w\\/\\+]+)?;?(charset=[\\w-]+|base64)?.*,/i;\n\n/**\n * If the `dataUri` input is a data URI, then the data URI prefix must not be\n * longer than 100 characters, or this function will fail to decode it.\n *\n * @param dataUri a base64 data URI or plain base64 string\n * @returns a Uint8Array containing the decoded input\n */\nexport const decodeFromBase64DataUri = (dataUri: string): Uint8Array => {\n const trimmedUri = dataUri.trim();\n\n const prefix = trimmedUri.substring(0, 100);\n const res = prefix.match(DATA_URI_PREFIX_REGEX);\n\n // Assume it's not a data URI - just a plain base64 string\n if (!res) return decodeFromBase64(trimmedUri);\n\n // Remove the data URI prefix and parse the remainder as a base64 string\n const [fullMatch] = res;\n const data = trimmedUri.substring(fullMatch.length);\n\n return decodeFromBase64(data);\n};\n","import { toHexString } from 'src/utils/strings';\n\n/**\n * Encodes a string to UTF-8.\n *\n * @param input The string to be encoded.\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be added\n * to the start of the encoding. (default `true`)\n * @returns A Uint8Array containing the UTF-8 encoding of the input string.\n *\n * -----------------------------------------------------------------------------\n *\n * JavaScript strings are composed of Unicode code points. Code points are\n * integers in the range 0 to 1,114,111 (0x10FFFF). When serializing a string,\n * it must be encoded as a sequence of words. A word is typically 8, 16, or 32\n * bytes in size. As such, Unicode defines three encoding forms: UTF-8, UTF-16,\n * and UTF-32. These encoding forms are described in the Unicode standard [1].\n * This function implements the UTF-8 encoding form.\n *\n * -----------------------------------------------------------------------------\n *\n * In UTF-8, each code point is mapped to a sequence of 1, 2, 3, or 4 bytes.\n * Note that the logic which defines this mapping is slightly convoluted, and\n * not as straightforward as the mapping logic for UTF-16 or UTF-32. The UTF-8\n * mapping logic is as follows [2]:\n *\n * • If a code point is in the range U+0000..U+007F, then view it as a 7-bit\n * integer: 0bxxxxxxx. Map the code point to 1 byte with the first high order\n * bit set to 0:\n *\n * b1=0b0xxxxxxx\n *\n * • If a code point is in the range U+0080..U+07FF, then view it as an 11-bit\n * integer: 0byyyyyxxxxxx. Map the code point to 2 bytes with the first 5 bits\n * of the code point stored in the first byte, and the last 6 bits stored in\n * the second byte:\n *\n * b1=0b110yyyyy b2=0b10xxxxxx\n *\n * • If a code point is in the range U+0800..U+FFFF, then view it as a 16-bit\n * integer, 0bzzzzyyyyyyxxxxxx. Map the code point to 3 bytes with the first\n * 4 bits stored in the first byte, the next 6 bits stored in the second byte,\n * and the last 6 bits in the third byte:\n *\n * b1=0b1110zzzz b2=0b10yyyyyy b3=0b10xxxxxx\n *\n * • If a code point is in the range U+10000...U+10FFFF, then view it as a\n * 21-bit integer, 0bvvvzzzzzzyyyyyyxxxxxx. Map the code point to 4 bytes with\n * the first 3 bits stored in the first byte, the next 6 bits stored in the\n * second byte, the next 6 bits stored in the third byte, and the last 6 bits\n * stored in the fourth byte:\n *\n * b1=0b11110xxx b2=0b10zzzzzz b3=0b10yyyyyy b4=0b10xxxxxx\n *\n * -----------------------------------------------------------------------------\n *\n * It is important to note, when iterating through the code points of a string\n * in JavaScript, that if a character is encoded as a surrogate pair it will\n * increase the string's length by 2 instead of 1 [4]. For example:\n *\n * ```\n * > 'a'.length\n * 1\n * > '💩'.length\n * 2\n * > '語'.length\n * 1\n * > 'a💩語'.length\n * 4\n * ```\n *\n * The results of the above example are explained by the fact that the\n * characters 'a' and '語' are not represented by surrogate pairs, but '💩' is.\n *\n * Because of this idiosyncrasy in JavaScript's string implementation and APIs,\n * we must \"jump\" an extra index after encoding a character as a surrogate\n * pair. In practice, this means we must increment the index of our for loop by\n * 2 if we encode a surrogate pair, and 1 in all other cases.\n *\n * -----------------------------------------------------------------------------\n *\n * References:\n * - [1] https://www.unicode.org/versions/Unicode12.0.0/UnicodeStandard-12.0.pdf\n * 3.9 Unicode Encoding Forms - UTF-8\n * - [2] http://www.herongyang.com/Unicode/UTF-8-UTF-8-Encoding.html\n * - [3] http://www.herongyang.com/Unicode/UTF-8-UTF-8-Encoding-Algorithm.html\n * - [4] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description\n *\n */\nexport const utf8Encode = (input: string, byteOrderMark = true): Uint8Array => {\n const encoded = [];\n\n if (byteOrderMark) encoded.push(0xef, 0xbb, 0xbf);\n\n for (let idx = 0, len = input.length; idx < len; ) {\n const codePoint = input.codePointAt(idx)!;\n\n // One byte encoding\n if (codePoint < 0x80) {\n const byte1 = codePoint & 0x7f;\n encoded.push(byte1);\n idx += 1;\n }\n\n // Two byte encoding\n else if (codePoint < 0x0800) {\n const byte1 = ((codePoint >> 6) & 0x1f) | 0xc0;\n const byte2 = (codePoint & 0x3f) | 0x80;\n encoded.push(byte1, byte2);\n idx += 1;\n }\n\n // Three byte encoding\n else if (codePoint < 0x010000) {\n const byte1 = ((codePoint >> 12) & 0x0f) | 0xe0;\n const byte2 = ((codePoint >> 6) & 0x3f) | 0x80;\n const byte3 = (codePoint & 0x3f) | 0x80;\n encoded.push(byte1, byte2, byte3);\n idx += 1;\n }\n\n // Four byte encoding (surrogate pair)\n else if (codePoint < 0x110000) {\n const byte1 = ((codePoint >> 18) & 0x07) | 0xf0;\n const byte2 = ((codePoint >> 12) & 0x3f) | 0x80;\n const byte3 = ((codePoint >> 6) & 0x3f) | 0x80;\n const byte4 = ((codePoint >> 0) & 0x3f) | 0x80;\n encoded.push(byte1, byte2, byte3, byte4);\n idx += 2;\n }\n\n // Should never reach this case\n else throw new Error(`Invalid code point: 0x${toHexString(codePoint)}`);\n }\n\n return new Uint8Array(encoded);\n};\n\n/**\n * Encodes a string to UTF-16.\n *\n * @param input The string to be encoded.\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be added\n * to the start of the encoding. (default `true`)\n * @returns A Uint16Array containing the UTF-16 encoding of the input string.\n *\n * -----------------------------------------------------------------------------\n *\n * JavaScript strings are composed of Unicode code points. Code points are\n * integers in the range 0 to 1,114,111 (0x10FFFF). When serializing a string,\n * it must be encoded as a sequence of words. A word is typically 8, 16, or 32\n * bytes in size. As such, Unicode defines three encoding forms: UTF-8, UTF-16,\n * and UTF-32. These encoding forms are described in the Unicode standard [1].\n * This function implements the UTF-16 encoding form.\n *\n * -----------------------------------------------------------------------------\n *\n * In UTF-16, each code point is mapped to one or two 16-bit integers. The\n * UTF-16 mapping logic is as follows [2]:\n *\n * • If a code point is in the range U+0000..U+FFFF, then map the code point to\n * a 16-bit integer with the most significant byte first.\n *\n * • If a code point is in the range U+10000..U+10000, then map the code point\n * to two 16-bit integers. The first integer should contain the high surrogate\n * and the second integer should contain the low surrogate. Both surrogates\n * should be written with the most significant byte first.\n *\n * -----------------------------------------------------------------------------\n *\n * It is important to note, when iterating through the code points of a string\n * in JavaScript, that if a character is encoded as a surrogate pair it will\n * increase the string's length by 2 instead of 1 [4]. For example:\n *\n * ```\n * > 'a'.length\n * 1\n * > '💩'.length\n * 2\n * > '語'.length\n * 1\n * > 'a💩語'.length\n * 4\n * ```\n *\n * The results of the above example are explained by the fact that the\n * characters 'a' and '語' are not represented by surrogate pairs, but '💩' is.\n *\n * Because of this idiosyncrasy in JavaScript's string implementation and APIs,\n * we must \"jump\" an extra index after encoding a character as a surrogate\n * pair. In practice, this means we must increment the index of our for loop by\n * 2 if we encode a surrogate pair, and 1 in all other cases.\n *\n * -----------------------------------------------------------------------------\n *\n * References:\n * - [1] https://www.unicode.org/versions/Unicode12.0.0/UnicodeStandard-12.0.pdf\n * 3.9 Unicode Encoding Forms - UTF-8\n * - [2] http://www.herongyang.com/Unicode/UTF-16-UTF-16-Encoding.html\n * - [3] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description\n *\n */\nexport const utf16Encode = (\n input: string,\n byteOrderMark = true,\n): Uint16Array => {\n const encoded = [];\n\n if (byteOrderMark) encoded.push(0xfeff);\n\n for (let idx = 0, len = input.length; idx < len; ) {\n const codePoint = input.codePointAt(idx)!;\n\n // Two byte encoding\n if (codePoint < 0x010000) {\n encoded.push(codePoint);\n idx += 1;\n }\n\n // Four byte encoding (surrogate pair)\n else if (codePoint < 0x110000) {\n encoded.push(highSurrogate(codePoint), lowSurrogate(codePoint));\n idx += 2;\n }\n\n // Should never reach this case\n else throw new Error(`Invalid code point: 0x${toHexString(codePoint)}`);\n }\n\n return new Uint16Array(encoded);\n};\n\n/**\n * Returns `true` if the `codePoint` is within the\n * Basic Multilingual Plane (BMP). Code points inside the BMP are not encoded\n * with surrogate pairs.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nexport const isWithinBMP = (codePoint: number) =>\n codePoint >= 0 && codePoint <= 0xffff;\n\n/**\n * Returns `true` if the given `codePoint` is valid and must be represented\n * with a surrogate pair when encoded.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nexport const hasSurrogates = (codePoint: number) =>\n codePoint >= 0x010000 && codePoint <= 0x10ffff;\n\n// From Unicode 3.0 spec, section 3.7:\n// http://unicode.org/versions/Unicode3.0.0/ch03.pdf\nexport const highSurrogate = (codePoint: number) =>\n Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n\n// From Unicode 3.0 spec, section 3.7:\n// http://unicode.org/versions/Unicode3.0.0/ch03.pdf\nexport const lowSurrogate = (codePoint: number) =>\n ((codePoint - 0x10000) % 0x400) + 0xdc00;\n\nenum ByteOrder {\n BigEndian = 'BigEndian',\n LittleEndian = 'LittleEndian',\n}\n\nconst REPLACEMENT = '�'.codePointAt(0)!;\n\n/**\n * Decodes a Uint8Array of data to a string using UTF-16.\n *\n * Note that this function attempts to recover from erronous input by\n * inserting the replacement character (�) to mark invalid code points\n * and surrogate pairs.\n *\n * @param input A Uint8Array containing UTF-16 encoded data\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be read\n * at the start of the encoding. (default `true`)\n * @returns The decoded string.\n */\nexport const utf16Decode = (\n input: Uint8Array,\n byteOrderMark = true,\n): string => {\n // Need at least 2 bytes of data in UTF-16 encodings\n if (input.length <= 1) return String.fromCodePoint(REPLACEMENT);\n\n const byteOrder = byteOrderMark ? readBOM(input) : ByteOrder.BigEndian;\n\n // Skip byte order mark if needed\n let idx = byteOrderMark ? 2 : 0;\n\n const codePoints: number[] = [];\n\n while (input.length - idx >= 2) {\n const first = decodeValues(input[idx++], input[idx++], byteOrder);\n\n if (isHighSurrogate(first)) {\n if (input.length - idx < 2) {\n // Need at least 2 bytes left for the low surrogate that is required\n codePoints.push(REPLACEMENT);\n } else {\n const second = decodeValues(input[idx++], input[idx++], byteOrder);\n if (isLowSurrogate(second)) {\n codePoints.push(first, second);\n } else {\n // Low surrogates should always follow high surrogates\n codePoints.push(REPLACEMENT);\n }\n }\n } else if (isLowSurrogate(first)) {\n // High surrogates should always come first since `decodeValues()`\n // accounts for the byte ordering\n idx += 2;\n codePoints.push(REPLACEMENT);\n } else {\n codePoints.push(first);\n }\n }\n\n // There shouldn't be extra byte(s) left over\n if (idx < input.length) codePoints.push(REPLACEMENT);\n\n return String.fromCodePoint(...codePoints);\n};\n\n/**\n * Returns `true` if the given `codePoint` is a high surrogate.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nconst isHighSurrogate = (codePoint: number) =>\n codePoint >= 0xd800 && codePoint <= 0xdbff;\n\n/**\n * Returns `true` if the given `codePoint` is a low surrogate.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nconst isLowSurrogate = (codePoint: number) =>\n codePoint >= 0xdc00 && codePoint <= 0xdfff;\n\n/**\n * Decodes the given utf-16 values first and second using the specified\n * byte order.\n * @param first The first byte of the encoding.\n * @param second The second byte of the encoding.\n * @param byteOrder The byte order of the encoding.\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Examples\n */\nconst decodeValues = (first: number, second: number, byteOrder: ByteOrder) => {\n // Append the binary representation of the preceding byte by shifting the\n // first one 8 to the left and than applying a bitwise or-operator to append\n // the second one.\n if (byteOrder === ByteOrder.LittleEndian) return (second << 8) | first;\n if (byteOrder === ByteOrder.BigEndian) return (first << 8) | second;\n throw new Error(`Invalid byteOrder: ${byteOrder}`);\n};\n\n/**\n * Returns whether the given array contains a byte order mark for the\n * UTF-16BE or UTF-16LE encoding. If it has neither, BigEndian is assumed.\n *\n * Reference: https://en.wikipedia.org/wiki/Byte_order_mark#UTF-16\n *\n * @param bytes The byte array to be evaluated.\n */\n// prettier-ignore\nconst readBOM = (bytes: Uint8Array): ByteOrder => (\n hasUtf16BigEndianBOM(bytes) ? ByteOrder.BigEndian\n : hasUtf16LittleEndianBOM(bytes) ? ByteOrder.LittleEndian\n : ByteOrder.BigEndian\n);\n\nconst hasUtf16BigEndianBOM = (bytes: Uint8Array) =>\n bytes[0] === 0xfe && bytes[1] === 0xff;\n\nconst hasUtf16LittleEndianBOM = (bytes: Uint8Array) =>\n bytes[0] === 0xff && bytes[1] === 0xfe;\n\nexport const hasUtf16BOM = (bytes: Uint8Array) =>\n hasUtf16BigEndianBOM(bytes) || hasUtf16LittleEndianBOM(bytes);\n","export const toCharCode = (character: string) => character.charCodeAt(0);\n\nexport const toCodePoint = (character: string) => character.codePointAt(0);\n\nexport const toHexStringOfMinLength = (num: number, minLength: number) =>\n padStart(num.toString(16), minLength, '0').toUpperCase();\n\nexport const toHexString = (num: number) => toHexStringOfMinLength(num, 2);\n\nexport const charFromCode = (code: number) => String.fromCharCode(code);\n\nexport const charFromHexCode = (hex: string) => charFromCode(parseInt(hex, 16));\n\nexport const padStart = (value: string, length: number, padChar: string) => {\n let padding = '';\n for (let idx = 0, len = length - value.length; idx < len; idx++) {\n padding += padChar;\n }\n return padding + value;\n};\n\nexport const copyStringIntoBuffer = (\n str: string,\n buffer: Uint8Array,\n offset: number,\n): number => {\n const length = str.length;\n for (let idx = 0; idx < length; idx++) {\n buffer[offset++] = str.charCodeAt(idx);\n }\n return length;\n};\n\nexport const addRandomSuffix = (prefix: string, suffixLength = 4) =>\n `${prefix}-${Math.floor(Math.random() * 10 ** suffixLength)}`;\n\nexport const escapeRegExp = (str: string) =>\n str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nexport const cleanText = (text: string) =>\n text.replace(/\\t|\\u0085|\\u2028|\\u2029/g, ' ').replace(/[\\b\\v]/g, '');\n\nexport const escapedNewlineChars = ['\\\\n', '\\\\f', '\\\\r', '\\\\u000B'];\n\nexport const newlineChars = ['\\n', '\\f', '\\r', '\\u000B'];\n\nexport const isNewlineChar = (text: string) => /^[\\n\\f\\r\\u000B]$/.test(text);\n\nexport const lineSplit = (text: string) => text.split(/[\\n\\f\\r\\u000B]/);\n\nexport const mergeLines = (text: string) =>\n text.replace(/[\\n\\f\\r\\u000B]/g, ' ');\n\n// JavaScript's String.charAt() method doesn work on strings containing UTF-16\n// characters (with high and low surrogate pairs), such as 💩 (poo emoji). This\n// `charAtIndex()` function does.\n//\n// Credit: https://github.com/mathiasbynens/String.prototype.at/blob/master/at.js#L14-L48\nexport const charAtIndex = (text: string, index: number): [string, number] => {\n // Get the first code unit and code unit value\n const cuFirst = text.charCodeAt(index);\n let cuSecond: number;\n const nextIndex = index + 1;\n let length = 1;\n if (\n // Check if it's the start of a surrogate pair.\n cuFirst >= 0xd800 &&\n cuFirst <= 0xdbff && // high surrogate\n text.length > nextIndex // there is a next code unit\n ) {\n cuSecond = text.charCodeAt(nextIndex);\n if (cuSecond >= 0xdc00 && cuSecond <= 0xdfff) length = 2; // low surrogate\n }\n return [text.slice(index, index + length), length];\n};\n\nexport const charSplit = (text: string) => {\n const chars: string[] = [];\n\n for (let idx = 0, len = text.length; idx < len; ) {\n const [c, cLen] = charAtIndex(text, idx);\n chars.push(c);\n idx += cLen;\n }\n\n return chars;\n};\n\nconst buildWordBreakRegex = (wordBreaks: string[]) => {\n const newlineCharUnion = escapedNewlineChars.join('|');\n\n const escapedRules: string[] = ['$'];\n for (let idx = 0, len = wordBreaks.length; idx < len; idx++) {\n const wordBreak = wordBreaks[idx];\n if (isNewlineChar(wordBreak)) {\n throw new TypeError(`\\`wordBreak\\` must not include ${newlineCharUnion}`);\n }\n escapedRules.push(wordBreak === '' ? '.' : escapeRegExp(wordBreak));\n }\n\n const breakRules = escapedRules.join('|');\n return new RegExp(`(${newlineCharUnion})|((.*?)(${breakRules}))`, 'gm');\n};\n\nexport const breakTextIntoLines = (\n text: string,\n wordBreaks: string[],\n maxWidth: number,\n computeWidthOfText: (t: string) => number,\n): string[] => {\n const regex = buildWordBreakRegex(wordBreaks);\n\n const words = cleanText(text).match(regex)!;\n\n let currLine = '';\n let currWidth = 0;\n const lines: string[] = [];\n\n const pushCurrLine = () => {\n if (currLine !== '') lines.push(currLine);\n currLine = '';\n currWidth = 0;\n };\n\n for (let idx = 0, len = words.length; idx < len; idx++) {\n const word = words[idx];\n if (isNewlineChar(word)) {\n pushCurrLine();\n } else {\n const width = computeWidthOfText(word);\n if (currWidth + width > maxWidth) pushCurrLine();\n currLine += word;\n currWidth += width;\n }\n }\n pushCurrLine();\n\n return lines;\n};\n\n// See section \"7.9.4 Dates\" of the PDF specification\nconst dateRegex = /^D:(\\d\\d\\d\\d)(\\d\\d)?(\\d\\d)?(\\d\\d)?(\\d\\d)?(\\d\\d)?([+\\-Z])?(\\d\\d)?'?(\\d\\d)?'?$/;\n\nexport const parseDate = (dateStr: string): Date | undefined => {\n const match = dateStr.match(dateRegex);\n\n if (!match) return undefined;\n\n const [\n ,\n year,\n month = '01',\n day = '01',\n hours = '00',\n mins = '00',\n secs = '00',\n offsetSign = 'Z',\n offsetHours = '00',\n offsetMins = '00',\n ] = match;\n\n // http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15\n const tzOffset =\n offsetSign === 'Z' ? 'Z' : `${offsetSign}${offsetHours}:${offsetMins}`;\n const date = new Date(\n `${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`,\n );\n\n return date;\n};\n\nexport const findLastMatch = (value: string, regex: RegExp) => {\n let position = 0;\n let lastMatch: RegExpMatchArray | undefined;\n while (position < value.length) {\n const match = value.substring(position).match(regex);\n if (!match) return { match: lastMatch, pos: position };\n lastMatch = match;\n position += (match.index ?? 0) + match[0].length;\n }\n return { match: lastMatch, pos: position };\n};\n","import { decodeFromBase64DataUri } from 'src/utils/base64';\nimport { charFromCode } from 'src/utils/strings';\n\nexport const last = (array: T[]): T => array[array.length - 1];\n\n// export const dropLast = (array: T[]): T[] =>\n// array.slice(0, array.length - 1);\n\nexport const typedArrayFor = (value: string | Uint8Array): Uint8Array => {\n if (value instanceof Uint8Array) return value;\n const length = value.length;\n const typedArray = new Uint8Array(length);\n for (let idx = 0; idx < length; idx++) {\n typedArray[idx] = value.charCodeAt(idx);\n }\n return typedArray;\n};\n\nexport const mergeIntoTypedArray = (...arrays: (string | Uint8Array)[]) => {\n const arrayCount = arrays.length;\n\n const typedArrays: Uint8Array[] = [];\n for (let idx = 0; idx < arrayCount; idx++) {\n const element = arrays[idx];\n typedArrays[idx] =\n element instanceof Uint8Array ? element : typedArrayFor(element);\n }\n\n let totalSize = 0;\n for (let idx = 0; idx < arrayCount; idx++) {\n totalSize += arrays[idx].length;\n }\n\n const merged = new Uint8Array(totalSize);\n let offset = 0;\n for (let arrIdx = 0; arrIdx < arrayCount; arrIdx++) {\n const arr = typedArrays[arrIdx];\n for (let byteIdx = 0, arrLen = arr.length; byteIdx < arrLen; byteIdx++) {\n merged[offset++] = arr[byteIdx];\n }\n }\n\n return merged;\n};\n\nexport const mergeUint8Arrays = (arrays: Uint8Array[]): Uint8Array => {\n let totalSize = 0;\n for (let idx = 0, len = arrays.length; idx < len; idx++) {\n totalSize += arrays[idx].length;\n }\n\n const mergedBuffer = new Uint8Array(totalSize);\n let offset = 0;\n for (let idx = 0, len = arrays.length; idx < len; idx++) {\n const array = arrays[idx];\n mergedBuffer.set(array, offset);\n offset += array.length;\n }\n\n return mergedBuffer;\n};\n\nexport const arrayAsString = (array: Uint8Array | number[]): string => {\n let str = '';\n for (let idx = 0, len = array.length; idx < len; idx++) {\n str += charFromCode(array[idx]);\n }\n return str;\n};\n\nexport const byAscendingId = (a: T, b: T) => a.id - b.id;\n\nexport const sortedUniq = (array: T[], indexer: (elem: T) => any): T[] => {\n const uniq: T[] = [];\n\n for (let idx = 0, len = array.length; idx < len; idx++) {\n const curr = array[idx];\n const prev = array[idx - 1];\n if (idx === 0 || indexer(curr) !== indexer(prev)) {\n uniq.push(curr);\n }\n }\n\n return uniq;\n};\n\n// Arrays and TypedArrays in JS both have .reverse() methods, which would seem\n// to negate the need for this function. However, not all runtimes support this\n// method (e.g. React Native). This function compensates for that fact.\nexport const reverseArray = (array: Uint8Array) => {\n const arrayLen = array.length;\n for (let idx = 0, len = Math.floor(arrayLen / 2); idx < len; idx++) {\n const leftIdx = idx;\n const rightIdx = arrayLen - idx - 1;\n const temp = array[idx];\n\n array[leftIdx] = array[rightIdx];\n array[rightIdx] = temp;\n }\n return array;\n};\n\nexport const sum = (array: number[] | Uint8Array): number => {\n let total = 0;\n for (let idx = 0, len = array.length; idx < len; idx++) {\n total += array[idx];\n }\n return total;\n};\n\nexport const range = (start: number, end: number): number[] => {\n const arr = new Array(end - start);\n for (let idx = 0, len = arr.length; idx < len; idx++) {\n arr[idx] = start + idx;\n }\n return arr;\n};\n\nexport const pluckIndices = (arr: T[], indices: number[]) => {\n const plucked = new Array(indices.length);\n for (let idx = 0, len = indices.length; idx < len; idx++) {\n plucked[idx] = arr[indices[idx]];\n }\n return plucked;\n};\n\nexport const canBeConvertedToUint8Array = (\n input: any,\n): input is string | ArrayBuffer | Uint8Array =>\n input instanceof Uint8Array ||\n input instanceof ArrayBuffer ||\n typeof input === 'string';\n\nexport const toUint8Array = (input: string | ArrayBuffer | Uint8Array) => {\n if (typeof input === 'string') {\n return decodeFromBase64DataUri(input);\n } else if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n } else if (input instanceof Uint8Array) {\n return input;\n } else {\n throw new TypeError(\n '`input` must be one of `string | ArrayBuffer | Uint8Array`',\n );\n }\n};\n","/**\n * Returns a Promise that resolves after at least one tick of the\n * Macro Task Queue occurs.\n */\nexport const waitForTick = (): Promise =>\n new Promise((resolve) => {\n setTimeout(() => resolve(), 0);\n });\n","/*\n * The `chars`, `lookup`, and `decodeFromBase64` members of this file are\n * licensed under the following:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n *\n */\nimport pako from 'pako';\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport var decodeFromBase64 = function (base64) {\n var bufferLength = base64.length * 0.75;\n var len = base64.length;\n var i;\n var p = 0;\n var encoded1;\n var encoded2;\n var encoded3;\n var encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var bytes = new Uint8Array(bufferLength);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return bytes;\n};\nvar arrayToString = function (array) {\n var str = '';\n for (var i = 0; i < array.length; i++) {\n str += String.fromCharCode(array[i]);\n }\n return str;\n};\nexport var decompressJson = function (compressedJson) {\n return arrayToString(pako.inflate(decodeFromBase64(compressedJson)));\n};\nexport var padStart = function (value, length, padChar) {\n var padding = '';\n for (var idx = 0, len = length - value.length; idx < len; idx++) {\n padding += padChar;\n }\n return padding + value;\n};\n","// tslint:disable radix\n\n/**\n * Converts a number to its string representation in decimal. This function\n * differs from simply converting a number to a string with `.toString()`\n * because this function's output string will **not** contain exponential\n * notation.\n *\n * Credit: https://stackoverflow.com/a/46545519\n */\nexport const numberToString = (num: number) => {\n let numStr = String(num);\n\n if (Math.abs(num) < 1.0) {\n const e = parseInt(num.toString().split('e-')[1]);\n if (e) {\n const negative = num < 0;\n if (negative) num *= -1;\n num *= Math.pow(10, e - 1);\n numStr = '0.' + new Array(e).join('0') + num.toString().substring(2);\n if (negative) numStr = '-' + numStr;\n }\n } else {\n let e = parseInt(num.toString().split('+')[1]);\n if (e > 20) {\n e -= 20;\n num /= Math.pow(10, e);\n numStr = num.toString() + new Array(e + 1).join('0');\n }\n }\n\n return numStr;\n};\n\nexport const sizeInBytes = (n: number) => Math.ceil(n.toString(2).length / 8);\n\n/**\n * Converts a number into its constituent bytes and returns them as\n * a number[].\n *\n * Returns most significant byte as first element in array. It may be necessary\n * to call .reverse() to get the bits in the desired order.\n *\n * Example:\n * bytesFor(0x02A41E) => [ 0b10, 0b10100100, 0b11110 ]\n *\n * Credit for algorithm: https://stackoverflow.com/a/1936865\n */\nexport const bytesFor = (n: number) => {\n const bytes = new Uint8Array(sizeInBytes(n));\n for (let i = 1; i <= bytes.length; i++) {\n bytes[i - 1] = n >> ((bytes.length - i) * 8);\n }\n return bytes;\n};\n","export const error = (msg: string) => {\n throw new Error(msg);\n};\n","import { decompressJson } from './utils';\nimport CourierBoldCompressed from './Courier-Bold.compressed.json';\nimport CourierBoldObliqueCompressed from './Courier-BoldOblique.compressed.json';\nimport CourierObliqueCompressed from './Courier-Oblique.compressed.json';\nimport CourierCompressed from './Courier.compressed.json';\nimport HelveticaBoldCompressed from './Helvetica-Bold.compressed.json';\nimport HelveticaBoldObliqueCompressed from './Helvetica-BoldOblique.compressed.json';\nimport HelveticaObliqueCompressed from './Helvetica-Oblique.compressed.json';\nimport HelveticaCompressed from './Helvetica.compressed.json';\nimport TimesBoldCompressed from './Times-Bold.compressed.json';\nimport TimesBoldItalicCompressed from './Times-BoldItalic.compressed.json';\nimport TimesItalicCompressed from './Times-Italic.compressed.json';\nimport TimesRomanCompressed from './Times-Roman.compressed.json';\nimport SymbolCompressed from './Symbol.compressed.json';\nimport ZapfDingbatsCompressed from './ZapfDingbats.compressed.json';\n// prettier-ignore\nvar compressedJsonForFontName = {\n 'Courier': CourierCompressed,\n 'Courier-Bold': CourierBoldCompressed,\n 'Courier-Oblique': CourierObliqueCompressed,\n 'Courier-BoldOblique': CourierBoldObliqueCompressed,\n 'Helvetica': HelveticaCompressed,\n 'Helvetica-Bold': HelveticaBoldCompressed,\n 'Helvetica-Oblique': HelveticaObliqueCompressed,\n 'Helvetica-BoldOblique': HelveticaBoldObliqueCompressed,\n 'Times-Roman': TimesRomanCompressed,\n 'Times-Bold': TimesBoldCompressed,\n 'Times-Italic': TimesItalicCompressed,\n 'Times-BoldItalic': TimesBoldItalicCompressed,\n 'Symbol': SymbolCompressed,\n 'ZapfDingbats': ZapfDingbatsCompressed,\n};\nexport var FontNames;\n(function (FontNames) {\n FontNames[\"Courier\"] = \"Courier\";\n FontNames[\"CourierBold\"] = \"Courier-Bold\";\n FontNames[\"CourierOblique\"] = \"Courier-Oblique\";\n FontNames[\"CourierBoldOblique\"] = \"Courier-BoldOblique\";\n FontNames[\"Helvetica\"] = \"Helvetica\";\n FontNames[\"HelveticaBold\"] = \"Helvetica-Bold\";\n FontNames[\"HelveticaOblique\"] = \"Helvetica-Oblique\";\n FontNames[\"HelveticaBoldOblique\"] = \"Helvetica-BoldOblique\";\n FontNames[\"TimesRoman\"] = \"Times-Roman\";\n FontNames[\"TimesRomanBold\"] = \"Times-Bold\";\n FontNames[\"TimesRomanItalic\"] = \"Times-Italic\";\n FontNames[\"TimesRomanBoldItalic\"] = \"Times-BoldItalic\";\n FontNames[\"Symbol\"] = \"Symbol\";\n FontNames[\"ZapfDingbats\"] = \"ZapfDingbats\";\n})(FontNames || (FontNames = {}));\nvar fontCache = {};\nvar Font = /** @class */ (function () {\n function Font() {\n var _this = this;\n this.getWidthOfGlyph = function (glyphName) {\n return _this.CharWidths[glyphName];\n };\n this.getXAxisKerningForPair = function (leftGlyphName, rightGlyphName) {\n return (_this.KernPairXAmounts[leftGlyphName] || {})[rightGlyphName];\n };\n }\n Font.load = function (fontName) {\n var cachedFont = fontCache[fontName];\n if (cachedFont)\n return cachedFont;\n var json = decompressJson(compressedJsonForFontName[fontName]);\n var font = Object.assign(new Font(), JSON.parse(json));\n font.CharWidths = font.CharMetrics.reduce(function (acc, metric) {\n acc[metric.N] = metric.WX;\n return acc;\n }, {});\n font.KernPairXAmounts = font.KernPairs.reduce(function (acc, _a) {\n var name1 = _a[0], name2 = _a[1], width = _a[2];\n if (!acc[name1])\n acc[name1] = {};\n acc[name1][name2] = width;\n return acc;\n }, {});\n fontCache[fontName] = font;\n return font;\n };\n return Font;\n}());\nexport { Font };\n","import { toCharCode } from 'src/utils/strings';\n\n// Mapping from PDFDocEncoding to Unicode code point\nconst pdfDocEncodingToUnicode = new Uint16Array(256);\n\n// Initialize the code points which are the same\nfor (let idx = 0; idx < 256; idx++) {\n pdfDocEncodingToUnicode[idx] = idx;\n}\n\n// Set differences (see \"Table D.2 – PDFDocEncoding Character Set\" of the PDF spec)\npdfDocEncodingToUnicode[0x16] = toCharCode('\\u0017'); // SYNCRONOUS IDLE\npdfDocEncodingToUnicode[0x18] = toCharCode('\\u02D8'); // BREVE\npdfDocEncodingToUnicode[0x19] = toCharCode('\\u02C7'); // CARON\npdfDocEncodingToUnicode[0x1a] = toCharCode('\\u02C6'); // MODIFIER LETTER CIRCUMFLEX ACCENT\npdfDocEncodingToUnicode[0x1b] = toCharCode('\\u02D9'); // DOT ABOVE\npdfDocEncodingToUnicode[0x1c] = toCharCode('\\u02DD'); // DOUBLE ACUTE ACCENT\npdfDocEncodingToUnicode[0x1d] = toCharCode('\\u02DB'); // OGONEK\npdfDocEncodingToUnicode[0x1e] = toCharCode('\\u02DA'); // RING ABOVE\npdfDocEncodingToUnicode[0x1f] = toCharCode('\\u02DC'); // SMALL TILDE\npdfDocEncodingToUnicode[0x7f] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\npdfDocEncodingToUnicode[0x80] = toCharCode('\\u2022'); // BULLET\npdfDocEncodingToUnicode[0x81] = toCharCode('\\u2020'); // DAGGER\npdfDocEncodingToUnicode[0x82] = toCharCode('\\u2021'); // DOUBLE DAGGER\npdfDocEncodingToUnicode[0x83] = toCharCode('\\u2026'); // HORIZONTAL ELLIPSIS\npdfDocEncodingToUnicode[0x84] = toCharCode('\\u2014'); // EM DASH\npdfDocEncodingToUnicode[0x85] = toCharCode('\\u2013'); // EN DASH\npdfDocEncodingToUnicode[0x86] = toCharCode('\\u0192'); // LATIN SMALL LETTER SCRIPT F\npdfDocEncodingToUnicode[0x87] = toCharCode('\\u2044'); // FRACTION SLASH (solidus)\npdfDocEncodingToUnicode[0x88] = toCharCode('\\u2039'); // SINGLE LEFT-POINTING ANGLE QUOTATION MARK\npdfDocEncodingToUnicode[0x89] = toCharCode('\\u203A'); // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\npdfDocEncodingToUnicode[0x8a] = toCharCode('\\u2212'); // MINUS SIGN\npdfDocEncodingToUnicode[0x8b] = toCharCode('\\u2030'); // PER MILLE SIGN\npdfDocEncodingToUnicode[0x8c] = toCharCode('\\u201E'); // DOUBLE LOW-9 QUOTATION MARK (quotedblbase)\npdfDocEncodingToUnicode[0x8d] = toCharCode('\\u201C'); // LEFT DOUBLE QUOTATION MARK (quotedblleft)\npdfDocEncodingToUnicode[0x8e] = toCharCode('\\u201D'); // RIGHT DOUBLE QUOTATION MARK (quotedblright)\npdfDocEncodingToUnicode[0x8f] = toCharCode('\\u2018'); // LEFT SINGLE QUOTATION MARK (quoteleft)\npdfDocEncodingToUnicode[0x90] = toCharCode('\\u2019'); // RIGHT SINGLE QUOTATION MARK (quoteright)\npdfDocEncodingToUnicode[0x91] = toCharCode('\\u201A'); // SINGLE LOW-9 QUOTATION MARK (quotesinglbase)\npdfDocEncodingToUnicode[0x92] = toCharCode('\\u2122'); // TRADE MARK SIGN\npdfDocEncodingToUnicode[0x93] = toCharCode('\\uFB01'); // LATIN SMALL LIGATURE FI\npdfDocEncodingToUnicode[0x94] = toCharCode('\\uFB02'); // LATIN SMALL LIGATURE FL\npdfDocEncodingToUnicode[0x95] = toCharCode('\\u0141'); // LATIN CAPITAL LETTER L WITH STROKE\npdfDocEncodingToUnicode[0x96] = toCharCode('\\u0152'); // LATIN CAPITAL LIGATURE OE\npdfDocEncodingToUnicode[0x97] = toCharCode('\\u0160'); // LATIN CAPITAL LETTER S WITH CARON\npdfDocEncodingToUnicode[0x98] = toCharCode('\\u0178'); // LATIN CAPITAL LETTER Y WITH DIAERESIS\npdfDocEncodingToUnicode[0x99] = toCharCode('\\u017D'); // LATIN CAPITAL LETTER Z WITH CARON\npdfDocEncodingToUnicode[0x9a] = toCharCode('\\u0131'); // LATIN SMALL LETTER DOTLESS I\npdfDocEncodingToUnicode[0x9b] = toCharCode('\\u0142'); // LATIN SMALL LETTER L WITH STROKE\npdfDocEncodingToUnicode[0x9c] = toCharCode('\\u0153'); // LATIN SMALL LIGATURE OE\npdfDocEncodingToUnicode[0x9d] = toCharCode('\\u0161'); // LATIN SMALL LETTER S WITH CARON\npdfDocEncodingToUnicode[0x9e] = toCharCode('\\u017E'); // LATIN SMALL LETTER Z WITH CARON\npdfDocEncodingToUnicode[0x9f] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\npdfDocEncodingToUnicode[0xa0] = toCharCode('\\u20AC'); // EURO SIGN\npdfDocEncodingToUnicode[0xad] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\n\n/**\n * Decode a byte array into a string using PDFDocEncoding.\n *\n * @param bytes a byte array (decimal representation) containing a string\n * encoded with PDFDocEncoding.\n */\nexport const pdfDocEncodingDecode = (bytes: Uint8Array): string => {\n const codePoints = new Array(bytes.length);\n for (let idx = 0, len = bytes.length; idx < len; idx++) {\n codePoints[idx] = pdfDocEncodingToUnicode[bytes[idx]];\n }\n return String.fromCodePoint(...codePoints);\n};\n","/* tslint:disable max-classes-per-file */\nimport { decompressJson, padStart } from './utils';\nimport AllEncodingsCompressed from './all-encodings.compressed.json';\nvar decompressedEncodings = decompressJson(AllEncodingsCompressed);\nvar allUnicodeMappings = JSON.parse(decompressedEncodings);\nvar Encoding = /** @class */ (function () {\n function Encoding(name, unicodeMappings) {\n var _this = this;\n this.canEncodeUnicodeCodePoint = function (codePoint) {\n return codePoint in _this.unicodeMappings;\n };\n this.encodeUnicodeCodePoint = function (codePoint) {\n var mapped = _this.unicodeMappings[codePoint];\n if (!mapped) {\n var str = String.fromCharCode(codePoint);\n var hexCode = \"0x\" + padStart(codePoint.toString(16), 4, '0');\n var msg = _this.name + \" cannot encode \\\"\" + str + \"\\\" (\" + hexCode + \")\";\n throw new Error(msg);\n }\n return { code: mapped[0], name: mapped[1] };\n };\n this.name = name;\n this.supportedCodePoints = Object.keys(unicodeMappings)\n .map(Number)\n .sort(function (a, b) { return a - b; });\n this.unicodeMappings = unicodeMappings;\n }\n return Encoding;\n}());\nexport var Encodings = {\n Symbol: new Encoding('Symbol', allUnicodeMappings.symbol),\n ZapfDingbats: new Encoding('ZapfDingbats', allUnicodeMappings.zapfdingbats),\n WinAnsi: new Encoding('WinAnsi', allUnicodeMappings.win1252),\n};\n","import { FontNames } from '@pdf-lib/standard-fonts';\n\nexport const values = (obj: any) => Object.keys(obj).map((k) => obj[k]);\n\nexport const StandardFontValues = values(FontNames);\n\nexport const isStandardFont = (input: any): input is FontNames =>\n StandardFontValues.includes(input);\n\nexport const rectanglesAreEqual = (\n a: { x: number; y: number; width: number; height: number },\n b: { x: number; y: number; width: number; height: number },\n) => a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n","/* tslint:disable:ban-types */\n\nimport { values as objectValues } from 'src/utils/objects';\n\nexport const backtick = (val: any) => `\\`${val}\\``;\nexport const singleQuote = (val: any) => `'${val}'`;\n\ntype Primitive = string | number | boolean | undefined | null;\n\n// prettier-ignore\nconst formatValue = (value: any) => {\n const type = typeof value;\n if (type ==='string') return singleQuote(value);\n else if (type ==='undefined') return backtick(value);\n else return value;\n};\n\nexport const createValueErrorMsg = (\n value: any,\n valueName: string,\n values: Primitive[],\n) => {\n const allowedValues = new Array(values.length);\n\n for (let idx = 0, len = values.length; idx < len; idx++) {\n const v = values[idx];\n allowedValues[idx] = formatValue(v);\n }\n\n const joinedValues = allowedValues.join(' or ');\n\n // prettier-ignore\n return `${backtick(valueName)} must be one of ${joinedValues}, but was actually ${formatValue(value)}`;\n};\n\nexport const assertIsOneOf = (\n value: any,\n valueName: string,\n allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n if (!Array.isArray(allowedValues)) {\n allowedValues = objectValues(allowedValues);\n }\n for (let idx = 0, len = allowedValues.length; idx < len; idx++) {\n if (value === allowedValues[idx]) return;\n }\n throw new TypeError(createValueErrorMsg(value, valueName, allowedValues));\n};\n\nexport const assertIsOneOfOrUndefined = (\n value: any,\n valueName: string,\n allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n if (!Array.isArray(allowedValues)) {\n allowedValues = objectValues(allowedValues);\n }\n assertIsOneOf(value, valueName, allowedValues.concat(undefined));\n};\n\nexport const assertIsSubset = (\n values: any[],\n valueName: string,\n allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n if (!Array.isArray(allowedValues)) {\n allowedValues = objectValues(allowedValues);\n }\n for (let idx = 0, len = values.length; idx < len; idx++) {\n assertIsOneOf(values[idx], valueName, allowedValues);\n }\n};\n\nexport const getType = (val: any) => {\n if (val === null) return 'null';\n if (val === undefined) return 'undefined';\n if (typeof val === 'string') return 'string';\n if (isNaN(val)) return 'NaN';\n if (typeof val === 'number') return 'number';\n if (typeof val === 'boolean') return 'boolean';\n if (typeof val === 'symbol') return 'symbol';\n if (typeof val === 'bigint') return 'bigint';\n if (val.constructor && val.constructor.name) return val.constructor.name;\n if (val.name) return val.name;\n if (val.constructor) return String(val.constructor);\n return String(val);\n};\n\nexport type TypeDescriptor =\n | 'null'\n | 'undefined'\n | 'string'\n | 'number'\n | 'boolean'\n | 'symbol'\n | 'bigint'\n | DateConstructor\n | ArrayConstructor\n | Uint8ArrayConstructor\n | ArrayBufferConstructor\n | FunctionConstructor\n | [Function, string];\n\nexport const isType = (value: any, type: TypeDescriptor) => {\n if (type === 'null') return value === null;\n if (type === 'undefined') return value === undefined;\n if (type === 'string') return typeof value === 'string';\n if (type === 'number') return typeof value === 'number' && !isNaN(value);\n if (type === 'boolean') return typeof value === 'boolean';\n if (type === 'symbol') return typeof value === 'symbol';\n if (type === 'bigint') return typeof value === 'bigint';\n if (type === Date) return value instanceof Date;\n if (type === Array) return value instanceof Array;\n if (type === Uint8Array) return value instanceof Uint8Array;\n if (type === ArrayBuffer) return value instanceof ArrayBuffer;\n if (type === Function) return value instanceof Function;\n return value instanceof (type as [Function, string])[0];\n};\n\nexport const createTypeErrorMsg = (\n value: any,\n valueName: string,\n types: TypeDescriptor[],\n) => {\n const allowedTypes = new Array(types.length);\n\n for (let idx = 0, len = types.length; idx < len; idx++) {\n const type = types[idx];\n if (type === 'null') allowedTypes[idx] = backtick('null');\n if (type === 'undefined') allowedTypes[idx] = backtick('undefined');\n if (type === 'string') allowedTypes[idx] = backtick('string');\n else if (type === 'number') allowedTypes[idx] = backtick('number');\n else if (type === 'boolean') allowedTypes[idx] = backtick('boolean');\n else if (type === 'symbol') allowedTypes[idx] = backtick('symbol');\n else if (type === 'bigint') allowedTypes[idx] = backtick('bigint');\n else if (type === Array) allowedTypes[idx] = backtick('Array');\n else if (type === Uint8Array) allowedTypes[idx] = backtick('Uint8Array');\n else if (type === ArrayBuffer) allowedTypes[idx] = backtick('ArrayBuffer');\n else allowedTypes[idx] = backtick((type as [Function, string])[1]);\n }\n\n const joinedTypes = allowedTypes.join(' or ');\n\n // prettier-ignore\n return `${backtick(valueName)} must be of type ${joinedTypes}, but was actually of type ${backtick(getType(value))}`;\n};\n\nexport const assertIs = (\n value: any,\n valueName: string,\n types: TypeDescriptor[],\n) => {\n for (let idx = 0, len = types.length; idx < len; idx++) {\n if (isType(value, types[idx])) return;\n }\n throw new TypeError(createTypeErrorMsg(value, valueName, types));\n};\n\nexport const assertOrUndefined = (\n value: any,\n valueName: string,\n types: TypeDescriptor[],\n) => {\n assertIs(value, valueName, types.concat('undefined'));\n};\n\nexport const assertEachIs = (\n values: any[],\n valueName: string,\n types: TypeDescriptor[],\n) => {\n for (let idx = 0, len = values.length; idx < len; idx++) {\n assertIs(values[idx], valueName, types);\n }\n};\n\nexport const assertRange = (\n value: any,\n valueName: string,\n min: number,\n max: number,\n) => {\n assertIs(value, valueName, ['number']);\n assertIs(min, 'min', ['number']);\n assertIs(max, 'max', ['number']);\n max = Math.max(min, max);\n if (value < min || value > max) {\n // prettier-ignore\n throw new Error(`${backtick(valueName)} must be at least ${min} and at most ${max}, but was actually ${value}`);\n }\n};\n\nexport const assertRangeOrUndefined = (\n value: any,\n valueName: string,\n min: number,\n max: number,\n) => {\n assertIs(value, valueName, ['number', 'undefined']);\n if (typeof value === 'number') assertRange(value, valueName, min, max);\n};\n\nexport const assertMultiple = (\n value: any,\n valueName: string,\n multiplier: number,\n) => {\n assertIs(value, valueName, ['number']);\n if (value % multiplier !== 0) {\n // prettier-ignore\n throw new Error(`${backtick(valueName)} must be a multiple of ${multiplier}, but was actually ${value}`);\n }\n};\n\nexport const assertInteger = (value: any, valueName: string) => {\n if (!Number.isInteger(value)) {\n throw new Error(\n `${backtick(valueName)} must be an integer, but was actually ${value}`,\n );\n }\n};\n\nexport const assertPositive = (value: number, valueName: string) => {\n if (![1, 0].includes(Math.sign(value))) {\n // prettier-ignore\n throw new Error(`${backtick(valueName)} must be a positive number or 0, but was actually ${value}`);\n }\n};\n","class Cache {\n static readonly populatedBy = (populate: () => T) => new Cache(populate);\n\n private readonly populate: () => T;\n private value: T | undefined;\n\n private constructor(populate: () => T) {\n this.populate = populate;\n this.value = undefined;\n }\n\n getValue(): T | undefined {\n return this.value;\n }\n\n access(): T {\n if (!this.value) this.value = this.populate();\n return this.value;\n }\n\n invalidate(): void {\n this.value = undefined;\n }\n}\n\nexport default Cache;\n","// tslint:disable: max-classes-per-file\nimport PDFObject from 'src/core/objects/PDFObject';\nimport { arrayAsString } from 'src/utils';\n\nexport class MethodNotImplementedError extends Error {\n constructor(className: string, methodName: string) {\n const msg = `Method ${className}.${methodName}() not implemented`;\n super(msg);\n }\n}\n\nexport class PrivateConstructorError extends Error {\n constructor(className: string) {\n const msg = `Cannot construct ${className} - it has a private constructor`;\n super(msg);\n }\n}\n\nexport class UnexpectedObjectTypeError extends Error {\n constructor(expected: any | any[], actual: any) {\n const name = (t: any) => t?.name ?? t?.constructor?.name;\n\n const expectedTypes = Array.isArray(expected)\n ? expected.map(name)\n : [name(expected)];\n\n const msg =\n `Expected instance of ${expectedTypes.join(' or ')}, ` +\n `but got instance of ${actual ? name(actual) : actual}`;\n\n super(msg);\n }\n}\n\nexport class UnsupportedEncodingError extends Error {\n constructor(encoding: string) {\n const msg = `${encoding} stream encoding not supported`;\n super(msg);\n }\n}\n\nexport class ReparseError extends Error {\n constructor(className: string, methodName: string) {\n const msg = `Cannot call ${className}.${methodName}() more than once`;\n super(msg);\n }\n}\n\nexport class MissingCatalogError extends Error {\n constructor(ref?: PDFObject) {\n const msg = `Missing catalog (ref=${ref})`;\n super(msg);\n }\n}\n\nexport class MissingPageContentsEmbeddingError extends Error {\n constructor() {\n const msg = `Can't embed page with missing Contents`;\n super(msg);\n }\n}\n\nexport class UnrecognizedStreamTypeError extends Error {\n constructor(stream: any) {\n const streamType = stream?.contructor?.name ?? stream?.name ?? stream;\n const msg = `Unrecognized stream type: ${streamType}`;\n super(msg);\n }\n}\n\nexport class PageEmbeddingMismatchedContextError extends Error {\n constructor() {\n const msg = `Found mismatched contexts while embedding pages. All pages in the array passed to \\`PDFDocument.embedPages()\\` must be from the same document.`;\n super(msg);\n }\n}\n\nexport class PDFArrayIsNotRectangleError extends Error {\n constructor(size: number) {\n const msg = `Attempted to convert PDFArray with ${size} elements to rectangle, but must have exactly 4 elements.`;\n super(msg);\n }\n}\n\nexport class InvalidPDFDateStringError extends Error {\n constructor(value: string) {\n const msg = `Attempted to convert \"${value}\" to a date, but it does not match the PDF date string format.`;\n super(msg);\n }\n}\n\nexport class InvalidTargetIndexError extends Error {\n constructor(targetIndex: number, Count: number) {\n const msg = `Invalid targetIndex specified: targetIndex=${targetIndex} must be less than Count=${Count}`;\n super(msg);\n }\n}\n\nexport class CorruptPageTreeError extends Error {\n constructor(targetIndex: number, operation: string) {\n const msg = `Failed to ${operation} at targetIndex=${targetIndex} due to corrupt page tree: It is likely that one or more 'Count' entries are invalid`;\n super(msg);\n }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n constructor(index: number, min: number, max: number) {\n const msg = `index should be at least ${min} and at most ${max}, but was actually ${index}`;\n super(msg);\n }\n}\n\nexport class InvalidAcroFieldValueError extends Error {\n constructor() {\n const msg = `Attempted to set invalid field value`;\n super(msg);\n }\n}\n\nexport class MultiSelectValueError extends Error {\n constructor() {\n const msg = `Attempted to select multiple values for single-select field`;\n super(msg);\n }\n}\n\nexport class MissingDAEntryError extends Error {\n constructor(fieldName: string) {\n const msg = `No /DA (default appearance) entry found for field: ${fieldName}`;\n super(msg);\n }\n}\n\nexport class MissingTfOperatorError extends Error {\n constructor(fieldName: string) {\n const msg = `No Tf operator found for DA of field: ${fieldName}`;\n super(msg);\n }\n}\n\n/***** Parser Errors ******/\n\nexport interface Position {\n line: number;\n column: number;\n offset: number;\n}\n\nexport class NumberParsingError extends Error {\n constructor(pos: Position, value: string) {\n const msg =\n `Failed to parse number ` +\n `(line:${pos.line} col:${pos.column} offset=${pos.offset}): \"${value}\"`;\n super(msg);\n }\n}\n\nexport class PDFParsingError extends Error {\n constructor(pos: Position, details: string) {\n const msg =\n `Failed to parse PDF document ` +\n `(line:${pos.line} col:${pos.column} offset=${pos.offset}): ${details}`;\n super(msg);\n }\n}\n\nexport class NextByteAssertionError extends PDFParsingError {\n constructor(pos: Position, expectedByte: number, actualByte: number) {\n const msg = `Expected next byte to be ${expectedByte} but it was actually ${actualByte}`;\n super(pos, msg);\n }\n}\n\nexport class PDFObjectParsingError extends PDFParsingError {\n constructor(pos: Position, byte: number) {\n const msg = `Failed to parse PDF object starting with the following byte: ${byte}`;\n super(pos, msg);\n }\n}\n\nexport class PDFInvalidObjectParsingError extends PDFParsingError {\n constructor(pos: Position) {\n const msg = `Failed to parse invalid PDF object`;\n super(pos, msg);\n }\n}\n\nexport class PDFStreamParsingError extends PDFParsingError {\n constructor(pos: Position) {\n const msg = `Failed to parse PDF stream`;\n super(pos, msg);\n }\n}\n\nexport class UnbalancedParenthesisError extends PDFParsingError {\n constructor(pos: Position) {\n const msg = `Failed to parse PDF literal string due to unbalanced parenthesis`;\n super(pos, msg);\n }\n}\n\nexport class StalledParserError extends PDFParsingError {\n constructor(pos: Position) {\n const msg = `Parser stalled`;\n super(pos, msg);\n }\n}\n\nexport class MissingPDFHeaderError extends PDFParsingError {\n constructor(pos: Position) {\n const msg = `No PDF header found`;\n super(pos, msg);\n }\n}\n\nexport class MissingKeywordError extends PDFParsingError {\n constructor(pos: Position, keyword: number[]) {\n const msg = `Did not find expected keyword '${arrayAsString(keyword)}'`;\n super(pos, msg);\n }\n}\n","enum CharCodes {\n Null = 0,\n Backspace = 8,\n Tab = 9,\n Newline = 10,\n FormFeed = 12,\n CarriageReturn = 13,\n Space = 32,\n ExclamationPoint = 33,\n Hash = 35,\n Percent = 37,\n LeftParen = 40,\n RightParen = 41,\n Plus = 43,\n Minus = 45,\n Dash = 45,\n Period = 46,\n ForwardSlash = 47,\n Zero = 48,\n One = 49,\n Two = 50,\n Three = 51,\n Four = 52,\n Five = 53,\n Six = 54,\n Seven = 55,\n Eight = 56,\n Nine = 57,\n LessThan = 60,\n GreaterThan = 62,\n A = 65,\n D = 68,\n E = 69,\n F = 70,\n O = 79,\n P = 80,\n R = 82,\n LeftSquareBracket = 91,\n BackSlash = 92,\n RightSquareBracket = 93,\n a = 97,\n b = 98,\n d = 100,\n e = 101,\n f = 102,\n i = 105,\n j = 106,\n l = 108,\n m = 109,\n n = 110,\n o = 111,\n r = 114,\n s = 115,\n t = 116,\n u = 117,\n x = 120,\n LeftCurly = 123,\n RightCurly = 125,\n Tilde = 126,\n}\n\nexport default CharCodes;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { charFromCode, copyStringIntoBuffer } from 'src/utils';\n\nclass PDFHeader {\n static forVersion = (major: number, minor: number) =>\n new PDFHeader(major, minor);\n\n private readonly major: string;\n private readonly minor: string;\n\n private constructor(major: number, minor: number) {\n this.major = String(major);\n this.minor = String(minor);\n }\n\n toString(): string {\n const bc = charFromCode(129);\n return `%PDF-${this.major}.${this.minor}\\n%${bc}${bc}${bc}${bc}`;\n }\n\n sizeInBytes(): number {\n return 12 + this.major.length + this.minor.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.Percent;\n buffer[offset++] = CharCodes.P;\n buffer[offset++] = CharCodes.D;\n buffer[offset++] = CharCodes.F;\n buffer[offset++] = CharCodes.Dash;\n\n offset += copyStringIntoBuffer(this.major, buffer, offset);\n buffer[offset++] = CharCodes.Period;\n offset += copyStringIntoBuffer(this.minor, buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n\n buffer[offset++] = CharCodes.Percent;\n buffer[offset++] = 129;\n buffer[offset++] = 129;\n buffer[offset++] = 129;\n buffer[offset++] = 129;\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFHeader;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport PDFContext from 'src/core/PDFContext';\n\nclass PDFObject {\n clone(_context?: PDFContext): PDFObject {\n throw new MethodNotImplementedError(this.constructor.name, 'clone');\n }\n\n toString(): string {\n throw new MethodNotImplementedError(this.constructor.name, 'toString');\n }\n\n sizeInBytes(): number {\n throw new MethodNotImplementedError(this.constructor.name, 'sizeInBytes');\n }\n\n copyBytesInto(_buffer: Uint8Array, _offset: number): number {\n throw new MethodNotImplementedError(this.constructor.name, 'copyBytesInto');\n }\n}\n\nexport default PDFObject;\n","import { copyStringIntoBuffer, numberToString } from 'src/utils/index';\n\nimport PDFObject from 'src/core/objects/PDFObject';\n\nclass PDFNumber extends PDFObject {\n static of = (value: number) => new PDFNumber(value);\n\n private readonly numberValue: number;\n private readonly stringValue: string;\n\n private constructor(value: number) {\n super();\n this.numberValue = value;\n this.stringValue = numberToString(value);\n }\n\n asNumber(): number {\n return this.numberValue;\n }\n\n /** @deprecated in favor of [[PDFNumber.asNumber]] */\n value(): number {\n return this.numberValue;\n }\n\n clone(): PDFNumber {\n return PDFNumber.of(this.numberValue);\n }\n\n toString(): string {\n return this.stringValue;\n }\n\n sizeInBytes(): number {\n return this.stringValue.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n offset += copyStringIntoBuffer(this.stringValue, buffer, offset);\n return this.stringValue.length;\n }\n}\n\nexport default PDFNumber;\n","import PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { PDFArrayIsNotRectangleError } from 'src/core/errors';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\n\nclass PDFArray extends PDFObject {\n static withContext = (context: PDFContext) => new PDFArray(context);\n\n private readonly array: PDFObject[];\n private readonly context: PDFContext;\n\n private constructor(context: PDFContext) {\n super();\n this.array = [];\n this.context = context;\n }\n\n size(): number {\n return this.array.length;\n }\n\n push(object: PDFObject): void {\n this.array.push(object);\n }\n\n insert(index: number, object: PDFObject): void {\n this.array.splice(index, 0, object);\n }\n\n indexOf(object: PDFObject): number | undefined {\n const index = this.array.indexOf(object);\n return index === -1 ? undefined : index;\n }\n\n remove(index: number): void {\n this.array.splice(index, 1);\n }\n\n set(idx: number, object: PDFObject): void {\n this.array[idx] = object;\n }\n\n get(index: number): PDFObject {\n return this.array[index];\n }\n\n lookupMaybe(index: number, type: typeof PDFArray): PDFArray | undefined;\n lookupMaybe(index: number, type: typeof PDFBool): PDFBool | undefined;\n lookupMaybe(index: number, type: typeof PDFDict): PDFDict | undefined;\n lookupMaybe(\n index: number,\n type: typeof PDFHexString,\n ): PDFHexString | undefined;\n lookupMaybe(index: number, type: typeof PDFName): PDFName | undefined;\n lookupMaybe(index: number, type: typeof PDFNull): typeof PDFNull | undefined;\n lookupMaybe(index: number, type: typeof PDFNumber): PDFNumber | undefined;\n lookupMaybe(index: number, type: typeof PDFStream): PDFStream | undefined;\n lookupMaybe(\n index: number,\n type: typeof PDFRawStream,\n ): PDFRawStream | undefined;\n lookupMaybe(index: number, type: typeof PDFRef): PDFRef | undefined;\n lookupMaybe(index: number, type: typeof PDFString): PDFString | undefined;\n lookupMaybe(\n index: number,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString | undefined;\n\n lookupMaybe(index: number, ...types: any[]) {\n return this.context.lookupMaybe(\n this.get(index),\n // @ts-ignore\n ...types,\n ) as any;\n }\n\n lookup(index: number): PDFObject | undefined;\n lookup(index: number, type: typeof PDFArray): PDFArray;\n lookup(index: number, type: typeof PDFBool): PDFBool;\n lookup(index: number, type: typeof PDFDict): PDFDict;\n lookup(index: number, type: typeof PDFHexString): PDFHexString;\n lookup(index: number, type: typeof PDFName): PDFName;\n lookup(index: number, type: typeof PDFNull): typeof PDFNull;\n lookup(index: number, type: typeof PDFNumber): PDFNumber;\n lookup(index: number, type: typeof PDFStream): PDFStream;\n lookup(index: number, type: typeof PDFRawStream): PDFRawStream;\n lookup(index: number, type: typeof PDFRef): PDFRef;\n lookup(index: number, type: typeof PDFString): PDFString;\n lookup(\n index: number,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString;\n\n lookup(index: number, ...types: any[]) {\n return this.context.lookup(\n this.get(index),\n // @ts-ignore\n ...types,\n ) as any;\n }\n\n asRectangle(): { x: number; y: number; width: number; height: number } {\n if (this.size() !== 4) throw new PDFArrayIsNotRectangleError(this.size());\n\n const lowerLeftX = this.lookup(0, PDFNumber).asNumber();\n const lowerLeftY = this.lookup(1, PDFNumber).asNumber();\n const upperRightX = this.lookup(2, PDFNumber).asNumber();\n const upperRightY = this.lookup(3, PDFNumber).asNumber();\n\n const x = lowerLeftX;\n const y = lowerLeftY;\n const width = upperRightX - lowerLeftX;\n const height = upperRightY - lowerLeftY;\n\n return { x, y, width, height };\n }\n\n asArray(): PDFObject[] {\n return this.array.slice();\n }\n\n clone(context?: PDFContext): PDFArray {\n const clone = PDFArray.withContext(context || this.context);\n for (let idx = 0, len = this.size(); idx < len; idx++) {\n clone.push(this.array[idx]);\n }\n return clone;\n }\n\n toString(): string {\n let arrayString = '[ ';\n for (let idx = 0, len = this.size(); idx < len; idx++) {\n arrayString += this.get(idx).toString();\n arrayString += ' ';\n }\n arrayString += ']';\n return arrayString;\n }\n\n sizeInBytes(): number {\n let size = 3;\n for (let idx = 0, len = this.size(); idx < len; idx++) {\n size += this.get(idx).sizeInBytes() + 1;\n }\n return size;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.LeftSquareBracket;\n buffer[offset++] = CharCodes.Space;\n for (let idx = 0, len = this.size(); idx < len; idx++) {\n offset += this.get(idx).copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Space;\n }\n buffer[offset++] = CharCodes.RightSquareBracket;\n\n return offset - initialOffset;\n }\n\n scalePDFNumbers(x: number, y: number): void {\n for (let idx = 0, len = this.size(); idx < len; idx++) {\n const el = this.lookup(idx);\n if (el instanceof PDFNumber) {\n const factor = idx % 2 === 0 ? x : y;\n this.set(idx, PDFNumber.of(el.asNumber() * factor));\n }\n }\n }\n}\n\nexport default PDFArray;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nconst ENFORCER = {};\n\nclass PDFBool extends PDFObject {\n static readonly True = new PDFBool(ENFORCER, true);\n static readonly False = new PDFBool(ENFORCER, false);\n\n private readonly value: boolean;\n\n private constructor(enforcer: any, value: boolean) {\n if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFBool');\n super();\n this.value = value;\n }\n\n asBoolean(): boolean {\n return this.value;\n }\n\n clone(): PDFBool {\n return this;\n }\n\n toString(): string {\n return String(this.value);\n }\n\n sizeInBytes(): number {\n return this.value ? 4 : 5;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n if (this.value) {\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.u;\n buffer[offset++] = CharCodes.e;\n return 4;\n } else {\n buffer[offset++] = CharCodes.f;\n buffer[offset++] = CharCodes.a;\n buffer[offset++] = CharCodes.l;\n buffer[offset++] = CharCodes.s;\n buffer[offset++] = CharCodes.e;\n return 5;\n }\n }\n}\n\nexport default PDFBool;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsDelimiter = new Uint8Array(256);\n\nIsDelimiter[CharCodes.LeftParen] = 1;\nIsDelimiter[CharCodes.RightParen] = 1;\nIsDelimiter[CharCodes.LessThan] = 1;\nIsDelimiter[CharCodes.GreaterThan] = 1;\nIsDelimiter[CharCodes.LeftSquareBracket] = 1;\nIsDelimiter[CharCodes.RightSquareBracket] = 1;\nIsDelimiter[CharCodes.LeftCurly] = 1;\nIsDelimiter[CharCodes.RightCurly] = 1;\nIsDelimiter[CharCodes.ForwardSlash] = 1;\nIsDelimiter[CharCodes.Percent] = 1;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsWhitespace = new Uint8Array(256);\n\nIsWhitespace[CharCodes.Null] = 1;\nIsWhitespace[CharCodes.Tab] = 1;\nIsWhitespace[CharCodes.Newline] = 1;\nIsWhitespace[CharCodes.FormFeed] = 1;\nIsWhitespace[CharCodes.CarriageReturn] = 1;\nIsWhitespace[CharCodes.Space] = 1;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDelimiter } from 'src/core/syntax/Delimiters';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\n\nexport const IsIrregular = new Uint8Array(256);\n\nfor (let idx = 0, len = 256; idx < len; idx++) {\n IsIrregular[idx] = IsWhitespace[idx] || IsDelimiter[idx] ? 1 : 0;\n}\nIsIrregular[CharCodes.Hash] = 1;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsIrregular } from 'src/core/syntax/Irregular';\nimport {\n charFromHexCode,\n copyStringIntoBuffer,\n toCharCode,\n toHexString,\n} from 'src/utils';\n\nconst decodeName = (name: string) =>\n name.replace(/#([\\dABCDEF]{2})/g, (_, hex) => charFromHexCode(hex));\n\nconst isRegularChar = (charCode: number) =>\n charCode >= CharCodes.ExclamationPoint &&\n charCode <= CharCodes.Tilde &&\n !IsIrregular[charCode];\n\nconst ENFORCER = {};\nconst pool = new Map();\n\nclass PDFName extends PDFObject {\n static of = (name: string): PDFName => {\n const decodedValue = decodeName(name);\n\n let instance = pool.get(decodedValue);\n if (!instance) {\n instance = new PDFName(ENFORCER, decodedValue);\n pool.set(decodedValue, instance);\n }\n\n return instance;\n };\n\n /* tslint:disable member-ordering */\n static readonly Length = PDFName.of('Length');\n static readonly FlateDecode = PDFName.of('FlateDecode');\n static readonly Resources = PDFName.of('Resources');\n static readonly Font = PDFName.of('Font');\n static readonly XObject = PDFName.of('XObject');\n static readonly ExtGState = PDFName.of('ExtGState');\n static readonly Contents = PDFName.of('Contents');\n static readonly Type = PDFName.of('Type');\n static readonly Parent = PDFName.of('Parent');\n static readonly MediaBox = PDFName.of('MediaBox');\n static readonly Page = PDFName.of('Page');\n static readonly Annots = PDFName.of('Annots');\n static readonly TrimBox = PDFName.of('TrimBox');\n static readonly ArtBox = PDFName.of('ArtBox');\n static readonly BleedBox = PDFName.of('BleedBox');\n static readonly CropBox = PDFName.of('CropBox');\n static readonly Rotate = PDFName.of('Rotate');\n static readonly Title = PDFName.of('Title');\n static readonly Author = PDFName.of('Author');\n static readonly Subject = PDFName.of('Subject');\n static readonly Creator = PDFName.of('Creator');\n static readonly Keywords = PDFName.of('Keywords');\n static readonly Producer = PDFName.of('Producer');\n static readonly CreationDate = PDFName.of('CreationDate');\n static readonly ModDate = PDFName.of('ModDate');\n /* tslint:enable member-ordering */\n\n private readonly encodedName: string;\n\n private constructor(enforcer: any, name: string) {\n if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFName');\n super();\n\n let encodedName = '/';\n for (let idx = 0, len = name.length; idx < len; idx++) {\n const character = name[idx];\n const code = toCharCode(character);\n encodedName += isRegularChar(code) ? character : `#${toHexString(code)}`;\n }\n\n this.encodedName = encodedName;\n }\n\n asBytes(): Uint8Array {\n const bytes: number[] = [];\n\n let hex = '';\n let escaped = false;\n\n const pushByte = (byte?: number) => {\n if (byte !== undefined) bytes.push(byte);\n escaped = false;\n };\n\n for (let idx = 1, len = this.encodedName.length; idx < len; idx++) {\n const char = this.encodedName[idx];\n const byte = toCharCode(char);\n const nextChar = this.encodedName[idx + 1];\n if (!escaped) {\n if (byte === CharCodes.Hash) escaped = true;\n else pushByte(byte);\n } else {\n if (\n (byte >= CharCodes.Zero && byte <= CharCodes.Nine) ||\n (byte >= CharCodes.a && byte <= CharCodes.f) ||\n (byte >= CharCodes.A && byte <= CharCodes.F)\n ) {\n hex += char;\n if (\n hex.length === 2 ||\n !(\n (nextChar >= '0' && nextChar <= '9') ||\n (nextChar >= 'a' && nextChar <= 'f') ||\n (nextChar >= 'A' && nextChar <= 'F')\n )\n ) {\n pushByte(parseInt(hex, 16));\n hex = '';\n }\n } else {\n pushByte(byte);\n }\n }\n }\n\n return new Uint8Array(bytes);\n }\n\n // TODO: This should probably use `utf8Decode()`\n // TODO: Polyfill Array.from?\n decodeText(): string {\n const bytes = this.asBytes();\n return String.fromCharCode(...Array.from(bytes));\n }\n\n asString(): string {\n return this.encodedName;\n }\n\n /** @deprecated in favor of [[PDFName.asString]] */\n value(): string {\n return this.encodedName;\n }\n\n clone(): PDFName {\n return this;\n }\n\n toString(): string {\n return this.encodedName;\n }\n\n sizeInBytes(): number {\n return this.encodedName.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n offset += copyStringIntoBuffer(this.encodedName, buffer, offset);\n return this.encodedName.length;\n }\n}\n\nexport default PDFName;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFNull extends PDFObject {\n asNull(): null {\n return null;\n }\n\n clone(): PDFNull {\n return this;\n }\n\n toString(): string {\n return 'null';\n }\n\n sizeInBytes(): number {\n return 4;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n buffer[offset++] = CharCodes.n;\n buffer[offset++] = CharCodes.u;\n buffer[offset++] = CharCodes.l;\n buffer[offset++] = CharCodes.l;\n return 4;\n }\n}\n\nexport default new PDFNull();\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nexport type DictMap = Map;\n\nclass PDFDict extends PDFObject {\n static withContext = (context: PDFContext) => new PDFDict(new Map(), context);\n\n static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n new PDFDict(map, context);\n\n readonly context: PDFContext;\n\n private readonly dict: DictMap;\n\n protected constructor(map: DictMap, context: PDFContext) {\n super();\n this.dict = map;\n this.context = context;\n }\n\n keys(): PDFName[] {\n return Array.from(this.dict.keys());\n }\n\n values(): PDFObject[] {\n return Array.from(this.dict.values());\n }\n\n entries(): [PDFName, PDFObject][] {\n return Array.from(this.dict.entries());\n }\n\n set(key: PDFName, value: PDFObject): void {\n this.dict.set(key, value);\n }\n\n get(\n key: PDFName,\n // TODO: `preservePDFNull` is for backwards compatibility. Should be\n // removed in next breaking API change.\n preservePDFNull = false,\n ): PDFObject | undefined {\n const value = this.dict.get(key);\n if (value === PDFNull && !preservePDFNull) return undefined;\n return value;\n }\n\n has(key: PDFName): boolean {\n const value = this.dict.get(key);\n return value !== undefined && value !== PDFNull;\n }\n\n lookupMaybe(key: PDFName, type: typeof PDFArray): PDFArray | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFBool): PDFBool | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFDict): PDFDict | undefined;\n lookupMaybe(\n key: PDFName,\n type: typeof PDFHexString,\n ): PDFHexString | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFName): PDFName | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFNull): typeof PDFNull | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFNumber): PDFNumber | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFStream): PDFStream | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFRef): PDFRef | undefined;\n lookupMaybe(key: PDFName, type: typeof PDFString): PDFString | undefined;\n lookupMaybe(\n ref: PDFName,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString | undefined;\n lookupMaybe(\n ref: PDFName,\n type1: typeof PDFDict,\n type2: typeof PDFStream,\n ): PDFDict | PDFStream | undefined;\n lookupMaybe(\n ref: PDFName,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n type3: typeof PDFArray,\n ): PDFString | PDFHexString | PDFArray | undefined;\n\n lookupMaybe(key: PDFName, ...types: any[]) {\n // TODO: `preservePDFNull` is for backwards compatibility. Should be\n // removed in next breaking API change.\n const preservePDFNull = types.includes(PDFNull);\n\n const value = this.context.lookupMaybe(\n this.get(key, preservePDFNull),\n // @ts-ignore\n ...types,\n ) as any;\n\n if (value === PDFNull && !preservePDFNull) return undefined;\n\n return value;\n }\n\n lookup(key: PDFName): PDFObject | undefined;\n lookup(key: PDFName, type: typeof PDFArray): PDFArray;\n lookup(key: PDFName, type: typeof PDFBool): PDFBool;\n lookup(key: PDFName, type: typeof PDFDict): PDFDict;\n lookup(key: PDFName, type: typeof PDFHexString): PDFHexString;\n lookup(key: PDFName, type: typeof PDFName): PDFName;\n lookup(key: PDFName, type: typeof PDFNull): typeof PDFNull;\n lookup(key: PDFName, type: typeof PDFNumber): PDFNumber;\n lookup(key: PDFName, type: typeof PDFStream): PDFStream;\n lookup(key: PDFName, type: typeof PDFRef): PDFRef;\n lookup(key: PDFName, type: typeof PDFString): PDFString;\n lookup(\n ref: PDFName,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString;\n lookup(\n ref: PDFName,\n type1: typeof PDFDict,\n type2: typeof PDFStream,\n ): PDFDict | PDFStream;\n lookup(\n ref: PDFName,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n type3: typeof PDFArray,\n ): PDFString | PDFHexString | PDFArray;\n\n lookup(key: PDFName, ...types: any[]) {\n // TODO: `preservePDFNull` is for backwards compatibility. Should be\n // removed in next breaking API change.\n const preservePDFNull = types.includes(PDFNull);\n\n const value = this.context.lookup(\n this.get(key, preservePDFNull),\n // @ts-ignore\n ...types,\n ) as any;\n\n if (value === PDFNull && !preservePDFNull) return undefined;\n\n return value;\n }\n\n delete(key: PDFName): boolean {\n return this.dict.delete(key);\n }\n\n asMap(): Map {\n return new Map(this.dict);\n }\n\n /** Generate a random key that doesn't exist in current key set */\n uniqueKey(tag = ''): PDFName {\n const existingKeys = this.keys();\n let key = PDFName.of(this.context.addRandomSuffix(tag, 10));\n while (existingKeys.includes(key)) {\n key = PDFName.of(this.context.addRandomSuffix(tag, 10));\n }\n return key;\n }\n\n clone(context?: PDFContext): PDFDict {\n const clone = PDFDict.withContext(context || this.context);\n const entries = this.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n clone.set(key, value);\n }\n return clone;\n }\n\n toString(): string {\n let dictString = '<<\\n';\n const entries = this.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n dictString += key.toString() + ' ' + value.toString() + '\\n';\n }\n dictString += '>>';\n return dictString;\n }\n\n sizeInBytes(): number {\n let size = 5;\n const entries = this.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n size += key.sizeInBytes() + value.sizeInBytes() + 2;\n }\n return size;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.LessThan;\n buffer[offset++] = CharCodes.LessThan;\n buffer[offset++] = CharCodes.Newline;\n\n const entries = this.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n offset += key.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Space;\n offset += value.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n }\n\n buffer[offset++] = CharCodes.GreaterThan;\n buffer[offset++] = CharCodes.GreaterThan;\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFDict;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFStream extends PDFObject {\n readonly dict: PDFDict;\n\n constructor(dict: PDFDict) {\n super();\n this.dict = dict;\n }\n\n clone(_context?: PDFContext): PDFStream {\n throw new MethodNotImplementedError(this.constructor.name, 'clone');\n }\n\n getContentsString(): string {\n throw new MethodNotImplementedError(\n this.constructor.name,\n 'getContentsString',\n );\n }\n\n getContents(): Uint8Array {\n throw new MethodNotImplementedError(this.constructor.name, 'getContents');\n }\n\n getContentsSize(): number {\n throw new MethodNotImplementedError(\n this.constructor.name,\n 'getContentsSize',\n );\n }\n\n updateDict(): void {\n const contentsSize = this.getContentsSize();\n this.dict.set(PDFName.Length, PDFNumber.of(contentsSize));\n }\n\n sizeInBytes(): number {\n this.updateDict();\n return this.dict.sizeInBytes() + this.getContentsSize() + 18;\n }\n\n toString(): string {\n this.updateDict();\n let streamString = this.dict.toString();\n streamString += '\\nstream\\n';\n streamString += this.getContentsString();\n streamString += '\\nendstream';\n return streamString;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n this.updateDict();\n const initialOffset = offset;\n\n offset += this.dict.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n\n buffer[offset++] = CharCodes.s;\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.a;\n buffer[offset++] = CharCodes.m;\n buffer[offset++] = CharCodes.Newline;\n\n const contents = this.getContents();\n for (let idx = 0, len = contents.length; idx < len; idx++) {\n buffer[offset++] = contents[idx];\n }\n\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.n;\n buffer[offset++] = CharCodes.d;\n buffer[offset++] = CharCodes.s;\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.a;\n buffer[offset++] = CharCodes.m;\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFStream;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport { arrayAsString } from 'src/utils';\n\nclass PDFRawStream extends PDFStream {\n static of = (dict: PDFDict, contents: Uint8Array) =>\n new PDFRawStream(dict, contents);\n\n readonly contents: Uint8Array;\n\n private constructor(dict: PDFDict, contents: Uint8Array) {\n super(dict);\n this.contents = contents;\n }\n\n asUint8Array(): Uint8Array {\n return this.contents.slice();\n }\n\n clone(context?: PDFContext): PDFRawStream {\n return PDFRawStream.of(this.dict.clone(context), this.contents.slice());\n }\n\n getContentsString(): string {\n return arrayAsString(this.contents);\n }\n\n getContents(): Uint8Array {\n return this.contents;\n }\n\n getContentsSize(): number {\n return this.contents.length;\n }\n}\n\nexport default PDFRawStream;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nconst ENFORCER = {};\nconst pool = new Map();\n\nclass PDFRef extends PDFObject {\n static of = (objectNumber: number, generationNumber = 0) => {\n const tag = `${objectNumber} ${generationNumber} R`;\n\n let instance = pool.get(tag);\n if (!instance) {\n instance = new PDFRef(ENFORCER, objectNumber, generationNumber);\n pool.set(tag, instance);\n }\n\n return instance;\n };\n\n readonly objectNumber: number;\n readonly generationNumber: number;\n readonly tag: string;\n\n private constructor(\n enforcer: any,\n objectNumber: number,\n generationNumber: number,\n ) {\n if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFRef');\n super();\n this.objectNumber = objectNumber;\n this.generationNumber = generationNumber;\n this.tag = `${objectNumber} ${generationNumber} R`;\n }\n\n clone(): PDFRef {\n return this;\n }\n\n toString(): string {\n return this.tag;\n }\n\n sizeInBytes(): number {\n return this.tag.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n offset += copyStringIntoBuffer(this.tag, buffer, offset);\n return this.tag.length;\n }\n}\n\nexport default PDFRef;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFOperatorNames from 'src/core/operators/PDFOperatorNames';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nexport type PDFOperatorArg =\n | string\n | PDFName\n | PDFArray\n | PDFNumber\n | PDFString\n | PDFHexString;\n\nclass PDFOperator {\n static of = (name: PDFOperatorNames, args?: PDFOperatorArg[]) =>\n new PDFOperator(name, args);\n\n private readonly name: PDFOperatorNames;\n private readonly args: PDFOperatorArg[];\n\n private constructor(name: PDFOperatorNames, args?: PDFOperatorArg[]) {\n this.name = name;\n this.args = args || [];\n }\n\n clone(context?: PDFContext): PDFOperator {\n const args = new Array(this.args.length);\n for (let idx = 0, len = args.length; idx < len; idx++) {\n const arg = this.args[idx];\n args[idx] = arg instanceof PDFObject ? arg.clone(context) : arg;\n }\n return PDFOperator.of(this.name, args);\n }\n\n toString(): string {\n let value = '';\n for (let idx = 0, len = this.args.length; idx < len; idx++) {\n value += String(this.args[idx]) + ' ';\n }\n value += this.name;\n return value;\n }\n\n sizeInBytes(): number {\n let size = 0;\n for (let idx = 0, len = this.args.length; idx < len; idx++) {\n const arg = this.args[idx];\n size += (arg instanceof PDFObject ? arg.sizeInBytes() : arg.length) + 1;\n }\n size += this.name.length;\n return size;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n for (let idx = 0, len = this.args.length; idx < len; idx++) {\n const arg = this.args[idx];\n if (arg instanceof PDFObject) {\n offset += arg.copyBytesInto(buffer, offset);\n } else {\n offset += copyStringIntoBuffer(arg, buffer, offset);\n }\n buffer[offset++] = CharCodes.Space;\n }\n\n offset += copyStringIntoBuffer(this.name, buffer, offset);\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFOperator;\n","enum PDFOperatorNames {\n // Non Stroking Color Operators\n NonStrokingColor = 'sc',\n NonStrokingColorN = 'scn',\n NonStrokingColorRgb = 'rg',\n NonStrokingColorGray = 'g',\n NonStrokingColorCmyk = 'k',\n NonStrokingColorspace = 'cs',\n\n // Stroking Color Operators\n StrokingColor = 'SC',\n StrokingColorN = 'SCN',\n StrokingColorRgb = 'RG',\n StrokingColorGray = 'G',\n StrokingColorCmyk = 'K',\n StrokingColorspace = 'CS',\n\n // Marked Content Operators\n BeginMarkedContentSequence = 'BDC',\n BeginMarkedContent = 'BMC',\n EndMarkedContent = 'EMC',\n MarkedContentPointWithProps = 'DP',\n MarkedContentPoint = 'MP',\n DrawObject = 'Do',\n\n // Graphics State Operators\n ConcatTransformationMatrix = 'cm',\n PopGraphicsState = 'Q',\n PushGraphicsState = 'q',\n SetFlatness = 'i',\n SetGraphicsStateParams = 'gs',\n SetLineCapStyle = 'J',\n SetLineDashPattern = 'd',\n SetLineJoinStyle = 'j',\n SetLineMiterLimit = 'M',\n SetLineWidth = 'w',\n SetTextMatrix = 'Tm',\n SetRenderingIntent = 'ri',\n\n // Graphics Operators\n AppendRectangle = 're',\n BeginInlineImage = 'BI',\n BeginInlineImageData = 'ID',\n EndInlineImage = 'EI',\n ClipEvenOdd = 'W*',\n ClipNonZero = 'W',\n CloseAndStroke = 's',\n CloseFillEvenOddAndStroke = 'b*',\n CloseFillNonZeroAndStroke = 'b',\n ClosePath = 'h',\n AppendBezierCurve = 'c',\n CurveToReplicateFinalPoint = 'y',\n CurveToReplicateInitialPoint = 'v',\n EndPath = 'n',\n FillEvenOddAndStroke = 'B*',\n FillEvenOdd = 'f*',\n FillNonZeroAndStroke = 'B',\n FillNonZero = 'f',\n LegacyFillNonZero = 'F',\n LineTo = 'l',\n MoveTo = 'm',\n ShadingFill = 'sh',\n StrokePath = 'S',\n\n // Text Operators\n BeginText = 'BT',\n EndText = 'ET',\n MoveText = 'Td',\n MoveTextSetLeading = 'TD',\n NextLine = 'T*',\n SetCharacterSpacing = 'Tc',\n SetFontAndSize = 'Tf',\n SetTextHorizontalScaling = 'Tz',\n SetTextLineHeight = 'TL',\n SetTextRenderingMode = 'Tr',\n SetTextRise = 'Ts',\n SetWordSpacing = 'Tw',\n ShowText = 'Tj',\n ShowTextAdjusted = 'TJ',\n ShowTextLine = \"'\", // tslint:disable-line quotemark\n ShowTextLineAndSpace = '\"',\n\n // Type3 Font Operators\n Type3D0 = 'd0',\n Type3D1 = 'd1',\n\n // Compatibility Section Operators\n BeginCompatibilitySection = 'BX',\n EndCompatibilitySection = 'EX',\n}\n\nexport default PDFOperatorNames;\n","import pako from 'pako';\n\nimport { MethodNotImplementedError } from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport { Cache } from 'src/utils';\n\nclass PDFFlateStream extends PDFStream {\n protected readonly contentsCache: Cache;\n protected readonly encode: boolean;\n\n constructor(dict: PDFDict, encode: boolean) {\n super(dict);\n\n this.encode = encode;\n\n if (encode) dict.set(PDFName.of('Filter'), PDFName.of('FlateDecode'));\n this.contentsCache = Cache.populatedBy(this.computeContents);\n }\n\n computeContents = (): Uint8Array => {\n const unencodedContents = this.getUnencodedContents();\n return this.encode ? pako.deflate(unencodedContents) : unencodedContents;\n };\n\n getContents(): Uint8Array {\n return this.contentsCache.access();\n }\n\n getContentsSize(): number {\n return this.contentsCache.access().length;\n }\n\n getUnencodedContents(): Uint8Array {\n throw new MethodNotImplementedError(\n this.constructor.name,\n 'getUnencodedContents',\n );\n }\n}\n\nexport default PDFFlateStream;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFOperator from 'src/core/operators/PDFOperator';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFContentStream extends PDFFlateStream {\n static of = (dict: PDFDict, operators: PDFOperator[], encode = true) =>\n new PDFContentStream(dict, operators, encode);\n\n private readonly operators: PDFOperator[];\n\n private constructor(dict: PDFDict, operators: PDFOperator[], encode = true) {\n super(dict, encode);\n this.operators = operators;\n }\n\n push(...operators: PDFOperator[]): void {\n this.operators.push(...operators);\n }\n\n clone(context?: PDFContext): PDFContentStream {\n const operators = new Array(this.operators.length);\n for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n operators[idx] = this.operators[idx].clone(context);\n }\n const { dict, encode } = this;\n return PDFContentStream.of(dict.clone(context), operators, encode);\n }\n\n getContentsString(): string {\n let value = '';\n for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n value += `${this.operators[idx]}\\n`;\n }\n return value;\n }\n\n getUnencodedContents(): Uint8Array {\n const buffer = new Uint8Array(this.getUnencodedContentsSize());\n let offset = 0;\n for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n offset += this.operators[idx].copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n }\n return buffer;\n }\n\n getUnencodedContentsSize(): number {\n let size = 0;\n for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n size += this.operators[idx].sizeInBytes() + 1;\n }\n return size;\n }\n}\n\nexport default PDFContentStream;\n","/**\n * Generates a pseudo random number. Although it is not cryptographically secure\n * and uniformly distributed, it is not a concern for the intended use-case,\n * which is to generate distinct numbers.\n *\n * Credit: https://stackoverflow.com/a/19303725/10254049\n */\nexport class SimpleRNG {\n static withSeed = (seed: number) => new SimpleRNG(seed);\n\n private seed: number;\n\n private constructor(seed: number) {\n this.seed = seed;\n }\n\n nextInt(): number {\n const x = Math.sin(this.seed++) * 10000;\n return x - Math.floor(x);\n }\n}\n","import pako from 'pako';\n\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport { UnexpectedObjectTypeError } from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFOperator from 'src/core/operators/PDFOperator';\nimport Ops from 'src/core/operators/PDFOperatorNames';\nimport PDFContentStream from 'src/core/structures/PDFContentStream';\nimport { typedArrayFor } from 'src/utils';\nimport { SimpleRNG } from 'src/utils/rng';\n\ntype LookupKey = PDFRef | PDFObject | undefined;\n\ninterface LiteralObject {\n [name: string]: Literal | PDFObject;\n}\n\ninterface LiteralArray {\n [index: number]: Literal | PDFObject;\n}\n\ntype Literal =\n | LiteralObject\n | LiteralArray\n | string\n | number\n | boolean\n | null\n | undefined;\n\nconst byAscendingObjectNumber = (\n [a]: [PDFRef, PDFObject],\n [b]: [PDFRef, PDFObject],\n) => a.objectNumber - b.objectNumber;\n\nclass PDFContext {\n static create = () => new PDFContext();\n\n largestObjectNumber: number;\n header: PDFHeader;\n trailerInfo: {\n Root?: PDFObject;\n Encrypt?: PDFObject;\n Info?: PDFObject;\n ID?: PDFObject;\n };\n rng: SimpleRNG;\n\n private readonly indirectObjects: Map;\n\n private pushGraphicsStateContentStreamRef?: PDFRef;\n private popGraphicsStateContentStreamRef?: PDFRef;\n\n private constructor() {\n this.largestObjectNumber = 0;\n this.header = PDFHeader.forVersion(1, 7);\n this.trailerInfo = {};\n\n this.indirectObjects = new Map();\n this.rng = SimpleRNG.withSeed(1);\n }\n\n assign(ref: PDFRef, object: PDFObject): void {\n this.indirectObjects.set(ref, object);\n if (ref.objectNumber > this.largestObjectNumber) {\n this.largestObjectNumber = ref.objectNumber;\n }\n }\n\n nextRef(): PDFRef {\n this.largestObjectNumber += 1;\n return PDFRef.of(this.largestObjectNumber);\n }\n\n register(object: PDFObject): PDFRef {\n const ref = this.nextRef();\n this.assign(ref, object);\n return ref;\n }\n\n delete(ref: PDFRef): boolean {\n return this.indirectObjects.delete(ref);\n }\n\n lookupMaybe(ref: LookupKey, type: typeof PDFArray): PDFArray | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFBool): PDFBool | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFDict): PDFDict | undefined;\n lookupMaybe(\n ref: LookupKey,\n type: typeof PDFHexString,\n ): PDFHexString | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFName): PDFName | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFNull): typeof PDFNull | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFNumber): PDFNumber | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFStream): PDFStream | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFRef): PDFRef | undefined;\n lookupMaybe(ref: LookupKey, type: typeof PDFString): PDFString | undefined;\n lookupMaybe(\n ref: LookupKey,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString | undefined;\n\n lookupMaybe(ref: LookupKey, ...types: any[]) {\n // TODO: `preservePDFNull` is for backwards compatibility. Should be\n // removed in next breaking API change.\n const preservePDFNull = types.includes(PDFNull);\n\n const result = ref instanceof PDFRef ? this.indirectObjects.get(ref) : ref;\n\n if (!result || (result === PDFNull && !preservePDFNull)) return undefined;\n\n for (let idx = 0, len = types.length; idx < len; idx++) {\n const type = types[idx];\n if (type === PDFNull) {\n if (result === PDFNull) return result;\n } else {\n if (result instanceof type) return result;\n }\n }\n throw new UnexpectedObjectTypeError(types, result);\n }\n\n lookup(ref: LookupKey): PDFObject | undefined;\n lookup(ref: LookupKey, type: typeof PDFArray): PDFArray;\n lookup(ref: LookupKey, type: typeof PDFBool): PDFBool;\n lookup(ref: LookupKey, type: typeof PDFDict): PDFDict;\n lookup(ref: LookupKey, type: typeof PDFHexString): PDFHexString;\n lookup(ref: LookupKey, type: typeof PDFName): PDFName;\n lookup(ref: LookupKey, type: typeof PDFNull): typeof PDFNull;\n lookup(ref: LookupKey, type: typeof PDFNumber): PDFNumber;\n lookup(ref: LookupKey, type: typeof PDFStream): PDFStream;\n lookup(ref: LookupKey, type: typeof PDFRef): PDFRef;\n lookup(ref: LookupKey, type: typeof PDFString): PDFString;\n lookup(\n ref: LookupKey,\n type1: typeof PDFString,\n type2: typeof PDFHexString,\n ): PDFString | PDFHexString;\n\n lookup(ref: LookupKey, ...types: any[]) {\n const result = ref instanceof PDFRef ? this.indirectObjects.get(ref) : ref;\n\n if (types.length === 0) return result;\n\n for (let idx = 0, len = types.length; idx < len; idx++) {\n const type = types[idx];\n if (type === PDFNull) {\n if (result === PDFNull) return result;\n } else {\n if (result instanceof type) return result;\n }\n }\n\n throw new UnexpectedObjectTypeError(types, result);\n }\n\n getObjectRef(pdfObject: PDFObject): PDFRef | undefined {\n const entries = Array.from(this.indirectObjects.entries());\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [ref, object] = entries[idx];\n if (object === pdfObject) {\n return ref;\n }\n }\n\n return undefined;\n }\n\n enumerateIndirectObjects(): [PDFRef, PDFObject][] {\n return Array.from(this.indirectObjects.entries()).sort(\n byAscendingObjectNumber,\n );\n }\n\n obj(literal: null | undefined): typeof PDFNull;\n obj(literal: string): PDFName;\n obj(literal: number): PDFNumber;\n obj(literal: boolean): PDFBool;\n obj(literal: LiteralObject): PDFDict;\n obj(literal: LiteralArray): PDFArray;\n\n obj(literal: Literal) {\n if (literal instanceof PDFObject) {\n return literal;\n } else if (literal === null || literal === undefined) {\n return PDFNull;\n } else if (typeof literal === 'string') {\n return PDFName.of(literal);\n } else if (typeof literal === 'number') {\n return PDFNumber.of(literal);\n } else if (typeof literal === 'boolean') {\n return literal ? PDFBool.True : PDFBool.False;\n } else if (Array.isArray(literal)) {\n const array = PDFArray.withContext(this);\n for (let idx = 0, len = literal.length; idx < len; idx++) {\n array.push(this.obj(literal[idx]));\n }\n return array;\n } else {\n const dict = PDFDict.withContext(this);\n const keys = Object.keys(literal);\n for (let idx = 0, len = keys.length; idx < len; idx++) {\n const key = keys[idx];\n const value = (literal as LiteralObject)[key] as any;\n if (value !== undefined) dict.set(PDFName.of(key), this.obj(value));\n }\n return dict;\n }\n }\n\n stream(\n contents: string | Uint8Array,\n dict: LiteralObject = {},\n ): PDFRawStream {\n return PDFRawStream.of(this.obj(dict), typedArrayFor(contents));\n }\n\n flateStream(\n contents: string | Uint8Array,\n dict: LiteralObject = {},\n ): PDFRawStream {\n return this.stream(pako.deflate(typedArrayFor(contents)), {\n ...dict,\n Filter: 'FlateDecode',\n });\n }\n\n contentStream(\n operators: PDFOperator[],\n dict: LiteralObject = {},\n ): PDFContentStream {\n return PDFContentStream.of(this.obj(dict), operators);\n }\n\n formXObject(\n operators: PDFOperator[],\n dict: LiteralObject = {},\n ): PDFContentStream {\n return this.contentStream(operators, {\n BBox: this.obj([0, 0, 0, 0]),\n Matrix: this.obj([1, 0, 0, 1, 0, 0]),\n ...dict,\n Type: 'XObject',\n Subtype: 'Form',\n });\n }\n\n /*\n * Reference to PDFContentStream that contains a single PDFOperator: `q`.\n * Used by [[PDFPageLeaf]] instances to ensure that when content streams are\n * added to a modified PDF, they start in the default, unchanged graphics\n * state.\n */\n getPushGraphicsStateContentStream(): PDFRef {\n if (this.pushGraphicsStateContentStreamRef) {\n return this.pushGraphicsStateContentStreamRef;\n }\n const dict = this.obj({});\n const op = PDFOperator.of(Ops.PushGraphicsState);\n const stream = PDFContentStream.of(dict, [op]);\n this.pushGraphicsStateContentStreamRef = this.register(stream);\n return this.pushGraphicsStateContentStreamRef;\n }\n\n /*\n * Reference to PDFContentStream that contains a single PDFOperator: `Q`.\n * Used by [[PDFPageLeaf]] instances to ensure that when content streams are\n * added to a modified PDF, they start in the default, unchanged graphics\n * state.\n */\n getPopGraphicsStateContentStream(): PDFRef {\n if (this.popGraphicsStateContentStreamRef) {\n return this.popGraphicsStateContentStreamRef;\n }\n const dict = this.obj({});\n const op = PDFOperator.of(Ops.PopGraphicsState);\n const stream = PDFContentStream.of(dict, [op]);\n this.popGraphicsStateContentStreamRef = this.register(stream);\n return this.popGraphicsStateContentStreamRef;\n }\n\n addRandomSuffix(prefix: string, suffixLength = 4): string {\n return `${prefix}-${Math.floor(this.rng.nextInt() * 10 ** suffixLength)}`;\n }\n}\n\nexport default PDFContext;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\n\nclass PDFPageLeaf extends PDFDict {\n static readonly InheritableEntries = [\n 'Resources',\n 'MediaBox',\n 'CropBox',\n 'Rotate',\n ];\n\n static withContextAndParent = (context: PDFContext, parent: PDFRef) => {\n const dict = new Map();\n dict.set(PDFName.Type, PDFName.Page);\n dict.set(PDFName.Parent, parent);\n dict.set(PDFName.Resources, context.obj({}));\n dict.set(PDFName.MediaBox, context.obj([0, 0, 612, 792]));\n return new PDFPageLeaf(dict, context, false);\n };\n\n static fromMapWithContext = (\n map: DictMap,\n context: PDFContext,\n autoNormalizeCTM = true,\n ) => new PDFPageLeaf(map, context, autoNormalizeCTM);\n\n private normalized = false;\n private readonly autoNormalizeCTM: boolean;\n\n private constructor(\n map: DictMap,\n context: PDFContext,\n autoNormalizeCTM = true,\n ) {\n super(map, context);\n this.autoNormalizeCTM = autoNormalizeCTM;\n }\n\n clone(context?: PDFContext): PDFPageLeaf {\n const clone = PDFPageLeaf.fromMapWithContext(\n new Map(),\n context || this.context,\n this.autoNormalizeCTM,\n );\n const entries = this.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n clone.set(key, value);\n }\n return clone;\n }\n\n Parent(): PDFPageTree | undefined {\n return this.lookupMaybe(PDFName.Parent, PDFDict) as PDFPageTree | undefined;\n }\n\n Contents(): PDFStream | PDFArray | undefined {\n return this.lookup(PDFName.of('Contents')) as\n | PDFStream\n | PDFArray\n | undefined;\n }\n\n Annots(): PDFArray | undefined {\n return this.lookupMaybe(PDFName.Annots, PDFArray);\n }\n\n BleedBox(): PDFArray | undefined {\n return this.lookupMaybe(PDFName.BleedBox, PDFArray);\n }\n\n TrimBox(): PDFArray | undefined {\n return this.lookupMaybe(PDFName.TrimBox, PDFArray);\n }\n\n ArtBox(): PDFArray | undefined {\n return this.lookupMaybe(PDFName.ArtBox, PDFArray);\n }\n\n Resources(): PDFDict | undefined {\n const dictOrRef = this.getInheritableAttribute(PDFName.Resources);\n return this.context.lookupMaybe(dictOrRef, PDFDict);\n }\n\n MediaBox(): PDFArray {\n const arrayOrRef = this.getInheritableAttribute(PDFName.MediaBox);\n return this.context.lookup(arrayOrRef, PDFArray);\n }\n\n CropBox(): PDFArray | undefined {\n const arrayOrRef = this.getInheritableAttribute(PDFName.CropBox);\n return this.context.lookupMaybe(arrayOrRef, PDFArray);\n }\n\n Rotate(): PDFNumber | undefined {\n const numberOrRef = this.getInheritableAttribute(PDFName.Rotate);\n return this.context.lookupMaybe(numberOrRef, PDFNumber);\n }\n\n getInheritableAttribute(name: PDFName): PDFObject | undefined {\n let attribute: PDFObject | undefined;\n this.ascend((node) => {\n if (!attribute) attribute = node.get(name);\n });\n return attribute;\n }\n\n setParent(parentRef: PDFRef): void {\n this.set(PDFName.Parent, parentRef);\n }\n\n addContentStream(contentStreamRef: PDFRef): void {\n const Contents = this.normalizedEntries().Contents || this.context.obj([]);\n this.set(PDFName.Contents, Contents);\n Contents.push(contentStreamRef);\n }\n\n wrapContentStreams(startStream: PDFRef, endStream: PDFRef): boolean {\n const Contents = this.Contents();\n if (Contents instanceof PDFArray) {\n Contents.insert(0, startStream);\n Contents.push(endStream);\n return true;\n }\n return false;\n }\n\n addAnnot(annotRef: PDFRef): void {\n const { Annots } = this.normalizedEntries();\n Annots.push(annotRef);\n }\n\n removeAnnot(annotRef: PDFRef) {\n const { Annots } = this.normalizedEntries();\n const index = Annots.indexOf(annotRef);\n if (index !== undefined) {\n Annots.remove(index);\n }\n }\n\n setFontDictionary(name: PDFName, fontDictRef: PDFRef): void {\n const { Font } = this.normalizedEntries();\n Font.set(name, fontDictRef);\n }\n\n newFontDictionaryKey(tag: string): PDFName {\n const { Font } = this.normalizedEntries();\n return Font.uniqueKey(tag);\n }\n\n newFontDictionary(tag: string, fontDictRef: PDFRef): PDFName {\n const key = this.newFontDictionaryKey(tag);\n this.setFontDictionary(key, fontDictRef);\n return key;\n }\n\n setXObject(name: PDFName, xObjectRef: PDFRef): void {\n const { XObject } = this.normalizedEntries();\n XObject.set(name, xObjectRef);\n }\n\n newXObjectKey(tag: string): PDFName {\n const { XObject } = this.normalizedEntries();\n return XObject.uniqueKey(tag);\n }\n\n newXObject(tag: string, xObjectRef: PDFRef): PDFName {\n const key = this.newXObjectKey(tag);\n this.setXObject(key, xObjectRef);\n return key;\n }\n\n setExtGState(name: PDFName, extGStateRef: PDFRef | PDFDict): void {\n const { ExtGState } = this.normalizedEntries();\n ExtGState.set(name, extGStateRef);\n }\n\n newExtGStateKey(tag: string): PDFName {\n const { ExtGState } = this.normalizedEntries();\n return ExtGState.uniqueKey(tag);\n }\n\n newExtGState(tag: string, extGStateRef: PDFRef | PDFDict): PDFName {\n const key = this.newExtGStateKey(tag);\n this.setExtGState(key, extGStateRef);\n return key;\n }\n\n ascend(visitor: (node: PDFPageTree | PDFPageLeaf) => any): void {\n visitor(this);\n const Parent = this.Parent();\n if (Parent) Parent.ascend(visitor);\n }\n\n normalize() {\n if (this.normalized) return;\n\n const { context } = this;\n\n const contentsRef = this.get(PDFName.Contents);\n const contents = this.context.lookup(contentsRef);\n if (contents instanceof PDFStream) {\n this.set(PDFName.Contents, context.obj([contentsRef]));\n }\n\n if (this.autoNormalizeCTM) {\n this.wrapContentStreams(\n this.context.getPushGraphicsStateContentStream(),\n this.context.getPopGraphicsStateContentStream(),\n );\n }\n\n // TODO: Clone `Resources` if it is inherited\n const dictOrRef = this.getInheritableAttribute(PDFName.Resources);\n const Resources =\n context.lookupMaybe(dictOrRef, PDFDict) || context.obj({});\n this.set(PDFName.Resources, Resources);\n\n // TODO: Clone `Font` if it is inherited\n const Font =\n Resources.lookupMaybe(PDFName.Font, PDFDict) || context.obj({});\n Resources.set(PDFName.Font, Font);\n\n // TODO: Clone `XObject` if it is inherited\n const XObject =\n Resources.lookupMaybe(PDFName.XObject, PDFDict) || context.obj({});\n Resources.set(PDFName.XObject, XObject);\n\n // TODO: Clone `ExtGState` if it is inherited\n const ExtGState =\n Resources.lookupMaybe(PDFName.ExtGState, PDFDict) || context.obj({});\n Resources.set(PDFName.ExtGState, ExtGState);\n\n const Annots = this.Annots() || context.obj([]);\n this.set(PDFName.Annots, Annots);\n\n this.normalized = true;\n }\n\n normalizedEntries() {\n this.normalize();\n const Annots = this.Annots()!;\n const Resources = this.Resources()!;\n const Contents = this.Contents() as PDFArray | undefined;\n return {\n Annots,\n Resources,\n Contents,\n Font: Resources.lookup(PDFName.Font, PDFDict),\n XObject: Resources.lookup(PDFName.XObject, PDFDict),\n ExtGState: Resources.lookup(PDFName.ExtGState, PDFDict),\n };\n }\n}\n\nexport default PDFPageLeaf;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\n\n/**\n * PDFObjectCopier copies PDFObjects from a src context to a dest context.\n * The primary use case for this is to copy pages between PDFs.\n *\n * _Copying_ an object with a PDFObjectCopier is different from _cloning_ an\n * object with its [[PDFObject.clone]] method:\n *\n * ```\n * const src: PDFContext = ...\n * const dest: PDFContext = ...\n * const originalObject: PDFObject = ...\n * const copiedObject = PDFObjectCopier.for(src, dest).copy(originalObject);\n * const clonedObject = originalObject.clone();\n * ```\n *\n * Copying an object is equivalent to cloning it and then copying over any other\n * objects that it references. Note that only dictionaries, arrays, and streams\n * (or structures build from them) can contain indirect references to other\n * objects. Copying a PDFObject that is not a dictionary, array, or stream is\n * supported, but is equivalent to cloning it.\n */\nclass PDFObjectCopier {\n static for = (src: PDFContext, dest: PDFContext) =>\n new PDFObjectCopier(src, dest);\n\n private readonly src: PDFContext;\n private readonly dest: PDFContext;\n private readonly traversedObjects = new Map();\n\n private constructor(src: PDFContext, dest: PDFContext) {\n this.src = src;\n this.dest = dest;\n }\n\n // prettier-ignore\n copy = (object: T): T => (\n object instanceof PDFPageLeaf ? this.copyPDFPage(object)\n : object instanceof PDFDict ? this.copyPDFDict(object)\n : object instanceof PDFArray ? this.copyPDFArray(object)\n : object instanceof PDFStream ? this.copyPDFStream(object)\n : object instanceof PDFRef ? this.copyPDFIndirectObject(object)\n : object.clone()\n ) as T;\n\n private copyPDFPage = (originalPage: PDFPageLeaf): PDFPageLeaf => {\n const clonedPage = originalPage.clone();\n\n // Move any entries that the originalPage is inheriting from its parent\n // tree nodes directly into originalPage so they are preserved during\n // the copy.\n const { InheritableEntries } = PDFPageLeaf;\n for (let idx = 0, len = InheritableEntries.length; idx < len; idx++) {\n const key = PDFName.of(InheritableEntries[idx]);\n const value = clonedPage.getInheritableAttribute(key)!;\n if (!clonedPage.get(key) && value) clonedPage.set(key, value);\n }\n\n // Remove the parent reference to prevent the whole donor document's page\n // tree from being copied when we only need a single page.\n clonedPage.delete(PDFName.of('Parent'));\n\n return this.copyPDFDict(clonedPage) as PDFPageLeaf;\n };\n\n private copyPDFDict = (originalDict: PDFDict): PDFDict => {\n if (this.traversedObjects.has(originalDict)) {\n return this.traversedObjects.get(originalDict) as PDFDict;\n }\n\n const clonedDict = originalDict.clone(this.dest);\n this.traversedObjects.set(originalDict, clonedDict);\n\n const entries = originalDict.entries();\n\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n clonedDict.set(key, this.copy(value));\n }\n\n return clonedDict;\n };\n\n private copyPDFArray = (originalArray: PDFArray): PDFArray => {\n if (this.traversedObjects.has(originalArray)) {\n return this.traversedObjects.get(originalArray) as PDFArray;\n }\n\n const clonedArray = originalArray.clone(this.dest);\n this.traversedObjects.set(originalArray, clonedArray);\n\n for (let idx = 0, len = originalArray.size(); idx < len; idx++) {\n const value = originalArray.get(idx);\n clonedArray.set(idx, this.copy(value));\n }\n\n return clonedArray;\n };\n\n private copyPDFStream = (originalStream: PDFStream): PDFStream => {\n if (this.traversedObjects.has(originalStream)) {\n return this.traversedObjects.get(originalStream) as PDFStream;\n }\n\n const clonedStream = originalStream.clone(this.dest);\n this.traversedObjects.set(originalStream, clonedStream);\n\n const entries = originalStream.dict.entries();\n for (let idx = 0, len = entries.length; idx < len; idx++) {\n const [key, value] = entries[idx];\n clonedStream.dict.set(key, this.copy(value));\n }\n\n return clonedStream;\n };\n\n private copyPDFIndirectObject = (ref: PDFRef): PDFRef => {\n const alreadyMapped = this.traversedObjects.has(ref);\n\n if (!alreadyMapped) {\n const newRef = this.dest.nextRef();\n this.traversedObjects.set(ref, newRef);\n\n const dereferencedValue = this.src.lookup(ref);\n if (dereferencedValue) {\n const cloned = this.copy(dereferencedValue);\n this.dest.assign(newRef, cloned);\n }\n }\n\n return this.traversedObjects.get(ref) as PDFRef;\n };\n}\n\nexport default PDFObjectCopier;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, padStart } from 'src/utils';\n\nexport interface Entry {\n ref: PDFRef;\n offset: number;\n deleted: boolean;\n}\n\n/**\n * Entries should be added using the [[addEntry]] and [[addDeletedEntry]]\n * methods **in order of ascending object number**.\n */\nclass PDFCrossRefSection {\n static create = () =>\n new PDFCrossRefSection({\n ref: PDFRef.of(0, 65535),\n offset: 0,\n deleted: true,\n });\n\n static createEmpty = () => new PDFCrossRefSection();\n\n private subsections: Entry[][];\n private chunkIdx: number;\n private chunkLength: number;\n\n private constructor(firstEntry: Entry | void) {\n this.subsections = firstEntry ? [[firstEntry]] : [];\n this.chunkIdx = 0;\n this.chunkLength = firstEntry ? 1 : 0;\n }\n\n addEntry(ref: PDFRef, offset: number): void {\n this.append({ ref, offset, deleted: false });\n }\n\n addDeletedEntry(ref: PDFRef, nextFreeObjectNumber: number): void {\n this.append({ ref, offset: nextFreeObjectNumber, deleted: true });\n }\n\n toString(): string {\n let section = `xref\\n`;\n\n for (\n let rangeIdx = 0, rangeLen = this.subsections.length;\n rangeIdx < rangeLen;\n rangeIdx++\n ) {\n const range = this.subsections[rangeIdx];\n section += `${range[0].ref.objectNumber} ${range.length}\\n`;\n for (\n let entryIdx = 0, entryLen = range.length;\n entryIdx < entryLen;\n entryIdx++\n ) {\n const entry = range[entryIdx];\n section += padStart(String(entry.offset), 10, '0');\n section += ' ';\n section += padStart(String(entry.ref.generationNumber), 5, '0');\n section += ' ';\n section += entry.deleted ? 'f' : 'n';\n section += ' \\n';\n }\n }\n\n return section;\n }\n\n sizeInBytes(): number {\n let size = 5;\n for (let idx = 0, len = this.subsections.length; idx < len; idx++) {\n const subsection = this.subsections[idx];\n const subsectionLength = subsection.length;\n const [firstEntry] = subsection;\n size += 2;\n size += String(firstEntry.ref.objectNumber).length;\n size += String(subsectionLength).length;\n size += 20 * subsectionLength;\n }\n return size;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.x;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.f;\n buffer[offset++] = CharCodes.Newline;\n\n offset += this.copySubsectionsIntoBuffer(this.subsections, buffer, offset);\n\n return offset - initialOffset;\n }\n\n private copySubsectionsIntoBuffer(\n subsections: Entry[][],\n buffer: Uint8Array,\n offset: number,\n ): number {\n const initialOffset = offset;\n const length = subsections.length;\n\n for (let idx = 0; idx < length; idx++) {\n const subsection = this.subsections[idx];\n\n const firstObjectNumber = String(subsection[0].ref.objectNumber);\n offset += copyStringIntoBuffer(firstObjectNumber, buffer, offset);\n buffer[offset++] = CharCodes.Space;\n\n const rangeLength = String(subsection.length);\n offset += copyStringIntoBuffer(rangeLength, buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n\n offset += this.copyEntriesIntoBuffer(subsection, buffer, offset);\n }\n\n return offset - initialOffset;\n }\n\n private copyEntriesIntoBuffer(\n entries: Entry[],\n buffer: Uint8Array,\n offset: number,\n ): number {\n const length = entries.length;\n\n for (let idx = 0; idx < length; idx++) {\n const entry = entries[idx];\n\n const entryOffset = padStart(String(entry.offset), 10, '0');\n offset += copyStringIntoBuffer(entryOffset, buffer, offset);\n buffer[offset++] = CharCodes.Space;\n\n const entryGen = padStart(String(entry.ref.generationNumber), 5, '0');\n offset += copyStringIntoBuffer(entryGen, buffer, offset);\n buffer[offset++] = CharCodes.Space;\n\n buffer[offset++] = entry.deleted ? CharCodes.f : CharCodes.n;\n\n buffer[offset++] = CharCodes.Space;\n buffer[offset++] = CharCodes.Newline;\n }\n\n return 20 * length;\n }\n\n private append(currEntry: Entry): void {\n if (this.chunkLength === 0) {\n this.subsections.push([currEntry]);\n this.chunkIdx = 0;\n this.chunkLength = 1;\n return;\n }\n\n const chunk = this.subsections[this.chunkIdx];\n const prevEntry = chunk[this.chunkLength - 1];\n\n if (currEntry.ref.objectNumber - prevEntry.ref.objectNumber > 1) {\n this.subsections.push([currEntry]);\n this.chunkIdx += 1;\n this.chunkLength = 1;\n } else {\n chunk.push(currEntry);\n this.chunkLength += 1;\n }\n }\n}\n\nexport default PDFCrossRefSection;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nclass PDFTrailer {\n static forLastCrossRefSectionOffset = (offset: number) =>\n new PDFTrailer(offset);\n\n private readonly lastXRefOffset: string;\n\n private constructor(lastXRefOffset: number) {\n this.lastXRefOffset = String(lastXRefOffset);\n }\n\n toString(): string {\n return `startxref\\n${this.lastXRefOffset}\\n%%EOF`;\n }\n\n sizeInBytes(): number {\n return 16 + this.lastXRefOffset.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.s;\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.a;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.x;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.f;\n buffer[offset++] = CharCodes.Newline;\n\n offset += copyStringIntoBuffer(this.lastXRefOffset, buffer, offset);\n\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.Percent;\n buffer[offset++] = CharCodes.Percent;\n buffer[offset++] = CharCodes.E;\n buffer[offset++] = CharCodes.O;\n buffer[offset++] = CharCodes.F;\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFTrailer;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFTrailerDict {\n static of = (dict: PDFDict) => new PDFTrailerDict(dict);\n\n readonly dict: PDFDict;\n\n private constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n toString(): string {\n return `trailer\\n${this.dict.toString()}`;\n }\n\n sizeInBytes(): number {\n return 8 + this.dict.sizeInBytes();\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const initialOffset = offset;\n\n buffer[offset++] = CharCodes.t;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.a;\n buffer[offset++] = CharCodes.i;\n buffer[offset++] = CharCodes.l;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.r;\n buffer[offset++] = CharCodes.Newline;\n\n offset += this.dict.copyBytesInto(buffer, offset);\n\n return offset - initialOffset;\n }\n}\n\nexport default PDFTrailerDict;\n","import PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, last } from 'src/utils';\n\nexport type IndirectObject = [PDFRef, PDFObject];\n\nclass PDFObjectStream extends PDFFlateStream {\n static withContextAndObjects = (\n context: PDFContext,\n objects: IndirectObject[],\n encode = true,\n ) => new PDFObjectStream(context, objects, encode);\n\n private readonly objects: IndirectObject[];\n private readonly offsets: [number, number][];\n private readonly offsetsString: string;\n\n private constructor(\n context: PDFContext,\n objects: IndirectObject[],\n encode = true,\n ) {\n super(context.obj({}), encode);\n\n this.objects = objects;\n this.offsets = this.computeObjectOffsets();\n this.offsetsString = this.computeOffsetsString();\n\n this.dict.set(PDFName.of('Type'), PDFName.of('ObjStm'));\n this.dict.set(PDFName.of('N'), PDFNumber.of(this.objects.length));\n this.dict.set(PDFName.of('First'), PDFNumber.of(this.offsetsString.length));\n }\n\n getObjectsCount(): number {\n return this.objects.length;\n }\n\n clone(context?: PDFContext): PDFObjectStream {\n return PDFObjectStream.withContextAndObjects(\n context || this.dict.context,\n this.objects.slice(),\n this.encode,\n );\n }\n\n getContentsString(): string {\n let value = this.offsetsString;\n for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n const [, object] = this.objects[idx];\n value += `${object}\\n`;\n }\n return value;\n }\n\n getUnencodedContents(): Uint8Array {\n const buffer = new Uint8Array(this.getUnencodedContentsSize());\n let offset = copyStringIntoBuffer(this.offsetsString, buffer, 0);\n for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n const [, object] = this.objects[idx];\n offset += object.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n }\n return buffer;\n }\n\n getUnencodedContentsSize(): number {\n return (\n this.offsetsString.length +\n last(this.offsets)[1] +\n last(this.objects)[1].sizeInBytes() +\n 1\n );\n }\n\n private computeOffsetsString(): string {\n let offsetsString = '';\n for (let idx = 0, len = this.offsets.length; idx < len; idx++) {\n const [objectNumber, offset] = this.offsets[idx];\n offsetsString += `${objectNumber} ${offset} `;\n }\n return offsetsString;\n }\n\n private computeObjectOffsets(): [number, number][] {\n let offset = 0;\n const offsets = new Array(this.objects.length);\n for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n const [ref, object] = this.objects[idx];\n offsets[idx] = [ref.objectNumber, offset];\n offset += object.sizeInBytes() + 1; // '\\n'\n }\n return offsets;\n }\n}\n\nexport default PDFObjectStream;\n","import PDFCrossRefSection from 'src/core/document/PDFCrossRefSection';\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport PDFTrailerDict from 'src/core/document/PDFTrailerDict';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFObjectStream from 'src/core/structures/PDFObjectStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, waitForTick } from 'src/utils';\n\nexport interface SerializationInfo {\n size: number;\n header: PDFHeader;\n indirectObjects: [PDFRef, PDFObject][];\n xref?: PDFCrossRefSection;\n trailerDict?: PDFTrailerDict;\n trailer: PDFTrailer;\n}\n\nclass PDFWriter {\n static forContext = (context: PDFContext, objectsPerTick: number) =>\n new PDFWriter(context, objectsPerTick);\n\n protected readonly context: PDFContext;\n\n protected readonly objectsPerTick: number;\n private parsedObjects = 0;\n\n protected constructor(context: PDFContext, objectsPerTick: number) {\n this.context = context;\n this.objectsPerTick = objectsPerTick;\n }\n\n async serializeToBuffer(): Promise {\n const {\n size,\n header,\n indirectObjects,\n xref,\n trailerDict,\n trailer,\n } = await this.computeBufferSize();\n\n let offset = 0;\n const buffer = new Uint8Array(size);\n\n offset += header.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.Newline;\n\n for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n const [ref, object] = indirectObjects[idx];\n\n const objectNumber = String(ref.objectNumber);\n offset += copyStringIntoBuffer(objectNumber, buffer, offset);\n buffer[offset++] = CharCodes.Space;\n\n const generationNumber = String(ref.generationNumber);\n offset += copyStringIntoBuffer(generationNumber, buffer, offset);\n buffer[offset++] = CharCodes.Space;\n\n buffer[offset++] = CharCodes.o;\n buffer[offset++] = CharCodes.b;\n buffer[offset++] = CharCodes.j;\n buffer[offset++] = CharCodes.Newline;\n\n offset += object.copyBytesInto(buffer, offset);\n\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.e;\n buffer[offset++] = CharCodes.n;\n buffer[offset++] = CharCodes.d;\n buffer[offset++] = CharCodes.o;\n buffer[offset++] = CharCodes.b;\n buffer[offset++] = CharCodes.j;\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.Newline;\n\n const n =\n object instanceof PDFObjectStream ? object.getObjectsCount() : 1;\n if (this.shouldWaitForTick(n)) await waitForTick();\n }\n\n if (xref) {\n offset += xref.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n }\n\n if (trailerDict) {\n offset += trailerDict.copyBytesInto(buffer, offset);\n buffer[offset++] = CharCodes.Newline;\n buffer[offset++] = CharCodes.Newline;\n }\n\n offset += trailer.copyBytesInto(buffer, offset);\n\n return buffer;\n }\n\n protected computeIndirectObjectSize([ref, object]: [\n PDFRef,\n PDFObject,\n ]): number {\n const refSize = ref.sizeInBytes() + 3; // 'R' -> 'obj\\n'\n const objectSize = object.sizeInBytes() + 9; // '\\nendobj\\n\\n'\n return refSize + objectSize;\n }\n\n protected createTrailerDict(): PDFDict {\n return this.context.obj({\n Size: this.context.largestObjectNumber + 1,\n Root: this.context.trailerInfo.Root,\n Encrypt: this.context.trailerInfo.Encrypt,\n Info: this.context.trailerInfo.Info,\n ID: this.context.trailerInfo.ID,\n });\n }\n\n protected async computeBufferSize(): Promise {\n const header = PDFHeader.forVersion(1, 7);\n\n let size = header.sizeInBytes() + 2;\n\n const xref = PDFCrossRefSection.create();\n\n const indirectObjects = this.context.enumerateIndirectObjects();\n\n for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n const indirectObject = indirectObjects[idx];\n const [ref] = indirectObject;\n xref.addEntry(ref, size);\n size += this.computeIndirectObjectSize(indirectObject);\n if (this.shouldWaitForTick(1)) await waitForTick();\n }\n\n const xrefOffset = size;\n size += xref.sizeInBytes() + 1; // '\\n'\n\n const trailerDict = PDFTrailerDict.of(this.createTrailerDict());\n size += trailerDict.sizeInBytes() + 2; // '\\n\\n'\n\n const trailer = PDFTrailer.forLastCrossRefSectionOffset(xrefOffset);\n size += trailer.sizeInBytes();\n\n return { size, header, indirectObjects, xref, trailerDict, trailer };\n }\n\n protected shouldWaitForTick = (n: number) => {\n this.parsedObjects += n;\n return this.parsedObjects % this.objectsPerTick === 0;\n };\n}\n\nexport default PDFWriter;\n","import PDFObject from 'src/core/objects/PDFObject';\n\nclass PDFInvalidObject extends PDFObject {\n static of = (data: Uint8Array) => new PDFInvalidObject(data);\n\n private readonly data: Uint8Array;\n\n private constructor(data: Uint8Array) {\n super();\n this.data = data;\n }\n\n clone(): PDFInvalidObject {\n return PDFInvalidObject.of(this.data.slice());\n }\n\n toString(): string {\n return `PDFInvalidObject(${this.data.length} bytes)`;\n }\n\n sizeInBytes(): number {\n return this.data.length;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n const length = this.data.length;\n for (let idx = 0; idx < length; idx++) {\n buffer[offset++] = this.data[idx];\n }\n return length;\n }\n}\n\nexport default PDFInvalidObject;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport { bytesFor, Cache, reverseArray, sizeInBytes, sum } from 'src/utils';\n\nexport enum EntryType {\n Deleted = 0,\n Uncompressed = 1,\n Compressed = 2,\n}\n\nexport interface DeletedEntry {\n type: EntryType.Deleted;\n ref: PDFRef;\n nextFreeObjectNumber: number;\n}\n\nexport interface UncompressedEntry {\n type: EntryType.Uncompressed;\n ref: PDFRef;\n offset: number;\n}\n\nexport interface CompressedEntry {\n type: EntryType.Compressed;\n ref: PDFRef;\n objectStreamRef: PDFRef;\n index: number;\n}\n\nexport type Entry = DeletedEntry | UncompressedEntry | CompressedEntry;\n\nexport type EntryTuple = [number, number, number];\n\n/**\n * Entries should be added using the [[addDeletedEntry]],\n * [[addUncompressedEntry]], and [[addCompressedEntry]] methods\n * **in order of ascending object number**.\n */\nclass PDFCrossRefStream extends PDFFlateStream {\n static create = (dict: PDFDict, encode = true) => {\n const stream = new PDFCrossRefStream(dict, [], encode);\n stream.addDeletedEntry(PDFRef.of(0, 65535), 0);\n return stream;\n };\n\n static of = (dict: PDFDict, entries: Entry[], encode = true) =>\n new PDFCrossRefStream(dict, entries, encode);\n\n private readonly entries: Entry[];\n private readonly entryTuplesCache: Cache;\n private readonly maxByteWidthsCache: Cache<[number, number, number]>;\n private readonly indexCache: Cache;\n\n private constructor(dict: PDFDict, entries?: Entry[], encode = true) {\n super(dict, encode);\n\n this.entries = entries || [];\n this.entryTuplesCache = Cache.populatedBy(this.computeEntryTuples);\n this.maxByteWidthsCache = Cache.populatedBy(this.computeMaxEntryByteWidths);\n this.indexCache = Cache.populatedBy(this.computeIndex);\n\n dict.set(PDFName.of('Type'), PDFName.of('XRef'));\n }\n\n addDeletedEntry(ref: PDFRef, nextFreeObjectNumber: number) {\n const type = EntryType.Deleted;\n this.entries.push({ type, ref, nextFreeObjectNumber });\n this.entryTuplesCache.invalidate();\n this.maxByteWidthsCache.invalidate();\n this.indexCache.invalidate();\n this.contentsCache.invalidate();\n }\n\n addUncompressedEntry(ref: PDFRef, offset: number) {\n const type = EntryType.Uncompressed;\n this.entries.push({ type, ref, offset });\n this.entryTuplesCache.invalidate();\n this.maxByteWidthsCache.invalidate();\n this.indexCache.invalidate();\n this.contentsCache.invalidate();\n }\n\n addCompressedEntry(ref: PDFRef, objectStreamRef: PDFRef, index: number) {\n const type = EntryType.Compressed;\n this.entries.push({ type, ref, objectStreamRef, index });\n this.entryTuplesCache.invalidate();\n this.maxByteWidthsCache.invalidate();\n this.indexCache.invalidate();\n this.contentsCache.invalidate();\n }\n\n clone(context?: PDFContext): PDFCrossRefStream {\n const { dict, entries, encode } = this;\n return PDFCrossRefStream.of(dict.clone(context), entries.slice(), encode);\n }\n\n getContentsString(): string {\n const entryTuples = this.entryTuplesCache.access();\n const byteWidths = this.maxByteWidthsCache.access();\n let value = '';\n\n for (\n let entryIdx = 0, entriesLen = entryTuples.length;\n entryIdx < entriesLen;\n entryIdx++\n ) {\n const [first, second, third] = entryTuples[entryIdx];\n\n const firstBytes = reverseArray(bytesFor(first));\n const secondBytes = reverseArray(bytesFor(second));\n const thirdBytes = reverseArray(bytesFor(third));\n\n for (let idx = byteWidths[0] - 1; idx >= 0; idx--) {\n value += (firstBytes[idx] || 0).toString(2);\n }\n for (let idx = byteWidths[1] - 1; idx >= 0; idx--) {\n value += (secondBytes[idx] || 0).toString(2);\n }\n for (let idx = byteWidths[2] - 1; idx >= 0; idx--) {\n value += (thirdBytes[idx] || 0).toString(2);\n }\n }\n\n return value;\n }\n\n getUnencodedContents(): Uint8Array {\n const entryTuples = this.entryTuplesCache.access();\n const byteWidths = this.maxByteWidthsCache.access();\n const buffer = new Uint8Array(this.getUnencodedContentsSize());\n\n let offset = 0;\n for (\n let entryIdx = 0, entriesLen = entryTuples.length;\n entryIdx < entriesLen;\n entryIdx++\n ) {\n const [first, second, third] = entryTuples[entryIdx];\n\n const firstBytes = reverseArray(bytesFor(first));\n const secondBytes = reverseArray(bytesFor(second));\n const thirdBytes = reverseArray(bytesFor(third));\n\n for (let idx = byteWidths[0] - 1; idx >= 0; idx--) {\n buffer[offset++] = firstBytes[idx] || 0;\n }\n for (let idx = byteWidths[1] - 1; idx >= 0; idx--) {\n buffer[offset++] = secondBytes[idx] || 0;\n }\n for (let idx = byteWidths[2] - 1; idx >= 0; idx--) {\n buffer[offset++] = thirdBytes[idx] || 0;\n }\n }\n\n return buffer;\n }\n\n getUnencodedContentsSize(): number {\n const byteWidths = this.maxByteWidthsCache.access();\n const entryWidth = sum(byteWidths);\n return entryWidth * this.entries.length;\n }\n\n updateDict(): void {\n super.updateDict();\n\n const byteWidths = this.maxByteWidthsCache.access();\n const index = this.indexCache.access();\n\n const { context } = this.dict;\n this.dict.set(PDFName.of('W'), context.obj(byteWidths));\n this.dict.set(PDFName.of('Index'), context.obj(index));\n }\n\n // Returns an array of integer pairs for each subsection of the cross ref\n // section, where each integer pair represents:\n // firstObjectNumber(OfSection), length(OfSection)\n private computeIndex = (): number[] => {\n const subsections: number[] = [];\n\n let subsectionLength = 0;\n for (let idx = 0, len = this.entries.length; idx < len; idx++) {\n const currEntry = this.entries[idx];\n const prevEntry = this.entries[idx - 1];\n\n if (idx === 0) {\n subsections.push(currEntry.ref.objectNumber);\n } else if (currEntry.ref.objectNumber - prevEntry.ref.objectNumber > 1) {\n subsections.push(subsectionLength);\n subsections.push(currEntry.ref.objectNumber);\n subsectionLength = 0;\n }\n\n subsectionLength += 1;\n }\n subsections.push(subsectionLength);\n\n return subsections;\n };\n\n private computeEntryTuples = (): EntryTuple[] => {\n const entryTuples: EntryTuple[] = new Array(this.entries.length);\n\n for (let idx = 0, len = this.entries.length; idx < len; idx++) {\n const entry = this.entries[idx];\n if (entry.type === EntryType.Deleted) {\n const { type, nextFreeObjectNumber, ref } = entry;\n entryTuples[idx] = [type, nextFreeObjectNumber, ref.generationNumber];\n }\n if (entry.type === EntryType.Uncompressed) {\n const { type, offset, ref } = entry;\n entryTuples[idx] = [type, offset, ref.generationNumber];\n }\n if (entry.type === EntryType.Compressed) {\n const { type, objectStreamRef, index } = entry;\n entryTuples[idx] = [type, objectStreamRef.objectNumber, index];\n }\n }\n\n return entryTuples;\n };\n\n private computeMaxEntryByteWidths = (): [number, number, number] => {\n const entryTuples = this.entryTuplesCache.access();\n const widths: [number, number, number] = [0, 0, 0];\n\n for (let idx = 0, len = entryTuples.length; idx < len; idx++) {\n const [first, second, third] = entryTuples[idx];\n\n const firstSize = sizeInBytes(first);\n const secondSize = sizeInBytes(second);\n const thirdSize = sizeInBytes(third);\n\n if (firstSize > widths[0]) widths[0] = firstSize;\n if (secondSize > widths[1]) widths[1] = secondSize;\n if (thirdSize > widths[2]) widths[2] = thirdSize;\n }\n\n return widths;\n };\n}\n\nexport default PDFCrossRefStream;\n","import PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport PDFInvalidObject from 'src/core/objects/PDFInvalidObject';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFCrossRefStream from 'src/core/structures/PDFCrossRefStream';\nimport PDFObjectStream from 'src/core/structures/PDFObjectStream';\nimport PDFWriter from 'src/core/writers/PDFWriter';\nimport { last, waitForTick } from 'src/utils';\n\nclass PDFStreamWriter extends PDFWriter {\n static forContext = (\n context: PDFContext,\n objectsPerTick: number,\n encodeStreams = true,\n objectsPerStream = 50,\n ) =>\n new PDFStreamWriter(\n context,\n objectsPerTick,\n encodeStreams,\n objectsPerStream,\n );\n\n private readonly encodeStreams: boolean;\n private readonly objectsPerStream: number;\n\n private constructor(\n context: PDFContext,\n objectsPerTick: number,\n encodeStreams: boolean,\n objectsPerStream: number,\n ) {\n super(context, objectsPerTick);\n\n this.encodeStreams = encodeStreams;\n this.objectsPerStream = objectsPerStream;\n }\n\n protected async computeBufferSize() {\n let objectNumber = this.context.largestObjectNumber + 1;\n\n const header = PDFHeader.forVersion(1, 7);\n\n let size = header.sizeInBytes() + 2;\n\n const xrefStream = PDFCrossRefStream.create(\n this.createTrailerDict(),\n this.encodeStreams,\n );\n\n const uncompressedObjects: [PDFRef, PDFObject][] = [];\n const compressedObjects: [PDFRef, PDFObject][][] = [];\n const objectStreamRefs: PDFRef[] = [];\n\n const indirectObjects = this.context.enumerateIndirectObjects();\n for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n const indirectObject = indirectObjects[idx];\n const [ref, object] = indirectObject;\n\n const shouldNotCompress =\n ref === this.context.trailerInfo.Encrypt ||\n object instanceof PDFStream ||\n object instanceof PDFInvalidObject ||\n ref.generationNumber !== 0;\n\n if (shouldNotCompress) {\n uncompressedObjects.push(indirectObject);\n xrefStream.addUncompressedEntry(ref, size);\n size += this.computeIndirectObjectSize(indirectObject);\n if (this.shouldWaitForTick(1)) await waitForTick();\n } else {\n let chunk = last(compressedObjects);\n let objectStreamRef = last(objectStreamRefs);\n if (!chunk || chunk.length % this.objectsPerStream === 0) {\n chunk = [];\n compressedObjects.push(chunk);\n objectStreamRef = PDFRef.of(objectNumber++);\n objectStreamRefs.push(objectStreamRef);\n }\n xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);\n chunk.push(indirectObject);\n }\n }\n\n for (let idx = 0, len = compressedObjects.length; idx < len; idx++) {\n const chunk = compressedObjects[idx];\n const ref = objectStreamRefs[idx];\n\n const objectStream = PDFObjectStream.withContextAndObjects(\n this.context,\n chunk,\n this.encodeStreams,\n );\n\n xrefStream.addUncompressedEntry(ref, size);\n size += this.computeIndirectObjectSize([ref, objectStream]);\n\n uncompressedObjects.push([ref, objectStream]);\n\n if (this.shouldWaitForTick(chunk.length)) await waitForTick();\n }\n\n const xrefStreamRef = PDFRef.of(objectNumber++);\n xrefStream.dict.set(PDFName.of('Size'), PDFNumber.of(objectNumber));\n xrefStream.addUncompressedEntry(xrefStreamRef, size);\n const xrefOffset = size;\n size += this.computeIndirectObjectSize([xrefStreamRef, xrefStream]);\n\n uncompressedObjects.push([xrefStreamRef, xrefStream]);\n\n const trailer = PDFTrailer.forLastCrossRefSectionOffset(xrefOffset);\n size += trailer.sizeInBytes();\n\n return { size, header, indirectObjects: uncompressedObjects, trailer };\n }\n}\n\nexport default PDFStreamWriter;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport {\n copyStringIntoBuffer,\n toHexStringOfMinLength,\n utf16Decode,\n utf16Encode,\n pdfDocEncodingDecode,\n parseDate,\n hasUtf16BOM,\n} from 'src/utils';\nimport { InvalidPDFDateStringError } from 'src/core/errors';\n\nclass PDFHexString extends PDFObject {\n static of = (value: string) => new PDFHexString(value);\n\n static fromText = (value: string) => {\n const encoded = utf16Encode(value);\n\n let hex = '';\n for (let idx = 0, len = encoded.length; idx < len; idx++) {\n hex += toHexStringOfMinLength(encoded[idx], 4);\n }\n\n return new PDFHexString(hex);\n };\n\n private readonly value: string;\n\n constructor(value: string) {\n super();\n this.value = value;\n }\n\n asBytes(): Uint8Array {\n // Append a zero if the number of digits is odd. See PDF spec 7.3.4.3\n const hex = this.value + (this.value.length % 2 === 1 ? '0' : '');\n const hexLength = hex.length;\n\n const bytes = new Uint8Array(hex.length / 2);\n\n let hexOffset = 0;\n let bytesOffset = 0;\n\n // Interpret each pair of hex digits as a single byte\n while (hexOffset < hexLength) {\n const byte = parseInt(hex.substring(hexOffset, hexOffset + 2), 16);\n bytes[bytesOffset] = byte;\n\n hexOffset += 2;\n bytesOffset += 1;\n }\n\n return bytes;\n }\n\n decodeText(): string {\n const bytes = this.asBytes();\n if (hasUtf16BOM(bytes)) return utf16Decode(bytes);\n return pdfDocEncodingDecode(bytes);\n }\n\n decodeDate(): Date {\n const text = this.decodeText();\n const date = parseDate(text);\n if (!date) throw new InvalidPDFDateStringError(text);\n return date;\n }\n\n asString(): string {\n return this.value;\n }\n\n clone(): PDFHexString {\n return PDFHexString.of(this.value);\n }\n\n toString(): string {\n return `<${this.value}>`;\n }\n\n sizeInBytes(): number {\n return this.value.length + 2;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n buffer[offset++] = CharCodes.LessThan;\n offset += copyStringIntoBuffer(this.value, buffer, offset);\n buffer[offset++] = CharCodes.GreaterThan;\n return this.value.length + 2;\n }\n}\n\nexport default PDFHexString;\n","import {\n Encodings,\n Font,\n FontNames,\n EncodingType,\n} from '@pdf-lib/standard-fonts';\n\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport { toCodePoint, toHexString } from 'src/utils';\n\nexport interface Glyph {\n code: number;\n name: string;\n}\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n * https://github.com/foliojs/pdfkit/blob/f91bdd61c164a72ea06be1a43dc0a412afc3925f/lib/font/afm.coffee\n */\nclass StandardFontEmbedder {\n static for = (fontName: FontNames, customName?: string) =>\n new StandardFontEmbedder(fontName, customName);\n\n readonly font: Font;\n readonly encoding: EncodingType;\n readonly fontName: string;\n readonly customName: string | undefined;\n\n private constructor(fontName: FontNames, customName?: string) {\n // prettier-ignore\n this.encoding = (\n fontName === FontNames.ZapfDingbats ? Encodings.ZapfDingbats\n : fontName === FontNames.Symbol ? Encodings.Symbol\n : Encodings.WinAnsi\n );\n this.font = Font.load(fontName);\n this.fontName = this.font.FontName;\n this.customName = customName;\n }\n\n /**\n * Encode the JavaScript string into this font. (JavaScript encodes strings in\n * Unicode, but standard fonts use either WinAnsi, ZapfDingbats, or Symbol\n * encodings)\n */\n encodeText(text: string): PDFHexString {\n const glyphs = this.encodeTextAsGlyphs(text);\n const hexCodes = new Array(glyphs.length);\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n hexCodes[idx] = toHexString(glyphs[idx].code);\n }\n return PDFHexString.of(hexCodes.join(''));\n }\n\n widthOfTextAtSize(text: string, size: number): number {\n const glyphs = this.encodeTextAsGlyphs(text);\n let totalWidth = 0;\n\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n const left = glyphs[idx].name;\n const right = (glyphs[idx + 1] || {}).name;\n const kernAmount = this.font.getXAxisKerningForPair(left, right) || 0;\n totalWidth += this.widthOfGlyph(left) + kernAmount;\n }\n\n const scale = size / 1000;\n return totalWidth * scale;\n }\n\n heightOfFontAtSize(\n size: number,\n options: { descender?: boolean } = {},\n ): number {\n const { descender = true } = options;\n\n const { Ascender, Descender, FontBBox } = this.font;\n const yTop = Ascender || FontBBox[3];\n const yBottom = Descender || FontBBox[1];\n\n let height = yTop - yBottom;\n if (!descender) height += Descender || 0;\n\n return (height / 1000) * size;\n }\n\n sizeOfFontAtHeight(height: number): number {\n const { Ascender, Descender, FontBBox } = this.font;\n const yTop = Ascender || FontBBox[3];\n const yBottom = Descender || FontBBox[1];\n return (1000 * height) / (yTop - yBottom);\n }\n\n embedIntoContext(context: PDFContext, ref?: PDFRef): PDFRef {\n const fontDict = context.obj({\n Type: 'Font',\n Subtype: 'Type1',\n BaseFont: this.customName || this.fontName,\n\n Encoding:\n this.encoding === Encodings.WinAnsi ? 'WinAnsiEncoding' : undefined,\n });\n\n if (ref) {\n context.assign(ref, fontDict);\n return ref;\n } else {\n return context.register(fontDict);\n }\n }\n\n private widthOfGlyph(glyphName: string): number {\n // Default to 250 if font doesn't specify a width\n return this.font.getWidthOfGlyph(glyphName) || 250;\n }\n\n private encodeTextAsGlyphs(text: string): Glyph[] {\n const codePoints = Array.from(text);\n const glyphs: Glyph[] = new Array(codePoints.length);\n for (let idx = 0, len = codePoints.length; idx < len; idx++) {\n const codePoint = toCodePoint(codePoints[idx])!;\n glyphs[idx] = this.encoding.encodeUnicodeCodePoint(codePoint);\n }\n return glyphs;\n }\n}\n\nexport default StandardFontEmbedder;\n","import { Glyph } from 'src/types/fontkit';\n\nimport { toHexString, toHexStringOfMinLength } from 'src/utils';\nimport {\n hasSurrogates,\n highSurrogate,\n isWithinBMP,\n lowSurrogate,\n} from 'src/utils/unicode';\n\n/** [fontId, codePoint] */\ntype BfChar = [string, string];\n\n/** `glyphs` should be an array of unique glyphs */\nexport const createCmap = (glyphs: Glyph[], glyphId: (g?: Glyph) => number) => {\n const bfChars: BfChar[] = new Array(glyphs.length);\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n const glyph = glyphs[idx];\n const id = cmapHexFormat(cmapHexString(glyphId(glyph)));\n const unicode = cmapHexFormat(...glyph.codePoints.map(cmapCodePointFormat));\n bfChars[idx] = [id, unicode];\n }\n\n return fillCmapTemplate(bfChars);\n};\n\n/* =============================== Templates ================================ */\n\nconst fillCmapTemplate = (bfChars: BfChar[]) => `\\\n/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000>\nendcodespacerange\n${bfChars.length} beginbfchar\n${bfChars.map(([glyphId, codePoint]) => `${glyphId} ${codePoint}`).join('\\n')}\nendbfchar\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend\\\n`;\n\n/* =============================== Utilities ================================ */\n\nconst cmapHexFormat = (...values: string[]) => `<${values.join('')}>`;\n\nconst cmapHexString = (value: number) => toHexStringOfMinLength(value, 4);\n\nconst cmapCodePointFormat = (codePoint: number) => {\n if (isWithinBMP(codePoint)) return cmapHexString(codePoint);\n\n if (hasSurrogates(codePoint)) {\n const hs = highSurrogate(codePoint);\n const ls = lowSurrogate(codePoint);\n return `${cmapHexString(hs)}${cmapHexString(ls)}`;\n }\n\n const hex = toHexString(codePoint);\n const msg = `0x${hex} is not a valid UTF-8 or UTF-16 codepoint.`;\n throw new Error(msg);\n};\n","import { Font } from 'src/types/fontkit';\n\nexport interface FontFlagOptions {\n fixedPitch?: boolean;\n serif?: boolean;\n symbolic?: boolean;\n script?: boolean;\n nonsymbolic?: boolean;\n italic?: boolean;\n allCap?: boolean;\n smallCap?: boolean;\n forceBold?: boolean;\n}\n\n// prettier-ignore\nconst makeFontFlags = (options: FontFlagOptions) => {\n let flags = 0;\n\n const flipBit = (bit: number) => { flags |= (1 << (bit - 1)); };\n\n if (options.fixedPitch) flipBit(1);\n if (options.serif) flipBit(2);\n if (options.symbolic) flipBit(3);\n if (options.script) flipBit(4);\n if (options.nonsymbolic) flipBit(6);\n if (options.italic) flipBit(7);\n if (options.allCap) flipBit(17);\n if (options.smallCap) flipBit(18);\n if (options.forceBold) flipBit(19);\n\n return flags;\n};\n\n// From: https://github.com/foliojs/pdfkit/blob/83f5f7243172a017adcf6a7faa5547c55982c57b/lib/font/embedded.js#L123-L129\nexport const deriveFontFlags = (font: Font): number => {\n const familyClass = font['OS/2'] ? font['OS/2'].sFamilyClass : 0;\n const flags = makeFontFlags({\n fixedPitch: font.post.isFixedPitch,\n serif: 1 <= familyClass && familyClass <= 7,\n symbolic: true, // Assume the font uses non-latin characters\n script: familyClass === 10,\n italic: font.head.macStyle.italic,\n });\n return flags;\n};\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport {\n copyStringIntoBuffer,\n padStart,\n utf16Decode,\n pdfDocEncodingDecode,\n toCharCode,\n parseDate,\n hasUtf16BOM,\n} from 'src/utils';\nimport { InvalidPDFDateStringError } from 'src/core/errors';\n\nclass PDFString extends PDFObject {\n // The PDF spec allows newlines and parens to appear directly within a literal\n // string. These character _may_ be escaped. But they do not _have_ to be. So\n // for simplicity, we will not bother escaping them.\n static of = (value: string) => new PDFString(value);\n\n static fromDate = (date: Date) => {\n const year = padStart(String(date.getUTCFullYear()), 4, '0');\n const month = padStart(String(date.getUTCMonth() + 1), 2, '0');\n const day = padStart(String(date.getUTCDate()), 2, '0');\n const hours = padStart(String(date.getUTCHours()), 2, '0');\n const mins = padStart(String(date.getUTCMinutes()), 2, '0');\n const secs = padStart(String(date.getUTCSeconds()), 2, '0');\n return new PDFString(`D:${year}${month}${day}${hours}${mins}${secs}Z`);\n };\n\n private readonly value: string;\n\n private constructor(value: string) {\n super();\n this.value = value;\n }\n\n asBytes(): Uint8Array {\n const bytes: number[] = [];\n\n let octal = '';\n let escaped = false;\n\n const pushByte = (byte?: number) => {\n if (byte !== undefined) bytes.push(byte);\n escaped = false;\n };\n\n for (let idx = 0, len = this.value.length; idx < len; idx++) {\n const char = this.value[idx];\n const byte = toCharCode(char);\n const nextChar = this.value[idx + 1];\n if (!escaped) {\n if (byte === CharCodes.BackSlash) escaped = true;\n else pushByte(byte);\n } else {\n if (byte === CharCodes.Newline) pushByte();\n else if (byte === CharCodes.CarriageReturn) pushByte();\n else if (byte === CharCodes.n) pushByte(CharCodes.Newline);\n else if (byte === CharCodes.r) pushByte(CharCodes.CarriageReturn);\n else if (byte === CharCodes.t) pushByte(CharCodes.Tab);\n else if (byte === CharCodes.b) pushByte(CharCodes.Backspace);\n else if (byte === CharCodes.f) pushByte(CharCodes.FormFeed);\n else if (byte === CharCodes.LeftParen) pushByte(CharCodes.LeftParen);\n else if (byte === CharCodes.RightParen) pushByte(CharCodes.RightParen);\n else if (byte === CharCodes.Backspace) pushByte(CharCodes.BackSlash);\n else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {\n octal += char;\n if (octal.length === 3 || !(nextChar >= '0' && nextChar <= '7')) {\n pushByte(parseInt(octal, 8));\n octal = '';\n }\n } else {\n pushByte(byte);\n }\n }\n }\n\n return new Uint8Array(bytes);\n }\n\n decodeText(): string {\n const bytes = this.asBytes();\n if (hasUtf16BOM(bytes)) return utf16Decode(bytes);\n return pdfDocEncodingDecode(bytes);\n }\n\n decodeDate(): Date {\n const text = this.decodeText();\n const date = parseDate(text);\n if (!date) throw new InvalidPDFDateStringError(text);\n return date;\n }\n\n asString(): string {\n return this.value;\n }\n\n clone(): PDFString {\n return PDFString.of(this.value);\n }\n\n toString(): string {\n return `(${this.value})`;\n }\n\n sizeInBytes(): number {\n return this.value.length + 2;\n }\n\n copyBytesInto(buffer: Uint8Array, offset: number): number {\n buffer[offset++] = CharCodes.LeftParen;\n offset += copyStringIntoBuffer(this.value, buffer, offset);\n buffer[offset++] = CharCodes.RightParen;\n return this.value.length + 2;\n }\n}\n\nexport default PDFString;\n","import { Font, Fontkit, Glyph, TypeFeatures } from 'src/types/fontkit';\n\nimport { createCmap } from 'src/core/embedders/CMap';\nimport { deriveFontFlags } from 'src/core/embedders/FontFlags';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport {\n byAscendingId,\n Cache,\n sortedUniq,\n toHexStringOfMinLength,\n} from 'src/utils';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n * https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/jpeg.coffee\n */\nclass CustomFontEmbedder {\n static async for(\n fontkit: Fontkit,\n fontData: Uint8Array,\n customName?: string,\n fontFeatures?: TypeFeatures,\n ) {\n const font = await fontkit.create(fontData);\n return new CustomFontEmbedder(font, fontData, customName, fontFeatures);\n }\n\n readonly font: Font;\n readonly scale: number;\n readonly fontData: Uint8Array;\n readonly fontName: string;\n readonly customName: string | undefined;\n readonly fontFeatures: TypeFeatures | undefined;\n\n protected baseFontName: string;\n protected glyphCache: Cache;\n\n protected constructor(\n font: Font,\n fontData: Uint8Array,\n customName?: string,\n fontFeatures?: TypeFeatures,\n ) {\n this.font = font;\n this.scale = 1000 / this.font.unitsPerEm;\n this.fontData = fontData;\n this.fontName = this.font.postscriptName || 'Font';\n this.customName = customName;\n this.fontFeatures = fontFeatures;\n\n this.baseFontName = '';\n this.glyphCache = Cache.populatedBy(this.allGlyphsInFontSortedById);\n }\n\n /**\n * Encode the JavaScript string into this font. (JavaScript encodes strings in\n * Unicode, but embedded fonts use their own custom encodings)\n */\n encodeText(text: string): PDFHexString {\n const { glyphs } = this.font.layout(text, this.fontFeatures);\n const hexCodes = new Array(glyphs.length);\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n hexCodes[idx] = toHexStringOfMinLength(glyphs[idx].id, 4);\n }\n return PDFHexString.of(hexCodes.join(''));\n }\n\n // The advanceWidth takes into account kerning automatically, so we don't\n // have to do that manually like we do for the standard fonts.\n widthOfTextAtSize(text: string, size: number): number {\n const { glyphs } = this.font.layout(text, this.fontFeatures);\n let totalWidth = 0;\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n totalWidth += glyphs[idx].advanceWidth * this.scale;\n }\n const scale = size / 1000;\n return totalWidth * scale;\n }\n\n heightOfFontAtSize(\n size: number,\n options: { descender?: boolean } = {},\n ): number {\n const { descender = true } = options;\n\n const { ascent, descent, bbox } = this.font;\n const yTop = (ascent || bbox.maxY) * this.scale;\n const yBottom = (descent || bbox.minY) * this.scale;\n\n let height = yTop - yBottom;\n if (!descender) height -= Math.abs(descent) || 0;\n\n return (height / 1000) * size;\n }\n\n sizeOfFontAtHeight(height: number): number {\n const { ascent, descent, bbox } = this.font;\n const yTop = (ascent || bbox.maxY) * this.scale;\n const yBottom = (descent || bbox.minY) * this.scale;\n return (1000 * height) / (yTop - yBottom);\n }\n\n embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n this.baseFontName =\n this.customName || context.addRandomSuffix(this.fontName);\n return this.embedFontDict(context, ref);\n }\n\n protected async embedFontDict(\n context: PDFContext,\n ref?: PDFRef,\n ): Promise {\n const cidFontDictRef = await this.embedCIDFontDict(context);\n const unicodeCMapRef = this.embedUnicodeCmap(context);\n\n const fontDict = context.obj({\n Type: 'Font',\n Subtype: 'Type0',\n BaseFont: this.baseFontName,\n Encoding: 'Identity-H',\n DescendantFonts: [cidFontDictRef],\n ToUnicode: unicodeCMapRef,\n });\n\n if (ref) {\n context.assign(ref, fontDict);\n return ref;\n } else {\n return context.register(fontDict);\n }\n }\n\n protected isCFF(): boolean {\n return this.font.cff;\n }\n\n protected async embedCIDFontDict(context: PDFContext): Promise {\n const fontDescriptorRef = await this.embedFontDescriptor(context);\n\n const cidFontDict = context.obj({\n Type: 'Font',\n Subtype: this.isCFF() ? 'CIDFontType0' : 'CIDFontType2',\n CIDToGIDMap: 'Identity',\n BaseFont: this.baseFontName,\n CIDSystemInfo: {\n Registry: PDFString.of('Adobe'),\n Ordering: PDFString.of('Identity'),\n Supplement: 0,\n },\n FontDescriptor: fontDescriptorRef,\n W: this.computeWidths(),\n });\n\n return context.register(cidFontDict);\n }\n\n protected async embedFontDescriptor(context: PDFContext): Promise {\n const fontStreamRef = await this.embedFontStream(context);\n\n const { scale } = this;\n const { italicAngle, ascent, descent, capHeight, xHeight } = this.font;\n const { minX, minY, maxX, maxY } = this.font.bbox;\n\n const fontDescriptor = context.obj({\n Type: 'FontDescriptor',\n FontName: this.baseFontName,\n Flags: deriveFontFlags(this.font),\n FontBBox: [minX * scale, minY * scale, maxX * scale, maxY * scale],\n ItalicAngle: italicAngle,\n Ascent: ascent * scale,\n Descent: descent * scale,\n CapHeight: (capHeight || ascent) * scale,\n XHeight: (xHeight || 0) * scale,\n\n // Not sure how to compute/find this, nor is anybody else really:\n // https://stackoverflow.com/questions/35485179/stemv-value-of-the-truetype-font\n StemV: 0,\n\n [this.isCFF() ? 'FontFile3' : 'FontFile2']: fontStreamRef,\n });\n\n return context.register(fontDescriptor);\n }\n\n protected async serializeFont(): Promise {\n return this.fontData;\n }\n\n protected async embedFontStream(context: PDFContext): Promise {\n const fontStream = context.flateStream(await this.serializeFont(), {\n Subtype: this.isCFF() ? 'CIDFontType0C' : undefined,\n });\n return context.register(fontStream);\n }\n\n protected embedUnicodeCmap(context: PDFContext): PDFRef {\n const cmap = createCmap(this.glyphCache.access(), this.glyphId.bind(this));\n const cmapStream = context.flateStream(cmap);\n return context.register(cmapStream);\n }\n\n protected glyphId(glyph?: Glyph): number {\n return glyph ? glyph.id : -1;\n }\n\n protected computeWidths(): (number | number[])[] {\n const glyphs = this.glyphCache.access();\n\n const widths: (number | number[])[] = [];\n let currSection: number[] = [];\n\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n const currGlyph = glyphs[idx];\n const prevGlyph = glyphs[idx - 1];\n\n const currGlyphId = this.glyphId(currGlyph);\n const prevGlyphId = this.glyphId(prevGlyph);\n\n if (idx === 0) {\n widths.push(currGlyphId);\n } else if (currGlyphId - prevGlyphId !== 1) {\n widths.push(currSection);\n widths.push(currGlyphId);\n currSection = [];\n }\n\n currSection.push(currGlyph.advanceWidth * this.scale);\n }\n\n widths.push(currSection);\n\n return widths;\n }\n\n private allGlyphsInFontSortedById = (): Glyph[] => {\n const glyphs: Glyph[] = new Array(this.font.characterSet.length);\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n const codePoint = this.font.characterSet[idx];\n glyphs[idx] = this.font.glyphForCodePoint(codePoint);\n }\n return sortedUniq(glyphs.sort(byAscendingId), (g) => g.id);\n };\n}\n\nexport default CustomFontEmbedder;\n","import { Font, Fontkit, Glyph, Subset, TypeFeatures } from 'src/types/fontkit';\n\nimport CustomFontEmbedder from 'src/core/embedders/CustomFontEmbedder';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport { Cache, mergeUint8Arrays, toHexStringOfMinLength } from 'src/utils';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n * https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/jpeg.coffee\n */\nclass CustomFontSubsetEmbedder extends CustomFontEmbedder {\n static async for(\n fontkit: Fontkit,\n fontData: Uint8Array,\n customFontName?: string,\n fontFeatures?: TypeFeatures,\n ) {\n const font = await fontkit.create(fontData);\n return new CustomFontSubsetEmbedder(\n font,\n fontData,\n customFontName,\n fontFeatures,\n );\n }\n\n private readonly subset: Subset;\n private readonly glyphs: Glyph[];\n private readonly glyphIdMap: Map;\n\n private constructor(\n font: Font,\n fontData: Uint8Array,\n customFontName?: string,\n fontFeatures?: TypeFeatures,\n ) {\n super(font, fontData, customFontName, fontFeatures);\n\n this.subset = this.font.createSubset();\n this.glyphs = [];\n this.glyphCache = Cache.populatedBy(() => this.glyphs);\n this.glyphIdMap = new Map();\n }\n\n encodeText(text: string): PDFHexString {\n const { glyphs } = this.font.layout(text, this.fontFeatures);\n const hexCodes = new Array(glyphs.length);\n\n for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n const glyph = glyphs[idx];\n const subsetGlyphId = this.subset.includeGlyph(glyph);\n\n this.glyphs[subsetGlyphId - 1] = glyph;\n this.glyphIdMap.set(glyph.id, subsetGlyphId);\n\n hexCodes[idx] = toHexStringOfMinLength(subsetGlyphId, 4);\n }\n\n this.glyphCache.invalidate();\n return PDFHexString.of(hexCodes.join(''));\n }\n\n protected isCFF(): boolean {\n return (this.subset as any).cff;\n }\n\n protected glyphId(glyph?: Glyph): number {\n return glyph ? this.glyphIdMap.get(glyph.id)! : -1;\n }\n\n protected serializeFont(): Promise {\n return new Promise((resolve, reject) => {\n const parts: Uint8Array[] = [];\n this.subset\n .encodeStream()\n .on('data', (bytes) => parts.push(bytes))\n .on('end', () => resolve(mergeUint8Arrays(parts)))\n .on('error' as any, (err) => reject(err));\n });\n }\n}\n\nexport default CustomFontSubsetEmbedder;\n","import PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\n/**\n * From the PDF-A3 specification, section **3.1. Requirements - General**.\n * See:\n * * https://www.pdfa.org/wp-content/uploads/2018/10/PDF20_AN002-AF.pdf\n */\nexport enum AFRelationship {\n Source = 'Source',\n Data = 'Data',\n Alternative = 'Alternative',\n Supplement = 'Supplement',\n EncryptedPayload = 'EncryptedPayload',\n FormData = 'EncryptedPayload',\n Schema = 'Schema',\n Unspecified = 'Unspecified',\n}\n\nexport interface EmbeddedFileOptions {\n mimeType?: string;\n description?: string;\n creationDate?: Date;\n modificationDate?: Date;\n afRelationship?: AFRelationship;\n}\n\nclass FileEmbedder {\n static for(\n bytes: Uint8Array,\n fileName: string,\n options: EmbeddedFileOptions = {},\n ) {\n return new FileEmbedder(bytes, fileName, options);\n }\n\n private readonly fileData: Uint8Array;\n readonly fileName: string;\n readonly options: EmbeddedFileOptions;\n\n private constructor(\n fileData: Uint8Array,\n fileName: string,\n options: EmbeddedFileOptions = {},\n ) {\n this.fileData = fileData;\n this.fileName = fileName;\n this.options = options;\n }\n\n async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n const {\n mimeType,\n description,\n creationDate,\n modificationDate,\n afRelationship,\n } = this.options;\n\n const embeddedFileStream = context.flateStream(this.fileData, {\n Type: 'EmbeddedFile',\n Subtype: mimeType ?? undefined,\n Params: {\n Size: this.fileData.length,\n CreationDate: creationDate\n ? PDFString.fromDate(creationDate)\n : undefined,\n ModDate: modificationDate\n ? PDFString.fromDate(modificationDate)\n : undefined,\n },\n });\n const embeddedFileStreamRef = context.register(embeddedFileStream);\n\n const fileSpecDict = context.obj({\n Type: 'Filespec',\n F: PDFString.of(this.fileName), // TODO: Assert that this is plain ASCII\n UF: PDFHexString.fromText(this.fileName),\n EF: { F: embeddedFileStreamRef },\n Desc: description ? PDFHexString.fromText(description) : undefined,\n AFRelationship: afRelationship ?? undefined,\n });\n\n if (ref) {\n context.assign(ref, fileSpecDict);\n return ref;\n } else {\n return context.register(fileSpecDict);\n }\n }\n}\n\nexport default FileEmbedder;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\n\n// prettier-ignore\nconst MARKERS = [\n 0xffc0, 0xffc1, 0xffc2,\n 0xffc3, 0xffc5, 0xffc6,\n 0xffc7, 0xffc8, 0xffc9,\n 0xffca, 0xffcb, 0xffcc,\n 0xffcd, 0xffce, 0xffcf,\n];\n\nenum ColorSpace {\n DeviceGray = 'DeviceGray',\n DeviceRGB = 'DeviceRGB',\n DeviceCMYK = 'DeviceCMYK',\n}\n\nconst ChannelToColorSpace: { [idx: number]: ColorSpace | undefined } = {\n 1: ColorSpace.DeviceGray,\n 3: ColorSpace.DeviceRGB,\n 4: ColorSpace.DeviceCMYK,\n};\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n * https://github.com/foliojs/pdfkit/blob/a6af76467ce06bd6a2af4aa7271ccac9ff152a7d/lib/image/jpeg.js\n */\nclass JpegEmbedder {\n static async for(imageData: Uint8Array) {\n const dataView = new DataView(imageData.buffer);\n\n const soi = dataView.getUint16(0);\n if (soi !== 0xffd8) throw new Error('SOI not found in JPEG');\n\n let pos = 2;\n let marker: number;\n\n while (pos < dataView.byteLength) {\n marker = dataView.getUint16(pos);\n pos += 2;\n if (MARKERS.includes(marker)) break;\n pos += dataView.getUint16(pos);\n }\n\n if (!MARKERS.includes(marker!)) throw new Error('Invalid JPEG');\n pos += 2;\n\n const bitsPerComponent = dataView.getUint8(pos++);\n const height = dataView.getUint16(pos);\n pos += 2;\n\n const width = dataView.getUint16(pos);\n pos += 2;\n\n const channelByte = dataView.getUint8(pos++);\n const channelName = ChannelToColorSpace[channelByte];\n\n if (!channelName) throw new Error('Unknown JPEG channel.');\n\n const colorSpace = channelName;\n\n return new JpegEmbedder(\n imageData,\n bitsPerComponent,\n width,\n height,\n colorSpace,\n );\n }\n\n readonly bitsPerComponent: number;\n readonly height: number;\n readonly width: number;\n readonly colorSpace: ColorSpace;\n\n private readonly imageData: Uint8Array;\n\n private constructor(\n imageData: Uint8Array,\n bitsPerComponent: number,\n width: number,\n height: number,\n colorSpace: ColorSpace,\n ) {\n this.imageData = imageData;\n this.bitsPerComponent = bitsPerComponent;\n this.width = width;\n this.height = height;\n this.colorSpace = colorSpace;\n }\n\n async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n const xObject = context.stream(this.imageData, {\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: this.bitsPerComponent,\n Width: this.width,\n Height: this.height,\n ColorSpace: this.colorSpace,\n Filter: 'DCTDecode',\n\n // CMYK JPEG streams in PDF are typically stored complemented,\n // with 1 as 'off' and 0 as 'on' (PDF 32000-1:2008, 8.6.4.4).\n //\n // Standalone CMYK JPEG (usually exported by Photoshop) are\n // stored inverse, with 0 as 'off' and 1 as 'on', like RGB.\n //\n // Applying a swap here as a hedge that most bytes passing\n // through this method will benefit from it.\n Decode:\n this.colorSpace === ColorSpace.DeviceCMYK\n ? [1, 0, 1, 0, 1, 0, 1, 0]\n : undefined,\n });\n\n if (ref) {\n context.assign(ref, xObject);\n return ref;\n } else {\n return context.register(xObject);\n }\n }\n}\n\nexport default JpegEmbedder;\n","import pako from 'pako';\n\nvar UPNG = {};\n\n\t\n\nUPNG.toRGBA8 = function(out)\n{\n\tvar w = out.width, h = out.height;\n\tif(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];\n\t\n\tvar frms = [];\n\tif(out.frames[0].data==null) out.frames[0].data = out.data;\n\t\n\tvar len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len);\n\tfor(var i=0; i>3)]>>(7-((i&7)<<0)))& 1), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>2)]>>(6-((i&3)<<1)))& 3), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>1)]>>(4-((i&1)<<2)))&15), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>>3)]>>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }\n\t\t\telse if(depth== 2) for(var x=0; x>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }\n\t\t\telse if(depth== 4) for(var x=0; x>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; }\n\t\t\telse if(depth== 8) for(var x=0; x>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);\nvar D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;\nw+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257;\nh=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0;\ncj)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;\nd=l(b.u,(1<>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254;\nif(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15);\nd+=Y&15;while(w>>4;\nif(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3);\nn+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I>>1;\nwhile(An)n=M;A++}while(A>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8};\nH.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)};\nH.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;\nreturn{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[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,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[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,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}();\n(function(){var N=H.H.m,W=1<<15;for(var R=0;R>>1|(V&1431655765)<<1;\nV=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8;\nN.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R];\nN.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);\nH.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);\nn(N.D,30,0);n(N.v,320,0)}());return H.H.N}()\n\n\nUPNG.decode._readInterlace = function(data, out)\n{\n\tvar w = out.width, h = out.height;\n\tvar bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8);\n\tvar img = new Uint8Array( h * bpl );\n\tvar di = 0;\n\n\tvar starting_row = [ 0, 0, 4, 0, 2, 0, 1 ];\n\tvar starting_col = [ 0, 4, 0, 2, 0, 1, 0 ];\n\tvar row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];\n\tvar col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];\n\n\tvar pass=0;\n\twhile(pass<7)\n\t{\n\t\tvar ri = row_increment[pass], ci = col_increment[pass];\n\t\tvar sw = 0, sh = 0;\n\t\tvar cr = starting_row[pass]; while(cr>3]; val = (val>>(7-(cdi&7)))&1;\n\t\t\t\t\timg[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0)));\n\t\t\t\t}\n\t\t\t\tif(bpp==2) {\n\t\t\t\t\tvar val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3;\n\t\t\t\t\timg[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1)));\n\t\t\t\t}\n\t\t\t\tif(bpp==4) {\n\t\t\t\t\tvar val = data[cdi>>3]; val = (val>>(4-(cdi&7)))&15;\n\t\t\t\t\timg[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2)));\n\t\t\t\t}\n\t\t\t\tif(bpp>=8) {\n\t\t\t\t\tvar ii = row*bpl+col*cbpp;\n\t\t\t\t\tfor(var j=0; j>3)+j];\n\t\t\t\t}\n\t\t\t\tcdi+=bpp; col+=ci;\n\t\t\t}\n\t\t\ty++; row += ri;\n\t\t}\n\t\tif(sw*sh!=0) di += sh * (1 + bpll);\n\t\tpass = pass + 1;\n\t}\n\treturn img;\n}\n\nUPNG.decode._getBPP = function(out) {\n\tvar noc = [1,null,3,1,2,null,4][out.ctype];\n\treturn noc * out.depth;\n}\n\nUPNG.decode._filterZero = function(data, out, off, w, h)\n{\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;\n\tbpp = Math.ceil(bpp/8);\n\t\n\tvar i=0, di=1, type=data[off], x=0;\n\t\n\tif(type>1) data[off]=[0,0,1][type-2]; \n\tif(type==3) for(x=bpp; x>>1) )&255;\n\n\tfor(var y=0; y>>1));\n\t\t\t for(; x>>1) ); }\n\t\telse { for(; x>8)&255; buff[p+1] = n&255; },\n\treadUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); },\n\twriteUint : function(buff,p,n){ buff[p]=(n>>24)&255; buff[p+1]=(n>>16)&255; buff[p+2]=(n>>8)&255; buff[p+3]=n&255; },\n\treadASCII : function(buff,p,l){ var s = \"\"; for(var i=0; i=0 && yoff>=0) { si = (y*sw+x)<<2; ti = (( yoff+y)*tw+xoff+x)<<2; }\n\t\t\telse { si = ((-yoff+y)*sw-xoff+x)<<2; ti = (y*tw+x)<<2; }\n\t\t\t\n\t\t\tif (mode==0) { tb[ti] = sb[si]; tb[ti+1] = sb[si+1]; tb[ti+2] = sb[si+2]; tb[ti+3] = sb[si+3]; }\n\t\t\telse if(mode==1) {\n\t\t\t\tvar fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; \n\t\t\t\tvar ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; \n\t\t\t\t\n\t\t\t\tvar ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa);\n\t\t\t\ttb[ti+3] = 255*oa; \n\t\t\t\ttb[ti+0] = (fr+br*ifa)*ioa; \n\t\t\t\ttb[ti+1] = (fg+bg*ifa)*ioa; \n\t\t\t\ttb[ti+2] = (fb+bb*ifa)*ioa; \n\t\t\t}\n\t\t\telse if(mode==2){\t// copy only differences, otherwise zero\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) { tb[ti]=0; tb[ti+1]=0; tb[ti+2]=0; tb[ti+3]=0; }\n\t\t\t\telse { tb[ti]=fr; tb[ti+1]=fg; tb[ti+2]=fb; tb[ti+3]=fa; }\n\t\t\t}\n\t\t\telse if(mode==3){\t// check if can be blended\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) continue;\n\t\t\t\t//if(fa!=255 && ba!=0) return false;\n\t\t\t\tif(fa<220 && ba>20) return false;\n\t\t\t}\n\t\t}\n\treturn true;\n}\n\n\n\n\nUPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)\n{\n\tif(ps==null) ps=0;\n\tif(forbidPlte==null) forbidPlte = false;\n\n\tvar nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);\n\tUPNG.encode.compressPNG(nimg, -1);\n\t\n\treturn UPNG.encode._main(nimg, w, h, dels, tabs);\n}\n\nUPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) {\n\tvar nimg = { ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4), depth: depth, frames: [] };\n\t\n\tvar time = Date.now();\n\tvar bipp = (cc+ac)*depth, bipl = bipp * w;\n\tfor(var i=0; i1, pltAlpha = false;\n\t\n\tvar leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0);\n\tif(tabs[\"sRGB\"]!=null) leng += 8+1+4;\n\tif(tabs[\"pHYs\"]!=null) leng += 8+9+4;\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\tfor(var i=0; i>>24)!=255) pltAlpha = true;\n\t\tleng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0);\n\t}\n\tfor(var j=0; j>>8)&255, b=(c>>>16)&255;\n\t\t\tdata[offset+ti+0]=r; data[offset+ti+1]=g; data[offset+ti+2]=b;\n\t\t}\n\t\toffset+=dl*3;\n\t\twUi(data,offset,crc(data,offset-dl*3-4,dl*3+4)); offset+=4; // crc\n\n\t\tif(pltAlpha) {\n\t\t\twUi(data,offset, dl); offset+=4;\n\t\t\twAs(data,offset,\"tRNS\"); offset+=4;\n\t\t\tfor(var i=0; i>>24)&255;\n\t\t\toffset+=dl;\n\t\t\twUi(data,offset,crc(data,offset-dl-4,dl+4)); offset+=4; // crc\n\t\t}\n\t}\n\t\n\tvar fi = 0;\n\tfor(var j=0; j>2, bln>>2));\n\t\t\tfor(var j=0; jnw && c==img32[i-nw]) ind[i]=ind[i-nw];\n\t\t\t\telse {\n\t\t\t\t\tvar cmc = cmap[c];\n\t\t\t\t\tif(cmc==null) { cmap[c]=cmc=plte.length; plte.push(c); if(plte.length>=300) break; }\n\t\t\t\t\tind[i]=cmc;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//console.log(\"make palette\", Date.now()-time); time = Date.now();\n\t}\n\t\n\tvar cc=plte.length; //console.log(\"colors:\",cc);\n\tif(cc<=256 && forbidPlte==false) {\n\t\tif(cc<= 2) depth=1; else if(cc<= 4) depth=2; else if(cc<=16) depth=4; else depth=8;\n\t\tdepth = Math.max(depth, minBits);\n\t}\n\t\n\tfor(var j=0; j>1)] |= (inj[ii+x]<<(4-(x&1)*4));\n\t\t\t\telse if(depth==2) for(var x=0; x>2)] |= (inj[ii+x]<<(6-(x&3)*2));\n\t\t\t\telse if(depth==1) for(var x=0; x>3)] |= (inj[ii+x]<<(7-(x&7)*1));\n\t\t\t}\n\t\t\tcimg=nimg; ctype=3; bpp=1;\n\t\t}\n\t\telse if(gotAlpha==false && frms.length==1) {\t// some next \"reduced\" frames may contain alpha for blending\n\t\t\tvar nimg = new Uint8Array(nw*nh*3), area=nw*nh;\n\t\t\tfor(var i=0; i palette indices\", Date.now()-time); time = Date.now();\n\t\n\treturn {ctype:ctype, depth:depth, plte:plte, frames:frms };\n}\nUPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) {\n\t/* DISPOSE\n\t - 0 : no change\n\t\t- 1 : clear to transparent\n\t\t- 2 : retstore to content before rendering (previous frame disposed)\n\t\tBLEND\n\t\t- 0 : replace\n\t\t- 1 : blend\n\t*/\n\tvar frms = [];\n\tfor(var j=0; jmax) max=x;\n\t\t\t\t\t\tif(ymay) may=y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(max==-1) mix=miy=max=may=0;\n\t\t\t\tif(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; }\n\t\t\t\tvar sarea = (max-mix+1)*(may-miy+1);\n\t\t\t\tif(sareamax) max=cx;\n\t\t\tif(cymay) may=cy;\n\t\t}\n\t}\n\tif(max==-1) mix=miy=max=may=0;\n\tif(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; }\n\tr = {x:mix, y:miy, width:max-mix+1, height:may-miy+1};\n\t\n\tvar fr = frms[i]; fr.rect = r; fr.blend = 1; fr.img = new Uint8Array(r.width*r.height*4);\n\tif(frms[i-1].dispose==0) {\n\t\tUPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n\t\tUPNG.encode._prepareDiff(cimg,w,h,fr.img,r);\n\t\t//UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);\n\t}\n\telse\n\t\tUPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n}\nUPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) {\n\tUPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2);\n\t/*\n\tvar n32 = new Uint32Array(nimg.buffer);\n\tvar og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);\n\tUPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);\n\tfor(var i=4; i>>2]==o32[(i>>>2)-1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; }\n\t\t}\n\t}\n\tfor(var i=nimg.length-8; i>0; i-=4) {\n\t\tif(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; }\n\t\t}\n\t}*/\n}\n\nUPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero)\n{\n\tvar fls = [], ftry=[0,1,2,3,4];\n\tif (filter!=-1) ftry=[filter];\n\telse if(h*bpl>500000 || bpp==1) ftry=[0];\n\tvar opts; if(levelZero) opts={level:0};\n\t\n\tvar CMPR = (levelZero && UZIP!=null) ? UZIP : pako;\n\t\n\tfor(var i=0; i>1) +256)&255;\n\t\tif(type==4) for(var x=bpp; x>1))&255;\n\t\t\t\t\t for(var x=bpp; x>1))&255; }\n\t\tif(type==4) { for(var x= 0; x>> 1);\n\t\t\t\telse c = c >>> 1;\n\t\t\t}\n\t\t\ttab[n] = c; }\n\t\treturn tab; })(),\n\tupdate : function(c, buf, off, len) {\n\t\tfor (var i=0; i>> 8);\n\t\treturn c;\n\t},\n\tcrc : function(b,o,l) { return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; }\n}\n\n\nUPNG.quantize = function(abuf, ps)\n{\t\n\tvar oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar KD = UPNG.quantize.getKDtree(nimg, ps);\n\tvar root = KD[0], leafs = KD[1];\n\t\n\tvar planeDst = UPNG.quantize.planeDst;\n\tvar sb = oimg, tb = nimg32, len=sb.length;\n\t\t\n\tvar inds = new Uint8Array(oimg.length>>2);\n\tfor(var i=0; i>2] = nd.ind;\n\t\ttb[i>>2] = nd.est.rgba;\n\t}\n\treturn { abuf:nimg.buffer, inds:inds, plte:leafs };\n}\n\nUPNG.quantize.getKDtree = function(nimg, ps, err) {\n\tif(err==null) err = 0.0001;\n\tvar nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null }; // basic statistic, extra statistic\n\troot.bst = UPNG.quantize.stats( nimg,root.i0, root.i1 ); root.est = UPNG.quantize.estats( root.bst );\n\tvar leafs = [root];\n\t\n\twhile(leafs.length maxL) { maxL=leafs[i].est.L; mi=i; }\n\t\tif(maxL=s0 || node.i1<=s0);\n\t\t//console.log(maxL, leafs.length, mi);\n\t\tif(s0wrong) { node.est.L=0; continue; }\n\t\t\n\t\t\n\t\tvar ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null }; ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 ); \n\t\tln.est = UPNG.quantize.estats( ln.bst );\n\t\tvar rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null }; rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N};\n\t\tfor(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i];\n\t\tfor(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i];\n\t\trn.est = UPNG.quantize.estats( rn.bst );\n\t\t\n\t\tnode.left = ln; node.right = rn;\n\t\tleafs[mi]=ln; leafs.push(rn);\n\t}\n\tleafs.sort(function(a,b) { return b.bst.N-a.bst.N; });\n\tfor(var i=0; i0) { node0=nd.right; node1=nd.left; }\n\t\n\tvar ln = UPNG.quantize.getNearest(node0, r,g,b,a);\n\tif(ln.tdst<=planeDst*planeDst) return ln;\n\tvar rn = UPNG.quantize.getNearest(node1, r,g,b,a);\n\treturn rn.tdst eMq) i1-=4;\n\t\tif(i0>=i1) break;\n\t\t\n\t\tvar t = nimg32[i0>>2]; nimg32[i0>>2] = nimg32[i1>>2]; nimg32[i1>>2]=t;\n\t\t\n\t\ti0+=4; i1-=4;\n\t}\n\twhile(vecDot(nimg, i0, e)>eMq) i0-=4;\n\treturn i0+4;\n}\nUPNG.quantize.vecDot = function(nimg, i, e)\n{\n\treturn nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3];\n}\nUPNG.quantize.stats = function(nimg, i0, i1){\n\tvar R = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0];\n\tvar m = [0,0,0,0];\n\tvar N = (i1-i0)>>2;\n\tfor(var i=i0; i>>0) };\n}\nUPNG.M4 = {\n\tmultVec : function(m,v) {\n\t\t\treturn [\n\t\t\t\tm[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3],\n\t\t\t\tm[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3],\n\t\t\t\tm[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3],\n\t\t\t\tm[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3]\n\t\t\t];\n\t},\n\tdot : function(x,y) { return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; },\n\tsml : function(a,y) { return [a*y[0],a*y[1],a*y[2],a*y[3]]; }\n}\n\nUPNG.encode.concatRGBA = function(bufs) {\n\tvar tlen = 0;\n\tfor(var i=0; i {\n if (ctype === 0) return PngType.Greyscale;\n if (ctype === 2) return PngType.Truecolour;\n if (ctype === 3) return PngType.IndexedColour;\n if (ctype === 4) return PngType.GreyscaleWithAlpha;\n if (ctype === 6) return PngType.TruecolourWithAlpha;\n throw new Error(`Unknown color type: ${ctype}`);\n};\n\nconst splitAlphaChannel = (rgbaChannel: Uint8Array) => {\n const pixelCount = Math.floor(rgbaChannel.length / 4);\n\n const rgbChannel = new Uint8Array(pixelCount * 3);\n const alphaChannel = new Uint8Array(pixelCount * 1);\n\n let rgbaOffset = 0;\n let rgbOffset = 0;\n let alphaOffset = 0;\n\n while (rgbaOffset < rgbaChannel.length) {\n rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n alphaChannel[alphaOffset++] = rgbaChannel[rgbaOffset++];\n }\n\n return { rgbChannel, alphaChannel };\n};\n\nexport enum PngType {\n Greyscale = 'Greyscale',\n Truecolour = 'Truecolour',\n IndexedColour = 'IndexedColour',\n GreyscaleWithAlpha = 'GreyscaleWithAlpha',\n TruecolourWithAlpha = 'TruecolourWithAlpha',\n}\n\nexport class PNG {\n static load = (pngData: Uint8Array) => new PNG(pngData);\n\n readonly rgbChannel: Uint8Array;\n readonly alphaChannel?: Uint8Array;\n readonly type: PngType;\n readonly width: number;\n readonly height: number;\n readonly bitsPerComponent: number;\n\n private constructor(pngData: Uint8Array) {\n const upng = UPNG.decode(pngData);\n const frames = UPNG.toRGBA8(upng);\n\n if (frames.length > 1) throw new Error(`Animated PNGs are not supported`);\n\n const frame = new Uint8Array(frames[0]);\n const { rgbChannel, alphaChannel } = splitAlphaChannel(frame);\n\n this.rgbChannel = rgbChannel;\n\n const hasAlphaValues = alphaChannel.some((a) => a < 255);\n if (hasAlphaValues) this.alphaChannel = alphaChannel;\n\n this.type = getImageType(upng.ctype);\n\n this.width = upng.width;\n this.height = upng.height;\n this.bitsPerComponent = 8;\n }\n}\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport { PNG } from 'src/utils/png';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n * https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/png.coffee\n */\nclass PngEmbedder {\n static async for(imageData: Uint8Array) {\n const png = PNG.load(imageData);\n return new PngEmbedder(png);\n }\n\n readonly bitsPerComponent: number;\n readonly height: number;\n readonly width: number;\n readonly colorSpace: 'DeviceRGB';\n\n private readonly image: PNG;\n\n private constructor(png: PNG) {\n this.image = png;\n this.bitsPerComponent = png.bitsPerComponent;\n this.width = png.width;\n this.height = png.height;\n this.colorSpace = 'DeviceRGB';\n }\n\n async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n const SMask = this.embedAlphaChannel(context);\n\n const xObject = context.flateStream(this.image.rgbChannel, {\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: this.image.bitsPerComponent,\n Width: this.image.width,\n Height: this.image.height,\n ColorSpace: this.colorSpace,\n SMask,\n });\n\n if (ref) {\n context.assign(ref, xObject);\n return ref;\n } else {\n return context.register(xObject);\n }\n }\n\n private embedAlphaChannel(context: PDFContext): PDFRef | undefined {\n if (!this.image.alphaChannel) return undefined;\n\n const xObject = context.flateStream(this.image.alphaChannel, {\n Type: 'XObject',\n Subtype: 'Image',\n Height: this.image.height,\n Width: this.image.width,\n BitsPerComponent: this.image.bitsPerComponent,\n ColorSpace: 'DeviceGray',\n Decode: [0, 1],\n });\n\n return context.register(xObject);\n }\n}\n\nexport default PngEmbedder;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The Stream class contained in this file is a TypeScript port of the\n * JavaScript Stream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nexport interface StreamType {\n isEmpty: boolean;\n getByte(): number;\n getUint16(): number;\n getInt32(): number;\n getBytes(\n length: number,\n forceClamped?: boolean,\n ): Uint8Array | Uint8ClampedArray;\n peekByte(): number;\n peekBytes(\n length: number,\n forceClamped?: boolean,\n ): Uint8Array | Uint8ClampedArray;\n skip(n: number): void;\n reset(): void;\n makeSubStream(start: number, length: number): StreamType;\n decode(): Uint8Array;\n}\n\nclass Stream implements StreamType {\n private bytes: Uint8Array;\n private start: number;\n private pos: number;\n private end: number;\n\n constructor(buffer: Uint8Array, start?: number, length?: number) {\n this.bytes = buffer;\n this.start = start || 0;\n this.pos = this.start;\n this.end = !!start && !!length ? start + length : this.bytes.length;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n // Returns subarray of original buffer, should only be read.\n getBytes(length: number, forceClamped = false) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n const subarray = bytes.subarray(pos, strEnd);\n // `this.bytes` is always a `Uint8Array` here.\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n } else {\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n const subarray = bytes.subarray(pos, end);\n // `this.bytes` is always a `Uint8Array` here.\n return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n }\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n }\n\n peekBytes(length: number, forceClamped = false) {\n const bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n }\n\n skip(n: number) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start: number, length: number) {\n return new Stream(this.bytes, start, length);\n }\n\n decode(): Uint8Array {\n return this.bytes;\n }\n}\n\nexport default Stream;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport Stream, { StreamType } from 'src/core/streams/Stream';\n\n/*\n * Copyright 2012 Mozilla Foundation\n *\n * The DecodeStream class contained in this file is a TypeScript port of the\n * JavaScript DecodeStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n/**\n * Super class for the decoding streams\n */\nclass DecodeStream implements StreamType {\n protected bufferLength: number;\n protected buffer: Uint8Array;\n protected eof: boolean;\n\n private pos: number;\n private minBufferLength: number;\n\n constructor(maybeMinBufferLength?: number) {\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getBytes(length: number, forceClamped = false) {\n let end;\n const pos = this.pos;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n const subarray = this.buffer.subarray(pos, end);\n // `this.buffer` is either a `Uint8Array` or `Uint8ClampedArray` here.\n return forceClamped && !(subarray instanceof Uint8ClampedArray)\n ? new Uint8ClampedArray(subarray)\n : subarray;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n this.pos--;\n return peekedByte;\n }\n\n peekBytes(length: number, forceClamped = false) {\n const bytes = this.getBytes(length, forceClamped);\n this.pos -= bytes.length;\n return bytes;\n }\n\n skip(n: number) {\n if (!n) {\n n = 1;\n }\n this.pos += n;\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start: number, length: number /* dict */) {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n return new Stream(this.buffer, start, length /* dict */);\n }\n\n decode(): Uint8Array {\n while (!this.eof) this.readBlock();\n return this.buffer.subarray(0, this.bufferLength);\n }\n\n protected readBlock(): void {\n throw new MethodNotImplementedError(this.constructor.name, 'readBlock');\n }\n\n protected ensureBuffer(requested: number) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n // getBaseStreams() {\n // if (this.str && this.str.getBaseStreams) {\n // return this.str.getBaseStreams();\n // }\n // return [];\n // }\n}\n\nexport default DecodeStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The Ascii85Stream class contained in this file is a TypeScript port of the\n * JavaScript Ascii85Stream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nconst isSpace = (ch: number) =>\n ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n\nclass Ascii85Stream extends DecodeStream {\n private stream: StreamType;\n private input: Uint8Array;\n\n constructor(stream: StreamType, maybeLength?: number) {\n super(maybeLength);\n\n this.stream = stream;\n this.input = new Uint8Array(5);\n\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength = 0.8 * maybeLength;\n }\n }\n\n protected readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const stream = this.stream;\n\n let c = stream.getByte();\n while (isSpace(c)) {\n c = stream.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer;\n let i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = stream.getByte();\n while (isSpace(c)) {\n c = stream.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport default Ascii85Stream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The AsciiHexStream class contained in this file is a TypeScript port of the\n * JavaScript AsciiHexStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass AsciiHexStream extends DecodeStream {\n private stream: StreamType;\n private firstDigit: number;\n\n constructor(stream: StreamType, maybeLength?: number) {\n super(maybeLength);\n\n this.stream = stream;\n\n this.firstDigit = -1;\n\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength = 0.5 * maybeLength;\n }\n }\n\n protected readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.stream.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (let i = 0, ii = bytes.length; i < ii; i++) {\n const ch = bytes[i];\n let digit;\n if (ch >= 0x30 && ch <= 0x39) {\n // '0'-'9'\n digit = ch & 0x0f;\n } else if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) {\n // 'A'-'Z', 'a'-'z'\n digit = (ch & 0x0f) + 9;\n } else if (ch === 0x3e) {\n // '>'\n this.eof = true;\n break;\n } else {\n // probably whitespace\n continue; // ignoring\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport default AsciiHexStream;\n","/*\n * Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\n/*\n * Copyright 2012 Mozilla Foundation\n *\n * The FlateStream class contained in this file is a TypeScript port of the\n * JavaScript FlateStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\n/* tslint:disable no-conditional-assignment */\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\n// prettier-ignore\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15\n]);\n\n// prettier-ignore\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102\n]);\n\n// prettier-ignore\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001\n]);\n\n// prettier-ignore\nconst fixedLitCodeTab = [new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff\n]), 9] as [Int32Array, number];\n\n// prettier-ignore\nconst fixedDistCodeTab = [new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000\n]), 5] as [Int32Array, number];\n\nclass FlateStream extends DecodeStream {\n private stream: StreamType;\n private codeSize: number;\n private codeBuf: number;\n\n constructor(stream: StreamType, maybeLength?: number) {\n super(maybeLength);\n\n this.stream = stream;\n\n const cmf = stream.getByte();\n const flg = stream.getByte();\n if (cmf === -1 || flg === -1) {\n throw new Error(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new Error(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`,\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new Error(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new Error(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n protected readBlock() {\n let buffer;\n let len;\n const str = this.stream;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new Error('Bad block header in flate stream');\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new Error('Bad block header in flate stream');\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new Error('Bad block header in flate stream');\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new Error('Bad block header in flate stream');\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new Error('Bad uncompressed block length in flate stream');\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength;\n buffer = this.ensureBuffer(bufferLength + blockLen);\n const end = bufferLength + blockLen;\n this.bufferLength = end;\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n for (let n = bufferLength; n < end; ++n) {\n if ((b = str.getByte()) === -1) {\n this.eof = true;\n break;\n }\n buffer[n] = b;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength;\n let bitsOffset;\n let what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes),\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes),\n );\n } else {\n throw new Error('Unknown block type in flate stream');\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n\n private getBits(bits: number) {\n const str = this.stream;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new Error('Bad encoding in flate stream');\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n private getCode(table: [Int32Array, number]) {\n const str = this.stream;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n if (typeof codes === 'number') {\n console.log('FLATE:', code);\n }\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new Error('Bad encoding in flate stream');\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n private generateHuffmanTable(lengths: Uint8Array): [Int32Array, number] {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n}\n\nexport default FlateStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The LZWStream class contained in this file is a TypeScript port of the\n * JavaScript LZWStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass LZWStream extends DecodeStream {\n private stream: StreamType;\n private cachedData: number;\n private bitsCached: number;\n private lzwState: {\n earlyChange: 0 | 1;\n codeLength: number;\n nextCode: number;\n dictionaryValues: Uint8Array;\n dictionaryLengths: Uint16Array;\n dictionaryPrevCodes: Uint16Array;\n currentSequence: Uint8Array;\n currentSequenceLength: number;\n prevCode?: number | null;\n };\n\n constructor(\n stream: StreamType,\n maybeLength: number | undefined,\n earlyChange: 0 | 1,\n ) {\n super(maybeLength);\n\n this.stream = stream;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n protected readBlock() {\n const blockSize = 512;\n\n let estimatedDecodedSize = blockSize * 2;\n const decodedSizeDelta = blockSize;\n let i;\n let j;\n let q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (!code || code < 256) {\n currentSequence[0] = code as number;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode as number;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode as number] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12,\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n\n private readBits(n: number) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.stream.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n}\n\nexport default LZWStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The RunLengthStream class contained in this file is a TypeScript port of the\n * JavaScript RunLengthStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass RunLengthStream extends DecodeStream {\n private stream: StreamType;\n\n constructor(stream: StreamType, maybeLength?: number) {\n super(maybeLength);\n this.stream = stream;\n }\n\n protected readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.stream.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.stream.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport default RunLengthStream;\n","import {\n UnexpectedObjectTypeError,\n UnsupportedEncodingError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport Ascii85Stream from 'src/core/streams/Ascii85Stream';\nimport AsciiHexStream from 'src/core/streams/AsciiHexStream';\nimport FlateStream from 'src/core/streams/FlateStream';\nimport LZWStream from 'src/core/streams/LZWStream';\nimport RunLengthStream from 'src/core/streams/RunLengthStream';\nimport Stream, { StreamType } from 'src/core/streams/Stream';\n\nconst decodeStream = (\n stream: StreamType,\n encoding: PDFName,\n params: undefined | typeof PDFNull | PDFDict,\n) => {\n if (encoding === PDFName.of('FlateDecode')) {\n return new FlateStream(stream);\n }\n if (encoding === PDFName.of('LZWDecode')) {\n let earlyChange = 1;\n if (params instanceof PDFDict) {\n const EarlyChange = params.lookup(PDFName.of('EarlyChange'));\n if (EarlyChange instanceof PDFNumber) {\n earlyChange = EarlyChange.asNumber();\n }\n }\n return new LZWStream(stream, undefined, earlyChange as 0 | 1);\n }\n if (encoding === PDFName.of('ASCII85Decode')) {\n return new Ascii85Stream(stream);\n }\n if (encoding === PDFName.of('ASCIIHexDecode')) {\n return new AsciiHexStream(stream);\n }\n if (encoding === PDFName.of('RunLengthDecode')) {\n return new RunLengthStream(stream);\n }\n throw new UnsupportedEncodingError(encoding.asString());\n};\n\nexport const decodePDFRawStream = ({ dict, contents }: PDFRawStream) => {\n let stream: StreamType = new Stream(contents);\n\n const Filter = dict.lookup(PDFName.of('Filter'));\n const DecodeParms = dict.lookup(PDFName.of('DecodeParms'));\n\n if (Filter instanceof PDFName) {\n stream = decodeStream(\n stream,\n Filter,\n DecodeParms as PDFDict | typeof PDFNull | undefined,\n );\n } else if (Filter instanceof PDFArray) {\n for (let idx = 0, len = Filter.size(); idx < len; idx++) {\n stream = decodeStream(\n stream,\n Filter.lookup(idx, PDFName),\n DecodeParms && (DecodeParms as PDFArray).lookupMaybe(idx, PDFDict),\n );\n }\n } else if (!!Filter) {\n throw new UnexpectedObjectTypeError([PDFName, PDFArray], Filter);\n }\n\n return stream;\n};\n","import {\n MissingPageContentsEmbeddingError,\n UnrecognizedStreamTypeError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport { decodePDFRawStream } from 'src/core/streams/decode';\nimport PDFContentStream from 'src/core/structures/PDFContentStream';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { TransformationMatrix } from 'src/types/matrix';\nimport { mergeIntoTypedArray } from 'src/utils';\n\n/**\n * Represents a page bounding box.\n * Usually `left` and `bottom` are 0 and right, top are equal\n * to width, height if you want to clip to the whole page.\n *\n * y\n * ^\n * | +--------+ (width,height)\n * | | |\n * | | Page |\n * | | |\n * | | |\n * (0,0) | +--------+\n * +----------> x\n */\nexport interface PageBoundingBox {\n left: number /** The left of the bounding box */;\n bottom: number /** The bottom of the bounding box */;\n right: number /** The right of the bounding box */;\n top: number /** The top of the bounding box */;\n}\n\nconst fullPageBoundingBox = (page: PDFPageLeaf) => {\n const mediaBox = page.MediaBox();\n\n const width =\n mediaBox.lookup(2, PDFNumber).asNumber() -\n mediaBox.lookup(0, PDFNumber).asNumber();\n\n const height =\n mediaBox.lookup(3, PDFNumber).asNumber() -\n mediaBox.lookup(1, PDFNumber).asNumber();\n\n return { left: 0, bottom: 0, right: width, top: height };\n};\n\n// Returns the identity matrix, modified to position the content of the given\n// bounding box at (0, 0).\nconst boundingBoxAdjustedMatrix = (\n bb: PageBoundingBox,\n): TransformationMatrix => [1, 0, 0, 1, -bb.left, -bb.bottom];\n\nclass PDFPageEmbedder {\n static async for(\n page: PDFPageLeaf,\n boundingBox?: PageBoundingBox,\n transformationMatrix?: TransformationMatrix,\n ) {\n return new PDFPageEmbedder(page, boundingBox, transformationMatrix);\n }\n\n readonly width: number;\n readonly height: number;\n readonly boundingBox: PageBoundingBox;\n readonly transformationMatrix: TransformationMatrix;\n\n private readonly page: PDFPageLeaf;\n\n private constructor(\n page: PDFPageLeaf,\n boundingBox?: PageBoundingBox,\n transformationMatrix?: TransformationMatrix,\n ) {\n this.page = page;\n\n const bb = boundingBox ?? fullPageBoundingBox(page);\n\n this.width = bb.right - bb.left;\n this.height = bb.top - bb.bottom;\n this.boundingBox = bb;\n this.transformationMatrix =\n transformationMatrix ?? boundingBoxAdjustedMatrix(bb);\n }\n\n async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n const { Contents, Resources } = this.page.normalizedEntries();\n\n if (!Contents) throw new MissingPageContentsEmbeddingError();\n const decodedContents = this.decodeContents(Contents);\n\n const { left, bottom, right, top } = this.boundingBox;\n const xObject = context.flateStream(decodedContents, {\n Type: 'XObject',\n Subtype: 'Form',\n FormType: 1,\n BBox: [left, bottom, right, top],\n Matrix: this.transformationMatrix,\n Resources,\n });\n\n if (ref) {\n context.assign(ref, xObject);\n return ref;\n } else {\n return context.register(xObject);\n }\n }\n\n // `contents` is an array of streams which are merged to include them in the XObject.\n // This methods extracts each stream and joins them with a newline character.\n private decodeContents(contents: PDFArray) {\n const newline = Uint8Array.of(CharCodes.Newline);\n const decodedContents: Uint8Array[] = [];\n\n for (let idx = 0, len = contents.size(); idx < len; idx++) {\n const stream = contents.lookup(idx, PDFStream);\n\n let content: Uint8Array;\n if (stream instanceof PDFRawStream) {\n content = decodePDFRawStream(stream).decode();\n } else if (stream instanceof PDFContentStream) {\n content = stream.getUnencodedContents();\n } else {\n throw new UnrecognizedStreamTypeError(stream);\n }\n\n decodedContents.push(content, newline);\n }\n\n return mergeIntoTypedArray(...decodedContents);\n }\n}\n\nexport default PDFPageEmbedder;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFContext from 'src/core/PDFContext';\nimport {\n assertEachIs,\n assertInteger,\n assertIsOneOf,\n assertRange,\n} from 'src/utils';\n\nconst asEnum = (\n rawValue: T | undefined,\n enumType: U,\n): U[keyof U] | undefined => {\n if (rawValue === undefined) return undefined;\n return enumType[rawValue];\n};\n\nexport enum NonFullScreenPageMode {\n /**\n * After exiting FullScreen mode, neither the document outline nor thumbnail\n * images should be visible.\n */\n UseNone = 'UseNone',\n\n /** After exiting FullScreen mode, the document outline should be visible. */\n UseOutlines = 'UseOutlines',\n\n /** After exiting FullScreen mode, thumbnail images should be visible. */\n UseThumbs = 'UseThumbs',\n\n /**\n * After exiting FullScreen mode, the optional content group panel should be\n * visible.\n */\n UseOC = 'UseOC',\n}\n\nexport enum ReadingDirection {\n /** The predominant reading order is Left to Right. */\n L2R = 'L2R',\n\n /**\n * The predominant reading order is Right to left (including vertical writing\n * systems, such as Chinese, Japanese and Korean).\n */\n R2L = 'R2L',\n}\n\nexport enum PrintScaling {\n /** No page scaling. */\n None = 'None',\n\n /* Use the PDF reader's default print scaling. */\n AppDefault = 'AppDefault',\n}\n\nexport enum Duplex {\n /** The PDF reader should print single-sided. */\n Simplex = 'Simplex',\n\n /**\n * The PDF reader should print double sided and flip on the short edge of the\n * sheet.\n */\n DuplexFlipShortEdge = 'DuplexFlipShortEdge',\n\n /**\n * The PDF reader should print double sided and flip on the long edge of the\n * sheet.\n */\n DuplexFlipLongEdge = 'DuplexFlipLongEdge',\n}\n\ntype BoolViewerPrefKey =\n | 'HideToolbar'\n | 'HideMenubar'\n | 'HideWindowUI'\n | 'FitWindow'\n | 'CenterWindow'\n | 'DisplayDocTitle'\n | 'PickTrayByPDFSize';\ntype NameViewerPrefKey =\n | 'NonFullScreenPageMode'\n | 'Direction'\n | 'PrintScaling'\n | 'Duplex';\n\ninterface PageRange {\n start: number;\n end: number;\n}\n\nclass ViewerPreferences {\n /** @ignore */\n readonly dict: PDFDict;\n\n /** @ignore */\n static fromDict = (dict: PDFDict): ViewerPreferences =>\n new ViewerPreferences(dict);\n\n /** @ignore */\n static create = (context: PDFContext) => {\n const dict = context.obj({});\n return new ViewerPreferences(dict);\n };\n\n /** @ignore */\n protected constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n protected lookupBool(key: BoolViewerPrefKey): PDFBool | undefined {\n const returnObj = this.dict.lookup(PDFName.of(key));\n if (returnObj instanceof PDFBool) return returnObj;\n return undefined;\n }\n\n protected lookupName(key: NameViewerPrefKey): PDFName | undefined {\n const returnObj = this.dict.lookup(PDFName.of(key));\n if (returnObj instanceof PDFName) return returnObj;\n return undefined;\n }\n\n /** @ignore */\n HideToolbar(): PDFBool | undefined {\n return this.lookupBool('HideToolbar');\n }\n\n /** @ignore */\n HideMenubar(): PDFBool | undefined {\n return this.lookupBool('HideMenubar');\n }\n\n /** @ignore */\n HideWindowUI(): PDFBool | undefined {\n return this.lookupBool('HideWindowUI');\n }\n\n /** @ignore */\n FitWindow(): PDFBool | undefined {\n return this.lookupBool('FitWindow');\n }\n\n /** @ignore */\n CenterWindow(): PDFBool | undefined {\n return this.lookupBool('CenterWindow');\n }\n\n /** @ignore */\n DisplayDocTitle(): PDFBool | undefined {\n return this.lookupBool('DisplayDocTitle');\n }\n\n /** @ignore */\n NonFullScreenPageMode(): PDFName | undefined {\n return this.lookupName('NonFullScreenPageMode');\n }\n\n /** @ignore */\n Direction(): PDFName | undefined {\n return this.lookupName('Direction');\n }\n\n /** @ignore */\n PrintScaling(): PDFName | undefined {\n return this.lookupName('PrintScaling');\n }\n\n /** @ignore */\n Duplex(): PDFName | undefined {\n return this.lookupName('Duplex');\n }\n\n /** @ignore */\n PickTrayByPDFSize(): PDFBool | undefined {\n return this.lookupBool('PickTrayByPDFSize');\n }\n\n /** @ignore */\n PrintPageRange(): PDFArray | undefined {\n const PrintPageRange = this.dict.lookup(PDFName.of('PrintPageRange'));\n if (PrintPageRange instanceof PDFArray) return PrintPageRange;\n return undefined;\n }\n\n /** @ignore */\n NumCopies(): PDFNumber | undefined {\n const NumCopies = this.dict.lookup(PDFName.of('NumCopies'));\n if (NumCopies instanceof PDFNumber) return NumCopies;\n return undefined;\n }\n\n /**\n * Returns `true` if PDF readers should hide the toolbar menus when displaying\n * this document.\n * @returns Whether or not toolbars should be hidden.\n */\n getHideToolbar(): boolean {\n return this.HideToolbar()?.asBoolean() ?? false;\n }\n\n /**\n * Returns `true` if PDF readers should hide the menu bar when displaying this\n * document.\n * @returns Whether or not the menu bar should be hidden.\n */\n getHideMenubar(): boolean {\n return this.HideMenubar()?.asBoolean() ?? false;\n }\n\n /**\n * Returns `true` if PDF readers should hide the user interface elements in\n * the document's window (such as scroll bars and navigation controls),\n * leaving only the document's contents displayed.\n * @returns Whether or not user interface elements should be hidden.\n */\n getHideWindowUI(): boolean {\n return this.HideWindowUI()?.asBoolean() ?? false;\n }\n\n /**\n * Returns `true` if PDF readers should resize the document's window to fit\n * the size of the first displayed page.\n * @returns Whether or not the window should be resized to fit.\n */\n getFitWindow(): boolean {\n return this.FitWindow()?.asBoolean() ?? false;\n }\n\n /**\n * Returns `true` if PDF readers should position the document's window in the\n * center of the screen.\n * @returns Whether or not to center the document window.\n */\n getCenterWindow(): boolean {\n return this.CenterWindow()?.asBoolean() ?? false;\n }\n\n /**\n * Returns `true` if the window's title bar should display the document\n * `Title`, taken from the document metadata (see [[PDFDocument.getTitle]]).\n * Returns `false` if the title bar should instead display the filename of the\n * PDF file.\n * @returns Whether to display the document title.\n */\n getDisplayDocTitle(): boolean {\n return this.DisplayDocTitle()?.asBoolean() ?? false;\n }\n\n /**\n * Returns the page mode, which tells the PDF reader how to display the\n * document after exiting full-screen mode.\n * @returns The page mode after exiting full-screen mode.\n */\n getNonFullScreenPageMode(): NonFullScreenPageMode {\n const mode = this.NonFullScreenPageMode()?.decodeText();\n return asEnum(mode, NonFullScreenPageMode) ?? NonFullScreenPageMode.UseNone;\n }\n\n /**\n * Returns the predominant reading order for text.\n * @returns The text reading order.\n */\n getReadingDirection(): ReadingDirection {\n const direction = this.Direction()?.decodeText();\n return asEnum(direction, ReadingDirection) ?? ReadingDirection.L2R;\n }\n\n /**\n * Returns the page scaling option that the PDF reader should select when the\n * print dialog is displayed.\n * @returns The page scaling option.\n */\n getPrintScaling(): PrintScaling {\n const scaling = this.PrintScaling()?.decodeText();\n return asEnum(scaling, PrintScaling) ?? PrintScaling.AppDefault;\n }\n\n /**\n * Returns the paper handling option that should be used when printing the\n * file from the print dialog.\n * @returns The paper handling option.\n */\n getDuplex(): Duplex | undefined {\n const duplex = this.Duplex()?.decodeText();\n return asEnum(duplex, Duplex);\n }\n\n /**\n * Returns `true` if the PDF page size should be used to select the input\n * paper tray.\n * @returns Whether or not the PDF page size should be used to select the\n * input paper tray.\n */\n getPickTrayByPDFSize(): boolean | undefined {\n return this.PickTrayByPDFSize()?.asBoolean();\n }\n\n /**\n * Returns an array of page number ranges, which are the values used to\n * initialize the print dialog box when the file is printed. Each range\n * specifies the first (`start`) and last (`end`) pages in a sub-range of\n * pages to be printed. The first page of the PDF file is denoted by 0.\n * For example:\n * ```js\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n * const includesPage3 = viewerPrefs\n * .getPrintRanges()\n * .some(pr => pr.start =< 2 && pr.end >= 2)\n * if (includesPage3) console.log('printRange includes page 3')\n * ```\n * @returns An array of objects, each with the properties `start` and `end`,\n * denoting page indices. If not, specified an empty array is\n * returned.\n */\n getPrintPageRange(): PageRange[] {\n const rng = this.PrintPageRange();\n if (!rng) return [];\n\n const pageRanges: PageRange[] = [];\n for (let i = 0; i < rng.size(); i += 2) {\n // Despite the spec clearly stating that \"The first page of the PDF file\n // shall be donoted by 1\", several test PDFs (spec 1.7) created in\n // Acrobat XI 11.0 and also read with Reader DC 2020.013 indicate this is\n // actually a 0 based index.\n const start = rng.lookup(i, PDFNumber).asNumber();\n const end = rng.lookup(i + 1, PDFNumber).asNumber();\n pageRanges.push({ start, end });\n }\n\n return pageRanges;\n }\n\n /**\n * Returns the number of copies to be printed when the print dialog is opened\n * for this document.\n * @returns The default number of copies to be printed.\n */\n getNumCopies(): number {\n return this.NumCopies()?.asNumber() ?? 1;\n }\n\n /**\n * Choose whether the PDF reader's toolbars should be hidden while the\n * document is active.\n * @param hideToolbar `true` if the toolbar should be hidden.\n */\n setHideToolbar(hideToolbar: boolean) {\n const HideToolbar = this.dict.context.obj(hideToolbar);\n this.dict.set(PDFName.of('HideToolbar'), HideToolbar);\n }\n\n /**\n * Choose whether the PDF reader's menu bar should be hidden while the\n * document is active.\n * @param hideMenubar `true` if the menu bar should be hidden.\n */\n setHideMenubar(hideMenubar: boolean) {\n const HideMenubar = this.dict.context.obj(hideMenubar);\n this.dict.set(PDFName.of('HideMenubar'), HideMenubar);\n }\n\n /**\n * Choose whether the PDF reader should hide user interface elements in the\n * document's window (such as scroll bars and navigation controls), leaving\n * only the document's contents displayed.\n * @param hideWindowUI `true` if the user interface elements should be hidden.\n */\n setHideWindowUI(hideWindowUI: boolean) {\n const HideWindowUI = this.dict.context.obj(hideWindowUI);\n this.dict.set(PDFName.of('HideWindowUI'), HideWindowUI);\n }\n\n /**\n * Choose whether the PDF reader should resize the document's window to fit\n * the size of the first displayed page.\n * @param fitWindow `true` if the window should be resized.\n */\n setFitWindow(fitWindow: boolean) {\n const FitWindow = this.dict.context.obj(fitWindow);\n this.dict.set(PDFName.of('FitWindow'), FitWindow);\n }\n\n /**\n * Choose whether the PDF reader should position the document's window in the\n * center of the screen.\n * @param centerWindow `true` if the window should be centered.\n */\n setCenterWindow(centerWindow: boolean) {\n const CenterWindow = this.dict.context.obj(centerWindow);\n this.dict.set(PDFName.of('CenterWindow'), CenterWindow);\n }\n\n /**\n * Choose whether the window's title bar should display the document `Title`\n * taken from the document metadata (see [[PDFDocument.setTitle]]). If\n * `false`, the title bar should instead display the PDF filename.\n * @param displayTitle `true` if the document title should be displayed.\n */\n setDisplayDocTitle(displayTitle: boolean) {\n const DisplayDocTitle = this.dict.context.obj(displayTitle);\n this.dict.set(PDFName.of('DisplayDocTitle'), DisplayDocTitle);\n }\n\n /**\n * Choose how the PDF reader should display the document upon exiting\n * full-screen mode. This entry is meaningful only if the value of the\n * `PageMode` entry in the document's [[PDFCatalog]] is `FullScreen`.\n *\n * For example:\n * ```js\n * import { PDFDocument, NonFullScreenPageMode, PDFName } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n *\n * // Set the PageMode\n * pdfDoc.catalog.set(PDFName.of('PageMode'),PDFName.of('FullScreen'))\n *\n * // Set what happens when full-screen is closed\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n * viewerPrefs.setNonFullScreenPageMode(NonFullScreenPageMode.UseOutlines)\n * ```\n *\n * @param nonFullScreenPageMode How the document should be displayed upon\n * exiting full screen mode.\n */\n setNonFullScreenPageMode(nonFullScreenPageMode: NonFullScreenPageMode) {\n assertIsOneOf(\n nonFullScreenPageMode,\n 'nonFullScreenPageMode',\n NonFullScreenPageMode,\n );\n const mode = PDFName.of(nonFullScreenPageMode);\n this.dict.set(PDFName.of('NonFullScreenPageMode'), mode);\n }\n\n /**\n * Choose the predominant reading order for text.\n *\n * This entry has no direct effect on the document's contents or page\n * numbering, but may be used to determine the relative positioning of pages\n * when displayed side by side or printed n-up.\n *\n * For example:\n * ```js\n * import { PDFDocument, ReadingDirection } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n * viewerPrefs.setReadingDirection(ReadingDirection.R2L)\n * ```\n *\n * @param readingDirection The reading order for text.\n */\n setReadingDirection(readingDirection: ReadingDirection) {\n assertIsOneOf(readingDirection, 'readingDirection', ReadingDirection);\n const direction = PDFName.of(readingDirection);\n this.dict.set(PDFName.of('Direction'), direction);\n }\n\n /**\n * Choose the page scaling option that should be selected when a print dialog\n * is displayed for this document.\n *\n * For example:\n * ```js\n * import { PDFDocument, PrintScaling } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n * viewerPrefs.setPrintScaling(PrintScaling.None)\n * ```\n *\n * @param printScaling The print scaling option.\n */\n setPrintScaling(printScaling: PrintScaling) {\n assertIsOneOf(printScaling, 'printScaling', PrintScaling);\n const scaling = PDFName.of(printScaling);\n this.dict.set(PDFName.of('PrintScaling'), scaling);\n }\n\n /**\n * Choose the paper handling option that should be selected by default in the\n * print dialog.\n *\n * For example:\n * ```js\n * import { PDFDocument, Duplex } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n * viewerPrefs.setDuplex(Duplex.DuplexFlipShortEdge)\n * ```\n *\n * @param duplex The double or single sided printing option.\n */\n setDuplex(duplex: Duplex) {\n assertIsOneOf(duplex, 'duplex', Duplex);\n const dup = PDFName.of(duplex);\n this.dict.set(PDFName.of('Duplex'), dup);\n }\n\n /**\n * Choose whether the PDF document's page size should be used to select the\n * input paper tray when printing. This setting influences only the preset\n * values used to populate the print dialog presented by a PDF reader.\n *\n * If PickTrayByPDFSize is true, the check box in the print dialog associated\n * with input paper tray should be checked. This setting has no effect on\n * operating systems that do not provide the ability to pick the input tray\n * by size.\n *\n * @param pickTrayByPDFSize `true` if the document's page size should be used\n * to select the input paper tray.\n */\n setPickTrayByPDFSize(pickTrayByPDFSize: boolean) {\n const PickTrayByPDFSize = this.dict.context.obj(pickTrayByPDFSize);\n this.dict.set(PDFName.of('PickTrayByPDFSize'), PickTrayByPDFSize);\n }\n\n /**\n * Choose the page numbers used to initialize the print dialog box when the\n * file is printed. The first page of the PDF file is denoted by 0.\n *\n * For example:\n * ```js\n * import { PDFDocument } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n *\n * // We can set the default print range to only the first page\n * viewerPrefs.setPrintPageRange({ start: 0, end: 0 })\n *\n * // Or we can supply noncontiguous ranges (e.g. pages 1, 3, and 5-7)\n * viewerPrefs.setPrintPageRange([\n * { start: 0, end: 0 },\n * { start: 2, end: 2 },\n * { start: 4, end: 6 },\n * ])\n * ```\n *\n * @param printPageRange An object or array of objects, each with the\n * properties `start` and `end`, denoting a range of\n * page indices.\n */\n setPrintPageRange(printPageRange: PageRange[] | PageRange) {\n if (!Array.isArray(printPageRange)) printPageRange = [printPageRange];\n\n const flatRange: number[] = [];\n for (let idx = 0, len = printPageRange.length; idx < len; idx++) {\n flatRange.push(printPageRange[idx].start);\n flatRange.push(printPageRange[idx].end);\n }\n\n assertEachIs(flatRange, 'printPageRange', ['number']);\n\n const pageRanges = this.dict.context.obj(flatRange);\n this.dict.set(PDFName.of('PrintPageRange'), pageRanges);\n }\n\n /**\n * Choose the default number of copies to be printed when the print dialog is\n * opened for this file.\n * @param numCopies The default number of copies.\n */\n setNumCopies(numCopies: number) {\n assertRange(numCopies, 'numCopies', 1, Number.MAX_VALUE);\n assertInteger(numCopies, 'numCopies');\n const NumCopies = this.dict.context.obj(numCopies);\n this.dict.set(PDFName.of('NumCopies'), NumCopies);\n }\n}\n\nexport default ViewerPreferences;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { findLastMatch } from 'src/utils';\nimport { MissingDAEntryError, MissingTfOperatorError } from 'src/core/errors';\n\n// Examples:\n// `/Helv 12 Tf` -> ['Helv', '12']\n// `/HeBo 8.00 Tf` -> ['HeBo', '8.00']\n// `/HeBo Tf` -> ['HeBo', undefined]\nconst tfRegex = /\\/([^\\0\\t\\n\\f\\r\\ ]+)[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]+Tf/;\n\nclass PDFAcroField {\n readonly dict: PDFDict;\n readonly ref: PDFRef;\n\n protected constructor(dict: PDFDict, ref: PDFRef) {\n this.dict = dict;\n this.ref = ref;\n }\n\n T(): PDFString | PDFHexString | undefined {\n return this.dict.lookupMaybe(PDFName.of('T'), PDFString, PDFHexString);\n }\n\n Ff(): PDFNumber | undefined {\n const numberOrRef = this.getInheritableAttribute(PDFName.of('Ff'));\n return this.dict.context.lookupMaybe(numberOrRef, PDFNumber);\n }\n\n V(): PDFObject | undefined {\n const valueOrRef = this.getInheritableAttribute(PDFName.of('V'));\n return this.dict.context.lookup(valueOrRef);\n }\n\n Kids(): PDFArray | undefined {\n return this.dict.lookupMaybe(PDFName.of('Kids'), PDFArray);\n }\n\n // Parent(): PDFDict | undefined {\n // return this.dict.lookupMaybe(PDFName.of('Parent'), PDFDict);\n // }\n\n DA(): PDFString | PDFHexString | undefined {\n const da = this.dict.lookup(PDFName.of('DA'));\n if (da instanceof PDFString || da instanceof PDFHexString) return da;\n return undefined;\n }\n\n setKids(kids: PDFObject[]) {\n this.dict.set(PDFName.of('Kids'), this.dict.context.obj(kids));\n }\n\n getParent(): PDFAcroField | undefined {\n // const parent = this.Parent();\n // if (!parent) return undefined;\n // return new PDFAcroField(parent);\n\n const parentRef = this.dict.get(PDFName.of('Parent'));\n if (parentRef instanceof PDFRef) {\n const parent = this.dict.lookup(PDFName.of('Parent'), PDFDict);\n return new PDFAcroField(parent, parentRef);\n }\n\n return undefined;\n }\n\n setParent(parent: PDFRef | undefined) {\n if (!parent) this.dict.delete(PDFName.of('Parent'));\n else this.dict.set(PDFName.of('Parent'), parent);\n }\n\n getFullyQualifiedName(): string | undefined {\n const parent = this.getParent();\n if (!parent) return this.getPartialName();\n return `${parent.getFullyQualifiedName()}.${this.getPartialName()}`;\n }\n\n getPartialName(): string | undefined {\n return this.T()?.decodeText();\n }\n\n setPartialName(partialName: string | undefined) {\n if (!partialName) this.dict.delete(PDFName.of('T'));\n else this.dict.set(PDFName.of('T'), PDFHexString.fromText(partialName));\n }\n\n setDefaultAppearance(appearance: string) {\n this.dict.set(PDFName.of('DA'), PDFString.of(appearance));\n }\n\n getDefaultAppearance(): string | undefined {\n const DA = this.DA();\n\n if (DA instanceof PDFHexString) {\n return DA.decodeText();\n }\n\n return DA?.asString();\n }\n\n setFontSize(fontSize: number) {\n const name = this.getFullyQualifiedName() ?? '';\n\n const da = this.getDefaultAppearance();\n if (!da) throw new MissingDAEntryError(name);\n\n const daMatch = findLastMatch(da, tfRegex);\n if (!daMatch.match) throw new MissingTfOperatorError(name);\n\n const daStart = da.slice(0, daMatch.pos - daMatch.match[0].length);\n const daEnd = daMatch.pos <= da.length ? da.slice(daMatch.pos) : '';\n const fontName = daMatch.match[1];\n const modifiedDa = `${daStart} /${fontName} ${fontSize} Tf ${daEnd}`;\n\n this.setDefaultAppearance(modifiedDa);\n }\n\n getFlags(): number {\n return this.Ff()?.asNumber() ?? 0;\n }\n\n setFlags(flags: number) {\n this.dict.set(PDFName.of('Ff'), PDFNumber.of(flags));\n }\n\n hasFlag(flag: number): boolean {\n const flags = this.getFlags();\n return (flags & flag) !== 0;\n }\n\n setFlag(flag: number) {\n const flags = this.getFlags();\n this.setFlags(flags | flag);\n }\n\n clearFlag(flag: number) {\n const flags = this.getFlags();\n this.setFlags(flags & ~flag);\n }\n\n setFlagTo(flag: number, enable: boolean) {\n if (enable) this.setFlag(flag);\n else this.clearFlag(flag);\n }\n\n getInheritableAttribute(name: PDFName): PDFObject | undefined {\n let attribute: PDFObject | undefined;\n this.ascend((node) => {\n if (!attribute) attribute = node.dict.get(name);\n });\n return attribute;\n }\n\n ascend(visitor: (node: PDFAcroField) => any): void {\n visitor(this);\n const parent = this.getParent();\n if (parent) parent.ascend(visitor);\n }\n}\n\nexport default PDFAcroField;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\n\n// TODO: Also handle the `/S` and `/D` entries\nclass BorderStyle {\n readonly dict: PDFDict;\n\n static fromDict = (dict: PDFDict): BorderStyle => new BorderStyle(dict);\n\n protected constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n W(): PDFNumber | undefined {\n const W = this.dict.lookup(PDFName.of('W'));\n if (W instanceof PDFNumber) return W;\n return undefined;\n }\n\n getWidth(): number | undefined {\n return this.W()?.asNumber() ?? 1;\n }\n\n setWidth(width: number) {\n const W = this.dict.context.obj(width);\n this.dict.set(PDFName.of('W'), W);\n }\n}\n\nexport default BorderStyle;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFNumber from 'src/core/objects/PDFNumber';\n\nclass PDFAnnotation {\n readonly dict: PDFDict;\n\n static fromDict = (dict: PDFDict): PDFAnnotation => new PDFAnnotation(dict);\n\n protected constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n // This is technically required by the PDF spec\n Rect(): PDFArray | undefined {\n return this.dict.lookup(PDFName.of('Rect'), PDFArray);\n }\n\n AP(): PDFDict | undefined {\n return this.dict.lookupMaybe(PDFName.of('AP'), PDFDict);\n }\n\n F(): PDFNumber | undefined {\n const numberOrRef = this.dict.lookup(PDFName.of('F'));\n return this.dict.context.lookupMaybe(numberOrRef, PDFNumber);\n }\n\n getRectangle(): { x: number; y: number; width: number; height: number } {\n const Rect = this.Rect();\n return Rect?.asRectangle() ?? { x: 0, y: 0, width: 0, height: 0 };\n }\n\n setRectangle(rect: { x: number; y: number; width: number; height: number }) {\n const { x, y, width, height } = rect;\n const Rect = this.dict.context.obj([x, y, x + width, y + height]);\n this.dict.set(PDFName.of('Rect'), Rect);\n }\n\n getAppearanceState(): PDFName | undefined {\n const AS = this.dict.lookup(PDFName.of('AS'));\n if (AS instanceof PDFName) return AS;\n return undefined;\n }\n\n setAppearanceState(state: PDFName) {\n this.dict.set(PDFName.of('AS'), state);\n }\n\n setAppearances(appearances: PDFDict) {\n this.dict.set(PDFName.of('AP'), appearances);\n }\n\n ensureAP(): PDFDict {\n let AP = this.AP();\n if (!AP) {\n AP = this.dict.context.obj({});\n this.dict.set(PDFName.of('AP'), AP);\n }\n return AP;\n }\n\n getNormalAppearance(): PDFRef | PDFDict {\n const AP = this.ensureAP();\n const N = AP.get(PDFName.of('N'));\n if (N instanceof PDFRef || N instanceof PDFDict) return N;\n\n throw new Error(`Unexpected N type: ${N?.constructor.name}`);\n }\n\n /** @param appearance A PDFDict or PDFStream (direct or ref) */\n setNormalAppearance(appearance: PDFRef | PDFDict) {\n const AP = this.ensureAP();\n AP.set(PDFName.of('N'), appearance);\n }\n\n /** @param appearance A PDFDict or PDFStream (direct or ref) */\n setRolloverAppearance(appearance: PDFRef | PDFDict) {\n const AP = this.ensureAP();\n AP.set(PDFName.of('R'), appearance);\n }\n\n /** @param appearance A PDFDict or PDFStream (direct or ref) */\n setDownAppearance(appearance: PDFRef | PDFDict) {\n const AP = this.ensureAP();\n AP.set(PDFName.of('D'), appearance);\n }\n\n removeRolloverAppearance() {\n const AP = this.AP();\n AP?.delete(PDFName.of('R'));\n }\n\n removeDownAppearance() {\n const AP = this.AP();\n AP?.delete(PDFName.of('D'));\n }\n\n getAppearances():\n | {\n normal: PDFStream | PDFDict;\n rollover?: PDFStream | PDFDict;\n down?: PDFStream | PDFDict;\n }\n | undefined {\n const AP = this.AP();\n\n if (!AP) return undefined;\n\n const N = AP.lookup(PDFName.of('N'), PDFDict, PDFStream);\n const R = AP.lookupMaybe(PDFName.of('R'), PDFDict, PDFStream);\n const D = AP.lookupMaybe(PDFName.of('D'), PDFDict, PDFStream);\n\n return { normal: N, rollover: R, down: D };\n }\n\n getFlags(): number {\n return this.F()?.asNumber() ?? 0;\n }\n\n setFlags(flags: number) {\n this.dict.set(PDFName.of('F'), PDFNumber.of(flags));\n }\n\n hasFlag(flag: number): boolean {\n const flags = this.getFlags();\n return (flags & flag) !== 0;\n }\n\n setFlag(flag: number) {\n const flags = this.getFlags();\n this.setFlags(flags | flag);\n }\n\n clearFlag(flag: number) {\n const flags = this.getFlags();\n this.setFlags(flags & ~flag);\n }\n\n setFlagTo(flag: number, enable: boolean) {\n if (enable) this.setFlag(flag);\n else this.clearFlag(flag);\n }\n}\n\nexport default PDFAnnotation;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFString from 'src/core/objects/PDFString';\n\nclass AppearanceCharacteristics {\n readonly dict: PDFDict;\n\n static fromDict = (dict: PDFDict): AppearanceCharacteristics =>\n new AppearanceCharacteristics(dict);\n\n protected constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n R(): PDFNumber | undefined {\n const R = this.dict.lookup(PDFName.of('R'));\n if (R instanceof PDFNumber) return R;\n return undefined;\n }\n\n BC(): PDFArray | undefined {\n const BC = this.dict.lookup(PDFName.of('BC'));\n if (BC instanceof PDFArray) return BC;\n return undefined;\n }\n\n BG(): PDFArray | undefined {\n const BG = this.dict.lookup(PDFName.of('BG'));\n if (BG instanceof PDFArray) return BG;\n return undefined;\n }\n\n CA(): PDFHexString | PDFString | undefined {\n const CA = this.dict.lookup(PDFName.of('CA'));\n if (CA instanceof PDFHexString || CA instanceof PDFString) return CA;\n return undefined;\n }\n\n RC(): PDFHexString | PDFString | undefined {\n const RC = this.dict.lookup(PDFName.of('RC'));\n if (RC instanceof PDFHexString || RC instanceof PDFString) return RC;\n return undefined;\n }\n\n AC(): PDFHexString | PDFString | undefined {\n const AC = this.dict.lookup(PDFName.of('AC'));\n if (AC instanceof PDFHexString || AC instanceof PDFString) return AC;\n return undefined;\n }\n\n getRotation(): number | undefined {\n return this.R()?.asNumber();\n }\n\n getBorderColor(): number[] | undefined {\n const BC = this.BC();\n\n if (!BC) return undefined;\n\n const components: number[] = [];\n for (let idx = 0, len = BC?.size(); idx < len; idx++) {\n const component = BC.get(idx);\n if (component instanceof PDFNumber) components.push(component.asNumber());\n }\n\n return components;\n }\n\n getBackgroundColor(): number[] | undefined {\n const BG = this.BG();\n\n if (!BG) return undefined;\n\n const components: number[] = [];\n for (let idx = 0, len = BG?.size(); idx < len; idx++) {\n const component = BG.get(idx);\n if (component instanceof PDFNumber) components.push(component.asNumber());\n }\n\n return components;\n }\n\n getCaptions(): { normal?: string; rollover?: string; down?: string } {\n const CA = this.CA();\n const RC = this.RC();\n const AC = this.AC();\n\n return {\n normal: CA?.decodeText(),\n rollover: RC?.decodeText(),\n down: AC?.decodeText(),\n };\n }\n\n setRotation(rotation: number) {\n const R = this.dict.context.obj(rotation);\n this.dict.set(PDFName.of('R'), R);\n }\n\n setBorderColor(color: number[]) {\n const BC = this.dict.context.obj(color);\n this.dict.set(PDFName.of('BC'), BC);\n }\n\n setBackgroundColor(color: number[]) {\n const BG = this.dict.context.obj(color);\n this.dict.set(PDFName.of('BG'), BG);\n }\n\n setCaptions(captions: { normal: string; rollover?: string; down?: string }) {\n const CA = PDFHexString.fromText(captions.normal);\n this.dict.set(PDFName.of('CA'), CA);\n\n if (captions.rollover) {\n const RC = PDFHexString.fromText(captions.rollover);\n this.dict.set(PDFName.of('RC'), RC);\n } else {\n this.dict.delete(PDFName.of('RC'));\n }\n\n if (captions.down) {\n const AC = PDFHexString.fromText(captions.down);\n this.dict.set(PDFName.of('AC'), AC);\n } else {\n this.dict.delete(PDFName.of('AC'));\n }\n }\n}\n\nexport default AppearanceCharacteristics;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport BorderStyle from 'src/core/annotation/BorderStyle';\nimport PDFAnnotation from 'src/core/annotation/PDFAnnotation';\nimport AppearanceCharacteristics from 'src/core/annotation/AppearanceCharacteristics';\n\nclass PDFWidgetAnnotation extends PDFAnnotation {\n static fromDict = (dict: PDFDict): PDFWidgetAnnotation =>\n new PDFWidgetAnnotation(dict);\n\n static create = (context: PDFContext, parent: PDFRef) => {\n const dict = context.obj({\n Type: 'Annot',\n Subtype: 'Widget',\n Rect: [0, 0, 0, 0],\n Parent: parent,\n });\n return new PDFWidgetAnnotation(dict);\n };\n\n MK(): PDFDict | undefined {\n const MK = this.dict.lookup(PDFName.of('MK'));\n if (MK instanceof PDFDict) return MK;\n return undefined;\n }\n\n BS(): PDFDict | undefined {\n const BS = this.dict.lookup(PDFName.of('BS'));\n if (BS instanceof PDFDict) return BS;\n return undefined;\n }\n\n DA(): PDFString | PDFHexString | undefined {\n const da = this.dict.lookup(PDFName.of('DA'));\n if (da instanceof PDFString || da instanceof PDFHexString) return da;\n return undefined;\n }\n\n P(): PDFRef | undefined {\n const P = this.dict.get(PDFName.of('P'));\n if (P instanceof PDFRef) return P;\n return undefined;\n }\n\n setP(page: PDFRef) {\n this.dict.set(PDFName.of('P'), page);\n }\n\n setDefaultAppearance(appearance: string) {\n this.dict.set(PDFName.of('DA'), PDFString.of(appearance));\n }\n\n getDefaultAppearance(): string | undefined {\n const DA = this.DA();\n\n if (DA instanceof PDFHexString) {\n return DA.decodeText();\n }\n\n return DA?.asString();\n }\n\n getAppearanceCharacteristics(): AppearanceCharacteristics | undefined {\n const MK = this.MK();\n if (MK) return AppearanceCharacteristics.fromDict(MK);\n return undefined;\n }\n\n getOrCreateAppearanceCharacteristics(): AppearanceCharacteristics {\n const MK = this.MK();\n if (MK) return AppearanceCharacteristics.fromDict(MK);\n\n const ac = AppearanceCharacteristics.fromDict(this.dict.context.obj({}));\n this.dict.set(PDFName.of('MK'), ac.dict);\n return ac;\n }\n\n getBorderStyle(): BorderStyle | undefined {\n const BS = this.BS();\n if (BS) return BorderStyle.fromDict(BS);\n return undefined;\n }\n\n getOrCreateBorderStyle(): BorderStyle {\n const BS = this.BS();\n if (BS) return BorderStyle.fromDict(BS);\n\n const bs = BorderStyle.fromDict(this.dict.context.obj({}));\n this.dict.set(PDFName.of('BS'), bs.dict);\n return bs;\n }\n\n getOnValue(): PDFName | undefined {\n const normal = this.getAppearances()?.normal;\n\n if (normal instanceof PDFDict) {\n const keys = normal.keys();\n for (let idx = 0, len = keys.length; idx < len; idx++) {\n const key = keys[idx];\n if (key !== PDFName.of('Off')) return key;\n }\n }\n\n return undefined;\n }\n}\n\nexport default PDFWidgetAnnotation;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFWidgetAnnotation from 'src/core/annotation/PDFWidgetAnnotation';\nimport { IndexOutOfBoundsError } from 'src/core/errors';\n\nclass PDFAcroTerminal extends PDFAcroField {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroTerminal(dict, ref);\n\n FT(): PDFName {\n const nameOrRef = this.getInheritableAttribute(PDFName.of('FT'));\n return this.dict.context.lookup(nameOrRef, PDFName);\n }\n\n getWidgets(): PDFWidgetAnnotation[] {\n const kidDicts = this.Kids();\n\n // This field is itself a widget\n if (!kidDicts) return [PDFWidgetAnnotation.fromDict(this.dict)];\n\n // This field's kids are its widgets\n const widgets = new Array(kidDicts.size());\n for (let idx = 0, len = kidDicts.size(); idx < len; idx++) {\n const dict = kidDicts.lookup(idx, PDFDict);\n widgets[idx] = PDFWidgetAnnotation.fromDict(dict);\n }\n\n return widgets;\n }\n\n addWidget(ref: PDFRef) {\n const { Kids } = this.normalizedEntries();\n Kids.push(ref);\n }\n\n removeWidget(idx: number) {\n const kidDicts = this.Kids();\n\n if (!kidDicts) {\n // This field is itself a widget\n if (idx !== 0) throw new IndexOutOfBoundsError(idx, 0, 0);\n this.setKids([]);\n } else {\n // This field's kids are its widgets\n if (idx < 0 || idx > kidDicts.size()) {\n throw new IndexOutOfBoundsError(idx, 0, kidDicts.size());\n }\n kidDicts.remove(idx);\n }\n }\n\n normalizedEntries() {\n let Kids = this.Kids();\n\n // If this field is itself a widget (because it was only rendered once in\n // the document, so the field and widget properties were merged) then we\n // add itself to the `Kids` array. The alternative would be to try\n // splitting apart the widget properties and creating a separate object\n // for them.\n if (!Kids) {\n Kids = this.dict.context.obj([this.ref]);\n this.dict.set(PDFName.of('Kids'), Kids);\n }\n\n return { Kids };\n }\n}\n\nexport default PDFAcroTerminal;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport { IndexOutOfBoundsError } from 'src/core/errors';\n\nclass PDFAcroButton extends PDFAcroTerminal {\n Opt(): PDFString | PDFHexString | PDFArray | undefined {\n return this.dict.lookupMaybe(\n PDFName.of('Opt'),\n PDFString,\n PDFHexString,\n PDFArray,\n );\n }\n\n setOpt(opt: PDFObject[]) {\n this.dict.set(PDFName.of('Opt'), this.dict.context.obj(opt));\n }\n\n getExportValues(): (PDFString | PDFHexString)[] | undefined {\n const opt = this.Opt();\n\n if (!opt) return undefined;\n\n if (opt instanceof PDFString || opt instanceof PDFHexString) {\n return [opt];\n }\n\n const values: (PDFString | PDFHexString)[] = [];\n for (let idx = 0, len = opt.size(); idx < len; idx++) {\n const value = opt.lookup(idx);\n if (value instanceof PDFString || value instanceof PDFHexString) {\n values.push(value);\n }\n }\n\n return values;\n }\n\n removeExportValue(idx: number) {\n const opt = this.Opt();\n\n if (!opt) return;\n\n if (opt instanceof PDFString || opt instanceof PDFHexString) {\n if (idx !== 0) throw new IndexOutOfBoundsError(idx, 0, 0);\n this.setOpt([]);\n } else {\n if (idx < 0 || idx > opt.size()) {\n throw new IndexOutOfBoundsError(idx, 0, opt.size());\n }\n opt.remove(idx);\n }\n }\n\n // Enforce use use of /Opt even if it isn't strictly necessary\n normalizeExportValues() {\n const exportValues = this.getExportValues() ?? [];\n\n const Opt: (PDFString | PDFHexString)[] = [];\n\n const widgets = this.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const exportVal =\n exportValues[idx] ??\n PDFHexString.fromText(widget.getOnValue()?.decodeText() ?? '');\n Opt.push(exportVal);\n }\n\n this.setOpt(Opt);\n }\n\n /**\n * Reuses existing opt if one exists with the same value (assuming\n * `useExistingIdx` is `true`). Returns index of existing (or new) opt.\n */\n addOpt(opt: PDFHexString | PDFString, useExistingOptIdx: boolean): number {\n this.normalizeExportValues();\n\n const optText = opt.decodeText();\n\n let existingIdx: number | undefined;\n if (useExistingOptIdx) {\n const exportValues = this.getExportValues() ?? [];\n for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n const exportVal = exportValues[idx];\n if (exportVal.decodeText() === optText) existingIdx = idx;\n }\n }\n\n const Opt = this.Opt() as PDFArray;\n Opt.push(opt);\n\n return existingIdx ?? Opt.size() - 1;\n }\n\n addWidgetWithOpt(\n widget: PDFRef,\n opt: PDFHexString | PDFString,\n useExistingOptIdx: boolean,\n ) {\n const optIdx = this.addOpt(opt, useExistingOptIdx);\n const apStateValue = PDFName.of(String(optIdx));\n this.addWidget(widget);\n return apStateValue;\n }\n}\n\nexport default PDFAcroButton;\n","import PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport { InvalidAcroFieldValueError } from 'src/core/errors';\n\nclass PDFAcroCheckBox extends PDFAcroButton {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroCheckBox(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Btn',\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroCheckBox(dict, ref);\n };\n\n setValue(value: PDFName) {\n const onValue = this.getOnValue() ?? PDFName.of('Yes');\n if (value !== onValue && value !== PDFName.of('Off')) {\n throw new InvalidAcroFieldValueError();\n }\n\n this.dict.set(PDFName.of('V'), value);\n\n const widgets = this.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n widget.setAppearanceState(state);\n }\n }\n\n getValue(): PDFName {\n const v = this.V();\n if (v instanceof PDFName) return v;\n return PDFName.of('Off');\n }\n\n getOnValue(): PDFName | undefined {\n const [widget] = this.getWidgets();\n return widget?.getOnValue();\n }\n}\n\nexport default PDFAcroCheckBox;\n","const flag = (bitIndex: number) => 1 << bitIndex;\n\n/** From PDF spec table 221 */\nexport enum AcroFieldFlags {\n /**\n * If set, the user may not change the value of the field. Any associated\n * widget annotations will not interact with the user; that is, they will not\n * respond to mouse clicks or change their appearance in response to mouse\n * motions. This flag is useful for fields whose values are computed or\n * imported from a database.\n */\n ReadOnly = flag(1 - 1),\n\n /**\n * If set, the field shall have a value at the time it is exported by a\n * submit-form action (see 12.7.5.2, \"Submit-Form Action\").\n */\n Required = flag(2 - 1),\n\n /**\n * If set, the field shall not be exported by a submit-form action\n * (see 12.7.5.2, \"Submit-Form Action\").\n */\n NoExport = flag(3 - 1),\n}\n\n/** From PDF spec table 226 */\nexport enum AcroButtonFlags {\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at\n * all times; selecting the currently selected button has no effect. If clear,\n * clicking the selected button deselects it, leaving no button selected.\n */\n NoToggleToOff = flag(15 - 1),\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a check\n * box. This flag may be set only if the Pushbutton flag is clear.\n */\n Radio = flag(16 - 1),\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n */\n PushButton = flag(17 - 1),\n\n /**\n * If set, a group of radio buttons within a radio button field that use the\n * same value for the on state will turn on and off in unison; that is if one\n * is checked, they are all checked. If clear, the buttons are mutually\n * exclusive (the same behavior as HTML radio buttons).\n */\n RadiosInUnison = flag(26 - 1),\n}\n\n/** From PDF spec table 228 */\nexport enum AcroTextFlags {\n /**\n * If set, the field may contain multiple lines of text; if clear, the field's\n * text shall be restricted to a single line.\n */\n Multiline = flag(13 - 1),\n\n /**\n * If set, the field is intended for entering a secure password that should\n * not be echoed visibly to the screen. Characters typed from the keyboard\n * shall instead be echoed in some unreadable form, such as asterisks or\n * bullet characters.\n * > NOTE To protect password confidentiality, readers should never store\n * > the value of the text field in the PDF file if this flag is set.\n */\n Password = flag(14 - 1),\n\n /**\n * If set, the text entered in the field represents the pathname of a file\n * whose contents shall be submitted as the value of the field.\n */\n FileSelect = flag(21 - 1),\n\n /**\n * If set, text entered in the field shall not be spell-checked.\n */\n DoNotSpellCheck = flag(23 - 1),\n\n /**\n * If set, the field shall not scroll (horizontally for single-line fields,\n * vertically for multiple-line fields) to accommodate more text than fits\n * within its annotation rectangle. Once the field is full, no further text\n * shall be accepted for interactive form filling; for non-interactive form\n * filling, the filler should take care not to add more character than will\n * visibly fit in the defined area.\n */\n DoNotScroll = flag(24 - 1),\n\n /**\n * May be set only if the MaxLen entry is present in the text field dictionary\n * (see Table 229) and if the Multiline, Password, and FileSelect flags are\n * clear. If set, the field shall be automatically divided into as many\n * equally spaced positions, or combs, as the value of MaxLen, and the text\n * is laid out into those combs.\n */\n Comb = flag(25 - 1),\n\n /**\n * If set, the value of this field shall be a rich text string\n * (see 12.7.3.4, \"Rich Text Strings\"). If the field has a value, the RV\n * entry of the field dictionary (Table 222) shall specify the rich text\n * string.\n */\n RichText = flag(26 - 1),\n}\n\n/** From PDF spec table 230 */\nexport enum AcroChoiceFlags {\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n */\n Combo = flag(18 - 1),\n\n /**\n * If set, the combo box shall include an editable text box as well as a\n * drop-down list; if clear, it shall include only a drop-down list. This\n * flag shall be used only if the Combo flag is set.\n */\n Edit = flag(19 - 1),\n\n /**\n * If set, the field's option items shall be sorted alphabetically. This flag\n * is intended for use by writers, not by readers. Conforming readers shall\n * display the options in the order in which they occur in the Opt array\n * (see Table 231).\n */\n Sort = flag(20 - 1),\n\n /**\n * If set, more than one of the field's option items may be selected\n * simultaneously; if clear, at most one item shall be selected.\n */\n MultiSelect = flag(22 - 1),\n\n /**\n * If set, text entered in the field shall not be spell-checked. This flag\n * shall not be used unless the Combo and Edit flags are both set.\n */\n DoNotSpellCheck = flag(23 - 1),\n\n /**\n * If set, the new value shall be committed as soon as a selection is made\n * (commonly with the pointing device). In this case, supplying a value for\n * a field involves three actions: selecting the field for fill-in,\n * selecting a choice for the fill-in value, and leaving that field, which\n * finalizes or \"commits\" the data choice and triggers any actions associated\n * with the entry or changing of this data. If this flag is on, then\n * processing does not wait for leaving the field action to occur, but\n * immediately proceeds to the third step.\n *\n * This option enables applications to perform an action once a selection is\n * made, without requiring the user to exit the field. If clear, the new\n * value is not committed until the user exits the field.\n */\n CommitOnSelChange = flag(27 - 1),\n}\n","import PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport { AcroChoiceFlags } from 'src/core/acroform/flags';\nimport {\n InvalidAcroFieldValueError,\n MultiSelectValueError,\n} from 'src/core/errors';\n\nclass PDFAcroChoice extends PDFAcroTerminal {\n setValues(values: (PDFString | PDFHexString)[]) {\n if (\n this.hasFlag(AcroChoiceFlags.Combo) &&\n !this.hasFlag(AcroChoiceFlags.Edit) &&\n !this.valuesAreValid(values)\n ) {\n throw new InvalidAcroFieldValueError();\n }\n\n if (values.length === 0) {\n this.dict.delete(PDFName.of('V'));\n }\n if (values.length === 1) {\n this.dict.set(PDFName.of('V'), values[0]);\n }\n if (values.length > 1) {\n if (!this.hasFlag(AcroChoiceFlags.MultiSelect)) {\n throw new MultiSelectValueError();\n }\n this.dict.set(PDFName.of('V'), this.dict.context.obj(values));\n }\n\n this.updateSelectedIndices(values);\n }\n\n valuesAreValid(values: (PDFString | PDFHexString)[]): boolean {\n const options = this.getOptions();\n for (let idx = 0, len = values.length; idx < len; idx++) {\n const val = values[idx].decodeText();\n if (!options.find((o) => val === (o.display || o.value).decodeText())) {\n return false;\n }\n }\n return true;\n }\n\n updateSelectedIndices(values: (PDFString | PDFHexString)[]) {\n if (values.length > 1) {\n const indices = new Array(values.length);\n const options = this.getOptions();\n for (let idx = 0, len = values.length; idx < len; idx++) {\n const val = values[idx].decodeText();\n indices[idx] = options.findIndex(\n (o) => val === (o.display || o.value).decodeText(),\n );\n }\n this.dict.set(PDFName.of('I'), this.dict.context.obj(indices.sort()));\n } else {\n this.dict.delete(PDFName.of('I'));\n }\n }\n\n getValues(): (PDFString | PDFHexString)[] {\n const v = this.V();\n\n if (v instanceof PDFString || v instanceof PDFHexString) return [v];\n\n if (v instanceof PDFArray) {\n const values: (PDFString | PDFHexString)[] = [];\n\n for (let idx = 0, len = v.size(); idx < len; idx++) {\n const value = v.lookup(idx);\n if (value instanceof PDFString || value instanceof PDFHexString) {\n values.push(value);\n }\n }\n\n return values;\n }\n\n return [];\n }\n\n Opt(): PDFArray | PDFString | PDFHexString | undefined {\n return this.dict.lookupMaybe(\n PDFName.of('Opt'),\n PDFString,\n PDFHexString,\n PDFArray,\n );\n }\n\n setOptions(\n options: {\n value: PDFString | PDFHexString;\n display?: PDFString | PDFHexString;\n }[],\n ) {\n const newOpt = new Array(options.length);\n for (let idx = 0, len = options.length; idx < len; idx++) {\n const { value, display } = options[idx];\n newOpt[idx] = this.dict.context.obj([value, display || value]);\n }\n this.dict.set(PDFName.of('Opt'), this.dict.context.obj(newOpt));\n }\n\n getOptions(): {\n value: PDFString | PDFHexString;\n display: PDFString | PDFHexString;\n }[] {\n const Opt = this.Opt();\n\n // Not supposed to happen - Opt _should_ always be `PDFArray | undefined`\n if (Opt instanceof PDFString || Opt instanceof PDFHexString) {\n return [{ value: Opt, display: Opt }];\n }\n\n if (Opt instanceof PDFArray) {\n const res: {\n value: PDFString | PDFHexString;\n display: PDFString | PDFHexString;\n }[] = [];\n\n for (let idx = 0, len = Opt.size(); idx < len; idx++) {\n const item = Opt.lookup(idx);\n\n // If `item` is a string, use that as both the export and text value\n if (item instanceof PDFString || item instanceof PDFHexString) {\n res.push({ value: item, display: item });\n }\n\n // If `item` is an array of one, treat it the same as just a string,\n // if it's an array of two then `item[0]` is the export value and\n // `item[1]` is the text value\n if (item instanceof PDFArray) {\n if (item.size() > 0) {\n const first = item.lookup(0, PDFString, PDFHexString);\n const second = item.lookupMaybe(1, PDFString, PDFHexString);\n res.push({ value: first, display: second || first });\n }\n }\n }\n\n return res;\n }\n\n return [];\n }\n}\n\nexport default PDFAcroChoice;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { AcroChoiceFlags } from 'src/core/acroform/flags';\n\nclass PDFAcroComboBox extends PDFAcroChoice {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroComboBox(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Ch',\n Ff: AcroChoiceFlags.Combo,\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroComboBox(dict, ref);\n };\n}\n\nexport default PDFAcroComboBox;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\n\nclass PDFAcroNonTerminal extends PDFAcroField {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroNonTerminal(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({});\n const ref = context.register(dict);\n return new PDFAcroNonTerminal(dict, ref);\n };\n\n addField(field: PDFRef) {\n const { Kids } = this.normalizedEntries();\n Kids?.push(field);\n }\n\n normalizedEntries() {\n let Kids = this.Kids();\n\n if (!Kids) {\n Kids = this.dict.context.obj([]);\n this.dict.set(PDFName.of('Kids'), Kids);\n }\n\n return { Kids };\n }\n}\n\nexport default PDFAcroNonTerminal;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\n\nclass PDFAcroSignature extends PDFAcroTerminal {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroSignature(dict, ref);\n}\n\nexport default PDFAcroSignature;\n","import PDFContext from 'src/core/PDFContext';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\n\nclass PDFAcroText extends PDFAcroTerminal {\n static fromDict = (dict: PDFDict, ref: PDFRef) => new PDFAcroText(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Tx',\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroText(dict, ref);\n };\n\n MaxLen(): PDFNumber | undefined {\n const maxLen = this.dict.lookup(PDFName.of('MaxLen'));\n if (maxLen instanceof PDFNumber) return maxLen;\n return undefined;\n }\n\n Q(): PDFNumber | undefined {\n const q = this.dict.lookup(PDFName.of('Q'));\n if (q instanceof PDFNumber) return q;\n return undefined;\n }\n\n setMaxLength(maxLength: number) {\n this.dict.set(PDFName.of('MaxLen'), PDFNumber.of(maxLength));\n }\n\n removeMaxLength() {\n this.dict.delete(PDFName.of('MaxLen'));\n }\n\n getMaxLength(): number | undefined {\n return this.MaxLen()?.asNumber();\n }\n\n setQuadding(quadding: 0 | 1 | 2) {\n this.dict.set(PDFName.of('Q'), PDFNumber.of(quadding));\n }\n\n getQuadding(): number | undefined {\n return this.Q()?.asNumber();\n }\n\n setValue(value: PDFHexString | PDFString) {\n this.dict.set(PDFName.of('V'), value);\n\n // const widgets = this.getWidgets();\n // for (let idx = 0, len = widgets.length; idx < len; idx++) {\n // const widget = widgets[idx];\n // const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n // widget.setAppearanceState(state);\n // }\n }\n\n removeValue() {\n this.dict.delete(PDFName.of('V'));\n }\n\n getValue(): PDFString | PDFHexString | undefined {\n const v = this.V();\n if (v instanceof PDFString || v instanceof PDFHexString) return v;\n return undefined;\n }\n}\n\nexport default PDFAcroText;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { AcroButtonFlags } from 'src/core/acroform/flags';\n\nclass PDFAcroPushButton extends PDFAcroButton {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroPushButton(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Btn',\n Ff: AcroButtonFlags.PushButton,\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroPushButton(dict, ref);\n };\n}\n\nexport default PDFAcroPushButton;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFContext from 'src/core/PDFContext';\nimport { AcroButtonFlags } from 'src/core/acroform/flags';\nimport { InvalidAcroFieldValueError } from 'src/core/errors';\n\nclass PDFAcroRadioButton extends PDFAcroButton {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroRadioButton(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Btn',\n Ff: AcroButtonFlags.Radio,\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroRadioButton(dict, ref);\n };\n\n setValue(value: PDFName) {\n const onValues = this.getOnValues();\n if (!onValues.includes(value) && value !== PDFName.of('Off')) {\n throw new InvalidAcroFieldValueError();\n }\n\n this.dict.set(PDFName.of('V'), value);\n\n const widgets = this.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n widget.setAppearanceState(state);\n }\n }\n\n getValue(): PDFName {\n const v = this.V();\n if (v instanceof PDFName) return v;\n return PDFName.of('Off');\n }\n\n getOnValues(): PDFName[] {\n const widgets = this.getWidgets();\n\n const onValues: PDFName[] = [];\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const onValue = widgets[idx].getOnValue();\n if (onValue) onValues.push(onValue);\n }\n\n return onValues;\n }\n}\n\nexport default PDFAcroRadioButton;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nclass PDFAcroListBox extends PDFAcroChoice {\n static fromDict = (dict: PDFDict, ref: PDFRef) =>\n new PDFAcroListBox(dict, ref);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({\n FT: 'Ch',\n Kids: [],\n });\n const ref = context.register(dict);\n return new PDFAcroListBox(dict, ref);\n };\n}\n\nexport default PDFAcroListBox;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport PDFAcroNonTerminal from 'src/core/acroform/PDFAcroNonTerminal';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFAcroSignature from 'src/core/acroform/PDFAcroSignature';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFAcroText from 'src/core/acroform/PDFAcroText';\nimport PDFAcroPushButton from 'src/core/acroform/PDFAcroPushButton';\nimport PDFAcroRadioButton from 'src/core/acroform/PDFAcroRadioButton';\nimport PDFAcroCheckBox from 'src/core/acroform/PDFAcroCheckBox';\nimport PDFAcroComboBox from 'src/core/acroform/PDFAcroComboBox';\nimport PDFAcroListBox from 'src/core/acroform/PDFAcroListBox';\nimport { AcroButtonFlags, AcroChoiceFlags } from 'src/core/acroform/flags';\n\nexport const createPDFAcroFields = (\n kidDicts?: PDFArray,\n): [PDFAcroField, PDFRef][] => {\n if (!kidDicts) return [];\n\n const kids: [PDFAcroField, PDFRef][] = [];\n for (let idx = 0, len = kidDicts.size(); idx < len; idx++) {\n const ref = kidDicts.get(idx);\n const dict = kidDicts.lookup(idx);\n // if (dict instanceof PDFDict) kids.push(PDFAcroField.fromDict(dict));\n if (ref instanceof PDFRef && dict instanceof PDFDict) {\n kids.push([createPDFAcroField(dict, ref), ref]);\n }\n }\n\n return kids;\n};\n\nexport const createPDFAcroField = (\n dict: PDFDict,\n ref: PDFRef,\n): PDFAcroField => {\n const isNonTerminal = isNonTerminalAcroField(dict);\n if (isNonTerminal) return PDFAcroNonTerminal.fromDict(dict, ref);\n return createPDFAcroTerminal(dict, ref);\n};\n\n// TODO: Maybe just check if the dict is *not* a widget? That might be better.\n\n// According to the PDF spec:\n//\n// > A field's children in the hierarchy may also include widget annotations\n// > that define its appearance on the page. A field that has children that\n// > are fields is called a non-terminal field. A field that does not have\n// > children that are fields is called a terminal field.\n//\n// The spec is not entirely clear about how to determine whether a given\n// dictionary represents an acrofield or a widget annotation. So we will assume\n// that a dictionary is an acrofield if it is a member of the `/Kids` array\n// and it contains a `/T` entry (widgets do not have `/T` entries). This isn't\n// a bullet proof solution, because the `/T` entry is technically defined as\n// optional for acrofields by the PDF spec. But in practice all acrofields seem\n// to have a `/T` entry defined.\nconst isNonTerminalAcroField = (dict: PDFDict): boolean => {\n const kids = dict.lookup(PDFName.of('Kids'));\n\n if (kids instanceof PDFArray) {\n for (let idx = 0, len = kids.size(); idx < len; idx++) {\n const kid = kids.lookup(idx);\n const kidIsField = kid instanceof PDFDict && kid.has(PDFName.of('T'));\n if (kidIsField) return true;\n }\n }\n\n return false;\n};\n\nconst createPDFAcroTerminal = (dict: PDFDict, ref: PDFRef): PDFAcroTerminal => {\n const ftNameOrRef = getInheritableAttribute(dict, PDFName.of('FT'));\n const type = dict.context.lookup(ftNameOrRef, PDFName);\n\n if (type === PDFName.of('Btn')) return createPDFAcroButton(dict, ref);\n if (type === PDFName.of('Ch')) return createPDFAcroChoice(dict, ref);\n if (type === PDFName.of('Tx')) return PDFAcroText.fromDict(dict, ref);\n if (type === PDFName.of('Sig')) return PDFAcroSignature.fromDict(dict, ref);\n\n // We should never reach this line. But there are a lot of weird PDFs out\n // there. So, just to be safe, we'll try to handle things gracefully instead\n // of throwing an error.\n return PDFAcroTerminal.fromDict(dict, ref);\n};\n\nconst createPDFAcroButton = (dict: PDFDict, ref: PDFRef): PDFAcroButton => {\n const ffNumberOrRef = getInheritableAttribute(dict, PDFName.of('Ff'));\n const ffNumber = dict.context.lookupMaybe(ffNumberOrRef, PDFNumber);\n const flags = ffNumber?.asNumber() ?? 0;\n\n if (flagIsSet(flags, AcroButtonFlags.PushButton)) {\n return PDFAcroPushButton.fromDict(dict, ref);\n } else if (flagIsSet(flags, AcroButtonFlags.Radio)) {\n return PDFAcroRadioButton.fromDict(dict, ref);\n } else {\n return PDFAcroCheckBox.fromDict(dict, ref);\n }\n};\n\nconst createPDFAcroChoice = (dict: PDFDict, ref: PDFRef): PDFAcroChoice => {\n const ffNumberOrRef = getInheritableAttribute(dict, PDFName.of('Ff'));\n const ffNumber = dict.context.lookupMaybe(ffNumberOrRef, PDFNumber);\n const flags = ffNumber?.asNumber() ?? 0;\n\n if (flagIsSet(flags, AcroChoiceFlags.Combo)) {\n return PDFAcroComboBox.fromDict(dict, ref);\n } else {\n return PDFAcroListBox.fromDict(dict, ref);\n }\n};\n\nconst flagIsSet = (flags: number, flag: number): boolean =>\n (flags & flag) !== 0;\n\nconst getInheritableAttribute = (startNode: PDFDict, name: PDFName) => {\n let attribute: PDFObject | undefined;\n ascend(startNode, (node) => {\n if (!attribute) attribute = node.get(name);\n });\n return attribute;\n};\n\nconst ascend = (startNode: PDFDict, visitor: (node: PDFDict) => any) => {\n visitor(startNode);\n const Parent = startNode.lookupMaybe(PDFName.of('Parent'), PDFDict);\n if (Parent) ascend(Parent, visitor);\n};\n","import PDFContext from 'src/core/PDFContext';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFAcroNonTerminal from 'src/core/acroform/PDFAcroNonTerminal';\nimport {\n createPDFAcroField,\n createPDFAcroFields,\n} from 'src/core/acroform/utils';\n\nclass PDFAcroForm {\n readonly dict: PDFDict;\n\n static fromDict = (dict: PDFDict) => new PDFAcroForm(dict);\n\n static create = (context: PDFContext) => {\n const dict = context.obj({ Fields: [] });\n return new PDFAcroForm(dict);\n };\n\n private constructor(dict: PDFDict) {\n this.dict = dict;\n }\n\n Fields(): PDFArray | undefined {\n const fields = this.dict.lookup(PDFName.of('Fields'));\n if (fields instanceof PDFArray) return fields;\n return undefined;\n }\n\n getFields(): [PDFAcroField, PDFRef][] {\n const { Fields } = this.normalizedEntries();\n\n const fields = new Array(Fields.size());\n for (let idx = 0, len = Fields.size(); idx < len; idx++) {\n const ref = Fields.get(idx) as PDFRef;\n const dict = Fields.lookup(idx, PDFDict);\n fields[idx] = [createPDFAcroField(dict, ref), ref];\n }\n\n return fields;\n }\n\n getAllFields(): [PDFAcroField, PDFRef][] {\n const allFields: [PDFAcroField, PDFRef][] = [];\n\n const pushFields = (fields?: [PDFAcroField, PDFRef][]) => {\n if (!fields) return;\n for (let idx = 0, len = fields.length; idx < len; idx++) {\n const field = fields[idx];\n allFields.push(field);\n const [fieldModel] = field;\n if (fieldModel instanceof PDFAcroNonTerminal) {\n pushFields(createPDFAcroFields(fieldModel.Kids()));\n }\n }\n };\n\n pushFields(this.getFields());\n\n return allFields;\n }\n\n addField(field: PDFRef) {\n const { Fields } = this.normalizedEntries();\n Fields?.push(field);\n }\n\n removeField(field: PDFAcroField): void {\n const parent = field.getParent();\n const fields =\n parent === undefined ? this.normalizedEntries().Fields : parent.Kids();\n\n const index = fields?.indexOf(field.ref);\n if (fields === undefined || index === undefined) {\n throw new Error(\n `Tried to remove inexistent field ${field.getFullyQualifiedName()}`,\n );\n }\n\n fields.remove(index);\n\n if (parent !== undefined && fields.size() === 0) {\n this.removeField(parent);\n }\n }\n\n normalizedEntries() {\n let Fields = this.Fields();\n\n if (!Fields) {\n Fields = this.dict.context.obj([]);\n this.dict.set(PDFName.of('Fields'), Fields);\n }\n\n return { Fields };\n }\n}\n\nexport default PDFAcroForm;\n","import PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\nimport { PDFAcroForm } from 'src/core/acroform';\nimport ViewerPreferences from '../interactive/ViewerPreferences';\n\nclass PDFCatalog extends PDFDict {\n static withContextAndPages = (\n context: PDFContext,\n pages: PDFPageTree | PDFRef,\n ) => {\n const dict = new Map();\n dict.set(PDFName.of('Type'), PDFName.of('Catalog'));\n dict.set(PDFName.of('Pages'), pages);\n return new PDFCatalog(dict, context);\n };\n\n static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n new PDFCatalog(map, context);\n\n Pages(): PDFPageTree {\n return this.lookup(PDFName.of('Pages'), PDFDict) as PDFPageTree;\n }\n\n AcroForm(): PDFDict | undefined {\n return this.lookupMaybe(PDFName.of('AcroForm'), PDFDict);\n }\n\n getAcroForm(): PDFAcroForm | undefined {\n const dict = this.AcroForm();\n if (!dict) return undefined;\n return PDFAcroForm.fromDict(dict);\n }\n\n getOrCreateAcroForm(): PDFAcroForm {\n let acroForm = this.getAcroForm();\n if (!acroForm) {\n acroForm = PDFAcroForm.create(this.context);\n const acroFormRef = this.context.register(acroForm.dict);\n this.set(PDFName.of('AcroForm'), acroFormRef);\n }\n return acroForm;\n }\n\n ViewerPreferences(): PDFDict | undefined {\n return this.lookupMaybe(PDFName.of('ViewerPreferences'), PDFDict);\n }\n\n getViewerPreferences(): ViewerPreferences | undefined {\n const dict = this.ViewerPreferences();\n if (!dict) return undefined;\n return ViewerPreferences.fromDict(dict);\n }\n\n getOrCreateViewerPreferences(): ViewerPreferences {\n let viewerPrefs = this.getViewerPreferences();\n if (!viewerPrefs) {\n viewerPrefs = ViewerPreferences.create(this.context);\n const viewerPrefsRef = this.context.register(viewerPrefs.dict);\n this.set(PDFName.of('ViewerPreferences'), viewerPrefsRef);\n }\n return viewerPrefs;\n }\n\n /**\n * Inserts the given ref as a leaf node of this catalog's page tree at the\n * specified index (zero-based). Also increments the `Count` of each node in\n * the page tree hierarchy to accomodate the new page.\n *\n * Returns the ref of the PDFPageTree node into which `leafRef` was inserted.\n */\n insertLeafNode(leafRef: PDFRef, index: number): PDFRef {\n const pagesRef = this.get(PDFName.of('Pages')) as PDFRef;\n const maybeParentRef = this.Pages().insertLeafNode(leafRef, index);\n return maybeParentRef || pagesRef;\n }\n\n removeLeafNode(index: number): void {\n this.Pages().removeLeafNode(index);\n }\n}\n\nexport default PDFCatalog;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport { InvalidTargetIndexError, CorruptPageTreeError } from 'src/core/errors';\n\nexport type TreeNode = PDFPageTree | PDFPageLeaf;\n\nclass PDFPageTree extends PDFDict {\n static withContext = (context: PDFContext, parent?: PDFRef) => {\n const dict = new Map();\n dict.set(PDFName.of('Type'), PDFName.of('Pages'));\n dict.set(PDFName.of('Kids'), context.obj([]));\n dict.set(PDFName.of('Count'), context.obj(0));\n if (parent) dict.set(PDFName.of('Parent'), parent);\n return new PDFPageTree(dict, context);\n };\n\n static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n new PDFPageTree(map, context);\n\n Parent(): PDFPageTree | undefined {\n return this.lookup(PDFName.of('Parent')) as PDFPageTree | undefined;\n }\n\n Kids(): PDFArray {\n return this.lookup(PDFName.of('Kids'), PDFArray);\n }\n\n Count(): PDFNumber {\n return this.lookup(PDFName.of('Count'), PDFNumber);\n }\n\n pushTreeNode(treeRef: PDFRef): void {\n const Kids = this.Kids();\n Kids.push(treeRef);\n }\n\n pushLeafNode(leafRef: PDFRef): void {\n const Kids = this.Kids();\n this.insertLeafKid(Kids.size(), leafRef);\n }\n\n /**\n * Inserts the given ref as a leaf node of this page tree at the specified\n * index (zero-based). Also increments the `Count` of each page tree in the\n * hierarchy to accomodate the new page.\n *\n * Returns the ref of the PDFPageTree node into which `leafRef` was inserted,\n * or `undefined` if it was inserted into the root node (the PDFPageTree upon\n * which the method was first called).\n */\n insertLeafNode(leafRef: PDFRef, targetIndex: number): PDFRef | undefined {\n const Kids = this.Kids();\n const Count = this.Count().asNumber();\n\n if (targetIndex > Count) {\n throw new InvalidTargetIndexError(targetIndex, Count);\n }\n\n let leafsRemainingUntilTarget = targetIndex;\n for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n if (leafsRemainingUntilTarget === 0) {\n // Insert page and return\n this.insertLeafKid(idx, leafRef);\n return undefined;\n }\n\n const kidRef = Kids.get(idx) as PDFRef;\n const kid = this.context.lookup(kidRef);\n\n if (kid instanceof PDFPageTree) {\n if (kid.Count().asNumber() > leafsRemainingUntilTarget) {\n // Dig in\n return (\n kid.insertLeafNode(leafRef, leafsRemainingUntilTarget) || kidRef\n );\n } else {\n // Move on\n leafsRemainingUntilTarget -= kid.Count().asNumber();\n }\n }\n\n if (kid instanceof PDFPageLeaf) {\n // Move on\n leafsRemainingUntilTarget -= 1;\n }\n }\n\n if (leafsRemainingUntilTarget === 0) {\n // Insert page at the end and return\n this.insertLeafKid(Kids.size(), leafRef);\n return undefined;\n }\n\n // Should never get here if `targetIndex` is valid\n throw new CorruptPageTreeError(targetIndex, 'insertLeafNode');\n }\n\n /**\n * Removes the leaf node at the specified index (zero-based) from this page\n * tree. Also decrements the `Count` of each page tree in the hierarchy to\n * account for the removed page.\n *\n * If `prune` is true, then intermediate tree nodes will be removed from the\n * tree if they contain 0 children after the leaf node is removed.\n */\n removeLeafNode(targetIndex: number, prune = true): void {\n const Kids = this.Kids();\n const Count = this.Count().asNumber();\n\n if (targetIndex >= Count) {\n throw new InvalidTargetIndexError(targetIndex, Count);\n }\n\n let leafsRemainingUntilTarget = targetIndex;\n for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n const kidRef = Kids.get(idx) as PDFRef;\n const kid = this.context.lookup(kidRef);\n\n if (kid instanceof PDFPageTree) {\n if (kid.Count().asNumber() > leafsRemainingUntilTarget) {\n // Dig in\n kid.removeLeafNode(leafsRemainingUntilTarget, prune);\n if (prune && kid.Kids().size() === 0) Kids.remove(idx);\n return;\n } else {\n // Move on\n leafsRemainingUntilTarget -= kid.Count().asNumber();\n }\n }\n\n if (kid instanceof PDFPageLeaf) {\n if (leafsRemainingUntilTarget === 0) {\n // Remove page and return\n this.removeKid(idx);\n return;\n } else {\n // Move on\n leafsRemainingUntilTarget -= 1;\n }\n }\n }\n\n // Should never get here if `targetIndex` is valid\n throw new CorruptPageTreeError(targetIndex, 'removeLeafNode');\n }\n\n ascend(visitor: (node: PDFPageTree) => any): void {\n visitor(this);\n const Parent = this.Parent();\n if (Parent) Parent.ascend(visitor);\n }\n\n /** Performs a Post-Order traversal of this page tree */\n traverse(visitor: (node: TreeNode, ref: PDFRef) => any): void {\n const Kids = this.Kids();\n for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n const kidRef = Kids.get(idx) as PDFRef;\n const kid = this.context.lookup(kidRef) as TreeNode;\n if (kid instanceof PDFPageTree) kid.traverse(visitor);\n visitor(kid, kidRef);\n }\n }\n\n private insertLeafKid(kidIdx: number, leafRef: PDFRef): void {\n const Kids = this.Kids();\n\n this.ascend((node) => {\n const newCount = node.Count().asNumber() + 1;\n node.set(PDFName.of('Count'), PDFNumber.of(newCount));\n });\n\n Kids.insert(kidIdx, leafRef);\n }\n\n private removeKid(kidIdx: number): void {\n const Kids = this.Kids();\n\n const kid = Kids.lookup(kidIdx);\n if (kid instanceof PDFPageLeaf) {\n this.ascend((node) => {\n const newCount = node.Count().asNumber() - 1;\n node.set(PDFName.of('Count'), PDFNumber.of(newCount));\n });\n }\n\n Kids.remove(kidIdx);\n }\n}\n\nexport default PDFPageTree;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsDigit = new Uint8Array(256);\n\nIsDigit[CharCodes.Zero] = 1;\nIsDigit[CharCodes.One] = 1;\nIsDigit[CharCodes.Two] = 1;\nIsDigit[CharCodes.Three] = 1;\nIsDigit[CharCodes.Four] = 1;\nIsDigit[CharCodes.Five] = 1;\nIsDigit[CharCodes.Six] = 1;\nIsDigit[CharCodes.Seven] = 1;\nIsDigit[CharCodes.Eight] = 1;\nIsDigit[CharCodes.Nine] = 1;\n\nexport const IsNumericPrefix = new Uint8Array(256);\n\nIsNumericPrefix[CharCodes.Period] = 1;\nIsNumericPrefix[CharCodes.Plus] = 1;\nIsNumericPrefix[CharCodes.Minus] = 1;\n\nexport const IsNumeric = new Uint8Array(256);\n\nfor (let idx = 0, len = 256; idx < len; idx++) {\n IsNumeric[idx] = IsDigit[idx] || IsNumericPrefix[idx] ? 1 : 0;\n}\n","import { NumberParsingError } from 'src/core/errors';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDigit, IsNumeric } from 'src/core/syntax/Numeric';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\nimport { charFromCode } from 'src/utils';\n\nconst { Newline, CarriageReturn } = CharCodes;\n\n// TODO: Throw error if eof is reached before finishing object parse...\nclass BaseParser {\n protected readonly bytes: ByteStream;\n protected readonly capNumbers: boolean;\n\n constructor(bytes: ByteStream, capNumbers = false) {\n this.bytes = bytes;\n this.capNumbers = capNumbers;\n }\n\n protected parseRawInt(): number {\n let value = '';\n\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (!IsDigit[byte]) break;\n value += charFromCode(this.bytes.next());\n }\n\n const numberValue = Number(value);\n\n if (!value || !isFinite(numberValue)) {\n throw new NumberParsingError(this.bytes.position(), value);\n }\n\n return numberValue;\n }\n\n // TODO: Maybe handle exponential format?\n // TODO: Compare performance of string concatenation to charFromCode(...bytes)\n protected parseRawNumber(): number {\n let value = '';\n\n // Parse integer-part, the leading (+ | - | . | 0-9)\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (!IsNumeric[byte]) break;\n value += charFromCode(this.bytes.next());\n if (byte === CharCodes.Period) break;\n }\n\n // Parse decimal-part, the trailing (0-9)\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (!IsDigit[byte]) break;\n value += charFromCode(this.bytes.next());\n }\n\n const numberValue = Number(value);\n\n if (!value || !isFinite(numberValue)) {\n throw new NumberParsingError(this.bytes.position(), value);\n }\n\n if (numberValue > Number.MAX_SAFE_INTEGER) {\n if (this.capNumbers) {\n const msg = `Parsed number that is too large for some PDF readers: ${value}, using Number.MAX_SAFE_INTEGER instead.`;\n console.warn(msg);\n return Number.MAX_SAFE_INTEGER;\n } else {\n const msg = `Parsed number that is too large for some PDF readers: ${value}, not capping.`;\n console.warn(msg);\n }\n }\n\n return numberValue;\n }\n\n protected skipWhitespace(): void {\n while (!this.bytes.done() && IsWhitespace[this.bytes.peek()]) {\n this.bytes.next();\n }\n }\n\n protected skipLine(): void {\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (byte === Newline || byte === CarriageReturn) return;\n this.bytes.next();\n }\n }\n\n protected skipComment(): boolean {\n if (this.bytes.peek() !== CharCodes.Percent) return false;\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (byte === Newline || byte === CarriageReturn) return true;\n this.bytes.next();\n }\n return true;\n }\n\n protected skipWhitespaceAndComments(): void {\n this.skipWhitespace();\n while (this.skipComment()) this.skipWhitespace();\n }\n\n protected matchKeyword(keyword: number[]): boolean {\n const initialOffset = this.bytes.offset();\n for (let idx = 0, len = keyword.length; idx < len; idx++) {\n if (this.bytes.done() || this.bytes.next() !== keyword[idx]) {\n this.bytes.moveTo(initialOffset);\n return false;\n }\n }\n return true;\n }\n}\n\nexport default BaseParser;\n","import { NextByteAssertionError } from 'src/core/errors';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport { decodePDFRawStream } from 'src/core/streams/decode';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\n// TODO: See how line/col tracking affects performance\nclass ByteStream {\n static of = (bytes: Uint8Array) => new ByteStream(bytes);\n\n static fromPDFRawStream = (rawStream: PDFRawStream) =>\n ByteStream.of(decodePDFRawStream(rawStream).decode());\n\n private readonly bytes: Uint8Array;\n private readonly length: number;\n\n private idx = 0;\n private line = 0;\n private column = 0;\n\n constructor(bytes: Uint8Array) {\n this.bytes = bytes;\n this.length = this.bytes.length;\n }\n\n moveTo(offset: number): void {\n this.idx = offset;\n }\n\n next(): number {\n const byte = this.bytes[this.idx++];\n if (byte === CharCodes.Newline) {\n this.line += 1;\n this.column = 0;\n } else {\n this.column += 1;\n }\n return byte;\n }\n\n assertNext(expected: number): number {\n if (this.peek() !== expected) {\n throw new NextByteAssertionError(this.position(), expected, this.peek());\n }\n return this.next();\n }\n\n peek(): number {\n return this.bytes[this.idx];\n }\n\n peekAhead(steps: number) {\n return this.bytes[this.idx + steps];\n }\n\n peekAt(offset: number) {\n return this.bytes[offset];\n }\n\n done(): boolean {\n return this.idx >= this.length;\n }\n\n offset(): number {\n return this.idx;\n }\n\n slice(start: number, end: number): Uint8Array {\n return this.bytes.slice(start, end);\n }\n\n position(): { line: number; column: number; offset: number } {\n return { line: this.line, column: this.column, offset: this.idx };\n }\n}\n\nexport default ByteStream;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nconst { Space, CarriageReturn, Newline } = CharCodes;\n\nconst stream = [\n CharCodes.s,\n CharCodes.t,\n CharCodes.r,\n CharCodes.e,\n CharCodes.a,\n CharCodes.m,\n];\n\nconst endstream = [\n CharCodes.e,\n CharCodes.n,\n CharCodes.d,\n CharCodes.s,\n CharCodes.t,\n CharCodes.r,\n CharCodes.e,\n CharCodes.a,\n CharCodes.m,\n];\n\nexport const Keywords = {\n header: [\n CharCodes.Percent,\n CharCodes.P,\n CharCodes.D,\n CharCodes.F,\n CharCodes.Dash,\n ],\n eof: [\n CharCodes.Percent,\n CharCodes.Percent,\n CharCodes.E,\n CharCodes.O,\n CharCodes.F,\n ],\n obj: [CharCodes.o, CharCodes.b, CharCodes.j],\n endobj: [\n CharCodes.e,\n CharCodes.n,\n CharCodes.d,\n CharCodes.o,\n CharCodes.b,\n CharCodes.j,\n ],\n xref: [CharCodes.x, CharCodes.r, CharCodes.e, CharCodes.f],\n trailer: [\n CharCodes.t,\n CharCodes.r,\n CharCodes.a,\n CharCodes.i,\n CharCodes.l,\n CharCodes.e,\n CharCodes.r,\n ],\n startxref: [\n CharCodes.s,\n CharCodes.t,\n CharCodes.a,\n CharCodes.r,\n CharCodes.t,\n CharCodes.x,\n CharCodes.r,\n CharCodes.e,\n CharCodes.f,\n ],\n true: [CharCodes.t, CharCodes.r, CharCodes.u, CharCodes.e],\n false: [CharCodes.f, CharCodes.a, CharCodes.l, CharCodes.s, CharCodes.e],\n null: [CharCodes.n, CharCodes.u, CharCodes.l, CharCodes.l],\n stream,\n streamEOF1: [...stream, Space, CarriageReturn, Newline],\n streamEOF2: [...stream, CarriageReturn, Newline],\n streamEOF3: [...stream, CarriageReturn],\n streamEOF4: [...stream, Newline],\n endstream,\n EOF1endstream: [CarriageReturn, Newline, ...endstream],\n EOF2endstream: [CarriageReturn, ...endstream],\n EOF3endstream: [Newline, ...endstream],\n};\n","import {\n PDFObjectParsingError,\n PDFStreamParsingError,\n Position,\n UnbalancedParenthesisError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport BaseParser from 'src/core/parser/BaseParser';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFCatalog from 'src/core/structures/PDFCatalog';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDelimiter } from 'src/core/syntax/Delimiters';\nimport { Keywords } from 'src/core/syntax/Keywords';\nimport { IsDigit, IsNumeric } from 'src/core/syntax/Numeric';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\nimport { charFromCode } from 'src/utils';\n\n// TODO: Throw error if eof is reached before finishing object parse...\nclass PDFObjectParser extends BaseParser {\n static forBytes = (\n bytes: Uint8Array,\n context: PDFContext,\n capNumbers?: boolean,\n ) => new PDFObjectParser(ByteStream.of(bytes), context, capNumbers);\n\n static forByteStream = (\n byteStream: ByteStream,\n context: PDFContext,\n capNumbers = false,\n ) => new PDFObjectParser(byteStream, context, capNumbers);\n\n protected readonly context: PDFContext;\n\n constructor(byteStream: ByteStream, context: PDFContext, capNumbers = false) {\n super(byteStream, capNumbers);\n this.context = context;\n }\n\n // TODO: Is it possible to reduce duplicate parsing for ref lookaheads?\n parseObject(): PDFObject {\n this.skipWhitespaceAndComments();\n\n if (this.matchKeyword(Keywords.true)) return PDFBool.True;\n if (this.matchKeyword(Keywords.false)) return PDFBool.False;\n if (this.matchKeyword(Keywords.null)) return PDFNull;\n\n const byte = this.bytes.peek();\n\n if (\n byte === CharCodes.LessThan &&\n this.bytes.peekAhead(1) === CharCodes.LessThan\n ) {\n return this.parseDictOrStream();\n }\n if (byte === CharCodes.LessThan) return this.parseHexString();\n if (byte === CharCodes.LeftParen) return this.parseString();\n if (byte === CharCodes.ForwardSlash) return this.parseName();\n if (byte === CharCodes.LeftSquareBracket) return this.parseArray();\n if (IsNumeric[byte]) return this.parseNumberOrRef();\n\n throw new PDFObjectParsingError(this.bytes.position(), byte);\n }\n\n protected parseNumberOrRef(): PDFNumber | PDFRef {\n const firstNum = this.parseRawNumber();\n this.skipWhitespaceAndComments();\n\n const lookaheadStart = this.bytes.offset();\n if (IsDigit[this.bytes.peek()]) {\n const secondNum = this.parseRawNumber();\n this.skipWhitespaceAndComments();\n if (this.bytes.peek() === CharCodes.R) {\n this.bytes.assertNext(CharCodes.R);\n return PDFRef.of(firstNum, secondNum);\n }\n }\n\n this.bytes.moveTo(lookaheadStart);\n return PDFNumber.of(firstNum);\n }\n\n // TODO: Maybe update PDFHexString.of() logic to remove whitespace and validate input?\n protected parseHexString(): PDFHexString {\n let value = '';\n\n this.bytes.assertNext(CharCodes.LessThan);\n while (!this.bytes.done() && this.bytes.peek() !== CharCodes.GreaterThan) {\n value += charFromCode(this.bytes.next());\n }\n this.bytes.assertNext(CharCodes.GreaterThan);\n\n return PDFHexString.of(value);\n }\n\n protected parseString(): PDFString {\n let nestingLvl = 0;\n let isEscaped = false;\n let value = '';\n\n while (!this.bytes.done()) {\n const byte = this.bytes.next();\n value += charFromCode(byte);\n\n // Check for unescaped parenthesis\n if (!isEscaped) {\n if (byte === CharCodes.LeftParen) nestingLvl += 1;\n if (byte === CharCodes.RightParen) nestingLvl -= 1;\n }\n\n // Track whether current character is being escaped or not\n if (byte === CharCodes.BackSlash) {\n isEscaped = !isEscaped;\n } else if (isEscaped) {\n isEscaped = false;\n }\n\n // Once (if) the unescaped parenthesis balance out, return their contents\n if (nestingLvl === 0) {\n // Remove the outer parens so they aren't part of the contents\n return PDFString.of(value.substring(1, value.length - 1));\n }\n }\n\n throw new UnbalancedParenthesisError(this.bytes.position());\n }\n\n // TODO: Compare performance of string concatenation to charFromCode(...bytes)\n // TODO: Maybe preallocate small Uint8Array if can use charFromCode?\n protected parseName(): PDFName {\n this.bytes.assertNext(CharCodes.ForwardSlash);\n\n let name = '';\n while (!this.bytes.done()) {\n const byte = this.bytes.peek();\n if (IsWhitespace[byte] || IsDelimiter[byte]) break;\n name += charFromCode(byte);\n this.bytes.next();\n }\n\n return PDFName.of(name);\n }\n\n protected parseArray(): PDFArray {\n this.bytes.assertNext(CharCodes.LeftSquareBracket);\n this.skipWhitespaceAndComments();\n\n const pdfArray = PDFArray.withContext(this.context);\n while (this.bytes.peek() !== CharCodes.RightSquareBracket) {\n const element = this.parseObject();\n pdfArray.push(element);\n this.skipWhitespaceAndComments();\n }\n this.bytes.assertNext(CharCodes.RightSquareBracket);\n return pdfArray;\n }\n\n protected parseDict(): PDFDict {\n this.bytes.assertNext(CharCodes.LessThan);\n this.bytes.assertNext(CharCodes.LessThan);\n this.skipWhitespaceAndComments();\n\n const dict: DictMap = new Map();\n\n while (\n !this.bytes.done() &&\n this.bytes.peek() !== CharCodes.GreaterThan &&\n this.bytes.peekAhead(1) !== CharCodes.GreaterThan\n ) {\n const key = this.parseName();\n const value = this.parseObject();\n dict.set(key, value);\n this.skipWhitespaceAndComments();\n }\n\n this.skipWhitespaceAndComments();\n this.bytes.assertNext(CharCodes.GreaterThan);\n this.bytes.assertNext(CharCodes.GreaterThan);\n\n const Type = dict.get(PDFName.of('Type'));\n\n if (Type === PDFName.of('Catalog')) {\n return PDFCatalog.fromMapWithContext(dict, this.context);\n } else if (Type === PDFName.of('Pages')) {\n return PDFPageTree.fromMapWithContext(dict, this.context);\n } else if (Type === PDFName.of('Page')) {\n return PDFPageLeaf.fromMapWithContext(dict, this.context);\n } else {\n return PDFDict.fromMapWithContext(dict, this.context);\n }\n }\n\n protected parseDictOrStream(): PDFDict | PDFStream {\n const startPos = this.bytes.position();\n\n const dict = this.parseDict();\n\n this.skipWhitespaceAndComments();\n\n if (\n !this.matchKeyword(Keywords.streamEOF1) &&\n !this.matchKeyword(Keywords.streamEOF2) &&\n !this.matchKeyword(Keywords.streamEOF3) &&\n !this.matchKeyword(Keywords.streamEOF4) &&\n !this.matchKeyword(Keywords.stream)\n ) {\n return dict;\n }\n\n const start = this.bytes.offset();\n let end: number;\n\n const Length = dict.get(PDFName.of('Length'));\n if (Length instanceof PDFNumber) {\n end = start + Length.asNumber();\n this.bytes.moveTo(end);\n this.skipWhitespaceAndComments();\n if (!this.matchKeyword(Keywords.endstream)) {\n this.bytes.moveTo(start);\n end = this.findEndOfStreamFallback(startPos);\n }\n } else {\n end = this.findEndOfStreamFallback(startPos);\n }\n\n const contents = this.bytes.slice(start, end);\n\n return PDFRawStream.of(dict, contents);\n }\n\n protected findEndOfStreamFallback(startPos: Position) {\n // Move to end of stream, while handling nested streams\n let nestingLvl = 1;\n let end = this.bytes.offset();\n\n while (!this.bytes.done()) {\n end = this.bytes.offset();\n\n if (this.matchKeyword(Keywords.stream)) {\n nestingLvl += 1;\n } else if (\n this.matchKeyword(Keywords.EOF1endstream) ||\n this.matchKeyword(Keywords.EOF2endstream) ||\n this.matchKeyword(Keywords.EOF3endstream) ||\n this.matchKeyword(Keywords.endstream)\n ) {\n nestingLvl -= 1;\n } else {\n this.bytes.next();\n }\n\n if (nestingLvl === 0) break;\n }\n\n if (nestingLvl !== 0) throw new PDFStreamParsingError(startPos);\n\n return end;\n }\n}\n\nexport default PDFObjectParser;\n","import { ReparseError } from 'src/core/errors';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFObjectParser from 'src/core/parser/PDFObjectParser';\nimport { waitForTick } from 'src/utils';\n\nclass PDFObjectStreamParser extends PDFObjectParser {\n static forStream = (\n rawStream: PDFRawStream,\n shouldWaitForTick?: () => boolean,\n ) => new PDFObjectStreamParser(rawStream, shouldWaitForTick);\n\n private alreadyParsed: boolean;\n private readonly shouldWaitForTick: () => boolean;\n private readonly firstOffset: number;\n private readonly objectCount: number;\n\n constructor(rawStream: PDFRawStream, shouldWaitForTick?: () => boolean) {\n super(ByteStream.fromPDFRawStream(rawStream), rawStream.dict.context);\n\n const { dict } = rawStream;\n\n this.alreadyParsed = false;\n this.shouldWaitForTick = shouldWaitForTick || (() => false);\n this.firstOffset = dict.lookup(PDFName.of('First'), PDFNumber).asNumber();\n this.objectCount = dict.lookup(PDFName.of('N'), PDFNumber).asNumber();\n }\n\n async parseIntoContext(): Promise {\n if (this.alreadyParsed) {\n throw new ReparseError('PDFObjectStreamParser', 'parseIntoContext');\n }\n this.alreadyParsed = true;\n\n const offsetsAndObjectNumbers = this.parseOffsetsAndObjectNumbers();\n for (let idx = 0, len = offsetsAndObjectNumbers.length; idx < len; idx++) {\n const { objectNumber, offset } = offsetsAndObjectNumbers[idx];\n this.bytes.moveTo(this.firstOffset + offset);\n const object = this.parseObject();\n const ref = PDFRef.of(objectNumber, 0);\n this.context.assign(ref, object);\n if (this.shouldWaitForTick()) await waitForTick();\n }\n }\n\n private parseOffsetsAndObjectNumbers(): {\n objectNumber: number;\n offset: number;\n }[] {\n const offsetsAndObjectNumbers = [];\n for (let idx = 0, len = this.objectCount; idx < len; idx++) {\n this.skipWhitespaceAndComments();\n const objectNumber = this.parseRawInt();\n\n this.skipWhitespaceAndComments();\n const offset = this.parseRawInt();\n\n offsetsAndObjectNumbers.push({ objectNumber, offset });\n }\n return offsetsAndObjectNumbers;\n }\n}\n\nexport default PDFObjectStreamParser;\n","import { ReparseError } from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFContext from 'src/core/PDFContext';\n\nexport interface Entry {\n ref: PDFRef;\n offset: number;\n deleted: boolean;\n inObjectStream: boolean;\n}\n\nclass PDFXRefStreamParser {\n static forStream = (rawStream: PDFRawStream) =>\n new PDFXRefStreamParser(rawStream);\n\n private alreadyParsed: boolean;\n\n private readonly dict: PDFDict;\n private readonly context: PDFContext;\n private readonly bytes: ByteStream;\n private readonly subsections: {\n firstObjectNumber: number;\n length: number;\n }[];\n private readonly byteWidths: [number, number, number];\n\n constructor(rawStream: PDFRawStream) {\n this.alreadyParsed = false;\n\n this.dict = rawStream.dict;\n this.bytes = ByteStream.fromPDFRawStream(rawStream);\n this.context = this.dict.context;\n\n const Size = this.dict.lookup(PDFName.of('Size'), PDFNumber);\n\n const Index = this.dict.lookup(PDFName.of('Index'));\n if (Index instanceof PDFArray) {\n this.subsections = [];\n for (let idx = 0, len = Index.size(); idx < len; idx += 2) {\n const firstObjectNumber = Index.lookup(idx + 0, PDFNumber).asNumber();\n const length = Index.lookup(idx + 1, PDFNumber).asNumber();\n this.subsections.push({ firstObjectNumber, length });\n }\n } else {\n this.subsections = [{ firstObjectNumber: 0, length: Size.asNumber() }];\n }\n\n const W = this.dict.lookup(PDFName.of('W'), PDFArray);\n this.byteWidths = [-1, -1, -1];\n for (let idx = 0, len = W.size(); idx < len; idx++) {\n this.byteWidths[idx] = W.lookup(idx, PDFNumber).asNumber();\n }\n }\n\n parseIntoContext(): Entry[] {\n if (this.alreadyParsed) {\n throw new ReparseError('PDFXRefStreamParser', 'parseIntoContext');\n }\n this.alreadyParsed = true;\n\n this.context.trailerInfo = {\n Root: this.dict.get(PDFName.of('Root')),\n Encrypt: this.dict.get(PDFName.of('Encrypt')),\n Info: this.dict.get(PDFName.of('Info')),\n ID: this.dict.get(PDFName.of('ID')),\n };\n\n const entries = this.parseEntries();\n\n // for (let idx = 0, len = entries.length; idx < len; idx++) {\n // const entry = entries[idx];\n // if (entry.deleted) this.context.delete(entry.ref);\n // }\n\n return entries;\n }\n\n private parseEntries(): Entry[] {\n const entries = [];\n const [typeFieldWidth, offsetFieldWidth, genFieldWidth] = this.byteWidths;\n\n for (\n let subsectionIdx = 0, subsectionLen = this.subsections.length;\n subsectionIdx < subsectionLen;\n subsectionIdx++\n ) {\n const { firstObjectNumber, length } = this.subsections[subsectionIdx];\n\n for (let objIdx = 0; objIdx < length; objIdx++) {\n let type = 0;\n for (let idx = 0, len = typeFieldWidth; idx < len; idx++) {\n type = (type << 8) | this.bytes.next();\n }\n\n let offset = 0;\n for (let idx = 0, len = offsetFieldWidth; idx < len; idx++) {\n offset = (offset << 8) | this.bytes.next();\n }\n\n let generationNumber = 0;\n for (let idx = 0, len = genFieldWidth; idx < len; idx++) {\n generationNumber = (generationNumber << 8) | this.bytes.next();\n }\n\n // When the `type` field is absent, it defaults to 1\n if (typeFieldWidth === 0) type = 1;\n\n const objectNumber = firstObjectNumber + objIdx;\n const entry = {\n ref: PDFRef.of(objectNumber, generationNumber),\n offset,\n deleted: type === 0,\n inObjectStream: type === 2,\n };\n\n entries.push(entry);\n }\n }\n\n return entries;\n }\n}\n\nexport default PDFXRefStreamParser;\n","import PDFCrossRefSection from 'src/core/document/PDFCrossRefSection';\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport {\n MissingKeywordError,\n MissingPDFHeaderError,\n PDFInvalidObjectParsingError,\n ReparseError,\n StalledParserError,\n} from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFInvalidObject from 'src/core/objects/PDFInvalidObject';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFObjectParser from 'src/core/parser/PDFObjectParser';\nimport PDFObjectStreamParser from 'src/core/parser/PDFObjectStreamParser';\nimport PDFXRefStreamParser from 'src/core/parser/PDFXRefStreamParser';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { Keywords } from 'src/core/syntax/Keywords';\nimport { IsDigit } from 'src/core/syntax/Numeric';\nimport { waitForTick } from 'src/utils';\n\nclass PDFParser extends PDFObjectParser {\n static forBytesWithOptions = (\n pdfBytes: Uint8Array,\n objectsPerTick?: number,\n throwOnInvalidObject?: boolean,\n capNumbers?: boolean,\n ) =>\n new PDFParser(pdfBytes, objectsPerTick, throwOnInvalidObject, capNumbers);\n\n private readonly objectsPerTick: number;\n private readonly throwOnInvalidObject: boolean;\n private alreadyParsed = false;\n private parsedObjects = 0;\n\n constructor(\n pdfBytes: Uint8Array,\n objectsPerTick = Infinity,\n throwOnInvalidObject = false,\n capNumbers = false,\n ) {\n super(ByteStream.of(pdfBytes), PDFContext.create(), capNumbers);\n this.objectsPerTick = objectsPerTick;\n this.throwOnInvalidObject = throwOnInvalidObject;\n }\n\n async parseDocument(): Promise {\n if (this.alreadyParsed) {\n throw new ReparseError('PDFParser', 'parseDocument');\n }\n this.alreadyParsed = true;\n\n this.context.header = this.parseHeader();\n\n let prevOffset;\n while (!this.bytes.done()) {\n await this.parseDocumentSection();\n const offset = this.bytes.offset();\n if (offset === prevOffset) {\n throw new StalledParserError(this.bytes.position());\n }\n prevOffset = offset;\n }\n\n this.maybeRecoverRoot();\n\n if (this.context.lookup(PDFRef.of(0))) {\n console.warn('Removing parsed object: 0 0 R');\n this.context.delete(PDFRef.of(0));\n }\n\n return this.context;\n }\n\n private maybeRecoverRoot(): void {\n const isValidCatalog = (obj?: PDFObject) =>\n obj instanceof PDFDict &&\n obj.lookup(PDFName.of('Type')) === PDFName.of('Catalog');\n\n const catalog = this.context.lookup(this.context.trailerInfo.Root);\n\n if (!isValidCatalog(catalog)) {\n const indirectObjects = this.context.enumerateIndirectObjects();\n for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n const [ref, object] = indirectObjects[idx];\n if (isValidCatalog(object)) {\n this.context.trailerInfo.Root = ref;\n }\n }\n }\n }\n\n private parseHeader(): PDFHeader {\n while (!this.bytes.done()) {\n if (this.matchKeyword(Keywords.header)) {\n const major = this.parseRawInt();\n this.bytes.assertNext(CharCodes.Period);\n const minor = this.parseRawInt();\n const header = PDFHeader.forVersion(major, minor);\n this.skipBinaryHeaderComment();\n return header;\n }\n this.bytes.next();\n }\n\n throw new MissingPDFHeaderError(this.bytes.position());\n }\n\n private parseIndirectObjectHeader(): PDFRef {\n this.skipWhitespaceAndComments();\n const objectNumber = this.parseRawInt();\n\n this.skipWhitespaceAndComments();\n const generationNumber = this.parseRawInt();\n\n this.skipWhitespaceAndComments();\n if (!this.matchKeyword(Keywords.obj)) {\n throw new MissingKeywordError(this.bytes.position(), Keywords.obj);\n }\n\n return PDFRef.of(objectNumber, generationNumber);\n }\n\n private matchIndirectObjectHeader(): boolean {\n const initialOffset = this.bytes.offset();\n try {\n this.parseIndirectObjectHeader();\n return true;\n } catch (e) {\n this.bytes.moveTo(initialOffset);\n return false;\n }\n }\n\n private shouldWaitForTick = () => {\n this.parsedObjects += 1;\n return this.parsedObjects % this.objectsPerTick === 0;\n };\n\n private async parseIndirectObject(): Promise {\n const ref = this.parseIndirectObjectHeader();\n\n this.skipWhitespaceAndComments();\n const object = this.parseObject();\n\n this.skipWhitespaceAndComments();\n // if (!this.matchKeyword(Keywords.endobj)) {\n // throw new MissingKeywordError(this.bytes.position(), Keywords.endobj);\n // }\n\n // TODO: Log a warning if this fails...\n this.matchKeyword(Keywords.endobj);\n\n if (\n object instanceof PDFRawStream &&\n object.dict.lookup(PDFName.of('Type')) === PDFName.of('ObjStm')\n ) {\n await PDFObjectStreamParser.forStream(\n object,\n this.shouldWaitForTick,\n ).parseIntoContext();\n } else if (\n object instanceof PDFRawStream &&\n object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef')\n ) {\n PDFXRefStreamParser.forStream(object).parseIntoContext();\n } else {\n this.context.assign(ref, object);\n }\n\n return ref;\n }\n\n // TODO: Improve and clean this up\n private tryToParseInvalidIndirectObject() {\n const startPos = this.bytes.position();\n\n const msg = `Trying to parse invalid object: ${JSON.stringify(startPos)})`;\n if (this.throwOnInvalidObject) throw new Error(msg);\n console.warn(msg);\n\n const ref = this.parseIndirectObjectHeader();\n\n console.warn(`Invalid object ref: ${ref}`);\n\n this.skipWhitespaceAndComments();\n const start = this.bytes.offset();\n\n let failed = true;\n while (!this.bytes.done()) {\n if (this.matchKeyword(Keywords.endobj)) {\n failed = false;\n }\n if (!failed) break;\n this.bytes.next();\n }\n\n if (failed) throw new PDFInvalidObjectParsingError(startPos);\n\n const end = this.bytes.offset() - Keywords.endobj.length;\n\n const object = PDFInvalidObject.of(this.bytes.slice(start, end));\n this.context.assign(ref, object);\n\n return ref;\n }\n\n private async parseIndirectObjects(): Promise {\n this.skipWhitespaceAndComments();\n\n while (!this.bytes.done() && IsDigit[this.bytes.peek()]) {\n const initialOffset = this.bytes.offset();\n\n try {\n await this.parseIndirectObject();\n } catch (e) {\n // TODO: Add tracing/logging mechanism to track when this happens!\n this.bytes.moveTo(initialOffset);\n this.tryToParseInvalidIndirectObject();\n }\n this.skipWhitespaceAndComments();\n\n // TODO: Can this be done only when needed, to avoid harming performance?\n this.skipJibberish();\n\n if (this.shouldWaitForTick()) await waitForTick();\n }\n }\n\n private maybeParseCrossRefSection(): PDFCrossRefSection | void {\n this.skipWhitespaceAndComments();\n if (!this.matchKeyword(Keywords.xref)) return;\n this.skipWhitespaceAndComments();\n\n let objectNumber = -1;\n const xref = PDFCrossRefSection.createEmpty();\n\n while (!this.bytes.done() && IsDigit[this.bytes.peek()]) {\n const firstInt = this.parseRawInt();\n this.skipWhitespaceAndComments();\n\n const secondInt = this.parseRawInt();\n this.skipWhitespaceAndComments();\n\n const byte = this.bytes.peek();\n if (byte === CharCodes.n || byte === CharCodes.f) {\n const ref = PDFRef.of(objectNumber, secondInt);\n if (this.bytes.next() === CharCodes.n) {\n xref.addEntry(ref, firstInt);\n } else {\n // this.context.delete(ref);\n xref.addDeletedEntry(ref, firstInt);\n }\n objectNumber += 1;\n } else {\n objectNumber = firstInt;\n }\n this.skipWhitespaceAndComments();\n }\n\n return xref;\n }\n\n private maybeParseTrailerDict(): void {\n this.skipWhitespaceAndComments();\n if (!this.matchKeyword(Keywords.trailer)) return;\n this.skipWhitespaceAndComments();\n\n const dict = this.parseDict();\n\n const { context } = this;\n context.trailerInfo = {\n Root: dict.get(PDFName.of('Root')) || context.trailerInfo.Root,\n Encrypt: dict.get(PDFName.of('Encrypt')) || context.trailerInfo.Encrypt,\n Info: dict.get(PDFName.of('Info')) || context.trailerInfo.Info,\n ID: dict.get(PDFName.of('ID')) || context.trailerInfo.ID,\n };\n }\n\n private maybeParseTrailer(): PDFTrailer | void {\n this.skipWhitespaceAndComments();\n if (!this.matchKeyword(Keywords.startxref)) return;\n this.skipWhitespaceAndComments();\n\n const offset = this.parseRawInt();\n\n this.skipWhitespace();\n this.matchKeyword(Keywords.eof);\n this.skipWhitespaceAndComments();\n this.matchKeyword(Keywords.eof);\n this.skipWhitespaceAndComments();\n\n return PDFTrailer.forLastCrossRefSectionOffset(offset);\n }\n\n private async parseDocumentSection(): Promise {\n await this.parseIndirectObjects();\n this.maybeParseCrossRefSection();\n this.maybeParseTrailerDict();\n this.maybeParseTrailer();\n\n // TODO: Can this be done only when needed, to avoid harming performance?\n this.skipJibberish();\n }\n\n /**\n * This operation is not necessary for valid PDF files. But some invalid PDFs\n * contain jibberish in between indirect objects. This method is designed to\n * skip past that jibberish, should it exist, until it reaches the next\n * indirect object header, an xref table section, or the file trailer.\n */\n private skipJibberish(): void {\n this.skipWhitespaceAndComments();\n while (!this.bytes.done()) {\n const initialOffset = this.bytes.offset();\n const byte = this.bytes.peek();\n const isAlphaNumeric = byte >= CharCodes.Space && byte <= CharCodes.Tilde;\n if (isAlphaNumeric) {\n if (\n this.matchKeyword(Keywords.xref) ||\n this.matchKeyword(Keywords.trailer) ||\n this.matchKeyword(Keywords.startxref) ||\n this.matchIndirectObjectHeader()\n ) {\n this.bytes.moveTo(initialOffset);\n break;\n }\n }\n this.bytes.next();\n }\n }\n\n /**\n * Skips the binary comment following a PDF header. The specification\n * defines this binary comment (section 7.5.2 File Header) as a sequence of 4\n * or more bytes that are 128 or greater, and which are preceded by a \"%\".\n *\n * This would imply that to strip out this binary comment, we could check for\n * a sequence of bytes starting with \"%\", and remove all subsequent bytes that\n * are 128 or greater. This works for many documents that properly comply with\n * the spec. But in the wild, there are PDFs that omit the leading \"%\", and\n * include bytes that are less than 128 (e.g. 0 or 1). So in order to parse\n * these headers correctly, we just throw out all bytes leading up to the\n * first indirect object header.\n */\n private skipBinaryHeaderComment(): void {\n this.skipWhitespaceAndComments();\n try {\n const initialOffset = this.bytes.offset();\n this.parseIndirectObjectHeader();\n this.bytes.moveTo(initialOffset);\n } catch (e) {\n this.bytes.next();\n this.skipWhitespaceAndComments();\n }\n }\n}\n\nexport default PDFParser;\n","const flag = (bitIndex: number) => 1 << bitIndex;\n\n/** From PDF spec table 165 */\nexport enum AnnotationFlags {\n /**\n * If set, do not display the annotation if it does not belong to one of the\n * standard annotation types and no annotation handler is available. If clear,\n * display such an unknown annotation using an appearance stream specified by\n * its appearance dictionary, if any.\n */\n Invisible = flag(1 - 1),\n\n /**\n * If set, do not display or print the annotation or allow it to interact with\n * the user, regardless of its annotation type or whether an annotation\n * handler is available.\n *\n * In cases where screen space is limited, the ability to hide and show\n * annotations selectively can be used in combination with appearance streams\n * to display auxiliary pop-up information similar in function to online help\n * systems.\n */\n Hidden = flag(2 - 1),\n\n /**\n * If set, print the annotation when the page is printed. If clear, never\n * print the annotation, regardless of whether it is displayed on the screen.\n *\n * This can be useful for annotations representing interactive pushbuttons,\n * which would serve no meaningful purpose on the printed page.\n */\n Print = flag(3 - 1),\n\n /**\n * If set, do not scale the annotation’s appearance to match the magnification\n * of the page. The location of the annotation on the page (defined by the\n * upper-left corner of its annotation rectangle) shall remain fixed,\n * regardless of the page magnification.\n */\n NoZoom = flag(4 - 1),\n\n /**\n * If set, do not rotate the annotation’s appearance to match the rotation of\n * the page. The upper-left corner of the annotation rectangle shall remain in\n * a fixed location on the page, regardless of the page rotation.\n */\n NoRotate = flag(5 - 1),\n\n /**\n * If set, do not display the annotation on the screen or allow it to interact\n * with the user. The annotation may be printed (depending on the setting of\n * the Print flag) but should be considered hidden for purposes of on-screen\n * display and user interaction.\n */\n NoView = flag(6 - 1),\n\n /**\n * If set, do not allow the annotation to interact with the user. The\n * annotation may be displayed or printed (depending on the settings of the\n * NoView and Print flags) but should not respond to mouse clicks or change\n * its appearance in response to mouse motions.\n *\n * This flag shall be ignored for widget annotations; its function is\n * subsumed by the ReadOnly flag of the associated form field.\n */\n ReadOnly = flag(7 - 1),\n\n /**\n * If set, do not allow the annotation to be deleted or its properties\n * (including position and size) to be modified by the user. However, this\n * flag does not restrict changes to the annotation’s contents, such as the\n * value of a form field.\n */\n Locked = flag(8 - 1),\n\n /**\n * If set, invert the interpretation of the NoView flag for certain events.\n *\n * A typical use is to have an annotation that appears only when a mouse\n * cursor is held over it.\n */\n ToggleNoView = flag(9 - 1),\n\n /**\n * If set, do not allow the contents of the annotation to be modified by the\n * user. This flag does not restrict deletion of the annotation or changes to\n * other annotation properties, such as position and size.\n */\n LockedContents = flag(10 - 1),\n}\n","import { PDFName, PDFNumber } from 'src/core';\n\nexport const asPDFName = (name: string | PDFName) =>\n name instanceof PDFName ? name : PDFName.of(name);\n\nexport const asPDFNumber = (num: number | PDFNumber) =>\n num instanceof PDFNumber ? num : PDFNumber.of(num);\n\nexport const asNumber = (num: number | PDFNumber) =>\n num instanceof PDFNumber ? num.asNumber() : num;\n","import { assertIs, error } from 'src/utils';\n\nexport enum RotationTypes {\n Degrees = 'degrees',\n Radians = 'radians',\n}\n\nexport interface Radians {\n type: RotationTypes.Radians;\n angle: number;\n}\n\nexport interface Degrees {\n type: RotationTypes.Degrees;\n angle: number;\n}\n\nexport type Rotation = Radians | Degrees;\n\nexport const radians = (radianAngle: number): Radians => {\n assertIs(radianAngle, 'radianAngle', ['number']);\n return { type: RotationTypes.Radians, angle: radianAngle };\n};\n\nexport const degrees = (degreeAngle: number): Degrees => {\n assertIs(degreeAngle, 'degreeAngle', ['number']);\n return { type: RotationTypes.Degrees, angle: degreeAngle };\n};\n\nconst { Radians, Degrees } = RotationTypes;\n\nexport const degreesToRadians = (degree: number) => (degree * Math.PI) / 180;\nexport const radiansToDegrees = (radian: number) => (radian * 180) / Math.PI;\n\n// prettier-ignore\nexport const toRadians = (rotation: Rotation) => \n rotation.type === Radians ? rotation.angle\n : rotation.type === Degrees ? degreesToRadians(rotation.angle)\n : error(`Invalid rotation: ${JSON.stringify(rotation)}`);\n\n// prettier-ignore\nexport const toDegrees = (rotation: Rotation) => \n rotation.type === Radians ? radiansToDegrees(rotation.angle)\n : rotation.type === Degrees ? rotation.angle\n : error(`Invalid rotation: ${JSON.stringify(rotation)}`);\n\nexport const reduceRotation = (degreeAngle = 0) => {\n const quadrants = (degreeAngle / 90) % 4;\n if (quadrants === 0) return 0;\n if (quadrants === 1) return 90;\n if (quadrants === 2) return 180;\n if (quadrants === 3) return 270;\n return 0; // `degreeAngle` is not a multiple of 90\n};\n\nexport const adjustDimsForRotation = (\n dims: { width: number; height: number },\n degreeAngle = 0,\n) => {\n const rotation = reduceRotation(degreeAngle);\n return rotation === 90 || rotation === 270\n ? { width: dims.height, height: dims.width }\n : { width: dims.width, height: dims.height };\n};\n\nexport const rotateRectangle = (\n rectangle: {\n x: number;\n y: number;\n width: number;\n height: number;\n },\n borderWidth = 0,\n degreeAngle = 0,\n) => {\n const { x, y, width: w, height: h } = rectangle;\n\n const r = reduceRotation(degreeAngle);\n const b = borderWidth / 2;\n\n // prettier-ignore\n if (r === 0) return { x: x - b, y: y - b, width: w, height: h };\n else if (r === 90) return { x: x - h + b, y: y - b, width: h, height: w };\n else if (r === 180) return { x: x - w + b, y: y - h + b, width: w, height: h };\n else if (r === 270) return { x: x - b, y: y - w + b, width: h, height: w };\n else return { x: x - b, y: y - b, width: w, height: h };\n};\n","import { asNumber, asPDFName, asPDFNumber } from 'src/api/objects';\nimport { degreesToRadians } from 'src/api/rotations';\nimport {\n PDFHexString,\n PDFName,\n PDFNumber,\n PDFOperator,\n PDFOperatorNames as Ops,\n} from 'src/core';\n\n/* ==================== Clipping Path Operators ==================== */\n\nexport const clip = () => PDFOperator.of(Ops.ClipNonZero);\nexport const clipEvenOdd = () => PDFOperator.of(Ops.ClipEvenOdd);\n\n/* ==================== Graphics State Operators ==================== */\n\nconst { cos, sin, tan } = Math;\n\nexport const concatTransformationMatrix = (\n a: number | PDFNumber,\n b: number | PDFNumber,\n c: number | PDFNumber,\n d: number | PDFNumber,\n e: number | PDFNumber,\n f: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.ConcatTransformationMatrix, [\n asPDFNumber(a),\n asPDFNumber(b),\n asPDFNumber(c),\n asPDFNumber(d),\n asPDFNumber(e),\n asPDFNumber(f),\n ]);\n\nexport const translate = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n concatTransformationMatrix(1, 0, 0, 1, xPos, yPos);\n\nexport const scale = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n concatTransformationMatrix(xPos, 0, 0, yPos, 0, 0);\n\nexport const rotateRadians = (angle: number | PDFNumber) =>\n concatTransformationMatrix(\n cos(asNumber(angle)),\n sin(asNumber(angle)),\n -sin(asNumber(angle)),\n cos(asNumber(angle)),\n 0,\n 0,\n );\n\nexport const rotateDegrees = (angle: number | PDFNumber) =>\n rotateRadians(degreesToRadians(asNumber(angle)));\n\nexport const skewRadians = (\n xSkewAngle: number | PDFNumber,\n ySkewAngle: number | PDFNumber,\n) =>\n concatTransformationMatrix(\n 1,\n tan(asNumber(xSkewAngle)),\n tan(asNumber(ySkewAngle)),\n 1,\n 0,\n 0,\n );\n\nexport const skewDegrees = (\n xSkewAngle: number | PDFNumber,\n ySkewAngle: number | PDFNumber,\n) =>\n skewRadians(\n degreesToRadians(asNumber(xSkewAngle)),\n degreesToRadians(asNumber(ySkewAngle)),\n );\n\nexport const setDashPattern = (\n dashArray: (number | PDFNumber)[],\n dashPhase: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.SetLineDashPattern, [\n `[${dashArray.map(asPDFNumber).join(' ')}]`,\n asPDFNumber(dashPhase),\n ]);\n\nexport const restoreDashPattern = () => setDashPattern([], 0);\n\nexport enum LineCapStyle {\n Butt = 0,\n Round = 1,\n Projecting = 2,\n}\n\nexport const setLineCap = (style: LineCapStyle) =>\n PDFOperator.of(Ops.SetLineCapStyle, [asPDFNumber(style)]);\n\nexport enum LineJoinStyle {\n Miter = 0,\n Round = 1,\n Bevel = 2,\n}\n\nexport const setLineJoin = (style: LineJoinStyle) =>\n PDFOperator.of(Ops.SetLineJoinStyle, [asPDFNumber(style)]);\n\nexport const setGraphicsState = (state: string | PDFName) =>\n PDFOperator.of(Ops.SetGraphicsStateParams, [asPDFName(state)]);\n\nexport const pushGraphicsState = () => PDFOperator.of(Ops.PushGraphicsState);\n\nexport const popGraphicsState = () => PDFOperator.of(Ops.PopGraphicsState);\n\nexport const setLineWidth = (width: number | PDFNumber) =>\n PDFOperator.of(Ops.SetLineWidth, [asPDFNumber(width)]);\n\n/* ==================== Path Construction Operators ==================== */\n\nexport const appendBezierCurve = (\n x1: number | PDFNumber,\n y1: number | PDFNumber,\n x2: number | PDFNumber,\n y2: number | PDFNumber,\n x3: number | PDFNumber,\n y3: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.AppendBezierCurve, [\n asPDFNumber(x1),\n asPDFNumber(y1),\n asPDFNumber(x2),\n asPDFNumber(y2),\n asPDFNumber(x3),\n asPDFNumber(y3),\n ]);\n\nexport const appendQuadraticCurve = (\n x1: number | PDFNumber,\n y1: number | PDFNumber,\n x2: number | PDFNumber,\n y2: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.CurveToReplicateInitialPoint, [\n asPDFNumber(x1),\n asPDFNumber(y1),\n asPDFNumber(x2),\n asPDFNumber(y2),\n ]);\n\nexport const closePath = () => PDFOperator.of(Ops.ClosePath);\n\nexport const moveTo = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n PDFOperator.of(Ops.MoveTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n\nexport const lineTo = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n PDFOperator.of(Ops.LineTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n\n/**\n * @param xPos x coordinate for the lower left corner of the rectangle\n * @param yPos y coordinate for the lower left corner of the rectangle\n * @param width width of the rectangle\n * @param height height of the rectangle\n */\nexport const rectangle = (\n xPos: number | PDFNumber,\n yPos: number | PDFNumber,\n width: number | PDFNumber,\n height: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.AppendRectangle, [\n asPDFNumber(xPos),\n asPDFNumber(yPos),\n asPDFNumber(width),\n asPDFNumber(height),\n ]);\n\n/**\n * @param xPos x coordinate for the lower left corner of the square\n * @param yPos y coordinate for the lower left corner of the square\n * @param size width and height of the square\n */\nexport const square = (xPos: number, yPos: number, size: number) =>\n rectangle(xPos, yPos, size, size);\n\n/* ==================== Path Painting Operators ==================== */\n\nexport const stroke = () => PDFOperator.of(Ops.StrokePath);\n\nexport const fill = () => PDFOperator.of(Ops.FillNonZero);\n\nexport const fillAndStroke = () => PDFOperator.of(Ops.FillNonZeroAndStroke);\n\nexport const endPath = () => PDFOperator.of(Ops.EndPath);\n\n/* ==================== Text Positioning Operators ==================== */\n\nexport const nextLine = () => PDFOperator.of(Ops.NextLine);\n\nexport const moveText = (x: number | PDFNumber, y: number | PDFNumber) =>\n PDFOperator.of(Ops.MoveText, [asPDFNumber(x), asPDFNumber(y)]);\n\n/* ==================== Text Showing Operators ==================== */\n\nexport const showText = (text: PDFHexString) =>\n PDFOperator.of(Ops.ShowText, [text]);\n\n/* ==================== Text State Operators ==================== */\n\nexport const beginText = () => PDFOperator.of(Ops.BeginText);\nexport const endText = () => PDFOperator.of(Ops.EndText);\n\nexport const setFontAndSize = (\n name: string | PDFName,\n size: number | PDFNumber,\n) => PDFOperator.of(Ops.SetFontAndSize, [asPDFName(name), asPDFNumber(size)]);\n\nexport const setCharacterSpacing = (spacing: number | PDFNumber) =>\n PDFOperator.of(Ops.SetCharacterSpacing, [asPDFNumber(spacing)]);\n\nexport const setWordSpacing = (spacing: number | PDFNumber) =>\n PDFOperator.of(Ops.SetWordSpacing, [asPDFNumber(spacing)]);\n\n/** @param squeeze horizontal character spacing */\nexport const setCharacterSqueeze = (squeeze: number | PDFNumber) =>\n PDFOperator.of(Ops.SetTextHorizontalScaling, [asPDFNumber(squeeze)]);\n\nexport const setLineHeight = (lineHeight: number | PDFNumber) =>\n PDFOperator.of(Ops.SetTextLineHeight, [asPDFNumber(lineHeight)]);\n\nexport const setTextRise = (rise: number | PDFNumber) =>\n PDFOperator.of(Ops.SetTextRise, [asPDFNumber(rise)]);\n\nexport enum TextRenderingMode {\n Fill = 0,\n Outline = 1,\n FillAndOutline = 2,\n Invisible = 3,\n FillAndClip = 4,\n OutlineAndClip = 5,\n FillAndOutlineAndClip = 6,\n Clip = 7,\n}\n\nexport const setTextRenderingMode = (mode: TextRenderingMode) =>\n PDFOperator.of(Ops.SetTextRenderingMode, [asPDFNumber(mode)]);\n\nexport const setTextMatrix = (\n a: number | PDFNumber,\n b: number | PDFNumber,\n c: number | PDFNumber,\n d: number | PDFNumber,\n e: number | PDFNumber,\n f: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.SetTextMatrix, [\n asPDFNumber(a),\n asPDFNumber(b),\n asPDFNumber(c),\n asPDFNumber(d),\n asPDFNumber(e),\n asPDFNumber(f),\n ]);\n\nexport const rotateAndSkewTextRadiansAndTranslate = (\n rotationAngle: number | PDFNumber,\n xSkewAngle: number | PDFNumber,\n ySkewAngle: number | PDFNumber,\n x: number | PDFNumber,\n y: number | PDFNumber,\n) =>\n setTextMatrix(\n cos(asNumber(rotationAngle)),\n sin(asNumber(rotationAngle)) + tan(asNumber(xSkewAngle)),\n -sin(asNumber(rotationAngle)) + tan(asNumber(ySkewAngle)),\n cos(asNumber(rotationAngle)),\n x,\n y,\n );\n\nexport const rotateAndSkewTextDegreesAndTranslate = (\n rotationAngle: number | PDFNumber,\n xSkewAngle: number | PDFNumber,\n ySkewAngle: number | PDFNumber,\n x: number | PDFNumber,\n y: number | PDFNumber,\n) =>\n rotateAndSkewTextRadiansAndTranslate(\n degreesToRadians(asNumber(rotationAngle)),\n degreesToRadians(asNumber(xSkewAngle)),\n degreesToRadians(asNumber(ySkewAngle)),\n x,\n y,\n );\n\n/* ==================== XObject Operator ==================== */\n\nexport const drawObject = (name: string | PDFName) =>\n PDFOperator.of(Ops.DrawObject, [asPDFName(name)]);\n\n/* ==================== Color Operators ==================== */\n\nexport const setFillingGrayscaleColor = (gray: number | PDFNumber) =>\n PDFOperator.of(Ops.NonStrokingColorGray, [asPDFNumber(gray)]);\n\nexport const setStrokingGrayscaleColor = (gray: number | PDFNumber) =>\n PDFOperator.of(Ops.StrokingColorGray, [asPDFNumber(gray)]);\n\nexport const setFillingRgbColor = (\n red: number | PDFNumber,\n green: number | PDFNumber,\n blue: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.NonStrokingColorRgb, [\n asPDFNumber(red),\n asPDFNumber(green),\n asPDFNumber(blue),\n ]);\n\nexport const setStrokingRgbColor = (\n red: number | PDFNumber,\n green: number | PDFNumber,\n blue: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.StrokingColorRgb, [\n asPDFNumber(red),\n asPDFNumber(green),\n asPDFNumber(blue),\n ]);\n\nexport const setFillingCmykColor = (\n cyan: number | PDFNumber,\n magenta: number | PDFNumber,\n yellow: number | PDFNumber,\n key: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.NonStrokingColorCmyk, [\n asPDFNumber(cyan),\n asPDFNumber(magenta),\n asPDFNumber(yellow),\n asPDFNumber(key),\n ]);\n\nexport const setStrokingCmykColor = (\n cyan: number | PDFNumber,\n magenta: number | PDFNumber,\n yellow: number | PDFNumber,\n key: number | PDFNumber,\n) =>\n PDFOperator.of(Ops.StrokingColorCmyk, [\n asPDFNumber(cyan),\n asPDFNumber(magenta),\n asPDFNumber(yellow),\n asPDFNumber(key),\n ]);\n\n/* ==================== Marked Content Operators ==================== */\n\nexport const beginMarkedContent = (tag: string | PDFName) =>\n PDFOperator.of(Ops.BeginMarkedContent, [asPDFName(tag)]);\n\nexport const endMarkedContent = () => PDFOperator.of(Ops.EndMarkedContent);\n","import {\n setFillingCmykColor,\n setFillingGrayscaleColor,\n setFillingRgbColor,\n setStrokingCmykColor,\n setStrokingGrayscaleColor,\n setStrokingRgbColor,\n} from 'src/api/operators';\nimport { assertRange, error } from 'src/utils';\n\nexport enum ColorTypes {\n Grayscale = 'Grayscale',\n RGB = 'RGB',\n CMYK = 'CMYK',\n}\n\nexport interface Grayscale {\n type: ColorTypes.Grayscale;\n gray: number;\n}\n\nexport interface RGB {\n type: ColorTypes.RGB;\n red: number;\n green: number;\n blue: number;\n}\n\nexport interface CMYK {\n type: ColorTypes.CMYK;\n cyan: number;\n magenta: number;\n yellow: number;\n key: number;\n}\n\nexport type Color = Grayscale | RGB | CMYK;\n\nexport const grayscale = (gray: number): Grayscale => {\n assertRange(gray, 'gray', 0.0, 1.0);\n return { type: ColorTypes.Grayscale, gray };\n};\n\nexport const rgb = (red: number, green: number, blue: number): RGB => {\n assertRange(red, 'red', 0, 1);\n assertRange(green, 'green', 0, 1);\n assertRange(blue, 'blue', 0, 1);\n return { type: ColorTypes.RGB, red, green, blue };\n};\n\nexport const cmyk = (\n cyan: number,\n magenta: number,\n yellow: number,\n key: number,\n): CMYK => {\n assertRange(cyan, 'cyan', 0, 1);\n assertRange(magenta, 'magenta', 0, 1);\n assertRange(yellow, 'yellow', 0, 1);\n assertRange(key, 'key', 0, 1);\n return { type: ColorTypes.CMYK, cyan, magenta, yellow, key };\n};\n\nconst { Grayscale, RGB, CMYK } = ColorTypes;\n\n// prettier-ignore\nexport const setFillingColor = (color: Color) => \n color.type === Grayscale ? setFillingGrayscaleColor(color.gray)\n : color.type === RGB ? setFillingRgbColor(color.red, color.green, color.blue)\n : color.type === CMYK ? setFillingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n : error(`Invalid color: ${JSON.stringify(color)}`);\n\n// prettier-ignore\nexport const setStrokingColor = (color: Color) => \n color.type === Grayscale ? setStrokingGrayscaleColor(color.gray)\n : color.type === RGB ? setStrokingRgbColor(color.red, color.green, color.blue)\n : color.type === CMYK ? setStrokingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n : error(`Invalid color: ${JSON.stringify(color)}`);\n\n// prettier-ignore\nexport const componentsToColor = (comps?: number[], scale = 1) => (\n comps?.length === 1 ? grayscale(\n comps[0] * scale,\n )\n : comps?.length === 3 ? rgb(\n comps[0] * scale, \n comps[1] * scale, \n comps[2] * scale,\n )\n : comps?.length === 4 ? cmyk(\n comps[0] * scale, \n comps[1] * scale, \n comps[2] * scale, \n comps[3] * scale,\n )\n : undefined\n);\n\n// prettier-ignore\nexport const colorToComponents = (color: Color) =>\n color.type === Grayscale ? [color.gray]\n : color.type === RGB ? [color.red, color.green, color.blue]\n : color.type === CMYK ? [color.cyan, color.magenta, color.yellow, color.key]\n : error(`Invalid color: ${JSON.stringify(color)}`);\n","export enum TextAlignment {\n Left = 0,\n Center = 1,\n Right = 2,\n}\n","// Originated from pdfkit Copyright (c) 2014 Devon Govett\n// https://github.com/foliojs/pdfkit/blob/1e62e6ffe24b378eb890df507a47610f4c4a7b24/lib/path.js\n// MIT LICENSE\n// Updated for pdf-lib & TypeScript by Jeremy Messenger\n\nimport {\n appendBezierCurve,\n appendQuadraticCurve,\n closePath,\n lineTo,\n moveTo,\n} from 'src/api/operators';\nimport { PDFOperator } from 'src/core';\n\nlet cx: number = 0;\nlet cy: number = 0;\nlet px: number | null = 0;\nlet py: number | null = 0;\nlet sx: number = 0;\nlet sy: number = 0;\n\nconst parameters = new Map([\n ['A', 7],\n ['a', 7],\n ['C', 6],\n ['c', 6],\n ['H', 1],\n ['h', 1],\n ['L', 2],\n ['l', 2],\n ['M', 2],\n ['m', 2],\n ['Q', 4],\n ['q', 4],\n ['S', 4],\n ['s', 4],\n ['T', 2],\n ['t', 2],\n ['V', 1],\n ['v', 1],\n ['Z', 0],\n ['z', 0],\n]);\n\ninterface Cmd {\n cmd?: string;\n args: number[];\n}\n\nconst parse = (path: string) => {\n let cmd;\n const ret: Cmd[] = [];\n let args: number[] = [];\n let curArg = '';\n let foundDecimal = false;\n let params = 0;\n\n for (const c of path) {\n if (parameters.has(c)) {\n params = parameters.get(c)!;\n if (cmd) {\n // save existing command\n if (curArg.length > 0) {\n args[args.length] = +curArg;\n }\n ret[ret.length] = { cmd, args };\n\n args = [];\n curArg = '';\n foundDecimal = false;\n }\n\n cmd = c;\n } else if (\n [' ', ','].includes(c) ||\n (c === '-' && curArg.length > 0 && curArg[curArg.length - 1] !== 'e') ||\n (c === '.' && foundDecimal)\n ) {\n if (curArg.length === 0) {\n continue;\n }\n\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = { cmd, args };\n args = [+curArg];\n\n // handle assumed commands\n if (cmd === 'M') {\n cmd = 'L';\n }\n if (cmd === 'm') {\n cmd = 'l';\n }\n } else {\n args[args.length] = +curArg;\n }\n\n foundDecimal = c === '.';\n\n // fix for negative numbers or repeated decimals with no delimeter between commands\n curArg = ['-', '.'].includes(c) ? c : '';\n } else {\n curArg += c;\n if (c === '.') {\n foundDecimal = true;\n }\n }\n }\n\n // add the last command\n if (curArg.length > 0) {\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = { cmd, args };\n args = [+curArg];\n\n // handle assumed commands\n if (cmd === 'M') {\n cmd = 'L';\n }\n if (cmd === 'm') {\n cmd = 'l';\n }\n } else {\n args[args.length] = +curArg;\n }\n }\n\n ret[ret.length] = { cmd, args };\n\n return ret;\n};\n\nconst apply = (commands: Cmd[]) => {\n // current point, control point, and subpath starting point\n cx = cy = px = py = sx = sy = 0;\n\n // run the commands\n let cmds: PDFOperator[] = [];\n for (let i = 0; i < commands.length; i++) {\n const c = commands[i];\n if (c.cmd && typeof runners[c.cmd] === 'function') {\n const cmd = runners[c.cmd](c.args);\n if (Array.isArray(cmd)) {\n cmds = cmds.concat(cmd);\n } else {\n cmds.push(cmd);\n }\n }\n }\n return cmds;\n};\n\ninterface CmdToOperatorsMap {\n [cmd: string]: (a: number[]) => PDFOperator | PDFOperator[];\n}\n\nconst runners: CmdToOperatorsMap = {\n M(a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return moveTo(cx, cy);\n },\n\n m(a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return moveTo(cx, cy);\n },\n\n C(a) {\n cx = a[4];\n cy = a[5];\n px = a[2];\n py = a[3];\n return appendBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]);\n },\n\n c(a) {\n const cmd = appendBezierCurve(\n a[0] + cx,\n a[1] + cy,\n a[2] + cx,\n a[3] + cy,\n a[4] + cx,\n a[5] + cy,\n );\n px = cx + a[2];\n py = cy + a[3];\n cx += a[4];\n cy += a[5];\n return cmd;\n },\n\n S(a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n\n const cmd = appendBezierCurve(\n cx - (px - cx),\n cy - (py - cy),\n a[0],\n a[1],\n a[2],\n a[3],\n );\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return cmd;\n },\n\n s(a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n }\n\n const cmd = appendBezierCurve(\n cx - (px - cx),\n cy - (py - cy),\n cx + a[0],\n cy + a[1],\n cx + a[2],\n cy + a[3],\n );\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n cy += a[3];\n return cmd;\n },\n\n Q(a) {\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return appendQuadraticCurve(a[0], a[1], cx, cy);\n },\n\n q(a) {\n const cmd = appendQuadraticCurve(\n a[0] + cx,\n a[1] + cy,\n a[2] + cx,\n a[3] + cy,\n );\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n cy += a[3];\n return cmd;\n },\n\n T(a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n\n const cmd = appendQuadraticCurve(px, py, a[0], a[1]);\n px = cx - (px - cx);\n py = cy - (py - cy);\n cx = a[0];\n cy = a[1];\n return cmd;\n },\n\n t(a) {\n if (px === null || py === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n\n const cmd = appendQuadraticCurve(px, py, cx + a[0], cy + a[1]);\n cx += a[0];\n cy += a[1];\n return cmd;\n },\n\n A(a) {\n const cmds = solveArc(cx, cy, a);\n cx = a[5];\n cy = a[6];\n return cmds;\n },\n\n a(a) {\n a[5] += cx;\n a[6] += cy;\n const cmds = solveArc(cx, cy, a);\n cx = a[5];\n cy = a[6];\n return cmds;\n },\n\n L(a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n l(a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n H(a) {\n cx = a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n h(a) {\n cx += a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n V(a) {\n cy = a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n v(a) {\n cy += a[0];\n px = py = null;\n return lineTo(cx, cy);\n },\n\n Z() {\n const cmd = closePath();\n cx = sx;\n cy = sy;\n return cmd;\n },\n\n z() {\n const cmd = closePath();\n cx = sx;\n cy = sy;\n return cmd;\n },\n};\n\nconst solveArc = (x: number, y: number, coords: number[]) => {\n const [rx, ry, rot, large, sweep, ex, ey] = coords;\n const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n\n const cmds: PDFOperator[] = [];\n for (const seg of segs) {\n const bez = segmentToBezier(...seg);\n cmds.push(appendBezierCurve(...bez));\n }\n return cmds;\n};\n\ntype Segment = [number, number, number, number, number, number, number, number];\ntype Bezier = [number, number, number, number, number, number];\n\n// from Inkscape svgtopdf, thanks!\nconst arcToSegments = (\n x: number,\n y: number,\n rx: number,\n ry: number,\n large: number,\n sweep: number,\n rotateX: number,\n ox: number,\n oy: number,\n) => {\n const th = rotateX * (Math.PI / 180);\n const sinTh = Math.sin(th);\n const cosTh = Math.cos(th);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n px = cosTh * (ox - x) * 0.5 + sinTh * (oy - y) * 0.5;\n py = cosTh * (oy - y) * 0.5 - sinTh * (ox - x) * 0.5;\n let pl = (px * px) / (rx * rx) + (py * py) / (ry * ry);\n if (pl > 1) {\n pl = Math.sqrt(pl);\n rx *= pl;\n ry *= pl;\n }\n\n const a00 = cosTh / rx;\n const a01 = sinTh / rx;\n const a10 = -sinTh / ry;\n const a11 = cosTh / ry;\n const x0 = a00 * ox + a01 * oy;\n const y0 = a10 * ox + a11 * oy;\n const x1 = a00 * x + a01 * y;\n const y1 = a10 * x + a11 * y;\n\n const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n let sfactorSq = 1 / d - 0.25;\n if (sfactorSq < 0) {\n sfactorSq = 0;\n }\n let sfactor = Math.sqrt(sfactorSq);\n if (sweep === large) {\n sfactor = -sfactor;\n }\n\n const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n\n const th0 = Math.atan2(y0 - yc, x0 - xc);\n const th1 = Math.atan2(y1 - yc, x1 - xc);\n\n let thArc = th1 - th0;\n if (thArc < 0 && sweep === 1) {\n thArc += 2 * Math.PI;\n } else if (thArc > 0 && sweep === 0) {\n thArc -= 2 * Math.PI;\n }\n\n const segments = Math.ceil(Math.abs(thArc / (Math.PI * 0.5 + 0.001)));\n const result: Segment[] = [];\n\n for (let i = 0; i < segments; i++) {\n const th2 = th0 + (i * thArc) / segments;\n const th3 = th0 + ((i + 1) * thArc) / segments;\n result[i] = [xc, yc, th2, th3, rx, ry, sinTh, cosTh];\n }\n\n return result;\n};\n\nconst segmentToBezier = (\n cx1: number,\n cy1: number,\n th0: number,\n th1: number,\n rx: number,\n ry: number,\n sinTh: number,\n cosTh: number,\n) => {\n const a00 = cosTh * rx;\n const a01 = -sinTh * ry;\n const a10 = sinTh * rx;\n const a11 = cosTh * ry;\n\n const thHalf = 0.5 * (th1 - th0);\n const t =\n ((8 / 3) * Math.sin(thHalf * 0.5) * Math.sin(thHalf * 0.5)) /\n Math.sin(thHalf);\n const x1 = cx1 + Math.cos(th0) - t * Math.sin(th0);\n const y1 = cy1 + Math.sin(th0) + t * Math.cos(th0);\n const x3 = cx1 + Math.cos(th1);\n const y3 = cy1 + Math.sin(th1);\n const x2 = x3 + t * Math.sin(th1);\n const y2 = y3 - t * Math.cos(th1);\n\n const result: Bezier = [\n a00 * x1 + a01 * y1,\n a10 * x1 + a11 * y1,\n a00 * x2 + a01 * y2,\n a10 * x2 + a11 * y2,\n a00 * x3 + a01 * y3,\n a10 * x3 + a11 * y3,\n ];\n return result;\n};\n\nexport const svgPathToOperators = (path: string) => apply(parse(path));\n","import { Color, setFillingColor, setStrokingColor } from 'src/api/colors';\nimport {\n beginText,\n closePath,\n drawObject,\n endText,\n fill,\n fillAndStroke,\n lineTo,\n moveTo,\n nextLine,\n popGraphicsState,\n pushGraphicsState,\n rotateAndSkewTextRadiansAndTranslate,\n rotateRadians,\n scale,\n setFontAndSize,\n setLineHeight,\n setLineWidth,\n showText,\n skewRadians,\n stroke,\n translate,\n LineCapStyle,\n setLineCap,\n rotateDegrees,\n setGraphicsState,\n setDashPattern,\n beginMarkedContent,\n endMarkedContent,\n clip,\n endPath,\n appendBezierCurve,\n} from 'src/api/operators';\nimport { Rotation, degrees, toRadians } from 'src/api/rotations';\nimport { svgPathToOperators } from 'src/api/svgPath';\nimport { PDFHexString, PDFName, PDFNumber, PDFOperator } from 'src/core';\nimport { asNumber } from 'src/api/objects';\n\nexport interface DrawTextOptions {\n color: Color;\n font: string | PDFName;\n size: number | PDFNumber;\n rotate: Rotation;\n xSkew: Rotation;\n ySkew: Rotation;\n x: number | PDFNumber;\n y: number | PDFNumber;\n graphicsState?: string | PDFName;\n}\n\nexport const drawText = (\n line: PDFHexString,\n options: DrawTextOptions,\n): PDFOperator[] =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n rotateAndSkewTextRadiansAndTranslate(\n toRadians(options.rotate),\n toRadians(options.xSkew),\n toRadians(options.ySkew),\n options.x,\n options.y,\n ),\n showText(line),\n endText(),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport interface DrawLinesOfTextOptions extends DrawTextOptions {\n lineHeight: number | PDFNumber;\n}\n\nexport const drawLinesOfText = (\n lines: PDFHexString[],\n options: DrawLinesOfTextOptions,\n): PDFOperator[] => {\n const operators = [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n setLineHeight(options.lineHeight),\n rotateAndSkewTextRadiansAndTranslate(\n toRadians(options.rotate),\n toRadians(options.xSkew),\n toRadians(options.ySkew),\n options.x,\n options.y,\n ),\n ].filter(Boolean) as PDFOperator[];\n\n for (let idx = 0, len = lines.length; idx < len; idx++) {\n operators.push(showText(lines[idx]), nextLine());\n }\n\n operators.push(endText(), popGraphicsState());\n return operators;\n};\n\nexport const drawImage = (\n name: string | PDFName,\n options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n rotate: Rotation;\n xSkew: Rotation;\n ySkew: Rotation;\n graphicsState?: string | PDFName;\n },\n): PDFOperator[] =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n scale(options.width, options.height),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n drawObject(name),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport const drawPage = (\n name: string | PDFName,\n options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n xScale: number | PDFNumber;\n yScale: number | PDFNumber;\n rotate: Rotation;\n xSkew: Rotation;\n ySkew: Rotation;\n graphicsState?: string | PDFName;\n },\n): PDFOperator[] =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n scale(options.xScale, options.yScale),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n drawObject(name),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport const drawLine = (options: {\n start: { x: number | PDFNumber; y: number | PDFNumber };\n end: { x: number | PDFNumber; y: number | PDFNumber };\n thickness: number | PDFNumber;\n color: Color | undefined;\n dashArray?: (number | PDFNumber)[];\n dashPhase?: number | PDFNumber;\n lineCap?: LineCapStyle;\n graphicsState?: string | PDFName;\n}) =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setStrokingColor(options.color),\n setLineWidth(options.thickness),\n setDashPattern(options.dashArray ?? [], options.dashPhase ?? 0),\n moveTo(options.start.x, options.start.y),\n options.lineCap && setLineCap(options.lineCap),\n moveTo(options.start.x, options.start.y),\n lineTo(options.end.x, options.end.y),\n stroke(),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport const drawRectangle = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n borderWidth: number | PDFNumber;\n color: Color | undefined;\n borderColor: Color | undefined;\n rotate: Rotation;\n xSkew: Rotation;\n ySkew: Rotation;\n borderLineCap?: LineCapStyle;\n borderDashArray?: (number | PDFNumber)[];\n borderDashPhase?: number | PDFNumber;\n graphicsState?: string | PDFName;\n}) =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate)),\n skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n moveTo(0, 0),\n lineTo(0, options.height),\n lineTo(options.width, options.height),\n lineTo(options.width, 0),\n closePath(),\n\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nconst KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\n/** @deprecated */\nexport const drawEllipsePath = (config: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n xScale: number | PDFNumber;\n yScale: number | PDFNumber;\n}): PDFOperator[] => {\n let x = asNumber(config.x);\n let y = asNumber(config.y);\n const xScale = asNumber(config.xScale);\n const yScale = asNumber(config.yScale);\n\n x -= xScale;\n y -= yScale;\n\n const ox = xScale * KAPPA;\n const oy = yScale * KAPPA;\n const xe = x + xScale * 2;\n const ye = y + yScale * 2;\n const xm = x + xScale;\n const ym = y + yScale;\n\n return [\n pushGraphicsState(),\n moveTo(x, ym),\n appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n popGraphicsState(),\n ];\n};\n\nconst drawEllipseCurves = (config: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n xScale: number | PDFNumber;\n yScale: number | PDFNumber;\n rotate: Rotation;\n}): PDFOperator[] => {\n const centerX = asNumber(config.x);\n const centerY = asNumber(config.y);\n const xScale = asNumber(config.xScale);\n const yScale = asNumber(config.yScale);\n\n const x = -xScale;\n const y = -yScale;\n\n const ox = xScale * KAPPA;\n const oy = yScale * KAPPA;\n const xe = x + xScale * 2;\n const ye = y + yScale * 2;\n const xm = x + xScale;\n const ym = y + yScale;\n\n return [\n translate(centerX, centerY),\n rotateRadians(toRadians(config.rotate)),\n moveTo(x, ym),\n appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n ];\n};\n\nexport const drawEllipse = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n xScale: number | PDFNumber;\n yScale: number | PDFNumber;\n rotate?: Rotation;\n color: Color | undefined;\n borderColor: Color | undefined;\n borderWidth: number | PDFNumber;\n borderDashArray?: (number | PDFNumber)[];\n borderDashPhase?: number | PDFNumber;\n graphicsState?: string | PDFName;\n borderLineCap?: LineCapStyle;\n}) =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n\n // The `drawEllipsePath` branch is only here for backwards compatibility.\n // See https://github.com/Hopding/pdf-lib/pull/511#issuecomment-667685655.\n ...(options.rotate === undefined\n ? drawEllipsePath({\n x: options.x,\n y: options.y,\n xScale: options.xScale,\n yScale: options.yScale,\n })\n : drawEllipseCurves({\n x: options.x,\n y: options.y,\n xScale: options.xScale,\n yScale: options.yScale,\n rotate: options.rotate ?? degrees(0),\n })),\n\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport const drawSvgPath = (\n path: string,\n options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n rotate?: Rotation;\n scale: number | PDFNumber | undefined;\n color: Color | undefined;\n borderColor: Color | undefined;\n borderWidth: number | PDFNumber;\n borderDashArray?: (number | PDFNumber)[];\n borderDashPhase?: number | PDFNumber;\n borderLineCap?: LineCapStyle;\n graphicsState?: string | PDFName;\n },\n) =>\n [\n pushGraphicsState(),\n options.graphicsState && setGraphicsState(options.graphicsState),\n\n translate(options.x, options.y),\n rotateRadians(toRadians(options.rotate ?? degrees(0))),\n\n // SVG path Y axis is opposite pdf-lib's\n options.scale ? scale(options.scale, -options.scale) : scale(1, -1),\n\n options.color && setFillingColor(options.color),\n options.borderColor && setStrokingColor(options.borderColor),\n options.borderWidth && setLineWidth(options.borderWidth),\n options.borderLineCap && setLineCap(options.borderLineCap),\n\n setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n\n ...svgPathToOperators(path),\n\n // prettier-ignore\n options.color && options.borderWidth ? fillAndStroke()\n : options.color ? fill()\n : options.borderColor ? stroke()\n : closePath(),\n\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\nexport const drawCheckMark = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n size: number | PDFNumber;\n thickness: number | PDFNumber;\n color: Color | undefined;\n}) => {\n const size = asNumber(options.size);\n\n /*********************** Define Check Mark Points ***************************/\n // A check mark is defined by three points in some coordinate space. Here, we\n // define these points in a unit coordinate system, where the range of the x\n // and y axis are both [-1, 1].\n //\n // Note that we do not hard code `p1y` in case we wish to change the\n // size/shape of the check mark in the future. We want the check mark to\n // always form a right angle. This means that the dot product between (p1-p2)\n // and (p3-p2) should be zero:\n //\n // (p1x-p2x) * (p3x-p2x) + (p1y-p2y) * (p3y-p2y) = 0\n //\n // We can now rejigger this equation to solve for `p1y`:\n //\n // (p1y-p2y) * (p3y-p2y) = -((p1x-p2x) * (p3x-p2x))\n // (p1y-p2y) = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y)\n // p1y = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y) + p2y\n //\n // Thanks to my friend Joel Walker (https://github.com/JWalker1995) for\n // devising the above equation and unit coordinate system approach!\n\n // (x, y) coords of the check mark's bottommost point\n const p2x = -1 + 0.75;\n const p2y = -1 + 0.51;\n\n // (x, y) coords of the check mark's topmost point\n const p3y = 1 - 0.525;\n const p3x = 1 - 0.31;\n\n // (x, y) coords of the check mark's center (vertically) point\n const p1x = -1 + 0.325;\n const p1y = -((p1x - p2x) * (p3x - p2x)) / (p3y - p2y) + p2y;\n /****************************************************************************/\n\n return [\n pushGraphicsState(),\n options.color && setStrokingColor(options.color),\n setLineWidth(options.thickness),\n\n translate(options.x, options.y),\n moveTo(p1x * size, p1y * size),\n lineTo(p2x * size, p2y * size),\n lineTo(p3x * size, p3y * size),\n\n stroke(),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n};\n\n// prettier-ignore\nexport const rotateInPlace = (options: {\n width: number | PDFNumber;\n height: number | PDFNumber;\n rotation: 0 | 90 | 180 | 270;\n}) =>\n options.rotation === 0 ? [\n translate(0, 0),\n rotateDegrees(0)\n ]\n : options.rotation === 90 ? [\n translate(options.width, 0),\n rotateDegrees(90)\n ]\n : options.rotation === 180 ? [\n translate(options.width, options.height),\n rotateDegrees(180)\n ]\n : options.rotation === 270 ? [\n translate(0, options.height),\n rotateDegrees(270)\n ]\n : []; // Invalid rotation - noop\n\nexport const drawCheckBox = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n thickness: number | PDFNumber;\n borderWidth: number | PDFNumber;\n markColor: Color | undefined;\n color: Color | undefined;\n borderColor: Color | undefined;\n filled: boolean;\n}) => {\n const outline = drawRectangle({\n x: options.x,\n y: options.y,\n width: options.width,\n height: options.height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n if (!options.filled) return outline;\n\n const width = asNumber(options.width);\n const height = asNumber(options.height);\n\n const checkMarkSize = Math.min(width, height) / 2;\n\n const checkMark = drawCheckMark({\n x: width / 2,\n y: height / 2,\n size: checkMarkSize,\n thickness: options.thickness,\n color: options.markColor,\n });\n\n return [pushGraphicsState(), ...outline, ...checkMark, popGraphicsState()];\n};\n\nexport const drawRadioButton = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n borderWidth: number | PDFNumber;\n dotColor: Color | undefined;\n color: Color | undefined;\n borderColor: Color | undefined;\n filled: boolean;\n}) => {\n const width = asNumber(options.width);\n const height = asNumber(options.height);\n\n const outlineScale = Math.min(width, height) / 2;\n\n const outline = drawEllipse({\n x: options.x,\n y: options.y,\n xScale: outlineScale,\n yScale: outlineScale,\n color: options.color,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n });\n\n if (!options.filled) return outline;\n\n const dot = drawEllipse({\n x: options.x,\n y: options.y,\n xScale: outlineScale * 0.45,\n yScale: outlineScale * 0.45,\n color: options.dotColor,\n borderColor: undefined,\n borderWidth: 0,\n });\n\n return [pushGraphicsState(), ...outline, ...dot, popGraphicsState()];\n};\n\nexport const drawButton = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n borderWidth: number | PDFNumber;\n color: Color | undefined;\n borderColor: Color | undefined;\n textLines: { encoded: PDFHexString; x: number; y: number }[];\n textColor: Color;\n font: string | PDFName;\n fontSize: number | PDFNumber;\n}) => {\n const x = asNumber(options.x);\n const y = asNumber(options.y);\n const width = asNumber(options.width);\n const height = asNumber(options.height);\n\n const background = drawRectangle({\n x,\n y,\n width,\n height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n const lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n return [pushGraphicsState(), ...background, ...lines, popGraphicsState()];\n};\n\nexport interface DrawTextLinesOptions {\n color: Color;\n font: string | PDFName;\n size: number | PDFNumber;\n rotate: Rotation;\n xSkew: Rotation;\n ySkew: Rotation;\n}\n\nexport const drawTextLines = (\n lines: { encoded: PDFHexString; x: number; y: number }[],\n options: DrawTextLinesOptions,\n): PDFOperator[] => {\n const operators = [\n beginText(),\n setFillingColor(options.color),\n setFontAndSize(options.font, options.size),\n ];\n\n for (let idx = 0, len = lines.length; idx < len; idx++) {\n const { encoded, x, y } = lines[idx];\n operators.push(\n rotateAndSkewTextRadiansAndTranslate(\n toRadians(options.rotate),\n toRadians(options.xSkew),\n toRadians(options.ySkew),\n x,\n y,\n ),\n showText(encoded),\n );\n }\n\n operators.push(endText());\n\n return operators;\n};\n\nexport const drawTextField = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n borderWidth: number | PDFNumber;\n color: Color | undefined;\n borderColor: Color | undefined;\n textLines: { encoded: PDFHexString; x: number; y: number }[];\n textColor: Color;\n font: string | PDFName;\n fontSize: number | PDFNumber;\n padding: number | PDFNumber;\n}) => {\n const x = asNumber(options.x);\n const y = asNumber(options.y);\n const width = asNumber(options.width);\n const height = asNumber(options.height);\n const borderWidth = asNumber(options.borderWidth);\n const padding = asNumber(options.padding);\n\n const clipX = x + borderWidth / 2 + padding;\n const clipY = y + borderWidth / 2 + padding;\n const clipWidth = width - (borderWidth / 2 + padding) * 2;\n const clipHeight = height - (borderWidth / 2 + padding) * 2;\n\n const clippingArea = [\n moveTo(clipX, clipY),\n lineTo(clipX, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY),\n closePath(),\n clip(),\n endPath(),\n ];\n\n const background = drawRectangle({\n x,\n y,\n width,\n height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n const lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n const markedContent = [\n beginMarkedContent('Tx'),\n pushGraphicsState(),\n ...lines,\n popGraphicsState(),\n endMarkedContent(),\n ];\n\n return [\n pushGraphicsState(),\n ...background,\n ...clippingArea,\n ...markedContent,\n popGraphicsState(),\n ];\n};\n\nexport const drawOptionList = (options: {\n x: number | PDFNumber;\n y: number | PDFNumber;\n width: number | PDFNumber;\n height: number | PDFNumber;\n borderWidth: number | PDFNumber;\n color: Color | undefined;\n borderColor: Color | undefined;\n textLines: { encoded: PDFHexString; x: number; y: number; height: number }[];\n textColor: Color;\n font: string | PDFName;\n fontSize: number | PDFNumber;\n lineHeight: number | PDFNumber;\n selectedLines: number[];\n selectedColor: Color;\n padding: number | PDFNumber;\n}) => {\n const x = asNumber(options.x);\n const y = asNumber(options.y);\n const width = asNumber(options.width);\n const height = asNumber(options.height);\n const lineHeight = asNumber(options.lineHeight);\n const borderWidth = asNumber(options.borderWidth);\n const padding = asNumber(options.padding);\n\n const clipX = x + borderWidth / 2 + padding;\n const clipY = y + borderWidth / 2 + padding;\n const clipWidth = width - (borderWidth / 2 + padding) * 2;\n const clipHeight = height - (borderWidth / 2 + padding) * 2;\n\n const clippingArea = [\n moveTo(clipX, clipY),\n lineTo(clipX, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY + clipHeight),\n lineTo(clipX + clipWidth, clipY),\n closePath(),\n clip(),\n endPath(),\n ];\n\n const background = drawRectangle({\n x,\n y,\n width,\n height,\n borderWidth: options.borderWidth,\n color: options.color,\n borderColor: options.borderColor,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n const highlights: PDFOperator[] = [];\n for (let idx = 0, len = options.selectedLines.length; idx < len; idx++) {\n const line = options.textLines[options.selectedLines[idx]];\n highlights.push(\n ...drawRectangle({\n x: line.x - padding,\n y: line.y - (lineHeight - line.height) / 2,\n width: width - borderWidth,\n height: line.height + (lineHeight - line.height) / 2,\n borderWidth: 0,\n color: options.selectedColor,\n borderColor: undefined,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n }),\n );\n }\n\n const lines = drawTextLines(options.textLines, {\n color: options.textColor,\n font: options.font,\n size: options.fontSize,\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n });\n\n const markedContent = [\n beginMarkedContent('Tx'),\n pushGraphicsState(),\n ...lines,\n popGraphicsState(),\n endMarkedContent(),\n ];\n\n return [\n pushGraphicsState(),\n ...background,\n ...highlights,\n ...clippingArea,\n ...markedContent,\n popGraphicsState(),\n ];\n};\n","// tslint:disable: max-classes-per-file\n\n// TODO: Include link to documentation with example\nexport class EncryptedPDFError extends Error {\n constructor() {\n const msg =\n 'Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.';\n super(msg);\n }\n}\n\n// TODO: Include link to documentation with example\nexport class FontkitNotRegisteredError extends Error {\n constructor() {\n const msg =\n 'Input to `PDFDocument.embedFont` was a custom font, but no `fontkit` instance was found. You must register a `fontkit` instance with `PDFDocument.registerFontkit(...)` before embedding custom fonts.';\n super(msg);\n }\n}\n\n// TODO: Include link to documentation with example\nexport class ForeignPageError extends Error {\n constructor() {\n const msg =\n 'A `page` passed to `PDFDocument.addPage` or `PDFDocument.insertPage` was from a different (foreign) PDF document. If you want to copy pages from one PDFDocument to another, you must use `PDFDocument.copyPages(...)` to copy the pages before adding or inserting them.';\n super(msg);\n }\n}\n\n// TODO: Include link to documentation with example\nexport class RemovePageFromEmptyDocumentError extends Error {\n constructor() {\n const msg =\n 'PDFDocument has no pages so `PDFDocument.removePage` cannot be called';\n super(msg);\n }\n}\n\nexport class NoSuchFieldError extends Error {\n constructor(name: string) {\n const msg = `PDFDocument has no form field with the name \"${name}\"`;\n super(msg);\n }\n}\n\nexport class UnexpectedFieldTypeError extends Error {\n constructor(name: string, expected: any, actual: any) {\n const expectedType = expected?.name;\n const actualType = actual?.constructor?.name ?? actual;\n const msg =\n `Expected field \"${name}\" to be of type ${expectedType}, ` +\n `but it is actually of type ${actualType}`;\n super(msg);\n }\n}\n\nexport class MissingOnValueCheckError extends Error {\n constructor(onValue: any) {\n const msg = `Failed to select check box due to missing onValue: \"${onValue}\"`;\n super(msg);\n }\n}\n\nexport class FieldAlreadyExistsError extends Error {\n constructor(name: string) {\n const msg = `A field already exists with the specified name: \"${name}\"`;\n super(msg);\n }\n}\n\nexport class InvalidFieldNamePartError extends Error {\n constructor(namePart: string) {\n const msg = `Field name contains invalid component: \"${namePart}\"`;\n super(msg);\n }\n}\n\nexport class FieldExistsAsNonTerminalError extends Error {\n constructor(name: string) {\n const msg = `A non-terminal field already exists with the specified name: \"${name}\"`;\n super(msg);\n }\n}\n\nexport class RichTextFieldReadError extends Error {\n constructor(fieldName: string) {\n const msg = `Reading rich text fields is not supported: Attempted to read rich text field: ${fieldName}`;\n super(msg);\n }\n}\n\nexport class CombedTextLayoutError extends Error {\n constructor(lineLength: number, cellCount: number) {\n const msg = `Failed to layout combed text as lineLength=${lineLength} is greater than cellCount=${cellCount}`;\n super(msg);\n }\n}\n\nexport class ExceededMaxLengthError extends Error {\n constructor(textLength: number, maxLength: number, name: string) {\n const msg = `Attempted to set text with length=${textLength} for TextField with maxLength=${maxLength} and name=${name}`;\n super(msg);\n }\n}\n\nexport class InvalidMaxLengthError extends Error {\n constructor(textLength: number, maxLength: number, name: string) {\n const msg = `Attempted to set maxLength=${maxLength}, which is less than ${textLength}, the length of this field's current value (name=${name})`;\n super(msg);\n }\n}\n","import PDFFont from 'src/api/PDFFont';\nimport { CombedTextLayoutError } from 'src/api/errors';\nimport { TextAlignment } from 'src/api/text/alignment';\n\nimport { PDFHexString } from 'src/core';\nimport {\n cleanText,\n lineSplit,\n mergeLines,\n charAtIndex,\n charSplit,\n} from 'src/utils';\n\nexport interface TextPosition {\n text: string;\n encoded: PDFHexString;\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface LayoutBounds {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nconst MIN_FONT_SIZE = 4;\nconst MAX_FONT_SIZE = 500;\n\nconst computeFontSize = (\n lines: string[],\n font: PDFFont,\n bounds: LayoutBounds,\n multiline: boolean = false,\n) => {\n let fontSize = MIN_FONT_SIZE;\n\n while (fontSize < MAX_FONT_SIZE) {\n let linesUsed = 0;\n\n for (\n let lineIdx = 0, lineLen = lines.length;\n lineIdx < lineLen;\n lineIdx++\n ) {\n linesUsed += 1;\n\n const line = lines[lineIdx];\n const words = line.split(' ');\n\n // Layout the words using the current `fontSize`, line wrapping\n // whenever we reach the end of the current line.\n let spaceInLineRemaining = bounds.width;\n for (let idx = 0, len = words.length; idx < len; idx++) {\n const isLastWord = idx === len - 1;\n const word = isLastWord ? words[idx] : words[idx] + ' ';\n const widthOfWord = font.widthOfTextAtSize(word, fontSize);\n spaceInLineRemaining -= widthOfWord;\n if (spaceInLineRemaining <= 0) {\n linesUsed += 1;\n spaceInLineRemaining = bounds.width - widthOfWord;\n }\n }\n }\n\n // Return if we exceeded the allowed width\n if (!multiline && linesUsed > lines.length) return fontSize - 1;\n\n const height = font.heightAtSize(fontSize);\n const lineHeight = height + height * 0.2;\n const totalHeight = lineHeight * linesUsed;\n\n // Return if we exceeded the allowed height\n if (totalHeight > Math.abs(bounds.height)) return fontSize - 1;\n\n fontSize += 1;\n }\n\n return fontSize;\n};\n\nconst computeCombedFontSize = (\n line: string,\n font: PDFFont,\n bounds: LayoutBounds,\n cellCount: number,\n) => {\n const cellWidth = bounds.width / cellCount;\n const cellHeight = bounds.height;\n\n let fontSize = MIN_FONT_SIZE;\n\n const chars = charSplit(line);\n while (fontSize < MAX_FONT_SIZE) {\n for (let idx = 0, len = chars.length; idx < len; idx++) {\n const c = chars[idx];\n const tooLong = font.widthOfTextAtSize(c, fontSize) > cellWidth * 0.75;\n if (tooLong) return fontSize - 1;\n }\n\n const height = font.heightAtSize(fontSize, { descender: false });\n if (height > cellHeight) return fontSize - 1;\n\n fontSize += 1;\n }\n\n return fontSize;\n};\n\nexport interface LayoutTextOptions {\n alignment: TextAlignment;\n fontSize?: number;\n font: PDFFont;\n bounds: LayoutBounds;\n}\n\nexport interface MultilineTextLayout {\n bounds: LayoutBounds;\n lines: TextPosition[];\n fontSize: number;\n lineHeight: number;\n}\n\nconst lastIndexOfWhitespace = (line: string) => {\n for (let idx = line.length; idx > 0; idx--) {\n if (/\\s/.test(line[idx])) return idx;\n }\n return undefined;\n};\n\nconst splitOutLines = (\n input: string,\n maxWidth: number,\n font: PDFFont,\n fontSize: number,\n) => {\n let lastWhitespaceIdx = input.length;\n while (lastWhitespaceIdx > 0) {\n const line = input.substring(0, lastWhitespaceIdx);\n const encoded = font.encodeText(line);\n const width = font.widthOfTextAtSize(line, fontSize);\n if (width < maxWidth) {\n const remainder = input.substring(lastWhitespaceIdx) || undefined;\n return { line, encoded, width, remainder };\n }\n lastWhitespaceIdx = lastIndexOfWhitespace(line) ?? 0;\n }\n\n // We were unable to split the input enough to get a chunk that would fit\n // within the specified `maxWidth` so we'll just return everything\n return {\n line: input,\n encoded: font.encodeText(input),\n width: font.widthOfTextAtSize(input, fontSize),\n remainder: undefined,\n };\n};\n\nexport const layoutMultilineText = (\n text: string,\n { alignment, fontSize, font, bounds }: LayoutTextOptions,\n): MultilineTextLayout => {\n const lines = lineSplit(cleanText(text));\n\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeFontSize(lines, font, bounds, true);\n }\n const height = font.heightAtSize(fontSize);\n const lineHeight = height + height * 0.2;\n\n const textLines: TextPosition[] = [];\n\n let minX = bounds.x;\n let minY = bounds.y;\n let maxX = bounds.x + bounds.width;\n let maxY = bounds.y + bounds.height;\n\n let y = bounds.y + bounds.height;\n for (let idx = 0, len = lines.length; idx < len; idx++) {\n let prevRemainder: string | undefined = lines[idx];\n while (prevRemainder !== undefined) {\n const { line, encoded, width, remainder } = splitOutLines(\n prevRemainder,\n bounds.width,\n font,\n fontSize,\n );\n\n // prettier-ignore\n const x = (\n alignment === TextAlignment.Left ? bounds.x\n : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n : alignment === TextAlignment.Right ? bounds.x + bounds.width - width\n : bounds.x\n );\n\n y -= lineHeight;\n\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x + width > maxX) maxX = x + width;\n if (y + height > maxY) maxY = y + height;\n\n textLines.push({ text: line, encoded, width, height, x, y });\n\n // Only trim lines that we had to split ourselves. So we won't trim lines\n // that the user provided themselves with whitespace.\n prevRemainder = remainder?.trim();\n }\n }\n\n return {\n fontSize,\n lineHeight,\n lines: textLines,\n bounds: {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n },\n };\n};\n\nexport interface LayoutCombedTextOptions {\n fontSize?: number;\n font: PDFFont;\n bounds: LayoutBounds;\n cellCount: number;\n}\n\nexport interface CombedTextLayout {\n bounds: LayoutBounds;\n cells: TextPosition[];\n fontSize: number;\n}\n\nexport const layoutCombedText = (\n text: string,\n { fontSize, font, bounds, cellCount }: LayoutCombedTextOptions,\n): CombedTextLayout => {\n const line = mergeLines(cleanText(text));\n\n if (line.length > cellCount) {\n throw new CombedTextLayoutError(line.length, cellCount);\n }\n\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeCombedFontSize(line, font, bounds, cellCount);\n }\n\n const cellWidth = bounds.width / cellCount;\n\n const height = font.heightAtSize(fontSize, { descender: false });\n const y = bounds.y + (bounds.height / 2 - height / 2);\n\n const cells: TextPosition[] = [];\n\n let minX = bounds.x;\n let minY = bounds.y;\n let maxX = bounds.x + bounds.width;\n let maxY = bounds.y + bounds.height;\n\n let cellOffset = 0;\n let charOffset = 0;\n while (cellOffset < cellCount) {\n const [char, charLength] = charAtIndex(line, charOffset);\n\n const encoded = font.encodeText(char);\n const width = font.widthOfTextAtSize(char, fontSize);\n\n const cellCenter = bounds.x + (cellWidth * cellOffset + cellWidth / 2);\n const x = cellCenter - width / 2;\n\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x + width > maxX) maxX = x + width;\n if (y + height > maxY) maxY = y + height;\n\n cells.push({ text: line, encoded, width, height, x, y });\n\n cellOffset += 1;\n charOffset += charLength;\n }\n\n return {\n fontSize,\n cells,\n bounds: {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n },\n };\n};\n\nexport interface LayoutSinglelineTextOptions {\n alignment: TextAlignment;\n fontSize?: number;\n font: PDFFont;\n bounds: LayoutBounds;\n}\n\nexport interface SinglelineTextLayout {\n bounds: LayoutBounds;\n line: TextPosition;\n fontSize: number;\n}\n\nexport const layoutSinglelineText = (\n text: string,\n { alignment, fontSize, font, bounds }: LayoutSinglelineTextOptions,\n): SinglelineTextLayout => {\n const line = mergeLines(cleanText(text));\n\n if (fontSize === undefined || fontSize === 0) {\n fontSize = computeFontSize([line], font, bounds);\n }\n\n const encoded = font.encodeText(line);\n const width = font.widthOfTextAtSize(line, fontSize);\n const height = font.heightAtSize(fontSize, { descender: false });\n\n // prettier-ignore\n const x = (\n alignment === TextAlignment.Left ? bounds.x\n : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n : alignment === TextAlignment.Right ? bounds.x + bounds.width - width\n : bounds.x\n );\n\n const y = bounds.y + (bounds.height / 2 - height / 2);\n\n return {\n fontSize,\n line: { text: line, encoded, width, height, x, y },\n bounds: { x, y, width, height },\n };\n};\n","import { PDFOperator, PDFWidgetAnnotation } from 'src/core';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFButton from 'src/api/form/PDFButton';\nimport PDFCheckBox from 'src/api/form/PDFCheckBox';\nimport PDFDropdown from 'src/api/form/PDFDropdown';\nimport PDFField from 'src/api/form/PDFField';\nimport PDFOptionList from 'src/api/form/PDFOptionList';\nimport PDFRadioGroup from 'src/api/form/PDFRadioGroup';\nimport PDFSignature from 'src/api/form/PDFSignature';\nimport PDFTextField from 'src/api/form/PDFTextField';\nimport {\n drawCheckBox,\n rotateInPlace,\n drawRadioButton,\n drawButton,\n drawTextField,\n drawOptionList,\n} from 'src/api/operations';\nimport {\n rgb,\n componentsToColor,\n setFillingColor,\n grayscale,\n cmyk,\n Color,\n} from 'src/api/colors';\nimport { reduceRotation, adjustDimsForRotation } from 'src/api/rotations';\nimport {\n layoutMultilineText,\n layoutCombedText,\n TextPosition,\n layoutSinglelineText,\n} from 'src/api/text/layout';\nimport { TextAlignment } from 'src/api/text/alignment';\nimport { setFontAndSize } from 'src/api/operators';\nimport { findLastMatch } from 'src/utils';\n\n/*********************** Appearance Provider Types ****************************/\n\ntype CheckBoxAppearanceProvider = (\n checkBox: PDFCheckBox,\n widget: PDFWidgetAnnotation,\n) => AppearanceOrMapping<{\n on: PDFOperator[];\n off: PDFOperator[];\n}>;\n\ntype RadioGroupAppearanceProvider = (\n radioGroup: PDFRadioGroup,\n widget: PDFWidgetAnnotation,\n) => AppearanceOrMapping<{\n on: PDFOperator[];\n off: PDFOperator[];\n}>;\n\ntype ButtonAppearanceProvider = (\n button: PDFButton,\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n) => AppearanceOrMapping;\n\ntype DropdownAppearanceProvider = (\n dropdown: PDFDropdown,\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n) => AppearanceOrMapping;\n\ntype OptionListAppearanceProvider = (\n optionList: PDFOptionList,\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n) => AppearanceOrMapping;\n\ntype TextFieldAppearanceProvider = (\n textField: PDFTextField,\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n) => AppearanceOrMapping;\n\ntype SignatureAppearanceProvider = (\n signature: PDFSignature,\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n) => AppearanceOrMapping;\n\n/******************* Appearance Provider Utility Types ************************/\n\nexport type AppearanceMapping = { normal: T; rollover?: T; down?: T };\n\ntype AppearanceOrMapping = T | AppearanceMapping;\n\n// prettier-ignore\nexport type AppearanceProviderFor = \n T extends PDFCheckBox ? CheckBoxAppearanceProvider\n: T extends PDFRadioGroup ? RadioGroupAppearanceProvider\n: T extends PDFButton ? ButtonAppearanceProvider\n: T extends PDFDropdown ? DropdownAppearanceProvider\n: T extends PDFOptionList ? OptionListAppearanceProvider\n: T extends PDFTextField ? TextFieldAppearanceProvider\n: T extends PDFSignature ? SignatureAppearanceProvider\n: never;\n\n/********************* Appearance Provider Functions **************************/\n\nexport const normalizeAppearance = (\n appearance: T | AppearanceMapping,\n): AppearanceMapping => {\n if ('normal' in appearance) return appearance;\n return { normal: appearance };\n};\n\n// Examples:\n// `/Helv 12 Tf` -> ['/Helv 12 Tf', 'Helv', '12']\n// `/HeBo 8.00 Tf` -> ['/HeBo 8 Tf', 'HeBo', '8.00']\nconst tfRegex = /\\/([^\\0\\t\\n\\f\\r\\ ]+)[\\0\\t\\n\\f\\r\\ ]+(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]+Tf/;\n\nconst getDefaultFontSize = (field: {\n getDefaultAppearance(): string | undefined;\n}) => {\n const da = field.getDefaultAppearance() ?? '';\n const daMatch = findLastMatch(da, tfRegex).match ?? [];\n const defaultFontSize = Number(daMatch[2]);\n return isFinite(defaultFontSize) ? defaultFontSize : undefined;\n};\n\n// Examples:\n// `0.3 g` -> ['0.3', 'g']\n// `0.3 1 .3 rg` -> ['0.3', '1', '.3', 'rg']\n// `0.3 1 .3 0 k` -> ['0.3', '1', '.3', '0', 'k']\nconst colorRegex = /(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]+(g|rg|k)/;\n\nconst getDefaultColor = (field: {\n getDefaultAppearance(): string | undefined;\n}) => {\n const da = field.getDefaultAppearance() ?? '';\n const daMatch = findLastMatch(da, colorRegex).match;\n\n const [, c1, c2, c3, c4, colorSpace] = daMatch ?? [];\n\n if (colorSpace === 'g' && c1) {\n return grayscale(Number(c1));\n }\n if (colorSpace === 'rg' && c1 && c2 && c3) {\n return rgb(Number(c1), Number(c2), Number(c3));\n }\n if (colorSpace === 'k' && c1 && c2 && c3 && c4) {\n return cmyk(Number(c1), Number(c2), Number(c3), Number(c4));\n }\n\n return undefined;\n};\n\nconst updateDefaultAppearance = (\n field: { setDefaultAppearance(appearance: string): void },\n color: Color,\n font?: PDFFont,\n fontSize: number = 0,\n) => {\n const da = [\n setFillingColor(color).toString(),\n setFontAndSize(font?.name ?? 'dummy__noop', fontSize).toString(),\n ].join('\\n');\n field.setDefaultAppearance(da);\n};\n\nexport const defaultCheckBoxAppearanceProvider: AppearanceProviderFor = (\n checkBox,\n widget,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(checkBox.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n const borderColor = componentsToColor(ap?.getBorderColor()) ?? black;\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n // Update color\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor) {\n updateDefaultAppearance(widget, textColor);\n } else {\n updateDefaultAppearance(checkBox.acroField, textColor);\n }\n\n const options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n thickness: 1.5,\n borderWidth,\n borderColor,\n markColor: textColor,\n };\n\n return {\n normal: {\n on: [\n ...rotate,\n ...drawCheckBox({\n ...options,\n color: normalBackgroundColor,\n filled: true,\n }),\n ],\n off: [\n ...rotate,\n ...drawCheckBox({\n ...options,\n color: normalBackgroundColor,\n filled: false,\n }),\n ],\n },\n down: {\n on: [\n ...rotate,\n ...drawCheckBox({\n ...options,\n color: downBackgroundColor,\n filled: true,\n }),\n ],\n off: [\n ...rotate,\n ...drawCheckBox({\n ...options,\n color: downBackgroundColor,\n filled: false,\n }),\n ],\n },\n };\n};\n\nexport const defaultRadioGroupAppearanceProvider: AppearanceProviderFor = (\n radioGroup,\n widget,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(radioGroup.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n const borderColor = componentsToColor(ap?.getBorderColor()) ?? black;\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n // Update color\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor) {\n updateDefaultAppearance(widget, textColor);\n } else {\n updateDefaultAppearance(radioGroup.acroField, textColor);\n }\n\n const options = {\n x: width / 2,\n y: height / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth,\n borderColor,\n dotColor: textColor,\n };\n\n return {\n normal: {\n on: [\n ...rotate,\n ...drawRadioButton({\n ...options,\n color: normalBackgroundColor,\n filled: true,\n }),\n ],\n off: [\n ...rotate,\n ...drawRadioButton({\n ...options,\n color: normalBackgroundColor,\n filled: false,\n }),\n ],\n },\n down: {\n on: [\n ...rotate,\n ...drawRadioButton({\n ...options,\n color: downBackgroundColor,\n filled: true,\n }),\n ],\n off: [\n ...rotate,\n ...drawRadioButton({\n ...options,\n color: downBackgroundColor,\n filled: false,\n }),\n ],\n },\n };\n};\n\nexport const defaultButtonAppearanceProvider: AppearanceProviderFor = (\n button,\n widget,\n font,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(button.acroField);\n const widgetFontSize = getDefaultFontSize(widget);\n const fieldFontSize = getDefaultFontSize(button.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n const captions = ap?.getCaptions();\n const normalText = captions?.normal ?? '';\n const downText = captions?.down ?? normalText ?? '';\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n\n const borderColor = componentsToColor(ap?.getBorderColor());\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n const bounds = {\n x: borderWidth,\n y: borderWidth,\n width: width - borderWidth * 2,\n height: height - borderWidth * 2,\n };\n const normalLayout = layoutSinglelineText(normalText, {\n alignment: TextAlignment.Center,\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n const downLayout = layoutSinglelineText(downText, {\n alignment: TextAlignment.Center,\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n\n // Update font size and color\n const fontSize = Math.min(normalLayout.fontSize, downLayout.fontSize);\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n } else {\n updateDefaultAppearance(button.acroField, textColor, font, fontSize);\n }\n\n const options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth,\n borderColor,\n textColor,\n font: font.name,\n fontSize,\n };\n\n return {\n normal: [\n ...rotate,\n ...drawButton({\n ...options,\n color: normalBackgroundColor,\n textLines: [normalLayout.line],\n }),\n ],\n down: [\n ...rotate,\n ...drawButton({\n ...options,\n color: downBackgroundColor,\n textLines: [downLayout.line],\n }),\n ],\n };\n};\n\nexport const defaultTextFieldAppearanceProvider: AppearanceProviderFor = (\n textField,\n widget,\n font,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(textField.acroField);\n const widgetFontSize = getDefaultFontSize(widget);\n const fieldFontSize = getDefaultFontSize(textField.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n const text = textField.getText() ?? '';\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n\n const borderColor = componentsToColor(ap?.getBorderColor());\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n let textLines: TextPosition[];\n let fontSize: number;\n\n const padding = textField.isCombed() ? 0 : 1;\n const bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n if (textField.isMultiline()) {\n const layout = layoutMultilineText(text, {\n alignment: textField.getAlignment(),\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n textLines = layout.lines;\n fontSize = layout.fontSize;\n } else if (textField.isCombed()) {\n const layout = layoutCombedText(text, {\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n cellCount: textField.getMaxLength() ?? 0,\n });\n textLines = layout.cells;\n fontSize = layout.fontSize;\n } else {\n const layout = layoutSinglelineText(text, {\n alignment: textField.getAlignment(),\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n textLines = [layout.line];\n fontSize = layout.fontSize;\n }\n\n // Update font size and color\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n } else {\n updateDefaultAppearance(textField.acroField, textColor, font, fontSize);\n }\n\n const options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth ?? 0,\n borderColor,\n textColor,\n font: font.name,\n fontSize,\n color: normalBackgroundColor,\n textLines,\n padding,\n };\n\n return [...rotate, ...drawTextField(options)];\n};\n\nexport const defaultDropdownAppearanceProvider: AppearanceProviderFor = (\n dropdown,\n widget,\n font,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(dropdown.acroField);\n const widgetFontSize = getDefaultFontSize(widget);\n const fieldFontSize = getDefaultFontSize(dropdown.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n const text = dropdown.getSelected()[0] ?? '';\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n\n const borderColor = componentsToColor(ap?.getBorderColor());\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n const padding = 1;\n const bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n const { line, fontSize } = layoutSinglelineText(text, {\n alignment: TextAlignment.Left,\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n\n // Update font size and color\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n } else {\n updateDefaultAppearance(dropdown.acroField, textColor, font, fontSize);\n }\n\n const options = {\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth ?? 0,\n borderColor,\n textColor,\n font: font.name,\n fontSize,\n color: normalBackgroundColor,\n textLines: [line],\n padding,\n };\n\n return [...rotate, ...drawTextField(options)];\n};\n\nexport const defaultOptionListAppearanceProvider: AppearanceProviderFor = (\n optionList,\n widget,\n font,\n) => {\n // The `/DA` entry can be at the widget or field level - so we handle both\n const widgetColor = getDefaultColor(widget);\n const fieldColor = getDefaultColor(optionList.acroField);\n const widgetFontSize = getDefaultFontSize(widget);\n const fieldFontSize = getDefaultFontSize(optionList.acroField);\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const black = rgb(0, 0, 0);\n\n const borderColor = componentsToColor(ap?.getBorderColor());\n const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n const options = optionList.getOptions();\n const selected = optionList.getSelected();\n\n if (optionList.isSorted()) options.sort();\n\n let text = '';\n for (let idx = 0, len = options.length; idx < len; idx++) {\n text += options[idx];\n if (idx < len - 1) text += '\\n';\n }\n\n const padding = 1;\n const bounds = {\n x: borderWidth + padding,\n y: borderWidth + padding,\n width: width - (borderWidth + padding) * 2,\n height: height - (borderWidth + padding) * 2,\n };\n const { lines, fontSize, lineHeight } = layoutMultilineText(text, {\n alignment: TextAlignment.Left,\n fontSize: widgetFontSize ?? fieldFontSize,\n font,\n bounds,\n });\n\n const selectedLines: number[] = [];\n for (let idx = 0, len = lines.length; idx < len; idx++) {\n const line = lines[idx];\n if (selected.includes(line.text)) selectedLines.push(idx);\n }\n\n const blue = rgb(153 / 255, 193 / 255, 218 / 255);\n\n // Update font size and color\n const textColor = widgetColor ?? fieldColor ?? black;\n if (widgetColor || widgetFontSize !== undefined) {\n updateDefaultAppearance(widget, textColor, font, fontSize);\n } else {\n updateDefaultAppearance(optionList.acroField, textColor, font, fontSize);\n }\n\n return [\n ...rotate,\n ...drawOptionList({\n x: 0 + borderWidth / 2,\n y: 0 + borderWidth / 2,\n width: width - borderWidth,\n height: height - borderWidth,\n borderWidth: borderWidth ?? 0,\n borderColor,\n textColor,\n font: font.name,\n fontSize,\n color: normalBackgroundColor,\n textLines: lines,\n lineHeight,\n selectedColor: blue,\n selectedLines,\n padding,\n }),\n ];\n};\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport { PDFPageEmbedder, PDFRef } from 'src/core';\nimport { assertIs } from 'src/utils';\n\n/**\n * Represents a PDF page that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFEmbeddedPage implements Embeddable {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedPdf]] and\n * > [[PDFDocument.embedPage]] methods, which will create instances of\n * > [[PDFEmbeddedPage]] for you.\n *\n * Create an instance of [[PDFEmbeddedPage]] from an existing ref and embedder\n *\n * @param ref The unique reference for this embedded page.\n * @param doc The document to which the embedded page will belong.\n * @param embedder The embedder that will be used to embed the page.\n */\n static of = (ref: PDFRef, doc: PDFDocument, embedder: PDFPageEmbedder) =>\n new PDFEmbeddedPage(ref, doc, embedder);\n\n /** The unique reference assigned to this embedded page within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this embedded page belongs. */\n readonly doc: PDFDocument;\n\n /** The width of this page in pixels. */\n readonly width: number;\n\n /** The height of this page in pixels. */\n readonly height: number;\n\n private alreadyEmbedded = false;\n private readonly embedder: PDFPageEmbedder;\n\n private constructor(\n ref: PDFRef,\n doc: PDFDocument,\n embedder: PDFPageEmbedder,\n ) {\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [[PDFPageEmbedder, 'PDFPageEmbedder']]);\n\n this.ref = ref;\n this.doc = doc;\n this.width = embedder.width;\n this.height = embedder.height;\n\n this.embedder = embedder;\n }\n\n /**\n * Compute the width and height of this page after being scaled by the\n * given `factor`. For example:\n * ```js\n * embeddedPage.width // => 500\n * embeddedPage.height // => 250\n *\n * const scaled = embeddedPage.scale(0.5)\n * scaled.width // => 250\n * scaled.height // => 125\n * ```\n * This operation is often useful before drawing a page with\n * [[PDFPage.drawPage]] to compute the `width` and `height` options.\n * @param factor The factor by which this page should be scaled.\n * @returns The width and height of the page after being scaled.\n */\n scale(factor: number) {\n assertIs(factor, 'factor', ['number']);\n return { width: this.width * factor, height: this.height * factor };\n }\n\n /**\n * Get the width and height of this page. For example:\n * ```js\n * const { width, height } = embeddedPage.size()\n * ```\n * @returns The width and height of the page.\n */\n size() {\n return this.scale(1);\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all embeddable pages get embedded.\n *\n * Embed this embeddable page in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n async embed(): Promise {\n if (!this.alreadyEmbedded) {\n await this.embedder.embedIntoContext(this.doc.context, this.ref);\n this.alreadyEmbedded = true;\n }\n }\n}\n","import Embeddable from 'src/api//Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport {\n CustomFontEmbedder,\n PDFHexString,\n PDFRef,\n StandardFontEmbedder,\n} from 'src/core';\nimport { assertIs, assertOrUndefined } from 'src/utils';\n\nexport type FontEmbedder = CustomFontEmbedder | StandardFontEmbedder;\n\n/**\n * Represents a font that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFFont implements Embeddable {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedFont]] and\n * > [[PDFDocument.embedStandardFont]] methods, which will create instances\n * > of [[PDFFont]] for you.\n *\n * Create an instance of [[PDFFont]] from an existing ref and embedder\n *\n * @param ref The unique reference for this font.\n * @param doc The document to which the font will belong.\n * @param embedder The embedder that will be used to embed the font.\n */\n static of = (ref: PDFRef, doc: PDFDocument, embedder: FontEmbedder) =>\n new PDFFont(ref, doc, embedder);\n\n /** The unique reference assigned to this font within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this font belongs. */\n readonly doc: PDFDocument;\n\n /** The name of this font. */\n readonly name: string;\n\n private modified = true;\n private readonly embedder: FontEmbedder;\n\n private constructor(ref: PDFRef, doc: PDFDocument, embedder: FontEmbedder) {\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [\n [CustomFontEmbedder, 'CustomFontEmbedder'],\n [StandardFontEmbedder, 'StandardFontEmbedder'],\n ]);\n\n this.ref = ref;\n this.doc = doc;\n this.name = embedder.fontName;\n\n this.embedder = embedder;\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFPage.drawText]] method will automatically encode the text it is\n * > given.\n *\n * Encodes a string of text in this font.\n *\n * @param text The text to be encoded.\n * @returns The encoded text as a hex string.\n */\n encodeText(text: string): PDFHexString {\n assertIs(text, 'text', ['string']);\n this.modified = true;\n return this.embedder.encodeText(text);\n }\n\n /**\n * Measure the width of a string of text drawn in this font at a given size.\n * For example:\n * ```js\n * const width = font.widthOfTextAtSize('Foo Bar Qux Baz', 36)\n * ```\n * @param text The string of text to be measured.\n * @param size The font size to be used for this measurement.\n * @returns The width of the string of text when drawn in this font at the\n * given size.\n */\n widthOfTextAtSize(text: string, size: number): number {\n assertIs(text, 'text', ['string']);\n assertIs(size, 'size', ['number']);\n return this.embedder.widthOfTextAtSize(text, size);\n }\n\n /**\n * Measure the height of this font at a given size. For example:\n * ```js\n * const height = font.heightAtSize(24)\n * ```\n *\n * The `options.descender` value controls whether or not the font's\n * descender is included in the height calculation.\n *\n * @param size The font size to be used for this measurement.\n * @param options The options to be used when computing this measurement.\n * @returns The height of this font at the given size.\n */\n heightAtSize(size: number, options?: { descender?: boolean }): number {\n assertIs(size, 'size', ['number']);\n assertOrUndefined(options?.descender, 'options.descender', ['boolean']);\n return this.embedder.heightOfFontAtSize(size, {\n descender: options?.descender ?? true,\n });\n }\n\n /**\n * Compute the font size at which this font is a given height. For example:\n * ```js\n * const fontSize = font.sizeAtHeight(12)\n * ```\n * @param height The height to be used for this calculation.\n * @returns The font size at which this font is the given height.\n */\n sizeAtHeight(height: number): number {\n assertIs(height, 'height', ['number']);\n return this.embedder.sizeOfFontAtHeight(height);\n }\n\n /**\n * Get the set of unicode code points that can be represented by this font.\n * @returns The set of unicode code points supported by this font.\n */\n getCharacterSet(): number[] {\n if (this.embedder instanceof StandardFontEmbedder) {\n return this.embedder.encoding.supportedCodePoints;\n } else {\n return this.embedder.font.characterSet;\n }\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all fonts get embedded.\n *\n * Embed this font in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n async embed(): Promise {\n // TODO: Cleanup orphan embedded objects if a font is embedded multiple times...\n if (this.modified) {\n await this.embedder.embedIntoContext(this.doc.context, this.ref);\n this.modified = false;\n }\n }\n}\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport { JpegEmbedder, PDFRef, PngEmbedder } from 'src/core';\nimport { assertIs } from 'src/utils';\n\nexport type ImageEmbedder = JpegEmbedder | PngEmbedder;\n\n/**\n * Represents an image that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFImage implements Embeddable {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.embedPng]] and [[PDFDocument.embedJpg]]\n * > methods, which will create instances of [[PDFImage]] for you.\n *\n * Create an instance of [[PDFImage]] from an existing ref and embedder\n *\n * @param ref The unique reference for this image.\n * @param doc The document to which the image will belong.\n * @param embedder The embedder that will be used to embed the image.\n */\n static of = (ref: PDFRef, doc: PDFDocument, embedder: ImageEmbedder) =>\n new PDFImage(ref, doc, embedder);\n\n /** The unique reference assigned to this image within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this image belongs. */\n readonly doc: PDFDocument;\n\n /** The width of this image in pixels. */\n readonly width: number;\n\n /** The height of this image in pixels. */\n readonly height: number;\n\n private embedder: ImageEmbedder | undefined;\n private embedTask: Promise | undefined;\n\n private constructor(ref: PDFRef, doc: PDFDocument, embedder: ImageEmbedder) {\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n assertIs(embedder, 'embedder', [\n [JpegEmbedder, 'JpegEmbedder'],\n [PngEmbedder, 'PngEmbedder'],\n ]);\n\n this.ref = ref;\n this.doc = doc;\n this.width = embedder.width;\n this.height = embedder.height;\n\n this.embedder = embedder;\n }\n\n /**\n * Compute the width and height of this image after being scaled by the\n * given `factor`. For example:\n * ```js\n * image.width // => 500\n * image.height // => 250\n *\n * const scaled = image.scale(0.5)\n * scaled.width // => 250\n * scaled.height // => 125\n * ```\n * This operation is often useful before drawing an image with\n * [[PDFPage.drawImage]] to compute the `width` and `height` options.\n * @param factor The factor by which this image should be scaled.\n * @returns The width and height of the image after being scaled.\n */\n scale(factor: number) {\n assertIs(factor, 'factor', ['number']);\n return { width: this.width * factor, height: this.height * factor };\n }\n\n /**\n * Get the width and height of this image after scaling it as large as\n * possible while maintaining its aspect ratio and not exceeding the\n * specified `width` and `height`. For example:\n * ```\n * image.width // => 500\n * image.height // => 250\n *\n * const scaled = image.scaleToFit(750, 1000)\n * scaled.width // => 750\n * scaled.height // => 375\n * ```\n * The `width` and `height` parameters can also be thought of as the width\n * and height of a box that the scaled image must fit within.\n * @param width The bounding box's width.\n * @param height The bounding box's height.\n * @returns The width and height of the image after being scaled.\n */\n scaleToFit(width: number, height: number) {\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n\n const imgWidthScale = width / this.width;\n const imgHeightScale = height / this.height;\n const scale = Math.min(imgWidthScale, imgHeightScale);\n\n return this.scale(scale);\n }\n\n /**\n * Get the width and height of this image. For example:\n * ```js\n * const { width, height } = image.size()\n * ```\n * @returns The width and height of the image.\n */\n size() {\n return this.scale(1);\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all images get embedded.\n *\n * Embed this image in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n async embed(): Promise {\n if (!this.embedder) return;\n\n // The image should only be embedded once. If there's a pending embed\n // operation then wait on it. Otherwise we need to start the embed.\n if (!this.embedTask) {\n const { doc, ref } = this;\n this.embedTask = this.embedder.embedIntoContext(doc.context, ref);\n }\n await this.embedTask;\n\n // We clear `this.embedder` so that the indirectly referenced image data\n // can be garbage collected, thus avoiding a memory leak.\n // See https://github.com/Hopding/pdf-lib/pull/1032/files.\n this.embedder = undefined;\n }\n}\n","export enum ImageAlignment {\n Left = 0,\n Center = 1,\n Right = 2,\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFFont from 'src/api/PDFFont';\nimport { AppearanceMapping } from 'src/api/form/appearances';\nimport { Color, colorToComponents, setFillingColor } from 'src/api/colors';\nimport {\n Rotation,\n toDegrees,\n rotateRectangle,\n reduceRotation,\n adjustDimsForRotation,\n degrees,\n} from 'src/api/rotations';\n\nimport {\n PDFRef,\n PDFWidgetAnnotation,\n PDFOperator,\n PDFName,\n PDFDict,\n MethodNotImplementedError,\n AcroFieldFlags,\n PDFAcroTerminal,\n AnnotationFlags,\n} from 'src/core';\nimport { assertIs, assertMultiple, assertOrUndefined } from 'src/utils';\nimport { ImageAlignment } from '../image';\nimport PDFImage from '../PDFImage';\nimport { drawImage, rotateInPlace } from '../operations';\n\nexport interface FieldAppearanceOptions {\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n textColor?: Color;\n backgroundColor?: Color;\n borderColor?: Color;\n borderWidth?: number;\n rotate?: Rotation;\n font?: PDFFont;\n hidden?: boolean;\n}\n\nexport const assertFieldAppearanceOptions = (\n options?: FieldAppearanceOptions,\n) => {\n assertOrUndefined(options?.x, 'options.x', ['number']);\n assertOrUndefined(options?.y, 'options.y', ['number']);\n assertOrUndefined(options?.width, 'options.width', ['number']);\n assertOrUndefined(options?.height, 'options.height', ['number']);\n assertOrUndefined(options?.textColor, 'options.textColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options?.backgroundColor, 'options.backgroundColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options?.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options?.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options?.rotate, 'options.rotate', [[Object, 'Rotation']]);\n};\n\n/**\n * Represents a field of a [[PDFForm]].\n *\n * This class is effectively abstract. All fields in a [[PDFForm]] will\n * actually be an instance of a subclass of this class.\n *\n * Note that each field in a PDF is represented by a single field object.\n * However, a given field object may be rendered at multiple locations within\n * the document (across one or more pages). The rendering of a field is\n * controlled by its widgets. Each widget causes its field to be displayed at a\n * particular location in the document.\n *\n * Most of the time each field in a PDF has only a single widget, and thus is\n * only rendered once. However, if a field is rendered multiple times, it will\n * have multiple widgets - one for each location it is rendered.\n *\n * This abstraction of field objects and widgets is defined in the PDF\n * specification and dictates how PDF files store fields and where they are\n * to be rendered.\n */\nexport default class PDFField {\n /** The low-level PDFAcroTerminal wrapped by this field. */\n readonly acroField: PDFAcroTerminal;\n\n /** The unique reference assigned to this field within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this field belongs. */\n readonly doc: PDFDocument;\n\n protected constructor(\n acroField: PDFAcroTerminal,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n assertIs(acroField, 'acroField', [[PDFAcroTerminal, 'PDFAcroTerminal']]);\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n this.acroField = acroField;\n this.ref = ref;\n this.doc = doc;\n }\n\n /**\n * Get the fully qualified name of this field. For example:\n * ```js\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const name = field.getName()\n * console.log('Field name:', name)\n * })\n * ```\n * Note that PDF fields are structured as a tree. Each field is the\n * descendent of a series of ancestor nodes all the way up to the form node,\n * which is always the root of the tree. Each node in the tree (except for\n * the form node) has a partial name. Partial names can be composed of any\n * unicode characters except a period (`.`). The fully qualified name of a\n * field is composed of the partial names of all its ancestors joined\n * with periods. This means that splitting the fully qualified name on\n * periods and taking the last element of the resulting array will give you\n * the partial name of a specific field.\n * @returns The fully qualified name of this field.\n */\n getName(): string {\n return this.acroField.getFullyQualifiedName() ?? '';\n }\n\n /**\n * Returns `true` if this field is read only. This means that PDF readers\n * will not allow users to interact with the field or change its value. See\n * [[PDFField.enableReadOnly]] and [[PDFField.disableReadOnly]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isReadOnly()) console.log('Read only is enabled')\n * ```\n * @returns Whether or not this is a read only field.\n */\n isReadOnly(): boolean {\n return this.acroField.hasFlag(AcroFieldFlags.ReadOnly);\n }\n\n /**\n * Prevent PDF readers from allowing users to interact with this field or\n * change its value. The field will not respond to mouse or keyboard input.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableReadOnly()\n * ```\n * Useful for fields whose values are computed, imported from a database, or\n * prefilled by software before being displayed to the user.\n */\n enableReadOnly() {\n this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, true);\n }\n\n /**\n * Allow users to interact with this field and change its value in PDF\n * readers via mouse and keyboard input. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableReadOnly()\n * ```\n */\n disableReadOnly() {\n this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, false);\n }\n\n /**\n * Returns `true` if this field must have a value when the form is submitted.\n * See [[PDFField.enableRequired]] and [[PDFField.disableRequired]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isRequired()) console.log('Field is required')\n * ```\n * @returns Whether or not this field is required.\n */\n isRequired(): boolean {\n return this.acroField.hasFlag(AcroFieldFlags.Required);\n }\n\n /**\n * Require this field to have a value when the form is submitted.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableRequired()\n * ```\n */\n enableRequired() {\n this.acroField.setFlagTo(AcroFieldFlags.Required, true);\n }\n\n /**\n * Do not require this field to have a value when the form is submitted.\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableRequired()\n * ```\n */\n disableRequired() {\n this.acroField.setFlagTo(AcroFieldFlags.Required, false);\n }\n\n /**\n * Returns `true` if this field's value should be exported when the form is\n * submitted. See [[PDFField.enableExporting]] and\n * [[PDFField.disableExporting]].\n * For example:\n * ```js\n * const field = form.getField('some.field')\n * if (field.isExported()) console.log('Exporting is enabled')\n * ```\n * @returns Whether or not this field's value should be exported.\n */\n isExported(): boolean {\n return !this.acroField.hasFlag(AcroFieldFlags.NoExport);\n }\n\n /**\n * Indicate that this field's value should be exported when the form is\n * submitted in a PDF reader. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.enableExporting()\n * ```\n */\n enableExporting() {\n this.acroField.setFlagTo(AcroFieldFlags.NoExport, false);\n }\n\n /**\n * Indicate that this field's value should **not** be exported when the form\n * is submitted in a PDF reader. For example:\n * ```js\n * const field = form.getField('some.field')\n * field.disableExporting()\n * ```\n */\n disableExporting() {\n this.acroField.setFlagTo(AcroFieldFlags.NoExport, true);\n }\n\n /** @ignore */\n needsAppearancesUpdate(): boolean {\n throw new MethodNotImplementedError(\n this.constructor.name,\n 'needsAppearancesUpdate',\n );\n }\n\n /** @ignore */\n defaultUpdateAppearances(_font: PDFFont) {\n throw new MethodNotImplementedError(\n this.constructor.name,\n 'defaultUpdateAppearances',\n );\n }\n\n protected markAsDirty() {\n this.doc.getForm().markFieldAsDirty(this.ref);\n }\n\n protected markAsClean() {\n this.doc.getForm().markFieldAsClean(this.ref);\n }\n\n protected isDirty(): boolean {\n return this.doc.getForm().fieldIsDirty(this.ref);\n }\n\n protected createWidget(options: {\n x: number;\n y: number;\n width: number;\n height: number;\n textColor?: Color;\n backgroundColor?: Color;\n borderColor?: Color;\n borderWidth: number;\n rotate: Rotation;\n caption?: string;\n hidden?: boolean;\n page?: PDFRef;\n }): PDFWidgetAnnotation {\n const textColor = options.textColor;\n const backgroundColor = options.backgroundColor;\n const borderColor = options.borderColor;\n const borderWidth = options.borderWidth;\n const degreesAngle = toDegrees(options.rotate);\n const caption = options.caption;\n const x = options.x;\n const y = options.y;\n const width = options.width + borderWidth;\n const height = options.height + borderWidth;\n const hidden = Boolean(options.hidden);\n const pageRef = options.page;\n\n assertMultiple(degreesAngle, 'degreesAngle', 90);\n\n // Create a widget for this field\n const widget = PDFWidgetAnnotation.create(this.doc.context, this.ref);\n\n // Set widget properties\n const rect = rotateRectangle(\n { x, y, width, height },\n borderWidth,\n degreesAngle,\n );\n widget.setRectangle(rect);\n\n if (pageRef) widget.setP(pageRef);\n\n const ac = widget.getOrCreateAppearanceCharacteristics();\n if (backgroundColor) {\n ac.setBackgroundColor(colorToComponents(backgroundColor));\n }\n ac.setRotation(degreesAngle);\n if (caption) ac.setCaptions({ normal: caption });\n if (borderColor) ac.setBorderColor(colorToComponents(borderColor));\n\n const bs = widget.getOrCreateBorderStyle();\n if (borderWidth !== undefined) bs.setWidth(borderWidth);\n\n widget.setFlagTo(AnnotationFlags.Print, true);\n widget.setFlagTo(AnnotationFlags.Hidden, hidden);\n widget.setFlagTo(AnnotationFlags.Invisible, false);\n\n // Set acrofield properties\n if (textColor) {\n const da = this.acroField.getDefaultAppearance() ?? '';\n const newDa = da + '\\n' + setFillingColor(textColor).toString();\n this.acroField.setDefaultAppearance(newDa);\n }\n\n return widget;\n }\n\n protected updateWidgetAppearanceWithFont(\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n { normal, rollover, down }: AppearanceMapping,\n ) {\n this.updateWidgetAppearances(widget, {\n normal: this.createAppearanceStream(widget, normal, font),\n rollover: rollover && this.createAppearanceStream(widget, rollover, font),\n down: down && this.createAppearanceStream(widget, down, font),\n });\n }\n\n protected updateOnOffWidgetAppearance(\n widget: PDFWidgetAnnotation,\n onValue: PDFName,\n {\n normal,\n rollover,\n down,\n }: AppearanceMapping<{ on: PDFOperator[]; off: PDFOperator[] }>,\n ) {\n this.updateWidgetAppearances(widget, {\n normal: this.createAppearanceDict(widget, normal, onValue),\n rollover:\n rollover && this.createAppearanceDict(widget, rollover, onValue),\n down: down && this.createAppearanceDict(widget, down, onValue),\n });\n }\n\n protected updateWidgetAppearances(\n widget: PDFWidgetAnnotation,\n { normal, rollover, down }: AppearanceMapping,\n ) {\n widget.setNormalAppearance(normal);\n\n if (rollover) {\n widget.setRolloverAppearance(rollover);\n } else {\n widget.removeRolloverAppearance();\n }\n\n if (down) {\n widget.setDownAppearance(down);\n } else {\n widget.removeDownAppearance();\n }\n }\n\n // // TODO: Do we need to do this...?\n // private foo(font: PDFFont, dict: PDFDict) {\n // if (!dict.lookup(PDFName.of('DR'))) {\n // dict.set(PDFName.of('DR'), dict.context.obj({}));\n // }\n // const DR = dict.lookup(PDFName.of('DR'), PDFDict);\n\n // if (!DR.lookup(PDFName.of('Font'))) {\n // DR.set(PDFName.of('Font'), dict.context.obj({}));\n // }\n // const Font = DR.lookup(PDFName.of('Font'), PDFDict);\n\n // Font.set(PDFName.of(font.name), font.ref);\n // }\n\n private createAppearanceStream(\n widget: PDFWidgetAnnotation,\n appearance: PDFOperator[],\n font?: PDFFont,\n ): PDFRef {\n const { context } = this.acroField.dict;\n const { width, height } = widget.getRectangle();\n\n // TODO: Do we need to do this...?\n // if (font) {\n // this.foo(font, widget.dict);\n // this.foo(font, this.doc.getForm().acroForm.dict);\n // }\n // END TODO\n\n const Resources = font && { Font: { [font.name]: font.ref } };\n const stream = context.formXObject(appearance, {\n Resources,\n BBox: context.obj([0, 0, width, height]),\n Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n });\n const streamRef = context.register(stream);\n\n return streamRef;\n }\n\n /**\n * Create a FormXObject of the supplied image and add it to context.\n * The FormXObject size is calculated based on the widget (including\n * the alignment).\n * @param widget The widget that should display the image.\n * @param alignment The alignment of the image.\n * @param image The image that should be displayed.\n * @returns The ref for the FormXObject that was added to the context.\n */\n protected createImageAppearanceStream(\n widget: PDFWidgetAnnotation,\n image: PDFImage,\n alignment: ImageAlignment,\n ): PDFRef {\n // NOTE: This implementation doesn't handle image borders.\n // NOTE: Acrobat seems to resize the image (maybe even skewing its aspect\n // ratio) to fit perfectly within the widget's rectangle. This method\n // does not currently do that. Should there be an option for that?\n\n const { context } = this.acroField.dict;\n\n const rectangle = widget.getRectangle();\n const ap = widget.getAppearanceCharacteristics();\n const bs = widget.getBorderStyle();\n\n const borderWidth = bs?.getWidth() ?? 0;\n const rotation = reduceRotation(ap?.getRotation());\n\n const rotate = rotateInPlace({ ...rectangle, rotation });\n\n const adj = adjustDimsForRotation(rectangle, rotation);\n const imageDims = image.scaleToFit(\n adj.width - borderWidth * 2,\n adj.height - borderWidth * 2,\n );\n\n // Support borders on images and maybe other properties\n const options = {\n x: borderWidth,\n y: borderWidth,\n width: imageDims.width,\n height: imageDims.height,\n //\n rotate: degrees(0),\n xSkew: degrees(0),\n ySkew: degrees(0),\n };\n\n if (alignment === ImageAlignment.Center) {\n options.x += (adj.width - borderWidth * 2) / 2 - imageDims.width / 2;\n options.y += (adj.height - borderWidth * 2) / 2 - imageDims.height / 2;\n } else if (alignment === ImageAlignment.Right) {\n options.x = adj.width - borderWidth - imageDims.width;\n options.y = adj.height - borderWidth - imageDims.height;\n }\n\n const imageName = this.doc.context.addRandomSuffix('Image', 10);\n const appearance = [...rotate, ...drawImage(imageName, options)];\n ////////////\n\n const Resources = { XObject: { [imageName]: image.ref } };\n const stream = context.formXObject(appearance, {\n Resources,\n BBox: context.obj([0, 0, rectangle.width, rectangle.height]),\n Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n });\n\n return context.register(stream);\n }\n\n private createAppearanceDict(\n widget: PDFWidgetAnnotation,\n appearance: { on: PDFOperator[]; off: PDFOperator[] },\n onValue: PDFName,\n ): PDFDict {\n const { context } = this.acroField.dict;\n\n const onStreamRef = this.createAppearanceStream(widget, appearance.on);\n const offStreamRef = this.createAppearanceStream(widget, appearance.off);\n\n const appearanceDict = context.obj({});\n appearanceDict.set(onValue, onStreamRef);\n appearanceDict.set(PDFName.of('Off'), offStreamRef);\n\n return appearanceDict;\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultCheckBoxAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\n\nimport {\n PDFName,\n PDFRef,\n PDFDict,\n PDFAcroCheckBox,\n PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, assertOrUndefined } from 'src/utils';\n\n/**\n * Represents a check box field of a [[PDFForm]].\n *\n * [[PDFCheckBox]] fields are interactive boxes that users can click with their\n * mouse. This type of [[PDFField]] has two states: `on` and `off`. The purpose\n * of a check box is to enable users to select from one or more options, where\n * each option is represented by a single check box. Check boxes are typically\n * square in shape and display a check mark when they are in the `on` state.\n */\nexport default class PDFCheckBox extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getCheckBox]] method, which will create an\n * > instance of [[PDFCheckBox]] for you.\n *\n * Create an instance of [[PDFCheckBox]] from an existing acroCheckBox and ref\n *\n * @param acroCheckBox The underlying `PDFAcroCheckBox` for this check box.\n * @param ref The unique reference for this check box.\n * @param doc The document to which this check box will belong.\n */\n static of = (acroCheckBox: PDFAcroCheckBox, ref: PDFRef, doc: PDFDocument) =>\n new PDFCheckBox(acroCheckBox, ref, doc);\n\n /** The low-level PDFAcroCheckBox wrapped by this check box. */\n readonly acroField: PDFAcroCheckBox;\n\n private constructor(\n acroCheckBox: PDFAcroCheckBox,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroCheckBox, ref, doc);\n\n assertIs(acroCheckBox, 'acroCheckBox', [\n [PDFAcroCheckBox, 'PDFAcroCheckBox'],\n ]);\n\n this.acroField = acroCheckBox;\n }\n\n /**\n * Mark this check box. This operation is analogous to a human user clicking\n * a check box to fill it in a PDF reader. This method will update the\n * underlying state of the check box field to indicate it has been selected.\n * PDF libraries and readers will be able to extract this value from the\n * saved document and determine that it was selected.\n *\n * For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.check()\n * ```\n *\n * This method will mark this check box as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n * streams will display a check mark inside the widgets of this check box\n * field.\n */\n check() {\n const onValue = this.acroField.getOnValue() ?? PDFName.of('Yes');\n this.markAsDirty();\n this.acroField.setValue(onValue);\n }\n\n /**\n * Clears this check box. This operation is analogous to a human user clicking\n * a check box to unmark it in a PDF reader. This method will update the\n * underlying state of the check box field to indicate it has been deselected.\n * PDF libraries and readers will be able to extract this value from the\n * saved document and determine that it was not selected.\n *\n * For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.uncheck()\n * ```\n *\n * This method will mark this check box as dirty. See [[PDFCheckBox.check]]\n * for more details about what this means.\n */\n uncheck() {\n this.markAsDirty();\n this.acroField.setValue(PDFName.of('Off'));\n }\n\n /**\n * Returns `true` if this check box is selected (either by a human user via\n * a PDF reader, or else programmatically via software). For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * if (checkBox.isChecked()) console.log('check box is selected')\n * ```\n * @returns Whether or not this check box is selected.\n */\n isChecked(): boolean {\n const onValue = this.acroField.getOnValue();\n return !!onValue && onValue === this.acroField.getValue();\n }\n\n /**\n * Show this check box on the specified page. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const checkBox = form.createCheckBox('some.checkBox.field')\n *\n * checkBox.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 25,\n * height: 25,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * })\n * ```\n * This will create a new widget for this check box field.\n * @param page The page to which this check box widget should be added.\n * @param options The options to be used when adding this check box widget.\n */\n addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n if (!options) options = {};\n\n if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options)) options.borderWidth = 1;\n\n // Create a widget for this check box\n const widget = this.createWidget({\n x: options.x ?? 0,\n y: options.y ?? 0,\n width: options.width ?? 50,\n height: options.height ?? 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth ?? 0,\n rotate: options.rotate ?? degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n\n // Set appearance streams for widget\n widget.setAppearanceState(PDFName.of('Off'));\n this.updateWidgetAppearance(widget, PDFName.of('Yes'));\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if any of this check box's widgets do not have an\n * appearance stream for its current state. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * if (checkBox.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this check box needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const state = widget.getAppearanceState();\n const normal = widget.getAppearances()?.normal;\n\n if (!(normal instanceof PDFDict)) return true;\n if (state && !normal.has(state)) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this check box's widgets using\n * the default appearance provider for check boxes. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.defaultUpdateAppearances()\n * ```\n */\n defaultUpdateAppearances() {\n this.updateAppearances();\n }\n\n /**\n * Update the appearance streams for each of this check box's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for check boxs will be used. For example:\n * ```js\n * const checkBox = form.getCheckBox('some.checkBox.field')\n * checkBox.updateAppearances((field, widget) => {\n * ...\n * return {\n * normal: { on: drawCheckBox(...), off: drawCheckBox(...) },\n * down: { on: drawCheckBox(...), off: drawCheckBox(...) },\n * }\n * })\n * ```\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(provider?: AppearanceProviderFor) {\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const onValue = widget.getOnValue() ?? PDFName.of('Yes');\n if (!onValue) continue;\n this.updateWidgetAppearance(widget, onValue, provider);\n }\n this.markAsClean();\n }\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n onValue: PDFName,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultCheckBoxAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget));\n this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultDropdownAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n PDFHexString,\n PDFRef,\n PDFString,\n PDFStream,\n PDFWidgetAnnotation,\n PDFAcroComboBox,\n AcroChoiceFlags,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertPositive } from 'src/utils';\n\n/**\n * Represents a dropdown field of a [[PDFForm]].\n *\n * [[PDFDropdown]] fields are interactive text boxes that display a single\n * element (the currently selected value). The purpose of a dropdown is to\n * enable users to select a single option from a set of possible options. Users\n * can click on a dropdown to view the full list of options it provides.\n * Clicking on an option in the list will cause it to be selected and displayed\n * in the dropdown's text box. Some dropdowns allow users to enter text\n * directly into the box from their keyboard, rather than only being allowed to\n * choose an option from the list (see [[PDFDropdown.isEditable]]).\n */\nexport default class PDFDropdown extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getDropdown]] method, which will create an\n * > instance of [[PDFDropdown]] for you.\n *\n * Create an instance of [[PDFDropdown]] from an existing acroComboBox and ref\n *\n * @param acroComboBox The underlying `PDFAcroComboBox` for this dropdown.\n * @param ref The unique reference for this dropdown.\n * @param doc The document to which this dropdown will belong.\n */\n static of = (acroComboBox: PDFAcroComboBox, ref: PDFRef, doc: PDFDocument) =>\n new PDFDropdown(acroComboBox, ref, doc);\n\n /** The low-level PDFAcroComboBox wrapped by this dropdown. */\n readonly acroField: PDFAcroComboBox;\n\n private constructor(\n acroComboBox: PDFAcroComboBox,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroComboBox, ref, doc);\n\n assertIs(acroComboBox, 'acroComboBox', [\n [PDFAcroComboBox, 'PDFAcroComboBox'],\n ]);\n\n this.acroField = acroComboBox;\n }\n\n /**\n * Get the list of available options for this dropdown. These options will be\n * displayed to users who click on this dropdown in a PDF reader.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * const options = dropdown.getOptions()\n * console.log('Dropdown options:', options)\n * ```\n * @returns The options for this dropdown.\n */\n getOptions(): string[] {\n const rawOptions = this.acroField.getOptions();\n\n const options = new Array(rawOptions.length);\n for (let idx = 0, len = options.length; idx < len; idx++) {\n const { display, value } = rawOptions[idx];\n options[idx] = (display ?? value).decodeText();\n }\n\n return options;\n }\n\n /**\n * Get the selected options for this dropdown. These are the values that were\n * selected by a human user via a PDF reader, or programatically via\n * software.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * const selections = dropdown.getSelected()\n * console.log('Dropdown selections:', selections)\n * ```\n * > **NOTE:** Note that PDF readers only display one selected option when\n * > rendering dropdowns. However, the PDF specification does allow for\n * > multiple values to be selected in a dropdown. As such, the `pdf-lib`\n * > API supports this. However, in most cases the array returned by this\n * > method will contain only a single element (or no elements).\n * @returns The selected options in this dropdown.\n */\n getSelected(): string[] {\n const values = this.acroField.getValues();\n\n const selected = new Array(values.length);\n for (let idx = 0, len = values.length; idx < len; idx++) {\n selected[idx] = values[idx].decodeText();\n }\n\n return selected;\n }\n\n /**\n * Set the list of options that are available for this dropdown. These are\n * the values that will be available for users to select when they view this\n * dropdown in a PDF reader. Note that preexisting options for this dropdown\n * will be removed. Only the values passed as `options` will be available to\n * select.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('planets.dropdown')\n * dropdown.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n * ```\n * @param options The options that should be available in this dropdown.\n */\n setOptions(options: string[]) {\n assertIs(options, 'options', [Array]);\n\n const optionObjects = new Array<{ value: PDFHexString }>(options.length);\n for (let idx = 0, len = options.length; idx < len; idx++) {\n optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n }\n this.acroField.setOptions(optionObjects);\n }\n\n /**\n * Add to the list of options that are available for this dropdown. Users\n * will be able to select these values in a PDF reader. In addition to the\n * values passed as `options`, any preexisting options for this dropdown will\n * still be available for users to select.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('rockets.dropdown')\n * dropdown.addOptions(['Saturn IV', 'Falcon Heavy'])\n * ```\n * @param options New options that should be available in this dropdown.\n */\n addOptions(options: string | string[]) {\n assertIs(options, 'options', ['string', Array]);\n\n const optionsArr = Array.isArray(options) ? options : [options];\n\n const existingOptions: {\n value: PDFString | PDFHexString;\n display?: PDFString | PDFHexString;\n }[] = this.acroField.getOptions();\n\n const newOptions = new Array<{ value: PDFHexString }>(optionsArr.length);\n for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n }\n\n this.acroField.setOptions(existingOptions.concat(newOptions));\n }\n\n /**\n * Select one or more values for this dropdown. This operation is analogous\n * to a human user opening the dropdown in a PDF reader and clicking on a\n * value to select it. This method will update the underlying state of the\n * dropdown to indicate which values have been selected. PDF libraries and\n * readers will be able to extract these values from the saved document and\n * determine which values were selected.\n *\n * For example:\n * ```js\n * const dropdown = form.getDropdown('best.superhero.dropdown')\n * dropdown.select('One Punch Man')\n * ```\n *\n * This method will mark this dropdown as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the selected option inside the widgets of this dropdown.\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if the selected option for this field\n * contains characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFDropdown.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * Selecting an option that does not exist in this dropdown's option list\n * (see [[PDFDropdown.getOptions]]) will enable editing on this dropdown\n * (see [[PDFDropdown.enableEditing]]).\n *\n * > **NOTE:** PDF readers only display one selected option when rendering\n * > dropdowns. However, the PDF specification does allow for multiple values\n * > to be selected in a dropdown. As such, the `pdf-lib` API supports this.\n * > However, it is not recommended to select more than one value with this\n * > method, as only one will be visible. [[PDFOptionList]] fields are better\n * > suited for displaying multiple selected values.\n *\n * @param options The options to be selected.\n * @param merge Whether or not existing selections should be preserved.\n */\n select(options: string | string[], merge = false) {\n assertIs(options, 'options', ['string', Array]);\n assertIs(merge, 'merge', ['boolean']);\n\n const optionsArr = Array.isArray(options) ? options : [options];\n\n const validOptions = this.getOptions();\n const hasCustomOption = optionsArr.find(\n (option) => !validOptions.includes(option),\n );\n if (hasCustomOption) this.enableEditing();\n\n this.markAsDirty();\n\n if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n this.enableMultiselect();\n }\n\n const values = new Array(optionsArr.length);\n for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n values[idx] = PDFHexString.fromText(optionsArr[idx]);\n }\n\n if (merge) {\n const existingValues = this.acroField.getValues();\n this.acroField.setValues(existingValues.concat(values));\n } else {\n this.acroField.setValues(values);\n }\n }\n\n /**\n * Clear all selected values for this dropdown. This operation is equivalent\n * to selecting an empty list. This method will update the underlying state\n * of the dropdown to indicate that no values have been selected.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.clear()\n * ```\n * This method will mark this text field as dirty. See [[PDFDropdown.select]]\n * for more details about what this means.\n */\n clear() {\n this.markAsDirty();\n this.acroField.setValues([]);\n }\n\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this dropdown. Font sizes may\n * be integer or floating point numbers. Supplying a negative font size will\n * cause this method to throw an error.\n *\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.setFontSize(4)\n * dropdown.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n setFontSize(fontSize: number) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n }\n\n /**\n * Returns `true` if users are allowed to edit the selected value of this\n * dropdown directly and are not constrained by the list of available\n * options. See [[PDFDropdown.enableEditing]] and\n * [[PDFDropdown.disableEditing]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isEditable()) console.log('Editing is enabled')\n * ```\n * @returns Whether or not this dropdown is editable.\n */\n isEditable(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.Edit);\n }\n\n /**\n * Allow users to edit the selected value of this dropdown in PDF readers\n * with their keyboard. This means that the selected value of this dropdown\n * will not be constrained by the list of available options. However, if this\n * dropdown has any available options, users will still be allowed to select\n * from that list.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableEditing()\n * ```\n */\n enableEditing() {\n this.acroField.setFlagTo(AcroChoiceFlags.Edit, true);\n }\n\n /**\n * Do not allow users to edit the selected value of this dropdown in PDF\n * readers with their keyboard. This will constrain the selected value of\n * this dropdown to the list of available options. Users will only be able\n * to select an option from that list.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableEditing()\n * ```\n */\n disableEditing() {\n this.acroField.setFlagTo(AcroChoiceFlags.Edit, false);\n }\n\n /**\n * Returns `true` if the option list of this dropdown is always displayed\n * in alphabetical order, irrespective of the order in which the options\n * were added to the dropdown. See [[PDFDropdown.enableSorting]] and\n * [[PDFDropdown.disableSorting]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSorted()) console.log('Sorting is enabled')\n * ```\n * @returns Whether or not this dropdown's options are sorted.\n */\n isSorted(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n }\n\n /**\n * Always display the option list of this dropdown in alphabetical order,\n * irrespective of the order in which the options were added to this dropdown.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSorting()\n * ```\n */\n enableSorting() {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n }\n\n /**\n * Do not always display the option list of this dropdown in alphabetical\n * order. Instead, display the options in whichever order they were added\n * to the list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSorting()\n * ```\n */\n disableSorting() {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n }\n\n /**\n * Returns `true` if multiple options can be selected from this dropdown's\n * option list. See [[PDFDropdown.enableMultiselect]] and\n * [[PDFDropdown.disableMultiselect]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isMultiselect()) console.log('Multiselect is enabled')\n * ```\n * @returns Whether or not multiple options can be selected.\n */\n isMultiselect(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n }\n\n /**\n * Allow users to select more than one option from this dropdown's option\n * list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableMultiselect()\n * ```\n */\n enableMultiselect() {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n }\n\n /**\n * Do not allow users to select more than one option from this dropdown's\n * option list. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableMultiselect()\n * ```\n */\n disableMultiselect() {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n }\n\n /**\n * Returns `true` if the selected option should be spell checked by PDF\n * readers. Spell checking will only be performed if this dropdown allows\n * editing (see [[PDFDropdown.isEditable]]). See\n * [[PDFDropdown.enableSpellChecking]] and\n * [[PDFDropdown.disableSpellChecking]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSpellChecked()) console.log('Spell checking is enabled')\n * ```\n * @returns Whether or not this dropdown can be spell checked.\n */\n isSpellChecked(): boolean {\n return !this.acroField.hasFlag(AcroChoiceFlags.DoNotSpellCheck);\n }\n\n /**\n * Allow PDF readers to spell check the selected option of this dropdown.\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSpellChecking()\n * ```\n */\n enableSpellChecking() {\n this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, false);\n }\n\n /**\n * Do not allow PDF readers to spell check the selected option of this\n * dropdown. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSpellChecking()\n * ```\n */\n disableSpellChecking() {\n this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, true);\n }\n\n /**\n * Returns `true` if the option selected by a user is stored, or \"committed\",\n * when the user clicks the option. The alternative is that the user's\n * selection is stored when the user leaves this dropdown field (by clicking\n * outside of it - on another field, for example). See\n * [[PDFDropdown.enableSelectOnClick]] and\n * [[PDFDropdown.disableSelectOnClick]]. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.isSelectOnClick()) console.log('Select on click is enabled')\n * ```\n * @returns Whether or not options are selected immediately after they are\n * clicked.\n */\n isSelectOnClick(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n }\n\n /**\n * Store the option selected by a user immediately after the user clicks the\n * option. Do not wait for the user to leave this dropdown field (by clicking\n * outside of it - on another field, for example). For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.enableSelectOnClick()\n * ```\n */\n enableSelectOnClick() {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n }\n\n /**\n * Wait to store the option selected by a user until they leave this dropdown\n * field (by clicking outside of it - on another field, for example).\n * For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.disableSelectOnClick()\n * ```\n */\n disableSelectOnClick() {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n }\n\n /**\n * Show this dropdown on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const dropdown = form.createDropdown('best.gundam')\n * dropdown.setOptions(['Exia', 'Dynames'])\n * dropdown.select('Exia')\n *\n * dropdown.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this dropdown field.\n * @param page The page to which this dropdown widget should be added.\n * @param options The options to be used when adding this dropdown widget.\n */\n addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n if (!options) options = {};\n\n if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options)) options.borderWidth = 1;\n\n // Create a widget for this dropdown\n const widget = this.createWidget({\n x: options.x ?? 0,\n y: options.y ?? 0,\n width: options.width ?? 200,\n height: options.height ?? 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth ?? 0,\n rotate: options.rotate ?? degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n\n // Set appearance streams for widget\n const font = options.font ?? this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if this dropdown has been marked as dirty, or if any of\n * this dropdown's widgets do not have an appearance stream. For example:\n * ```js\n * const dropdown = form.getDropdown('some.dropdown.field')\n * if (dropdown.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this dropdown needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n if (this.isDirty()) return true;\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const hasAppearances =\n widget.getAppearances()?.normal instanceof PDFStream;\n if (!hasAppearances) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this dropdown's widgets using\n * the default appearance provider for dropdowns. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n defaultUpdateAppearances(font: PDFFont) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n }\n\n /**\n * Update the appearance streams for each of this dropdown's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for dropdowns will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const dropdown = form.getDropdown('some.dropdown.field')\n * dropdown.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawTextField(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n }\n\n // getOption(index: number): string {}\n // getSelectedIndices(): number[] {}\n // removeOptions(option: string | string[]) {}\n // removeIndices(option: number[]) {}\n // deselect(options: string | string[]) {}\n // deselectIndices(optionIndices: number[]) {}\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultDropdownAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultOptionListAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n PDFRef,\n PDFHexString,\n PDFString,\n PDFStream,\n PDFAcroListBox,\n AcroChoiceFlags,\n PDFWidgetAnnotation,\n} from 'src/core';\nimport {\n assertIs,\n assertIsSubset,\n assertOrUndefined,\n assertPositive,\n} from 'src/utils';\n\n/**\n * Represents an option list field of a [[PDFForm]].\n *\n * [[PDFOptionList]] fields are interactive lists of options. The purpose of an\n * option list is to enable users to select one or more options from a set of\n * possible options. Users are able to see the full set of options without\n * first having to click on the field (though scrolling may be necessary).\n * Clicking an option in the list will cause it to be selected and displayed\n * with a highlighted background. Some option lists allow users to select\n * more than one option (see [[PDFOptionList.isMultiselect]]).\n */\nexport default class PDFOptionList extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getOptionList]] method, which will create\n * > an instance of [[PDFOptionList]] for you.\n *\n * Create an instance of [[PDFOptionList]] from an existing acroListBox and\n * ref\n *\n * @param acroComboBox The underlying `PDFAcroListBox` for this option list.\n * @param ref The unique reference for this option list.\n * @param doc The document to which this option list will belong.\n */\n static of = (acroListBox: PDFAcroListBox, ref: PDFRef, doc: PDFDocument) =>\n new PDFOptionList(acroListBox, ref, doc);\n\n /** The low-level PDFAcroListBox wrapped by this option list. */\n readonly acroField: PDFAcroListBox;\n\n private constructor(\n acroListBox: PDFAcroListBox,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroListBox, ref, doc);\n\n assertIs(acroListBox, 'acroListBox', [[PDFAcroListBox, 'PDFAcroListBox']]);\n\n this.acroField = acroListBox;\n }\n\n /**\n * Get the list of available options for this option list. These options will\n * be displayed to users who view this option list in a PDF reader.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * const options = optionList.getOptions()\n * console.log('Option List options:', options)\n * ```\n * @returns The options for this option list.\n */\n getOptions(): string[] {\n const rawOptions = this.acroField.getOptions();\n\n const options = new Array(rawOptions.length);\n for (let idx = 0, len = options.length; idx < len; idx++) {\n const { display, value } = rawOptions[idx];\n options[idx] = (display ?? value).decodeText();\n }\n\n return options;\n }\n\n /**\n * Get the selected options for this option list. These are the values that\n * were selected by a human user via a PDF reader, or programatically via\n * software.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * const selections = optionList.getSelected()\n * console.log('Option List selections:', selections)\n * ```\n * @returns The selected options for this option list.\n */\n getSelected(): string[] {\n const values = this.acroField.getValues();\n\n const selected = new Array(values.length);\n for (let idx = 0, len = values.length; idx < len; idx++) {\n selected[idx] = values[idx].decodeText();\n }\n\n return selected;\n }\n\n /**\n * Set the list of options that are available for this option list. These are\n * the values that will be available for users to select when they view this\n * option list in a PDF reader. Note that preexisting options for this\n * option list will be removed. Only the values passed as `options` will be\n * available to select.\n *\n * For example:\n * ```js\n * const optionList = form.getOptionList('planets.optionList')\n * optionList.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n * ```\n *\n * This method will mark this option list as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the options this field contains inside the widgets of this text\n * field (with selected options highlighted).\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if this field contains any options\n * with characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFOptionList.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * @param options The options that should be available in this option list.\n */\n setOptions(options: string[]) {\n assertIs(options, 'options', [Array]);\n\n this.markAsDirty();\n const optionObjects = new Array<{ value: PDFHexString }>(options.length);\n for (let idx = 0, len = options.length; idx < len; idx++) {\n optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n }\n this.acroField.setOptions(optionObjects);\n }\n\n /**\n * Add to the list of options that are available for this option list. Users\n * will be able to select these values in a PDF reader. In addition to the\n * values passed as `options`, any preexisting options for this option list\n * will still be available for users to select.\n * For example:\n * ```js\n * const optionList = form.getOptionList('rockets.optionList')\n * optionList.addOptions(['Saturn IV', 'Falcon Heavy'])\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n * @param options New options that should be available in this option list.\n */\n addOptions(options: string | string[]) {\n assertIs(options, 'options', ['string', Array]);\n\n this.markAsDirty();\n\n const optionsArr = Array.isArray(options) ? options : [options];\n\n const existingOptions: {\n value: PDFString | PDFHexString;\n display?: PDFString | PDFHexString;\n }[] = this.acroField.getOptions();\n\n const newOptions = new Array<{ value: PDFHexString }>(optionsArr.length);\n for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n }\n\n this.acroField.setOptions(existingOptions.concat(newOptions));\n }\n\n /**\n * Select one or more values for this option list. This operation is analogous\n * to a human user opening the option list in a PDF reader and clicking on one\n * or more values to select them. This method will update the underlying state\n * of the option list to indicate which values have been selected. PDF\n * libraries and readers will be able to extract these values from the saved\n * document and determine which values were selected.\n * For example:\n * ```js\n * const optionList = form.getOptionList('best.superheroes.optionList')\n * optionList.select(['One Punch Man', 'Iron Man'])\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n * @param options The options to be selected.\n * @param merge Whether or not existing selections should be preserved.\n */\n select(options: string | string[], merge = false) {\n assertIs(options, 'options', ['string', Array]);\n assertIs(merge, 'merge', ['boolean']);\n\n const optionsArr = Array.isArray(options) ? options : [options];\n\n const validOptions = this.getOptions();\n assertIsSubset(optionsArr, 'option', validOptions);\n\n this.markAsDirty();\n\n if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n this.enableMultiselect();\n }\n\n const values = new Array(optionsArr.length);\n for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n values[idx] = PDFHexString.fromText(optionsArr[idx]);\n }\n\n if (merge) {\n const existingValues = this.acroField.getValues();\n this.acroField.setValues(existingValues.concat(values));\n } else {\n this.acroField.setValues(values);\n }\n }\n\n /**\n * Clear all selected values for this option list. This operation is\n * equivalent to selecting an empty list. This method will update the\n * underlying state of the option list to indicate that no values have been\n * selected.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.clear()\n * ```\n * This method will mark this option list as dirty. See\n * [[PDFOptionList.setOptions]] for more details about what this means.\n */\n clear() {\n this.markAsDirty();\n this.acroField.setValues([]);\n }\n\n /**\n * Set the font size for the text in this field. There needs to be a\n * default appearance string (DA) set with a font value specified\n * for this to work. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.setFontSize(4);\n * ```\n * @param fontSize The font size to set the font to.\n */\n\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this option list. Font sizes\n * may be integer or floating point numbers. Supplying a negative font size\n * will cause this method to throw an error.\n *\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.setFontSize(4)\n * optionList.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n setFontSize(fontSize: number) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n }\n\n /**\n * Returns `true` if the options of this option list are always displayed\n * in alphabetical order, irrespective of the order in which the options\n * were added to the option list. See [[PDFOptionList.enableSorting]] and\n * [[PDFOptionList.disableSorting]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isSorted()) console.log('Sorting is enabled')\n * ```\n * @returns Whether or not this option list is sorted.\n */\n isSorted(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n }\n\n /**\n * Always display the options of this option list in alphabetical order,\n * irrespective of the order in which the options were added to this option\n * list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableSorting()\n * ```\n */\n enableSorting() {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n }\n\n /**\n * Do not always display the options of this option list in alphabetical\n * order. Instead, display the options in whichever order they were added\n * to this option list. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableSorting()\n * ```\n */\n disableSorting() {\n this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n }\n\n /**\n * Returns `true` if multiple options can be selected from this option list.\n * See [[PDFOptionList.enableMultiselect]] and\n * [[PDFOptionList.disableMultiselect]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isMultiselect()) console.log('Multiselect is enabled')\n * ```\n * @returns Whether or not multiple options can be selected.\n */\n isMultiselect(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n }\n\n /**\n * Allow users to select more than one option from this option list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableMultiselect()\n * ```\n */\n enableMultiselect() {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n }\n\n /**\n * Do not allow users to select more than one option from this option list.\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableMultiselect()\n * ```\n */\n disableMultiselect() {\n this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n }\n\n /**\n * Returns `true` if the option selected by a user is stored, or \"committed\",\n * when the user clicks the option. The alternative is that the user's\n * selection is stored when the user leaves this option list field (by\n * clicking outside of it - on another field, for example). See\n * [[PDFOptionList.enableSelectOnClick]] and\n * [[PDFOptionList.disableSelectOnClick]]. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.isSelectOnClick()) console.log('Select on click is enabled')\n * ```\n * @returns Whether or not options are selected immediately after they are\n * clicked.\n */\n isSelectOnClick(): boolean {\n return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n }\n\n /**\n * Store the option selected by a user immediately after the user clicks the\n * option. Do not wait for the user to leave this option list field (by\n * clicking outside of it - on another field, for example). For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.enableSelectOnClick()\n * ```\n */\n enableSelectOnClick() {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n }\n\n /**\n * Wait to store the option selected by a user until they leave this option\n * list field (by clicking outside of it - on another field, for example).\n * For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.disableSelectOnClick()\n * ```\n */\n disableSelectOnClick() {\n this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n }\n\n /**\n * Show this option list on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const optionList = form.createOptionList('best.gundams')\n * optionList.setOptions(['Exia', 'Dynames', 'Kyrios', 'Virtue'])\n * optionList.select(['Exia', 'Virtue'])\n *\n * optionList.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this option list field.\n * @param page The page to which this option list widget should be added.\n * @param options The options to be used when adding this option list widget.\n */\n addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n if (!options) options = {};\n\n if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options)) options.borderWidth = 1;\n\n // Create a widget for this option list\n const widget = this.createWidget({\n x: options.x ?? 0,\n y: options.y ?? 0,\n width: options.width ?? 200,\n height: options.height ?? 100,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth ?? 0,\n rotate: options.rotate ?? degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n\n // Set appearance streams for widget\n const font = options.font ?? this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if this option list has been marked as dirty, or if any of\n * this option list's widgets do not have an appearance stream. For example:\n * ```js\n * const optionList = form.getOptionList('some.optionList.field')\n * if (optionList.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this option list needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n if (this.isDirty()) return true;\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const hasAppearances =\n widget.getAppearances()?.normal instanceof PDFStream;\n if (!hasAppearances) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this option list's widgets using\n * the default appearance provider for option lists. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n defaultUpdateAppearances(font: PDFFont) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n }\n\n /**\n * Update the appearance streams for each of this option list's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for option lists will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const optionList = form.getOptionList('some.optionList.field')\n * optionList.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawOptionList(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n }\n\n // getOption(index: number): string {}\n // getSelectedIndices(): number[] {}\n // removeOptions(option: string | string[]) {}\n // removeIndices(option: number[]) {}\n // deselect(options: string | string[]) {}\n // deselectIndices(optionIndices: number[]) {}\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultOptionListAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultRadioGroupAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n PDFName,\n PDFRef,\n PDFHexString,\n PDFDict,\n PDFWidgetAnnotation,\n PDFAcroRadioButton,\n AcroButtonFlags,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertIsOneOf } from 'src/utils';\n\n/**\n * Represents a radio group field of a [[PDFForm]].\n *\n * [[PDFRadioGroup]] fields are collections of radio buttons. The purpose of a\n * radio group is to enable users to select one option from a set of mutually\n * exclusive choices. Each choice in a radio group is represented by a radio\n * button. Radio buttons each have two states: `on` and `off`. At most one\n * radio button in a group may be in the `on` state at any time. Users can\n * click on a radio button to select it (and thereby automatically deselect any\n * other radio button that might have already been selected). Some radio\n * groups allow users to toggle a selected radio button `off` by clicking on\n * it (see [[PDFRadioGroup.isOffToggleable]]).\n *\n * Note that some radio groups allow multiple radio buttons to be in the `on`\n * state at the same type **if** they represent the same underlying value (see\n * [[PDFRadioGroup.isMutuallyExclusive]]).\n */\nexport default class PDFRadioGroup extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getOptionList]] method, which will create an\n * > instance of [[PDFOptionList]] for you.\n *\n * Create an instance of [[PDFOptionList]] from an existing acroRadioButton\n * and ref\n *\n * @param acroRadioButton The underlying `PDFAcroRadioButton` for this\n * radio group.\n * @param ref The unique reference for this radio group.\n * @param doc The document to which this radio group will belong.\n */\n static of = (\n acroRadioButton: PDFAcroRadioButton,\n ref: PDFRef,\n doc: PDFDocument,\n ) => new PDFRadioGroup(acroRadioButton, ref, doc);\n\n /** The low-level PDFAcroRadioButton wrapped by this radio group. */\n readonly acroField: PDFAcroRadioButton;\n\n private constructor(\n acroRadioButton: PDFAcroRadioButton,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroRadioButton, ref, doc);\n\n assertIs(acroRadioButton, 'acroRadioButton', [\n [PDFAcroRadioButton, 'PDFAcroRadioButton'],\n ]);\n\n this.acroField = acroRadioButton;\n }\n\n /**\n * Get the list of available options for this radio group. Each option is\n * represented by a radio button. These radio buttons are displayed at\n * various locations in the document, potentially on different pages (though\n * typically they are stacked horizontally or vertically on the same page).\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * const options = radioGroup.getOptions()\n * console.log('Radio Group options:', options)\n * ```\n * @returns The options for this radio group.\n */\n getOptions(): string[] {\n const exportValues = this.acroField.getExportValues();\n if (exportValues) {\n const exportOptions = new Array(exportValues.length);\n for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n exportOptions[idx] = exportValues[idx].decodeText();\n }\n return exportOptions;\n }\n\n const onValues = this.acroField.getOnValues();\n const onOptions = new Array(onValues.length);\n for (let idx = 0, len = onOptions.length; idx < len; idx++) {\n onOptions[idx] = onValues[idx].decodeText();\n }\n return onOptions;\n }\n\n /**\n * Get the selected option for this radio group. The selected option is\n * represented by the radio button in this group that is turned on. At most\n * one radio button in a group can be selected. If no buttons in this group\n * are selected, `undefined` is returned.\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * const selected = radioGroup.getSelected()\n * console.log('Selected radio button:', selected)\n * ```\n * @returns The selected option for this radio group.\n */\n getSelected(): string | undefined {\n const value = this.acroField.getValue();\n if (value === PDFName.of('Off')) return undefined;\n const exportValues = this.acroField.getExportValues();\n if (exportValues) {\n const onValues = this.acroField.getOnValues();\n for (let idx = 0, len = onValues.length; idx < len; idx++) {\n if (onValues[idx] === value) return exportValues[idx].decodeText();\n }\n }\n return value.decodeText();\n }\n\n // // TODO: Figure out why this seems to crash Acrobat. Maybe it's because we\n // // aren't removing the widget reference from the page's Annots?\n // removeOption(option: string) {\n // assertIs(option, 'option', ['string']);\n // // TODO: Assert is valid `option`!\n\n // const onValues = this.acroField.getOnValues();\n // const exportValues = this.acroField.getExportValues();\n // if (exportValues) {\n // for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n // if (exportValues[idx].decodeText() === option) {\n // this.acroField.removeWidget(idx);\n // this.acroField.removeExportValue(idx);\n // }\n // }\n // } else {\n // for (let idx = 0, len = onValues.length; idx < len; idx++) {\n // const value = onValues[idx];\n // if (value.decodeText() === option) {\n // this.acroField.removeWidget(idx);\n // this.acroField.removeExportValue(idx);\n // }\n // }\n // }\n // }\n\n /**\n * Select an option for this radio group. This operation is analogous to a\n * human user clicking one of the radio buttons in this group via a PDF\n * reader to toggle it on. This method will update the underlying state of\n * the radio group to indicate which option has been selected. PDF libraries\n * and readers will be able to extract this value from the saved document and\n * determine which option was selected.\n *\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('best.superhero.radioGroup')\n * radioGroup.select('One Punch Man')\n * ```\n *\n * This method will mark this radio group as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n * streams will display a dot inside the widget of this check box field\n * that represents the selected option.\n *\n * @param option The option to be selected.\n */\n select(option: string) {\n assertIs(option, 'option', ['string']);\n\n const validOptions = this.getOptions();\n assertIsOneOf(option, 'option', validOptions);\n\n this.markAsDirty();\n\n const onValues = this.acroField.getOnValues();\n const exportValues = this.acroField.getExportValues();\n if (exportValues) {\n for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n if (exportValues[idx].decodeText() === option) {\n this.acroField.setValue(onValues[idx]);\n }\n }\n } else {\n for (let idx = 0, len = onValues.length; idx < len; idx++) {\n const value = onValues[idx];\n if (value.decodeText() === option) this.acroField.setValue(value);\n }\n }\n }\n\n /**\n * Clear any selected option for this dropdown. This will result in all\n * radio buttons in this group being toggled off. This method will update\n * the underlying state of the dropdown to indicate that no radio buttons\n * have been selected.\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.clear()\n * ```\n * This method will mark this radio group as dirty. See\n * [[PDFRadioGroup.select]] for more details about what this means.\n */\n clear() {\n this.markAsDirty();\n this.acroField.setValue(PDFName.of('Off'));\n }\n\n /**\n * Returns `true` if users can click on radio buttons in this group to toggle\n * them off. The alternative is that once a user clicks on a radio button\n * to select it, the only way to deselect it is by selecting on another radio\n * button in the group. See [[PDFRadioGroup.enableOffToggling]] and\n * [[PDFRadioGroup.disableOffToggling]]. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.isOffToggleable()) console.log('Off toggling is enabled')\n * ```\n */\n isOffToggleable() {\n return !this.acroField.hasFlag(AcroButtonFlags.NoToggleToOff);\n }\n\n /**\n * Allow users to click on selected radio buttons in this group to toggle\n * them off. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.enableOffToggling()\n * ```\n * > **NOTE:** This feature is documented in the PDF specification\n * > (Table 226). However, most PDF readers do not respect this option and\n * > prevent users from toggling radio buttons off even when it is enabled.\n * > At the time of this writing (9/6/2020) Mac's Preview software did\n * > respect the option. Adobe Acrobat, Foxit Reader, and Google Chrome did\n * > not.\n */\n enableOffToggling() {\n this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, false);\n }\n\n /**\n * Prevent users from clicking on selected radio buttons in this group to\n * toggle them off. Clicking on a selected radio button will have no effect.\n * The only way to deselect a selected radio button is to click on a\n * different radio button in the group. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.disableOffToggling()\n * ```\n */\n disableOffToggling() {\n this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, true);\n }\n\n /**\n * Returns `true` if the radio buttons in this group are mutually exclusive.\n * This means that when the user selects a radio button, only that specific\n * button will be turned on. Even if other radio buttons in the group\n * represent the same value, they will not be enabled. The alternative to\n * this is that clicking a radio button will select that button along with\n * any other radio buttons in the group that share the same value. See\n * [[PDFRadioGroup.enableMutualExclusion]] and\n * [[PDFRadioGroup.disableMutualExclusion]].\n * For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.isMutuallyExclusive()) console.log('Mutual exclusion is enabled')\n * ```\n */\n isMutuallyExclusive() {\n return !this.acroField.hasFlag(AcroButtonFlags.RadiosInUnison);\n }\n\n /**\n * When the user clicks a radio button in this group it will be selected. In\n * addition, any other radio buttons in this group that share the same\n * underlying value will also be selected. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.enableMutualExclusion()\n * ```\n * Note that this option must be enabled prior to adding options to the\n * radio group. It does not currently apply retroactively to existing\n * radio buttons in the group.\n */\n enableMutualExclusion() {\n this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, false);\n }\n\n /**\n * When the user clicks a radio button in this group only it will be selected.\n * No other radio buttons in the group will be selected, even if they share\n * the same underlying value. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.disableMutualExclusion()\n * ```\n * Note that this option must be disabled prior to adding options to the\n * radio group. It does not currently apply retroactively to existing\n * radio buttons in the group.\n */\n disableMutualExclusion() {\n this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, true);\n }\n\n /**\n * Add a new radio button to this group on the specified page. For example:\n * ```js\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const radioGroup = form.createRadioGroup('best.gundam')\n *\n * const options = {\n * x: 50,\n * width: 25,\n * height: 25,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * }\n *\n * radioGroup.addOptionToPage('Exia', page, { ...options, y: 50 })\n * radioGroup.addOptionToPage('Dynames', page, { ...options, y: 110 })\n * ```\n * This will create a new radio button widget for this radio group field.\n * @param option The option that the radio button widget represents.\n * @param page The page to which the radio button widget should be added.\n * @param options The options to be used when adding the radio button widget.\n */\n addOptionToPage(\n option: string,\n page: PDFPage,\n options?: FieldAppearanceOptions,\n ) {\n assertIs(option, 'option', ['string']);\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n // Create a widget for this radio button\n const widget = this.createWidget({\n x: options?.x ?? 0,\n y: options?.y ?? 0,\n width: options?.width ?? 50,\n height: options?.height ?? 50,\n textColor: options?.textColor ?? rgb(0, 0, 0),\n backgroundColor: options?.backgroundColor ?? rgb(1, 1, 1),\n borderColor: options?.borderColor ?? rgb(0, 0, 0),\n borderWidth: options?.borderWidth ?? 1,\n rotate: options?.rotate ?? degrees(0),\n hidden: options?.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n const apStateValue = this.acroField.addWidgetWithOpt(\n widgetRef,\n PDFHexString.fromText(option),\n !this.isMutuallyExclusive(),\n );\n\n // Set appearance streams for widget\n widget.setAppearanceState(PDFName.of('Off'));\n this.updateWidgetAppearance(widget, apStateValue);\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if any of this group's radio button widgets do not have an\n * appearance stream for their current state. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * if (radioGroup.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this radio group needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const state = widget.getAppearanceState();\n const normal = widget.getAppearances()?.normal;\n\n if (!(normal instanceof PDFDict)) return true;\n if (state && !normal.has(state)) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this group's radio button widgets\n * using the default appearance provider for radio groups. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.defaultUpdateAppearances()\n * ```\n */\n defaultUpdateAppearances() {\n this.updateAppearances();\n }\n\n // rg.updateAppearances((field: any, widget: any) => {\n // assert(field === rg);\n // assert(widget instanceof PDFWidgetAnnotation);\n // return { on: [...rectangle, ...circle], off: [...rectangle, ...circle] };\n // });\n\n /**\n * Update the appearance streams for each of this group's radio button widgets\n * using the given appearance provider. If no `provider` is passed, the\n * default appearance provider for radio groups will be used. For example:\n * ```js\n * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n * radioGroup.updateAppearances((field, widget) => {\n * ...\n * return {\n * normal: { on: drawRadioButton(...), off: drawRadioButton(...) },\n * down: { on: drawRadioButton(...), off: drawRadioButton(...) },\n * }\n * })\n * ```\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(provider?: AppearanceProviderFor) {\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const onValue = widget.getOnValue();\n if (!onValue) continue;\n this.updateWidgetAppearance(widget, onValue, provider);\n }\n }\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n onValue: PDFName,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultRadioGroupAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget));\n this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFField from 'src/api/form/PDFField';\n\nimport { PDFRef, PDFAcroSignature } from 'src/core';\nimport { assertIs } from 'src/utils';\n\n/**\n * Represents a signature field of a [[PDFForm]].\n *\n * [[PDFSignature]] fields are digital signatures. `pdf-lib` does not\n * currently provide any specialized APIs for creating digital signatures or\n * reading the contents of existing digital signatures.\n */\nexport default class PDFSignature extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getSignature]] method, which will create an\n * > instance of [[PDFSignature]] for you.\n *\n * Create an instance of [[PDFSignature]] from an existing acroSignature and\n * ref\n *\n * @param acroSignature The underlying `PDFAcroSignature` for this signature.\n * @param ref The unique reference for this signature.\n * @param doc The document to which this signature will belong.\n */\n static of = (\n acroSignature: PDFAcroSignature,\n ref: PDFRef,\n doc: PDFDocument,\n ) => new PDFSignature(acroSignature, ref, doc);\n\n /** The low-level PDFAcroSignature wrapped by this signature. */\n readonly acroField: PDFAcroSignature;\n\n private constructor(\n acroSignature: PDFAcroSignature,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroSignature, ref, doc);\n\n assertIs(acroSignature, 'acroSignature', [\n [PDFAcroSignature, 'PDFAcroSignature'],\n ]);\n\n this.acroField = acroSignature;\n }\n\n needsAppearancesUpdate() {\n return false;\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultTextFieldAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\nimport {\n RichTextFieldReadError,\n ExceededMaxLengthError,\n InvalidMaxLengthError,\n} from 'src/api/errors';\nimport { ImageAlignment } from 'src/api/image/alignment';\nimport { TextAlignment } from 'src/api/text/alignment';\n\nimport {\n PDFHexString,\n PDFRef,\n PDFStream,\n PDFAcroText,\n AcroTextFlags,\n PDFWidgetAnnotation,\n} from 'src/core';\nimport {\n assertIs,\n assertIsOneOf,\n assertOrUndefined,\n assertPositive,\n assertRangeOrUndefined,\n} from 'src/utils';\n\n/**\n * Represents a text field of a [[PDFForm]].\n *\n * [[PDFTextField]] fields are boxes that display text entered by the user. The\n * purpose of a text field is to enable users to enter text or view text values\n * in the document prefilled by software. Users can click on a text field and\n * input text via their keyboard. Some text fields allow multiple lines of text\n * to be entered (see [[PDFTextField.isMultiline]]).\n */\nexport default class PDFTextField extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getTextField]] method, which will create an\n * > instance of [[PDFTextField]] for you.\n *\n * Create an instance of [[PDFTextField]] from an existing acroText and ref\n *\n * @param acroText The underlying `PDFAcroText` for this text field.\n * @param ref The unique reference for this text field.\n * @param doc The document to which this text field will belong.\n */\n static of = (acroText: PDFAcroText, ref: PDFRef, doc: PDFDocument) =>\n new PDFTextField(acroText, ref, doc);\n\n /** The low-level PDFAcroText wrapped by this text field. */\n readonly acroField: PDFAcroText;\n\n private constructor(acroText: PDFAcroText, ref: PDFRef, doc: PDFDocument) {\n super(acroText, ref, doc);\n\n assertIs(acroText, 'acroText', [[PDFAcroText, 'PDFAcroText']]);\n\n this.acroField = acroText;\n }\n\n /**\n * Get the text that this field contains. This text is visible to users who\n * view this field in a PDF reader.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const text = textField.getText()\n * console.log('Text field contents:', text)\n * ```\n *\n * Note that if this text field contains no underlying value, `undefined`\n * will be returned. Text fields may also contain an underlying value that\n * is simply an empty string (`''`). This detail is largely irrelevant for\n * most applications. In general, you'll want to treat both cases the same\n * way and simply consider the text field to be empty. In either case, the\n * text field will appear empty to users when viewed in a PDF reader.\n *\n * An error will be thrown if this is a rich text field. `pdf-lib` does not\n * support reading rich text fields. Nor do most PDF readers and writers.\n * Rich text fields are based on XFA (XML Forms Architecture). Relatively few\n * PDFs use rich text fields or XFA. Unlike PDF itself, XFA is not an ISO\n * standard. XFA has been deprecated in PDF 2.0:\n * * https://en.wikipedia.org/wiki/XFA\n * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n *\n * @returns The text contained in this text field.\n */\n getText(): string | undefined {\n const value = this.acroField.getValue();\n if (!value && this.isRichFormatted()) {\n throw new RichTextFieldReadError(this.getName());\n }\n return value?.decodeText();\n }\n\n /**\n * Set the text for this field. This operation is analogous to a human user\n * clicking on the text field in a PDF reader and typing in text via their\n * keyboard. This method will update the underlying state of the text field\n * to indicate what text has been set. PDF libraries and readers will be able\n * to extract these values from the saved document and determine what text\n * was set.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('best.superhero.text.field')\n * textField.setText('One Punch Man')\n * ```\n *\n * This method will mark this text field as dirty, causing its appearance\n * streams to be updated when either [[PDFDocument.save]] or\n * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n * display the text this field contains inside the widgets of this text\n * field.\n *\n * **IMPORTANT:** The default font used to update appearance streams is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if this field contains text outside\n * the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing it to\n * [[PDFForm.updateFieldAppearances]] or [[PDFTextField.updateAppearances]]\n * allows you to generate appearance streams with characters outside the\n * latin alphabet (assuming the custom font supports them).\n *\n * If this is a rich text field, it will be converted to a standard text\n * field in order to set the text. `pdf-lib` does not support writing rich\n * text strings. Nor do most PDF readers and writers. See\n * [[PDFTextField.getText]] for more information about rich text fields and\n * their deprecation in PDF 2.0.\n *\n * @param text The text this field should contain.\n */\n setText(text: string | undefined) {\n assertOrUndefined(text, 'text', ['string']);\n\n const maxLength = this.getMaxLength();\n if (maxLength !== undefined && text && text.length > maxLength) {\n throw new ExceededMaxLengthError(text.length, maxLength, this.getName());\n }\n\n this.markAsDirty();\n this.disableRichFormatting();\n\n if (text) {\n this.acroField.setValue(PDFHexString.fromText(text));\n } else {\n this.acroField.removeValue();\n }\n }\n\n /**\n * Get the alignment for this text field. This value represents the\n * justification of the text when it is displayed to the user in PDF readers.\n * There are three possible alignments: left, center, and right. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const alignment = textField.getAlignment()\n * if (alignment === TextAlignment.Left) console.log('Text is left justified')\n * if (alignment === TextAlignment.Center) console.log('Text is centered')\n * if (alignment === TextAlignment.Right) console.log('Text is right justified')\n * ```\n * @returns The alignment of this text field.\n */\n getAlignment(): TextAlignment {\n const quadding = this.acroField.getQuadding();\n\n // prettier-ignore\n return (\n quadding === 0 ? TextAlignment.Left\n : quadding === 1 ? TextAlignment.Center\n : quadding === 2 ? TextAlignment.Right\n : TextAlignment.Left\n );\n }\n\n /**\n * Set the alignment for this text field. This will determine the\n * justification of the text when it is displayed to the user in PDF readers.\n * There are three possible alignments: left, center, and right. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n *\n * // Text will be left justified when displayed\n * textField.setAlignment(TextAlignment.Left)\n *\n * // Text will be centered when displayed\n * textField.setAlignment(TextAlignment.Center)\n *\n * // Text will be right justified when displayed\n * textField.setAlignment(TextAlignment.Right)\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n * @param alignment The alignment for this text field.\n */\n setAlignment(alignment: TextAlignment) {\n assertIsOneOf(alignment, 'alignment', TextAlignment);\n this.markAsDirty();\n this.acroField.setQuadding(alignment);\n }\n\n /**\n * Get the maximum length of this field. This value represents the maximum\n * number of characters that can be typed into this field by the user. If\n * this field does not have a maximum length, `undefined` is returned.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * const maxLength = textField.getMaxLength()\n * if (maxLength === undefined) console.log('No max length')\n * else console.log(`Max length is ${maxLength}`)\n * ```\n * @returns The maximum number of characters allowed in this field, or\n * `undefined` if no limit exists.\n */\n getMaxLength(): number | undefined {\n return this.acroField.getMaxLength();\n }\n\n /**\n * Set the maximum length of this field. This limits the number of characters\n * that can be typed into this field by the user. This also limits the length\n * of the string that can be passed to [[PDFTextField.setText]]. This limit\n * can be removed by passing `undefined` as `maxLength`. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n *\n * // Allow between 0 and 5 characters to be entered\n * textField.setMaxLength(5)\n *\n * // Allow any number of characters to be entered\n * textField.setMaxLength(undefined)\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n * @param maxLength The maximum number of characters allowed in this field, or\n * `undefined` to remove the limit.\n */\n setMaxLength(maxLength?: number) {\n assertRangeOrUndefined(maxLength, 'maxLength', 0, Number.MAX_SAFE_INTEGER);\n\n this.markAsDirty();\n\n if (maxLength === undefined) {\n this.acroField.removeMaxLength();\n } else {\n const text = this.getText();\n if (text && text.length > maxLength) {\n throw new InvalidMaxLengthError(text.length, maxLength, this.getName());\n }\n this.acroField.setMaxLength(maxLength);\n }\n }\n\n /**\n * Remove the maximum length for this text field. This allows any number of\n * characters to be typed into this field by the user. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.removeMaxLength()\n * ```\n * Calling this method is equivalent to passing `undefined` to\n * [[PDFTextField.setMaxLength]].\n */\n removeMaxLength() {\n this.markAsDirty();\n this.acroField.removeMaxLength();\n }\n\n /**\n * Display an image inside the bounds of this text field's widgets. For example:\n * ```js\n * const pngImage = await pdfDoc.embedPng(...)\n * const textField = form.getTextField('some.text.field')\n * textField.setImage(pngImage)\n * ```\n * This will update the appearances streams for each of this text field's widgets.\n * @param image The image that should be displayed.\n */\n setImage(image: PDFImage) {\n const fieldAlignment = this.getAlignment();\n\n // prettier-ignore\n const alignment = \n fieldAlignment === TextAlignment.Center ? ImageAlignment.Center\n : fieldAlignment === TextAlignment.Right ? ImageAlignment.Right\n : ImageAlignment.Left;\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const streamRef = this.createImageAppearanceStream(\n widget,\n image,\n alignment,\n );\n this.updateWidgetAppearances(widget, { normal: streamRef });\n }\n\n this.markAsClean();\n }\n\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this text field. Font sizes\n * may be integer or floating point numbers. Supplying a negative font size\n * will cause this method to throw an error.\n *\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.setFontSize(4)\n * textField.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n setFontSize(fontSize: number) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n }\n\n /**\n * Returns `true` if each line of text is shown on a new line when this\n * field is displayed in a PDF reader. The alternative is that all lines of\n * text are merged onto a single line when displayed. See\n * [[PDFTextField.enableMultiline]] and [[PDFTextField.disableMultiline]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isMultiline()) console.log('Multiline is enabled')\n * ```\n * @returns Whether or not this is a multiline text field.\n */\n isMultiline(): boolean {\n return this.acroField.hasFlag(AcroTextFlags.Multiline);\n }\n\n /**\n * Display each line of text on a new line when this field is displayed in a\n * PDF reader. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableMultiline()\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n enableMultiline() {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Multiline, true);\n }\n\n /**\n * Display each line of text on the same line when this field is displayed\n * in a PDF reader. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableMultiline()\n * ```\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n disableMultiline() {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Multiline, false);\n }\n\n /**\n * Returns `true` if this is a password text field. This means that the field\n * is intended for storing a secure password. See\n * [[PDFTextField.enablePassword]] and [[PDFTextField.disablePassword]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isPassword()) console.log('Password is enabled')\n * ```\n * @returns Whether or not this is a password text field.\n */\n isPassword(): boolean {\n return this.acroField.hasFlag(AcroTextFlags.Password);\n }\n\n /**\n * Indicate that this text field is intended for storing a secure password.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enablePassword()\n * ```\n * Values entered into password text fields should not be displayed on the\n * screen by PDF readers. Most PDF readers will display the value as\n * asterisks or bullets. PDF readers should never store values entered by the\n * user into password text fields. Similarly, applications should not\n * write data to a password text field.\n *\n * **Please note that this method does not cause entered values to be\n * encrypted or secured in any way! It simply sets a flag that PDF software\n * and readers can access to determine the _purpose_ of this field.**\n */\n enablePassword() {\n this.acroField.setFlagTo(AcroTextFlags.Password, true);\n }\n\n /**\n * Indicate that this text field is **not** intended for storing a secure\n * password. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disablePassword()\n * ```\n */\n disablePassword() {\n this.acroField.setFlagTo(AcroTextFlags.Password, false);\n }\n\n /**\n * Returns `true` if the contents of this text field represent a file path.\n * See [[PDFTextField.enableFileSelection]] and\n * [[PDFTextField.disableFileSelection]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isFileSelector()) console.log('Is a file selector')\n * ```\n * @returns Whether or not this field should contain file paths.\n */\n isFileSelector(): boolean {\n return this.acroField.hasFlag(AcroTextFlags.FileSelect);\n }\n\n /**\n * Indicate that this text field is intended to store a file path. The\n * contents of the file stored at that path should be submitted as the value\n * of the field. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableFileSelection()\n * ```\n */\n enableFileSelection() {\n this.acroField.setFlagTo(AcroTextFlags.FileSelect, true);\n }\n\n /**\n * Indicate that this text field is **not** intended to store a file path.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableFileSelection()\n * ```\n */\n disableFileSelection() {\n this.acroField.setFlagTo(AcroTextFlags.FileSelect, false);\n }\n\n /**\n * Returns `true` if the text entered in this field should be spell checked\n * by PDF readers. See [[PDFTextField.enableSpellChecking]] and\n * [[PDFTextField.disableSpellChecking]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isSpellChecked()) console.log('Spell checking is enabled')\n * ```\n * @returns Whether or not this field should be spell checked.\n */\n isSpellChecked(): boolean {\n return !this.acroField.hasFlag(AcroTextFlags.DoNotSpellCheck);\n }\n\n /**\n * Allow PDF readers to spell check the text entered in this field.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableSpellChecking()\n * ```\n */\n enableSpellChecking() {\n this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, false);\n }\n\n /**\n * Do not allow PDF readers to spell check the text entered in this field.\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableSpellChecking()\n * ```\n */\n disableSpellChecking() {\n this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, true);\n }\n\n /**\n * Returns `true` if PDF readers should allow the user to scroll the text\n * field when its contents do not fit within the field's view bounds. See\n * [[PDFTextField.enableScrolling]] and [[PDFTextField.disableScrolling]].\n * For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isScrollable()) console.log('Scrolling is enabled')\n * ```\n * @returns Whether or not the field is scrollable in PDF readers.\n */\n isScrollable(): boolean {\n return !this.acroField.hasFlag(AcroTextFlags.DoNotScroll);\n }\n\n /**\n * Allow PDF readers to present a scroll bar to the user when the contents\n * of this text field do not fit within its view bounds. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableScrolling()\n * ```\n * A horizontal scroll bar should be shown for singleline fields. A vertical\n * scroll bar should be shown for multiline fields.\n */\n enableScrolling() {\n this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, false);\n }\n\n /**\n * Do not allow PDF readers to present a scroll bar to the user when the\n * contents of this text field do not fit within its view bounds. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableScrolling()\n * ```\n */\n disableScrolling() {\n this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, true);\n }\n\n /**\n * Returns `true` if this is a combed text field. This means that the field\n * is split into `n` equal size cells with one character in each (where `n`\n * is equal to the max length of the text field). The result is that all\n * characters in this field are displayed an equal distance apart from one\n * another. See [[PDFTextField.enableCombing]] and\n * [[PDFTextField.disableCombing]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isCombed()) console.log('Combing is enabled')\n * ```\n * Note that in order for a text field to be combed, the following must be\n * true (in addition to enabling combing):\n * * It must not be a multiline field (see [[PDFTextField.isMultiline]])\n * * It must not be a password field (see [[PDFTextField.isPassword]])\n * * It must not be a file selector field (see [[PDFTextField.isFileSelector]])\n * * It must have a max length defined (see [[PDFTextField.setMaxLength]])\n * @returns Whether or not this field is combed.\n */\n isCombed(): boolean {\n return (\n this.acroField.hasFlag(AcroTextFlags.Comb) &&\n !this.isMultiline() &&\n !this.isPassword() &&\n !this.isFileSelector() &&\n this.getMaxLength() !== undefined\n );\n }\n\n /**\n * Split this field into `n` equal size cells with one character in each\n * (where `n` is equal to the max length of the text field). This will cause\n * all characters in the field to be displayed an equal distance apart from\n * one another. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableCombing()\n * ```\n *\n * In addition to calling this method, text fields must have a max length\n * defined in order to be combed (see [[PDFTextField.setMaxLength]]).\n *\n * This method will also call the following three methods internally:\n * * [[PDFTextField.disableMultiline]]\n * * [[PDFTextField.disablePassword]]\n * * [[PDFTextField.disableFileSelection]]\n *\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n enableCombing() {\n if (this.getMaxLength() === undefined) {\n const msg = `PDFTextFields must have a max length in order to be combed`;\n console.warn(msg);\n }\n\n this.markAsDirty();\n\n this.disableMultiline();\n this.disablePassword();\n this.disableFileSelection();\n\n this.acroField.setFlagTo(AcroTextFlags.Comb, true);\n }\n\n /**\n * Turn off combing for this text field. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableCombing()\n * ```\n * See [[PDFTextField.isCombed]] and [[PDFTextField.enableCombing]] for more\n * information about what combing is.\n *\n * This method will mark this text field as dirty. See\n * [[PDFTextField.setText]] for more details about what this means.\n */\n disableCombing() {\n this.markAsDirty();\n this.acroField.setFlagTo(AcroTextFlags.Comb, false);\n }\n\n /**\n * Returns `true` if this text field contains rich text. See\n * [[PDFTextField.enableRichFormatting]] and\n * [[PDFTextField.disableRichFormatting]]. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.isRichFormatted()) console.log('Rich formatting enabled')\n * ```\n * @returns Whether or not this field contains rich text.\n */\n isRichFormatted(): boolean {\n return this.acroField.hasFlag(AcroTextFlags.RichText);\n }\n\n /**\n * Indicate that this field contains XFA data - or rich text. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.enableRichFormatting()\n * ```\n * Note that `pdf-lib` does not support reading or writing rich text fields.\n * Nor do most PDF readers and writers. Rich text fields are based on XFA\n * (XML Forms Architecture). Relatively few PDFs use rich text fields or XFA.\n * Unlike PDF itself, XFA is not an ISO standard. XFA has been deprecated in\n * PDF 2.0:\n * * https://en.wikipedia.org/wiki/XFA\n * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n */\n enableRichFormatting() {\n this.acroField.setFlagTo(AcroTextFlags.RichText, true);\n }\n\n /**\n * Indicate that this is a standard text field that does not XFA data (rich\n * text). For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * textField.disableRichFormatting()\n * ```\n */\n disableRichFormatting() {\n this.acroField.setFlagTo(AcroTextFlags.RichText, false);\n }\n\n /**\n * Show this text field on the specified page. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const textField = form.createTextField('best.gundam')\n * textField.setText('Exia')\n *\n * textField.addToPage(page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this text field.\n * @param page The page to which this text field widget should be added.\n * @param options The options to be used when adding this text field widget.\n */\n addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n if (!options) options = {};\n\n if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n if (!('borderWidth' in options)) options.borderWidth = 1;\n\n // Create a widget for this text field\n const widget = this.createWidget({\n x: options.x ?? 0,\n y: options.y ?? 0,\n width: options.width ?? 200,\n height: options.height ?? 50,\n textColor: options.textColor,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth ?? 0,\n rotate: options.rotate ?? degrees(0),\n hidden: options.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n\n // Set appearance streams for widget\n const font = options.font ?? this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if this text field has been marked as dirty, or if any of\n * this text field's widgets do not have an appearance stream. For example:\n * ```js\n * const textField = form.getTextField('some.text.field')\n * if (textField.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this text field needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n if (this.isDirty()) return true;\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const hasAppearances =\n widget.getAppearances()?.normal instanceof PDFStream;\n if (!hasAppearances) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this text field's widgets using\n * the default appearance provider for text fields. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const textField = form.getTextField('some.text.field')\n * textField.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n defaultUpdateAppearances(font: PDFFont) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n }\n\n /**\n * Update the appearance streams for each of this text field's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for text fields will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const textField = form.getTextField('some.text.field')\n * textField.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return drawTextField(...)\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n this.markAsClean();\n }\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultTextFieldAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n }\n}\n","export enum StandardFonts {\n Courier = 'Courier',\n CourierBold = 'Courier-Bold',\n CourierOblique = 'Courier-Oblique',\n CourierBoldOblique = 'Courier-BoldOblique',\n Helvetica = 'Helvetica',\n HelveticaBold = 'Helvetica-Bold',\n HelveticaOblique = 'Helvetica-Oblique',\n HelveticaBoldOblique = 'Helvetica-BoldOblique',\n TimesRoman = 'Times-Roman',\n TimesRomanBold = 'Times-Bold',\n TimesRomanItalic = 'Times-Italic',\n TimesRomanBoldItalic = 'Times-BoldItalic',\n Symbol = 'Symbol',\n ZapfDingbats = 'ZapfDingbats',\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFField from 'src/api/form/PDFField';\nimport PDFButton from 'src/api/form/PDFButton';\nimport PDFCheckBox from 'src/api/form/PDFCheckBox';\nimport PDFDropdown from 'src/api/form/PDFDropdown';\nimport PDFOptionList from 'src/api/form/PDFOptionList';\nimport PDFRadioGroup from 'src/api/form/PDFRadioGroup';\nimport PDFSignature from 'src/api/form/PDFSignature';\nimport PDFTextField from 'src/api/form/PDFTextField';\nimport {\n NoSuchFieldError,\n UnexpectedFieldTypeError,\n FieldAlreadyExistsError,\n InvalidFieldNamePartError,\n} from 'src/api/errors';\nimport PDFFont from 'src/api/PDFFont';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport { rotateInPlace } from 'src/api/operations';\nimport {\n drawObject,\n popGraphicsState,\n pushGraphicsState,\n translate,\n} from 'src/api/operators';\nimport {\n PDFAcroForm,\n PDFAcroField,\n PDFAcroCheckBox,\n PDFAcroComboBox,\n PDFAcroListBox,\n PDFAcroRadioButton,\n PDFAcroSignature,\n PDFAcroText,\n PDFAcroPushButton,\n PDFAcroNonTerminal,\n PDFDict,\n PDFOperator,\n PDFRef,\n createPDFAcroFields,\n PDFName,\n PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, Cache, assertOrUndefined } from 'src/utils';\n\nexport interface FlattenOptions {\n updateFieldAppearances: boolean;\n}\n\n/**\n * Represents the interactive form of a [[PDFDocument]].\n *\n * Interactive forms (sometimes called _AcroForms_) are collections of fields\n * designed to gather information from a user. A PDF document may contains any\n * number of fields that appear on various pages, all of which make up a single,\n * global interactive form spanning the entire document. This means that\n * instances of [[PDFDocument]] shall contain at most one [[PDFForm]].\n *\n * The fields of an interactive form are represented by [[PDFField]] instances.\n */\nexport default class PDFForm {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.getForm]] method, which will create an\n * > instance of [[PDFForm]] for you.\n *\n * Create an instance of [[PDFForm]] from an existing acroForm and embedder\n *\n * @param acroForm The underlying `PDFAcroForm` for this form.\n * @param doc The document to which the form will belong.\n */\n static of = (acroForm: PDFAcroForm, doc: PDFDocument) =>\n new PDFForm(acroForm, doc);\n\n /** The low-level PDFAcroForm wrapped by this form. */\n readonly acroForm: PDFAcroForm;\n\n /** The document to which this form belongs. */\n readonly doc: PDFDocument;\n\n private readonly dirtyFields: Set;\n private readonly defaultFontCache: Cache;\n\n private constructor(acroForm: PDFAcroForm, doc: PDFDocument) {\n assertIs(acroForm, 'acroForm', [[PDFAcroForm, 'PDFAcroForm']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n this.acroForm = acroForm;\n this.doc = doc;\n\n this.dirtyFields = new Set();\n this.defaultFontCache = Cache.populatedBy(this.embedDefaultFont);\n }\n\n /**\n * Returns `true` if this [[PDFForm]] has XFA data. Most PDFs with form\n * fields do not use XFA as it is not widely supported by PDF readers.\n *\n * > `pdf-lib` does not support creation, modification, or reading of XFA\n * > fields.\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * if (form.hasXFA()) console.log('PDF has XFA data')\n * ```\n * @returns Whether or not this form has XFA data.\n */\n hasXFA(): boolean {\n return this.acroForm.dict.has(PDFName.of('XFA'));\n }\n\n /**\n * Disconnect the XFA data from this [[PDFForm]] (if any exists). This will\n * force readers to fallback to standard fields if the [[PDFDocument]]\n * contains any. For example:\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * form.deleteXFA()\n * ```\n */\n deleteXFA(): void {\n this.acroForm.dict.delete(PDFName.of('XFA'));\n }\n\n /**\n * Get all fields contained in this [[PDFForm]]. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const type = field.constructor.name\n * const name = field.getName()\n * console.log(`${type}: ${name}`)\n * })\n * ```\n * @returns An array of all fields in this form.\n */\n getFields(): PDFField[] {\n const allFields = this.acroForm.getAllFields();\n\n const fields: PDFField[] = [];\n for (let idx = 0, len = allFields.length; idx < len; idx++) {\n const [acroField, ref] = allFields[idx];\n const field = convertToPDFField(acroField, ref, this.doc);\n if (field) fields.push(field);\n }\n\n return fields;\n }\n\n /**\n * Get the field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getFieldMaybe('Page1.Foo.Bar[0]')\n * if (field) console.log('Field exists!')\n * ```\n * @param name A fully qualified field name.\n * @returns The field with the specified name, if one exists.\n */\n getFieldMaybe(name: string): PDFField | undefined {\n assertIs(name, 'name', ['string']);\n const fields = this.getFields();\n for (let idx = 0, len = fields.length; idx < len; idx++) {\n const field = fields[idx];\n if (field.getName() === name) return field;\n }\n return undefined;\n }\n\n /**\n * Get the field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('Page1.Foo.Bar[0]')\n * ```\n * If no field exists with the provided name, an error will be thrown.\n * @param name A fully qualified field name.\n * @returns The field with the specified name.\n */\n getField(name: string): PDFField {\n assertIs(name, 'name', ['string']);\n const field = this.getFieldMaybe(name);\n if (field) return field;\n throw new NoSuchFieldError(name);\n }\n\n /**\n * Get the button field in this [[PDFForm]] with the given name. For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const button = form.getButton('Page1.Foo.Button[0]')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a button.\n * @param name A fully qualified button name.\n * @returns The button with the specified name.\n */\n getButton(name: string): PDFButton {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFButton) return field;\n throw new UnexpectedFieldTypeError(name, PDFButton, field);\n }\n\n /**\n * Get the check box field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const checkBox = form.getCheckBox('Page1.Foo.CheckBox[0]')\n * checkBox.check()\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a check box.\n * @param name A fully qualified check box name.\n * @returns The check box with the specified name.\n */\n getCheckBox(name: string): PDFCheckBox {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFCheckBox) return field;\n throw new UnexpectedFieldTypeError(name, PDFCheckBox, field);\n }\n\n /**\n * Get the dropdown field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const dropdown = form.getDropdown('Page1.Foo.Dropdown[0]')\n * const options = dropdown.getOptions()\n * dropdown.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a dropdown.\n * @param name A fully qualified dropdown name.\n * @returns The dropdown with the specified name.\n */\n getDropdown(name: string): PDFDropdown {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFDropdown) return field;\n throw new UnexpectedFieldTypeError(name, PDFDropdown, field);\n }\n\n /**\n * Get the option list field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const optionList = form.getOptionList('Page1.Foo.OptionList[0]')\n * const options = optionList.getOptions()\n * optionList.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not an option list.\n * @param name A fully qualified option list name.\n * @returns The option list with the specified name.\n */\n getOptionList(name: string): PDFOptionList {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFOptionList) return field;\n throw new UnexpectedFieldTypeError(name, PDFOptionList, field);\n }\n\n /**\n * Get the radio group field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const radioGroup = form.getRadioGroup('Page1.Foo.RadioGroup[0]')\n * const options = radioGroup.getOptions()\n * radioGroup.select(options[0])\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a radio group.\n * @param name A fully qualified radio group name.\n * @returns The radio group with the specified name.\n */\n getRadioGroup(name: string): PDFRadioGroup {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFRadioGroup) return field;\n throw new UnexpectedFieldTypeError(name, PDFRadioGroup, field);\n }\n\n /**\n * Get the signature field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const signature = form.getSignature('Page1.Foo.Signature[0]')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a signature.\n * @param name A fully qualified signature name.\n * @returns The signature with the specified name.\n */\n getSignature(name: string): PDFSignature {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFSignature) return field;\n throw new UnexpectedFieldTypeError(name, PDFSignature, field);\n }\n\n /**\n * Get the text field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const textField = form.getTextField('Page1.Foo.TextField[0]')\n * textField.setText('Are you designed to act or to be acted upon?')\n * ```\n * An error will be thrown if no field exists with the provided name, or if\n * the field exists but is not a text field.\n * @param name A fully qualified text field name.\n * @returns The text field with the specified name.\n */\n getTextField(name: string): PDFTextField {\n assertIs(name, 'name', ['string']);\n const field = this.getField(name);\n if (field instanceof PDFTextField) return field;\n throw new UnexpectedFieldTypeError(name, PDFTextField, field);\n }\n\n /**\n * Create a new button field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const button = form.createButton('cool.new.button')\n *\n * button.addToPage('Do Stuff', font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new button.\n * @returns The new button field.\n */\n createButton(name: string): PDFButton {\n assertIs(name, 'name', ['string']);\n\n const nameParts = splitFieldName(name);\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const button = PDFAcroPushButton.create(this.doc.context);\n button.setPartialName(nameParts.terminal);\n\n addFieldToParent(parent, [button, button.ref], nameParts.terminal);\n\n return PDFButton.of(button, button.ref, this.doc);\n }\n\n /**\n * Create a new check box field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const checkBox = form.createCheckBox('cool.new.checkBox')\n *\n * checkBox.addToPage(page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new check box.\n * @returns The new check box field.\n */\n createCheckBox(name: string): PDFCheckBox {\n assertIs(name, 'name', ['string']);\n\n const nameParts = splitFieldName(name);\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const checkBox = PDFAcroCheckBox.create(this.doc.context);\n checkBox.setPartialName(nameParts.terminal);\n\n addFieldToParent(parent, [checkBox, checkBox.ref], nameParts.terminal);\n\n return PDFCheckBox.of(checkBox, checkBox.ref, this.doc);\n }\n\n /**\n * Create a new dropdown field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const dropdown = form.createDropdown('cool.new.dropdown')\n *\n * dropdown.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new dropdown.\n * @returns The new dropdown field.\n */\n createDropdown(name: string): PDFDropdown {\n assertIs(name, 'name', ['string']);\n\n const nameParts = splitFieldName(name);\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const comboBox = PDFAcroComboBox.create(this.doc.context);\n comboBox.setPartialName(nameParts.terminal);\n\n addFieldToParent(parent, [comboBox, comboBox.ref], nameParts.terminal);\n\n return PDFDropdown.of(comboBox, comboBox.ref, this.doc);\n }\n\n /**\n * Create a new option list field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const optionList = form.createOptionList('cool.new.optionList')\n *\n * optionList.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new option list.\n * @returns The new option list field.\n */\n createOptionList(name: string): PDFOptionList {\n assertIs(name, 'name', ['string']);\n\n const nameParts = splitFieldName(name);\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const listBox = PDFAcroListBox.create(this.doc.context);\n listBox.setPartialName(nameParts.terminal);\n\n addFieldToParent(parent, [listBox, listBox.ref], nameParts.terminal);\n\n return PDFOptionList.of(listBox, listBox.ref, this.doc);\n }\n\n /**\n * Create a new radio group field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const radioGroup = form.createRadioGroup('cool.new.radioGroup')\n *\n * radioGroup.addOptionToPage('is-dog', page, { y: 0 })\n * radioGroup.addOptionToPage('is-cat', page, { y: 75 })\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new radio group.\n * @returns The new radio group field.\n */\n createRadioGroup(name: string): PDFRadioGroup {\n assertIs(name, 'name', ['string']);\n const nameParts = splitFieldName(name);\n\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const radioButton = PDFAcroRadioButton.create(this.doc.context);\n radioButton.setPartialName(nameParts.terminal);\n\n addFieldToParent(\n parent,\n [radioButton, radioButton.ref],\n nameParts.terminal,\n );\n\n return PDFRadioGroup.of(radioButton, radioButton.ref, this.doc);\n }\n\n /**\n * Create a new text field in this [[PDFForm]] with the given name.\n * For example:\n * ```js\n * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const textField = form.createTextField('cool.new.textField')\n *\n * textField.addToPage(font, page)\n * ```\n * An error will be thrown if a field already exists with the provided name.\n * @param name The fully qualified name for the new radio group.\n * @returns The new radio group field.\n */\n createTextField(name: string): PDFTextField {\n assertIs(name, 'name', ['string']);\n const nameParts = splitFieldName(name);\n\n const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n const text = PDFAcroText.create(this.doc.context);\n text.setPartialName(nameParts.terminal);\n\n addFieldToParent(parent, [text, text.ref], nameParts.terminal);\n\n return PDFTextField.of(text, text.ref, this.doc);\n }\n\n /**\n * Flatten all fields in this [[PDFForm]].\n *\n * Flattening a form field will take the current appearance for each of that\n * field's widgets and make them part of their page's content stream. All form\n * fields and annotations associated are then removed. Note that once a form\n * has been flattened its fields can no longer be accessed or edited.\n *\n * This operation is often used after filling form fields to ensure a\n * consistent appearance across different PDF readers and/or printers.\n * Another common use case is to copy a template document with form fields\n * into another document. In this scenario you would load the template\n * document, fill its fields, flatten it, and then copy its pages into the\n * recipient document - the filled fields will be copied over.\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm();\n * form.flatten();\n * ```\n */\n flatten(options: FlattenOptions = { updateFieldAppearances: true }) {\n if (options.updateFieldAppearances) {\n this.updateFieldAppearances();\n }\n\n const fields = this.getFields();\n\n for (let i = 0, lenFields = fields.length; i < lenFields; i++) {\n const field = fields[i];\n const widgets = field.acroField.getWidgets();\n\n for (let j = 0, lenWidgets = widgets.length; j < lenWidgets; j++) {\n const widget = widgets[j];\n const page = this.findWidgetPage(widget);\n const widgetRef = this.findWidgetAppearanceRef(field, widget);\n\n const xObjectKey = page.node.newXObject('FlatWidget', widgetRef);\n\n const rectangle = widget.getRectangle();\n const operators = [\n pushGraphicsState(),\n translate(rectangle.x, rectangle.y),\n ...rotateInPlace({ ...rectangle, rotation: 0 }),\n drawObject(xObjectKey),\n popGraphicsState(),\n ].filter(Boolean) as PDFOperator[];\n\n page.pushOperators(...operators);\n }\n\n this.removeField(field);\n }\n }\n\n /**\n * Remove a field from this [[PDFForm]].\n *\n * For example:\n * ```js\n * const form = pdfDoc.getForm();\n * const ageField = form.getFields().find(x => x.getName() === 'Age');\n * form.removeField(ageField);\n * ```\n */\n removeField(field: PDFField) {\n const widgets = field.acroField.getWidgets();\n const pages: Set = new Set();\n\n for (let i = 0, len = widgets.length; i < len; i++) {\n const widget = widgets[i];\n const widgetRef = this.findWidgetAppearanceRef(field, widget);\n\n const page = this.findWidgetPage(widget);\n pages.add(page);\n\n page.node.removeAnnot(widgetRef);\n }\n\n pages.forEach((page) => page.node.removeAnnot(field.ref));\n this.acroForm.removeField(field.acroField);\n const fieldKids = field.acroField.normalizedEntries().Kids;\n const kidsCount = fieldKids.size();\n for (let childIndex = 0; childIndex < kidsCount; childIndex++) {\n const child = fieldKids.get(childIndex);\n if (child instanceof PDFRef) {\n this.doc.context.delete(child);\n }\n }\n this.doc.context.delete(field.ref);\n }\n\n /**\n * Update the appearance streams for all widgets of all fields in this\n * [[PDFForm]]. Appearance streams will only be created for a widget if it\n * does not have any existing appearance streams, or the field's value has\n * changed (e.g. by calling [[PDFTextField.setText]] or\n * [[PDFDropdown.select]]).\n *\n * For example:\n * ```js\n * const courier = await pdfDoc.embedFont(StandardFonts.Courier)\n * const form = pdfDoc.getForm()\n * form.updateFieldAppearances(courier)\n * ```\n *\n * **IMPORTANT:** The default value for the `font` parameter is\n * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n * that encoding errors will be thrown if any fields contain text with\n * characters outside the WinAnsi character set (the latin alphabet).\n *\n * Embedding a custom font and passing that as the `font`\n * parameter allows you to generate appearance streams with non WinAnsi\n * characters (assuming your custom font supports them).\n *\n * > **NOTE:** The [[PDFDocument.save]] method will call this method to\n * > update appearances automatically if a form was accessed via the\n * > [[PDFDocument.getForm]] method prior to saving.\n *\n * @param font Optionally, the font to use when creating new appearances.\n */\n updateFieldAppearances(font?: PDFFont) {\n assertOrUndefined(font, 'font', [[PDFFont, 'PDFFont']]);\n\n font = font ?? this.getDefaultFont();\n\n const fields = this.getFields();\n\n for (let idx = 0, len = fields.length; idx < len; idx++) {\n const field = fields[idx];\n if (field.needsAppearancesUpdate()) {\n field.defaultUpdateAppearances(font);\n }\n }\n }\n\n /**\n * Mark a field as dirty. This will cause its appearance streams to be\n * updated by [[PDFForm.updateFieldAppearances]].\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * form.markFieldAsDirty(field.ref)\n * ```\n * @param fieldRef The reference to the field that should be marked.\n */\n markFieldAsDirty(fieldRef: PDFRef) {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n this.dirtyFields.add(fieldRef);\n }\n\n /**\n * Mark a field as dirty. This will cause its appearance streams to not be\n * updated by [[PDFForm.updateFieldAppearances]].\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * form.markFieldAsClean(field.ref)\n * ```\n * @param fieldRef The reference to the field that should be marked.\n */\n markFieldAsClean(fieldRef: PDFRef) {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n this.dirtyFields.delete(fieldRef);\n }\n\n /**\n * Returns `true` is the specified field has been marked as dirty.\n * ```js\n * const form = pdfDoc.getForm()\n * const field = form.getField('foo.bar')\n * if (form.fieldIsDirty(field.ref)) console.log('Field is dirty')\n * ```\n * @param fieldRef The reference to the field that should be checked.\n * @returns Whether or not the specified field is dirty.\n */\n fieldIsDirty(fieldRef: PDFRef): boolean {\n assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n return this.dirtyFields.has(fieldRef);\n }\n\n getDefaultFont() {\n return this.defaultFontCache.access();\n }\n\n private findWidgetPage(widget: PDFWidgetAnnotation): PDFPage {\n const pageRef = widget.P();\n let page = this.doc.getPages().find((x) => x.ref === pageRef);\n if (page === undefined) {\n const widgetRef = this.doc.context.getObjectRef(widget.dict);\n if (widgetRef === undefined) {\n throw new Error('Could not find PDFRef for PDFObject');\n }\n\n page = this.doc.findPageForAnnotationRef(widgetRef);\n\n if (page === undefined) {\n throw new Error(`Could not find page for PDFRef ${widgetRef}`);\n }\n }\n\n return page;\n }\n\n private findWidgetAppearanceRef(\n field: PDFField,\n widget: PDFWidgetAnnotation,\n ): PDFRef {\n let refOrDict = widget.getNormalAppearance();\n\n if (\n refOrDict instanceof PDFDict &&\n (field instanceof PDFCheckBox || field instanceof PDFRadioGroup)\n ) {\n const value = field.acroField.getValue();\n const ref = refOrDict.get(value) ?? refOrDict.get(PDFName.of('Off'));\n\n if (ref instanceof PDFRef) {\n refOrDict = ref;\n }\n }\n\n if (!(refOrDict instanceof PDFRef)) {\n const name = field.getName();\n throw new Error(`Failed to extract appearance ref for: ${name}`);\n }\n\n return refOrDict;\n }\n\n private findOrCreateNonTerminals(partialNames: string[]) {\n let nonTerminal: [PDFAcroForm] | [PDFAcroNonTerminal, PDFRef] = [\n this.acroForm,\n ];\n for (let idx = 0, len = partialNames.length; idx < len; idx++) {\n const namePart = partialNames[idx];\n if (!namePart) throw new InvalidFieldNamePartError(namePart);\n const [parent, parentRef] = nonTerminal;\n const res = this.findNonTerminal(namePart, parent);\n\n if (res) {\n nonTerminal = res;\n } else {\n const node = PDFAcroNonTerminal.create(this.doc.context);\n node.setPartialName(namePart);\n node.setParent(parentRef);\n const nodeRef = this.doc.context.register(node.dict);\n parent.addField(nodeRef);\n nonTerminal = [node, nodeRef];\n }\n }\n return nonTerminal;\n }\n\n private findNonTerminal(\n partialName: string,\n parent: PDFAcroForm | PDFAcroNonTerminal,\n ): [PDFAcroNonTerminal, PDFRef] | undefined {\n const fields =\n parent instanceof PDFAcroForm\n ? this.acroForm.getFields()\n : createPDFAcroFields(parent.Kids());\n\n for (let idx = 0, len = fields.length; idx < len; idx++) {\n const [field, ref] = fields[idx];\n if (field.getPartialName() === partialName) {\n if (field instanceof PDFAcroNonTerminal) return [field, ref];\n throw new FieldAlreadyExistsError(partialName);\n }\n }\n\n return undefined;\n }\n\n private embedDefaultFont = (): PDFFont =>\n this.doc.embedStandardFont(StandardFonts.Helvetica);\n}\n\nconst convertToPDFField = (\n field: PDFAcroField,\n ref: PDFRef,\n doc: PDFDocument,\n): PDFField | undefined => {\n if (field instanceof PDFAcroPushButton) return PDFButton.of(field, ref, doc);\n if (field instanceof PDFAcroCheckBox) return PDFCheckBox.of(field, ref, doc);\n if (field instanceof PDFAcroComboBox) return PDFDropdown.of(field, ref, doc);\n if (field instanceof PDFAcroListBox) return PDFOptionList.of(field, ref, doc);\n if (field instanceof PDFAcroText) return PDFTextField.of(field, ref, doc);\n if (field instanceof PDFAcroRadioButton) {\n return PDFRadioGroup.of(field, ref, doc);\n }\n if (field instanceof PDFAcroSignature) {\n return PDFSignature.of(field, ref, doc);\n }\n return undefined;\n};\n\nconst splitFieldName = (fullyQualifiedName: string) => {\n if (fullyQualifiedName.length === 0) {\n throw new Error('PDF field names must not be empty strings');\n }\n\n const parts = fullyQualifiedName.split('.');\n\n for (let idx = 0, len = parts.length; idx < len; idx++) {\n if (parts[idx] === '') {\n throw new Error(\n `Periods in PDF field names must be separated by at least one character: \"${fullyQualifiedName}\"`,\n );\n }\n }\n\n if (parts.length === 1) return { nonTerminal: [], terminal: parts[0] };\n\n return {\n nonTerminal: parts.slice(0, parts.length - 1),\n terminal: parts[parts.length - 1],\n };\n};\n\nconst addFieldToParent = (\n [parent, parentRef]: [PDFAcroForm] | [PDFAcroNonTerminal, PDFRef],\n [field, fieldRef]: [PDFAcroField, PDFRef],\n partialName: string,\n) => {\n const entries = parent.normalizedEntries();\n const fields = createPDFAcroFields(\n 'Kids' in entries ? entries.Kids : entries.Fields,\n );\n for (let idx = 0, len = fields.length; idx < len; idx++) {\n if (fields[idx][0].getPartialName() === partialName) {\n throw new FieldAlreadyExistsError(partialName);\n }\n }\n parent.addField(fieldRef);\n field.setParent(parentRef);\n};\n","import { EmbeddedFileOptions } from 'src/core/embedders/FileEmbedder';\nimport { TypeFeatures } from 'src/types/fontkit';\n\nexport enum ParseSpeeds {\n Fastest = Infinity,\n Fast = 1500,\n Medium = 500,\n Slow = 100,\n}\n\nexport interface AttachmentOptions extends EmbeddedFileOptions {}\n\nexport interface SaveOptions {\n useObjectStreams?: boolean;\n addDefaultPage?: boolean;\n objectsPerTick?: number;\n updateFieldAppearances?: boolean;\n}\n\nexport interface Base64SaveOptions extends SaveOptions {\n dataUri?: boolean;\n}\n\nexport interface LoadOptions {\n ignoreEncryption?: boolean;\n parseSpeed?: ParseSpeeds | number;\n throwOnInvalidObject?: boolean;\n updateMetadata?: boolean;\n capNumbers?: boolean;\n}\n\nexport interface CreateOptions {\n updateMetadata?: boolean;\n}\n\nexport interface EmbedFontOptions {\n subset?: boolean;\n customName?: string;\n features?: TypeFeatures;\n}\n\nexport interface SetTitleOptions {\n showInWindowTitleBar: boolean;\n}\n","export const PageSizes = {\n '4A0': [4767.87, 6740.79] as [number, number],\n '2A0': [3370.39, 4767.87] as [number, number],\n A0: [2383.94, 3370.39] as [number, number],\n A1: [1683.78, 2383.94] as [number, number],\n A2: [1190.55, 1683.78] as [number, number],\n A3: [841.89, 1190.55] as [number, number],\n A4: [595.28, 841.89] as [number, number],\n A5: [419.53, 595.28] as [number, number],\n A6: [297.64, 419.53] as [number, number],\n A7: [209.76, 297.64] as [number, number],\n A8: [147.4, 209.76] as [number, number],\n A9: [104.88, 147.4] as [number, number],\n A10: [73.7, 104.88] as [number, number],\n B0: [2834.65, 4008.19] as [number, number],\n B1: [2004.09, 2834.65] as [number, number],\n B2: [1417.32, 2004.09] as [number, number],\n B3: [1000.63, 1417.32] as [number, number],\n B4: [708.66, 1000.63] as [number, number],\n B5: [498.9, 708.66] as [number, number],\n B6: [354.33, 498.9] as [number, number],\n B7: [249.45, 354.33] as [number, number],\n B8: [175.75, 249.45] as [number, number],\n B9: [124.72, 175.75] as [number, number],\n B10: [87.87, 124.72] as [number, number],\n C0: [2599.37, 3676.54] as [number, number],\n C1: [1836.85, 2599.37] as [number, number],\n C2: [1298.27, 1836.85] as [number, number],\n C3: [918.43, 1298.27] as [number, number],\n C4: [649.13, 918.43] as [number, number],\n C5: [459.21, 649.13] as [number, number],\n C6: [323.15, 459.21] as [number, number],\n C7: [229.61, 323.15] as [number, number],\n C8: [161.57, 229.61] as [number, number],\n C9: [113.39, 161.57] as [number, number],\n C10: [79.37, 113.39] as [number, number],\n RA0: [2437.8, 3458.27] as [number, number],\n RA1: [1729.13, 2437.8] as [number, number],\n RA2: [1218.9, 1729.13] as [number, number],\n RA3: [864.57, 1218.9] as [number, number],\n RA4: [609.45, 864.57] as [number, number],\n SRA0: [2551.18, 3628.35] as [number, number],\n SRA1: [1814.17, 2551.18] as [number, number],\n SRA2: [1275.59, 1814.17] as [number, number],\n SRA3: [907.09, 1275.59] as [number, number],\n SRA4: [637.8, 907.09] as [number, number],\n Executive: [521.86, 756.0] as [number, number],\n Folio: [612.0, 936.0] as [number, number],\n Legal: [612.0, 1008.0] as [number, number],\n Letter: [612.0, 792.0] as [number, number],\n Tabloid: [792.0, 1224.0] as [number, number],\n};\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport FileEmbedder from 'src/core/embedders/FileEmbedder';\nimport { PDFName, PDFArray, PDFDict, PDFHexString, PDFRef } from 'src/core';\n\n/**\n * Represents a file that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFEmbeddedFile implements Embeddable {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.attach]] method, which will create\n * instances of [[PDFEmbeddedFile]] for you.\n *\n * Create an instance of [[PDFEmbeddedFile]] from an existing ref and embedder\n *\n * @param ref The unique reference for this file.\n * @param doc The document to which the file will belong.\n * @param embedder The embedder that will be used to embed the file.\n */\n static of = (ref: PDFRef, doc: PDFDocument, embedder: FileEmbedder) =>\n new PDFEmbeddedFile(ref, doc, embedder);\n\n /** The unique reference assigned to this embedded file within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this embedded file belongs. */\n readonly doc: PDFDocument;\n\n private alreadyEmbedded = false;\n private readonly embedder: FileEmbedder;\n\n private constructor(ref: PDFRef, doc: PDFDocument, embedder: FileEmbedder) {\n this.ref = ref;\n this.doc = doc;\n this.embedder = embedder;\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all embeddable files get embedded.\n *\n * Embed this embeddable file in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n async embed(): Promise {\n if (!this.alreadyEmbedded) {\n const ref = await this.embedder.embedIntoContext(\n this.doc.context,\n this.ref,\n );\n\n if (!this.doc.catalog.has(PDFName.of('Names'))) {\n this.doc.catalog.set(PDFName.of('Names'), this.doc.context.obj({}));\n }\n const Names = this.doc.catalog.lookup(PDFName.of('Names'), PDFDict);\n\n if (!Names.has(PDFName.of('EmbeddedFiles'))) {\n Names.set(PDFName.of('EmbeddedFiles'), this.doc.context.obj({}));\n }\n const EmbeddedFiles = Names.lookup(PDFName.of('EmbeddedFiles'), PDFDict);\n\n if (!EmbeddedFiles.has(PDFName.of('Names'))) {\n EmbeddedFiles.set(PDFName.of('Names'), this.doc.context.obj([]));\n }\n const EFNames = EmbeddedFiles.lookup(PDFName.of('Names'), PDFArray);\n\n EFNames.push(PDFHexString.fromText(this.embedder.fileName));\n EFNames.push(ref);\n\n /**\n * The AF-Tag is needed to achieve PDF-A3 compliance for embedded files\n *\n * The following document outlines the uses cases of the associated files (AF) tag.\n * See:\n * https://www.pdfa.org/wp-content/uploads/2018/10/PDF20_AN002-AF.pdf\n */\n\n if (!this.doc.catalog.has(PDFName.of('AF'))) {\n this.doc.catalog.set(PDFName.of('AF'), this.doc.context.obj([]));\n }\n const AF = this.doc.catalog.lookup(PDFName.of('AF'), PDFArray);\n AF.push(ref);\n\n this.alreadyEmbedded = true;\n }\n }\n}\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';\nimport { PDFName, PDFArray, PDFDict, PDFHexString, PDFRef } from 'src/core';\n\n/**\n * Represents JavaScript that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFJavaScript implements Embeddable {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addJavaScript]] method, which will\n * create instances of [[PDFJavaScript]] for you.\n *\n * Create an instance of [[PDFJavaScript]] from an existing ref and script\n *\n * @param ref The unique reference for this script.\n * @param doc The document to which the script will belong.\n * @param embedder The embedder that will be used to embed the script.\n */\n static of = (ref: PDFRef, doc: PDFDocument, embedder: JavaScriptEmbedder) =>\n new PDFJavaScript(ref, doc, embedder);\n\n /** The unique reference assigned to this embedded script within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this embedded script belongs. */\n readonly doc: PDFDocument;\n\n private alreadyEmbedded = false;\n private readonly embedder: JavaScriptEmbedder;\n\n private constructor(\n ref: PDFRef,\n doc: PDFDocument,\n embedder: JavaScriptEmbedder,\n ) {\n this.ref = ref;\n this.doc = doc;\n this.embedder = embedder;\n }\n\n /**\n * > **NOTE:** You probably don't need to call this method directly. The\n * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n * > automatically ensure all JavaScripts get embedded.\n *\n * Embed this JavaScript in its document.\n *\n * @returns Resolves when the embedding is complete.\n */\n async embed(): Promise {\n if (!this.alreadyEmbedded) {\n const { catalog, context } = this.doc;\n\n const ref = await this.embedder.embedIntoContext(\n this.doc.context,\n this.ref,\n );\n\n if (!catalog.has(PDFName.of('Names'))) {\n catalog.set(PDFName.of('Names'), context.obj({}));\n }\n const Names = catalog.lookup(PDFName.of('Names'), PDFDict);\n\n if (!Names.has(PDFName.of('JavaScript'))) {\n Names.set(PDFName.of('JavaScript'), context.obj({}));\n }\n const Javascript = Names.lookup(PDFName.of('JavaScript'), PDFDict);\n\n if (!Javascript.has(PDFName.of('Names'))) {\n Javascript.set(PDFName.of('Names'), context.obj([]));\n }\n const JSNames = Javascript.lookup(PDFName.of('Names'), PDFArray);\n\n JSNames.push(PDFHexString.fromText(this.embedder.scriptName));\n JSNames.push(ref);\n\n this.alreadyEmbedded = true;\n }\n }\n}\n","import PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nclass JavaScriptEmbedder {\n static for(script: string, scriptName: string) {\n return new JavaScriptEmbedder(script, scriptName);\n }\n\n private readonly script: string;\n readonly scriptName: string;\n\n private constructor(script: string, scriptName: string) {\n this.script = script;\n this.scriptName = scriptName;\n }\n\n async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise {\n const jsActionDict = context.obj({\n Type: 'Action',\n S: 'JavaScript',\n JS: PDFHexString.fromText(this.script),\n });\n\n if (ref) {\n context.assign(ref, jsActionDict);\n return ref;\n } else {\n return context.register(jsActionDict);\n }\n }\n}\n\nexport default JavaScriptEmbedder;\n","import Embeddable from 'src/api/Embeddable';\nimport {\n EncryptedPDFError,\n FontkitNotRegisteredError,\n ForeignPageError,\n RemovePageFromEmptyDocumentError,\n} from 'src/api/errors';\nimport PDFEmbeddedPage from 'src/api/PDFEmbeddedPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFForm from 'src/api/form/PDFForm';\nimport { PageSizes } from 'src/api/sizes';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport {\n CustomFontEmbedder,\n CustomFontSubsetEmbedder,\n JpegEmbedder,\n PageBoundingBox,\n PageEmbeddingMismatchedContextError,\n PDFCatalog,\n PDFContext,\n PDFDict,\n PDFHexString,\n PDFName,\n PDFObjectCopier,\n PDFPageEmbedder,\n PDFPageLeaf,\n PDFPageTree,\n PDFParser,\n PDFStreamWriter,\n PDFString,\n PDFWriter,\n PngEmbedder,\n StandardFontEmbedder,\n UnexpectedObjectTypeError,\n} from 'src/core';\nimport {\n ParseSpeeds,\n AttachmentOptions,\n SaveOptions,\n Base64SaveOptions,\n LoadOptions,\n CreateOptions,\n EmbedFontOptions,\n SetTitleOptions,\n} from 'src/api/PDFDocumentOptions';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { Fontkit } from 'src/types/fontkit';\nimport { TransformationMatrix } from 'src/types/matrix';\nimport {\n assertIs,\n assertIsOneOfOrUndefined,\n assertOrUndefined,\n assertRange,\n Cache,\n canBeConvertedToUint8Array,\n encodeToBase64,\n isStandardFont,\n pluckIndices,\n range,\n toUint8Array,\n} from 'src/utils';\nimport FileEmbedder, { AFRelationship } from 'src/core/embedders/FileEmbedder';\nimport PDFEmbeddedFile from 'src/api/PDFEmbeddedFile';\nimport PDFJavaScript from 'src/api/PDFJavaScript';\nimport JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';\n\n/**\n * Represents a PDF document.\n */\nexport default class PDFDocument {\n /**\n * Load an existing [[PDFDocument]]. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------ |\n * | `string` | A base64 encoded string (or data URI) containing a PDF |\n * | `Uint8Array` | The raw bytes of a PDF |\n * | `ArrayBuffer` | The raw bytes of a PDF |\n *\n * For example:\n * ```js\n * import { PDFDocument } from 'pdf-lib'\n *\n * // pdf=string\n * const base64 =\n * 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +\n * 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +\n * '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +\n * 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +\n * 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +\n * 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +\n * '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +\n * 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +\n * 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +\n * 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +\n * 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +\n * '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +\n * 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +\n * 'FydHhyZWYKNTEwCiUlRU9G'\n *\n * const dataUri = 'data:application/pdf;base64,' + base64\n *\n * const pdfDoc1 = await PDFDocument.load(base64)\n * const pdfDoc2 = await PDFDocument.load(dataUri)\n *\n * // pdf=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('with_update_sections.pdf')\n * const pdfDoc3 = await PDFDocument.load(uint8Array)\n *\n * // pdf=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const pdfDoc4 = await PDFDocument.load(arrayBuffer)\n *\n * ```\n *\n * @param pdf The input data containing a PDF document.\n * @param options The options to be used when loading the document.\n * @returns Resolves with a document loaded from the input.\n */\n static async load(\n pdf: string | Uint8Array | ArrayBuffer,\n options: LoadOptions = {},\n ) {\n const {\n ignoreEncryption = false,\n parseSpeed = ParseSpeeds.Slow,\n throwOnInvalidObject = false,\n updateMetadata = true,\n capNumbers = false,\n } = options;\n\n assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);\n assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n assertIs(parseSpeed, 'parseSpeed', ['number']);\n assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);\n\n const bytes = toUint8Array(pdf);\n const context = await PDFParser.forBytesWithOptions(\n bytes,\n parseSpeed,\n throwOnInvalidObject,\n capNumbers,\n ).parseDocument();\n return new PDFDocument(context, ignoreEncryption, updateMetadata);\n }\n\n /**\n * Create a new [[PDFDocument]].\n * @returns Resolves with the newly created document.\n */\n static async create(options: CreateOptions = {}) {\n const { updateMetadata = true } = options;\n\n const context = PDFContext.create();\n const pageTree = PDFPageTree.withContext(context);\n const pageTreeRef = context.register(pageTree);\n const catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);\n context.trailerInfo.Root = context.register(catalog);\n\n return new PDFDocument(context, false, updateMetadata);\n }\n\n /** The low-level context of this document. */\n readonly context: PDFContext;\n\n /** The catalog of this document. */\n readonly catalog: PDFCatalog;\n\n /** Whether or not this document is encrypted. */\n readonly isEncrypted: boolean;\n\n /** The default word breaks used in PDFPage.drawText */\n defaultWordBreaks: string[] = [' '];\n\n private fontkit?: Fontkit;\n private pageCount: number | undefined;\n private readonly pageCache: Cache;\n private readonly pageMap: Map;\n private readonly formCache: Cache;\n private readonly fonts: PDFFont[];\n private readonly images: PDFImage[];\n private readonly embeddedPages: PDFEmbeddedPage[];\n private readonly embeddedFiles: PDFEmbeddedFile[];\n private readonly javaScripts: PDFJavaScript[];\n\n private constructor(\n context: PDFContext,\n ignoreEncryption: boolean,\n updateMetadata: boolean,\n ) {\n assertIs(context, 'context', [[PDFContext, 'PDFContext']]);\n assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n\n this.context = context;\n this.catalog = context.lookup(context.trailerInfo.Root) as PDFCatalog;\n this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);\n\n this.pageCache = Cache.populatedBy(this.computePages);\n this.pageMap = new Map();\n this.formCache = Cache.populatedBy(this.getOrCreateForm);\n this.fonts = [];\n this.images = [];\n this.embeddedPages = [];\n this.embeddedFiles = [];\n this.javaScripts = [];\n\n if (!ignoreEncryption && this.isEncrypted) throw new EncryptedPDFError();\n\n if (updateMetadata) this.updateInfoDict();\n }\n\n /**\n * Register a fontkit instance. This must be done before custom fonts can\n * be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)\n * for instructions on how to install and register a fontkit instance.\n *\n * > You do **not** need to call this method to embed standard fonts.\n *\n * For example:\n * ```js\n * import { PDFDocument } from 'pdf-lib'\n * import fontkit from '@pdf-lib/fontkit'\n *\n * const pdfDoc = await PDFDocument.create()\n * pdfDoc.registerFontkit(fontkit)\n * ```\n *\n * @param fontkit The fontkit instance to be registered.\n */\n registerFontkit(fontkit: Fontkit): void {\n this.fontkit = fontkit;\n }\n\n /**\n * Get the [[PDFForm]] containing all interactive fields for this document.\n * For example:\n * ```js\n * const form = pdfDoc.getForm()\n * const fields = form.getFields()\n * fields.forEach(field => {\n * const type = field.constructor.name\n * const name = field.getName()\n * console.log(`${type}: ${name}`)\n * })\n * ```\n * @returns The form for this document.\n */\n getForm(): PDFForm {\n const form = this.formCache.access();\n if (form.hasXFA()) {\n console.warn(\n 'Removing XFA form data as pdf-lib does not support reading or writing XFA',\n );\n form.deleteXFA();\n }\n return form;\n }\n\n /**\n * Get this document's title metadata. The title appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const title = pdfDoc.getTitle()\n * ```\n * @returns A string containing the title of this document, if it has one.\n */\n getTitle(): string | undefined {\n const title = this.getInfoDict().lookup(PDFName.Title);\n if (!title) return undefined;\n assertIsLiteralOrHexString(title);\n return title.decodeText();\n }\n\n /**\n * Get this document's author metadata. The author appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const author = pdfDoc.getAuthor()\n * ```\n * @returns A string containing the author of this document, if it has one.\n */\n getAuthor(): string | undefined {\n const author = this.getInfoDict().lookup(PDFName.Author);\n if (!author) return undefined;\n assertIsLiteralOrHexString(author);\n return author.decodeText();\n }\n\n /**\n * Get this document's subject metadata. The subject appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const subject = pdfDoc.getSubject()\n * ```\n * @returns A string containing the subject of this document, if it has one.\n */\n getSubject(): string | undefined {\n const subject = this.getInfoDict().lookup(PDFName.Subject);\n if (!subject) return undefined;\n assertIsLiteralOrHexString(subject);\n return subject.decodeText();\n }\n\n /**\n * Get this document's keywords metadata. The keywords appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const keywords = pdfDoc.getKeywords()\n * ```\n * @returns A string containing the keywords of this document, if it has any.\n */\n getKeywords(): string | undefined {\n const keywords = this.getInfoDict().lookup(PDFName.Keywords);\n if (!keywords) return undefined;\n assertIsLiteralOrHexString(keywords);\n return keywords.decodeText();\n }\n\n /**\n * Get this document's creator metadata. The creator appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const creator = pdfDoc.getCreator()\n * ```\n * @returns A string containing the creator of this document, if it has one.\n */\n getCreator(): string | undefined {\n const creator = this.getInfoDict().lookup(PDFName.Creator);\n if (!creator) return undefined;\n assertIsLiteralOrHexString(creator);\n return creator.decodeText();\n }\n\n /**\n * Get this document's producer metadata. The producer appears in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const producer = pdfDoc.getProducer()\n * ```\n * @returns A string containing the producer of this document, if it has one.\n */\n getProducer(): string | undefined {\n const producer = this.getInfoDict().lookup(PDFName.Producer);\n if (!producer) return undefined;\n assertIsLiteralOrHexString(producer);\n return producer.decodeText();\n }\n\n /**\n * Get this document's creation date metadata. The creation date appears in\n * the \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * const creationDate = pdfDoc.getCreationDate()\n * ```\n * @returns A Date containing the creation date of this document,\n * if it has one.\n */\n getCreationDate(): Date | undefined {\n const creationDate = this.getInfoDict().lookup(PDFName.CreationDate);\n if (!creationDate) return undefined;\n assertIsLiteralOrHexString(creationDate);\n return creationDate.decodeDate();\n }\n\n /**\n * Get this document's modification date metadata. The modification date\n * appears in the \"Document Properties\" section of most PDF readers.\n * For example:\n * ```js\n * const modification = pdfDoc.getModificationDate()\n * ```\n * @returns A Date containing the modification date of this document,\n * if it has one.\n */\n getModificationDate(): Date | undefined {\n const modificationDate = this.getInfoDict().lookup(PDFName.ModDate);\n if (!modificationDate) return undefined;\n assertIsLiteralOrHexString(modificationDate);\n return modificationDate.decodeDate();\n }\n\n /**\n * Set this document's title metadata. The title will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setTitle('🥚 The Life of an Egg 🍳')\n * ```\n *\n * To display the title in the window's title bar, set the\n * `showInWindowTitleBar` option to `true` (works for _most_ PDF readers).\n * For example:\n * ```js\n * pdfDoc.setTitle('🥚 The Life of an Egg 🍳', { showInWindowTitleBar: true })\n * ```\n *\n * @param title The title of this document.\n * @param options The options to be used when setting the title.\n */\n setTitle(title: string, options?: SetTitleOptions): void {\n assertIs(title, 'title', ['string']);\n const key = PDFName.of('Title');\n this.getInfoDict().set(key, PDFHexString.fromText(title));\n\n // Indicate that readers should display the title rather than the filename\n if (options?.showInWindowTitleBar) {\n const prefs = this.catalog.getOrCreateViewerPreferences();\n prefs.setDisplayDocTitle(true);\n }\n }\n\n /**\n * Set this document's author metadata. The author will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setAuthor('Humpty Dumpty')\n * ```\n * @param author The author of this document.\n */\n setAuthor(author: string): void {\n assertIs(author, 'author', ['string']);\n const key = PDFName.of('Author');\n this.getInfoDict().set(key, PDFHexString.fromText(author));\n }\n\n /**\n * Set this document's subject metadata. The subject will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')\n * ```\n * @param subject The subject of this document.\n */\n setSubject(subject: string): void {\n assertIs(subject, 'author', ['string']);\n const key = PDFName.of('Subject');\n this.getInfoDict().set(key, PDFHexString.fromText(subject));\n }\n\n /**\n * Set this document's keyword metadata. These keywords will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])\n * ```\n * @param keywords An array of keywords associated with this document.\n */\n setKeywords(keywords: string[]): void {\n assertIs(keywords, 'keywords', [Array]);\n const key = PDFName.of('Keywords');\n this.getInfoDict().set(key, PDFHexString.fromText(keywords.join(' ')));\n }\n\n /**\n * Set this document's creator metadata. The creator will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setCreator('PDF App 9000 🤖')\n * ```\n * @param creator The creator of this document.\n */\n setCreator(creator: string): void {\n assertIs(creator, 'creator', ['string']);\n const key = PDFName.of('Creator');\n this.getInfoDict().set(key, PDFHexString.fromText(creator));\n }\n\n /**\n * Set this document's producer metadata. The producer will appear in the\n * \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setProducer('PDF App 9000 🤖')\n * ```\n * @param producer The producer of this document.\n */\n setProducer(producer: string): void {\n assertIs(producer, 'creator', ['string']);\n const key = PDFName.of('Producer');\n this.getInfoDict().set(key, PDFHexString.fromText(producer));\n }\n\n /**\n * Set this document's language metadata. The language will appear in the\n * \"Document Properties\" section of some PDF readers. For example:\n * ```js\n * pdfDoc.setLanguage('en-us')\n * ```\n *\n * @param language An RFC 3066 _Language-Tag_ denoting the language of this\n * document, or an empty string if the language is unknown.\n */\n setLanguage(language: string): void {\n assertIs(language, 'language', ['string']);\n const key = PDFName.of('Lang');\n this.catalog.set(key, PDFString.of(language));\n }\n\n /**\n * Set this document's creation date metadata. The creation date will appear\n * in the \"Document Properties\" section of most PDF readers. For example:\n * ```js\n * pdfDoc.setCreationDate(new Date())\n * ```\n * @param creationDate The date this document was created.\n */\n setCreationDate(creationDate: Date): void {\n assertIs(creationDate, 'creationDate', [[Date, 'Date']]);\n const key = PDFName.of('CreationDate');\n this.getInfoDict().set(key, PDFString.fromDate(creationDate));\n }\n\n /**\n * Set this document's modification date metadata. The modification date will\n * appear in the \"Document Properties\" section of most PDF readers. For\n * example:\n * ```js\n * pdfDoc.setModificationDate(new Date())\n * ```\n * @param modificationDate The date this document was last modified.\n */\n setModificationDate(modificationDate: Date): void {\n assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);\n const key = PDFName.of('ModDate');\n this.getInfoDict().set(key, PDFString.fromDate(modificationDate));\n }\n\n /**\n * Get the number of pages contained in this document. For example:\n * ```js\n * const totalPages = pdfDoc.getPageCount()\n * ```\n * @returns The number of pages in this document.\n */\n getPageCount(): number {\n if (this.pageCount === undefined) this.pageCount = this.getPages().length;\n return this.pageCount;\n }\n\n /**\n * Get an array of all the pages contained in this document. The pages are\n * stored in the array in the same order that they are rendered in the\n * document. For example:\n * ```js\n * const pages = pdfDoc.getPages()\n * pages[0] // The first page of the document\n * pages[2] // The third page of the document\n * pages[197] // The 198th page of the document\n * ```\n * @returns An array of all the pages contained in this document.\n */\n getPages(): PDFPage[] {\n return this.pageCache.access();\n }\n\n /**\n * Get the page rendered at a particular `index` of the document. For example:\n * ```js\n * pdfDoc.getPage(0) // The first page of the document\n * pdfDoc.getPage(2) // The third page of the document\n * pdfDoc.getPage(197) // The 198th page of the document\n * ```\n * @returns The [[PDFPage]] rendered at the given `index` of the document.\n */\n getPage(index: number): PDFPage {\n const pages = this.getPages();\n assertRange(index, 'index', 0, pages.length - 1);\n return pages[index];\n }\n\n /**\n * Get an array of indices for all the pages contained in this document. The\n * array will contain a range of integers from\n * `0..pdfDoc.getPageCount() - 1`. For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n * pdfDoc.addPage()\n * pdfDoc.addPage()\n * pdfDoc.addPage()\n *\n * const indices = pdfDoc.getPageIndices()\n * indices // => [0, 1, 2]\n * ```\n * @returns An array of indices for all pages contained in this document.\n */\n getPageIndices(): number[] {\n return range(0, this.getPageCount());\n }\n\n /**\n * Remove the page at a given index from this document. For example:\n * ```js\n * pdfDoc.removePage(0) // Remove the first page of the document\n * pdfDoc.removePage(2) // Remove the third page of the document\n * pdfDoc.removePage(197) // Remove the 198th page of the document\n * ```\n * Once a page has been removed, it will no longer be rendered at that index\n * in the document.\n * @param index The index of the page to be removed.\n */\n removePage(index: number): void {\n const pageCount = this.getPageCount();\n if (this.pageCount === 0) throw new RemovePageFromEmptyDocumentError();\n assertRange(index, 'index', 0, pageCount - 1);\n this.catalog.removeLeafNode(index);\n this.pageCount = pageCount - 1;\n }\n\n /**\n * Add a page to the end of this document. This method accepts three\n * different value types for the `page` parameter:\n *\n * | Type | Behavior |\n * | ------------------ | ----------------------------------------------------------------------------------- |\n * | `undefined` | Create a new page and add it to the end of this document |\n * | `[number, number]` | Create a new page with the given dimensions and add it to the end of this document |\n * | `PDFPage` | Add the existing page to the end of this document |\n *\n * For example:\n * ```js\n * // page=undefined\n * const newPage = pdfDoc.addPage()\n *\n * // page=[number, number]\n * import { PageSizes } from 'pdf-lib'\n * const newPage1 = pdfDoc.addPage(PageSizes.A7)\n * const newPage2 = pdfDoc.addPage(PageSizes.Letter)\n * const newPage3 = pdfDoc.addPage([500, 750])\n *\n * // page=PDFPage\n * const pdfDoc1 = await PDFDocument.create()\n * const pdfDoc2 = await PDFDocument.load(...)\n * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n * pdfDoc1.addPage(existingPage)\n * ```\n *\n * @param page Optionally, the desired dimensions or existing page.\n * @returns The newly created (or existing) page.\n */\n addPage(page?: PDFPage | [number, number]): PDFPage {\n assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n return this.insertPage(this.getPageCount(), page);\n }\n\n /**\n * Insert a page at a given index within this document. This method accepts\n * three different value types for the `page` parameter:\n *\n * | Type | Behavior |\n * | ------------------ | ------------------------------------------------------------------------------ |\n * | `undefined` | Create a new page and insert it into this document |\n * | `[number, number]` | Create a new page with the given dimensions and insert it into this document |\n * | `PDFPage` | Insert the existing page into this document |\n *\n * For example:\n * ```js\n * // page=undefined\n * const newPage = pdfDoc.insertPage(2)\n *\n * // page=[number, number]\n * import { PageSizes } from 'pdf-lib'\n * const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)\n * const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)\n * const newPage3 = pdfDoc.insertPage(198, [500, 750])\n *\n * // page=PDFPage\n * const pdfDoc1 = await PDFDocument.create()\n * const pdfDoc2 = await PDFDocument.load(...)\n * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n * pdfDoc1.insertPage(0, existingPage)\n * ```\n *\n * @param index The index at which the page should be inserted (zero-based).\n * @param page Optionally, the desired dimensions or existing page.\n * @returns The newly created (or existing) page.\n */\n insertPage(index: number, page?: PDFPage | [number, number]): PDFPage {\n const pageCount = this.getPageCount();\n assertRange(index, 'index', 0, pageCount);\n assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n if (!page || Array.isArray(page)) {\n const dims = Array.isArray(page) ? page : PageSizes.A4;\n page = PDFPage.create(this);\n page.setSize(...dims);\n } else if (page.doc !== this) {\n throw new ForeignPageError();\n }\n\n const parentRef = this.catalog.insertLeafNode(page.ref, index);\n page.node.setParent(parentRef);\n\n this.pageMap.set(page.node, page);\n this.pageCache.invalidate();\n\n this.pageCount = pageCount + 1;\n\n return page;\n }\n\n /**\n * Copy pages from a source document into this document. Allows pages to be\n * copied between different [[PDFDocument]] instances. For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n * const srcDoc = await PDFDocument.load(...)\n *\n * const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])\n * const [firstPage, fourthPage, ninetiethPage] = copiedPages;\n *\n * pdfDoc.addPage(fourthPage)\n * pdfDoc.insertPage(0, ninetiethPage)\n * pdfDoc.addPage(firstPage)\n * ```\n * @param srcDoc The document from which pages should be copied.\n * @param indices The indices of the pages that should be copied.\n * @returns Resolves with an array of pages copied into this document.\n */\n async copyPages(srcDoc: PDFDocument, indices: number[]): Promise {\n assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);\n assertIs(indices, 'indices', [Array]);\n await srcDoc.flush();\n const copier = PDFObjectCopier.for(srcDoc.context, this.context);\n const srcPages = srcDoc.getPages();\n const copiedPages: PDFPage[] = new Array(indices.length);\n for (let idx = 0, len = indices.length; idx < len; idx++) {\n const srcPage = srcPages[indices[idx]];\n const copiedPage = copier.copy(srcPage.node);\n const ref = this.context.register(copiedPage);\n copiedPages[idx] = PDFPage.of(copiedPage, ref, this);\n }\n return copiedPages;\n }\n\n /**\n * Get a copy of this document.\n *\n * For example:\n * ```js\n * const srcDoc = await PDFDocument.load(...)\n * const pdfDoc = await srcDoc.copy()\n * ```\n *\n * > **NOTE:** This method won't copy all information over to the new\n * > document (acroforms, outlines, etc...).\n *\n * @returns Resolves with a copy this document.\n */\n async copy(): Promise {\n const pdfCopy = await PDFDocument.create();\n const contentPages = await pdfCopy.copyPages(this, this.getPageIndices());\n\n for (let idx = 0, len = contentPages.length; idx < len; idx++) {\n pdfCopy.addPage(contentPages[idx]);\n }\n\n if (this.getAuthor() !== undefined) {\n pdfCopy.setAuthor(this.getAuthor()!);\n }\n if (this.getCreationDate() !== undefined) {\n pdfCopy.setCreationDate(this.getCreationDate()!);\n }\n if (this.getCreator() !== undefined) {\n pdfCopy.setCreator(this.getCreator()!);\n }\n if (this.getModificationDate() !== undefined) {\n pdfCopy.setModificationDate(this.getModificationDate()!);\n }\n if (this.getProducer() !== undefined) {\n pdfCopy.setProducer(this.getProducer()!);\n }\n if (this.getSubject() !== undefined) {\n pdfCopy.setSubject(this.getSubject()!);\n }\n if (this.getTitle() !== undefined) {\n pdfCopy.setTitle(this.getTitle()!);\n }\n pdfCopy.defaultWordBreaks = this.defaultWordBreaks;\n\n return pdfCopy;\n }\n\n /**\n * Add JavaScript to this document. The supplied `script` is executed when the\n * document is opened. The `script` can be used to perform some operation\n * when the document is opened (e.g. logging to the console), or it can be\n * used to define a function that can be referenced later in a JavaScript\n * action. For example:\n * ```js\n * // Show \"Hello World!\" in the console when the PDF is opened\n * pdfDoc.addJavaScript(\n * 'main',\n * 'console.show(); console.println(\"Hello World!\");'\n * );\n *\n * // Define a function named \"foo\" that can be called in JavaScript Actions\n * pdfDoc.addJavaScript(\n * 'foo',\n * 'function foo() { return \"foo\"; }'\n * );\n * ```\n * See the [JavaScript for Acrobat API Reference](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf)\n * for details.\n * @param name The name of the script. Must be unique per document.\n * @param script The JavaScript to execute.\n */\n addJavaScript(name: string, script: string) {\n assertIs(name, 'name', ['string']);\n assertIs(script, 'script', ['string']);\n\n const embedder = JavaScriptEmbedder.for(script, name);\n\n const ref = this.context.nextRef();\n const javaScript = PDFJavaScript.of(ref, this, embedder);\n this.javaScripts.push(javaScript);\n }\n\n /**\n * Add an attachment to this document. Attachments are visible in the\n * \"Attachments\" panel of Adobe Acrobat and some other PDF readers. Any\n * type of file can be added as an attachment. This includes, but is not\n * limited to, `.png`, `.jpg`, `.pdf`, `.csv`, `.docx`, and `.xlsx` files.\n *\n * The input data can be provided in multiple formats:\n *\n * | Type | Contents |\n * | ------------- | -------------------------------------------------------------- |\n * | `string` | A base64 encoded string (or data URI) containing an attachment |\n * | `Uint8Array` | The raw bytes of an attachment |\n * | `ArrayBuffer` | The raw bytes of an attachment |\n *\n * For example:\n * ```js\n * // attachment=string\n * await pdfDoc.attach('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n * await pdfDoc.attach('data:image/jpeg;base64,/9j/4AAQ...', 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n *\n * // attachment=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n * await pdfDoc.attach(uint8Array, 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n *\n * // attachment=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * await pdfDoc.attach(arrayBuffer, 'cat_riding_unicorn.jpg', {\n * mimeType: 'image/jpeg',\n * description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n * creationDate: new Date('2019/12/01'),\n * modificationDate: new Date('2020/04/19'),\n * })\n * ```\n *\n * @param attachment The input data containing the file to be attached.\n * @param name The name of the file to be attached.\n * @returns Resolves when the attachment is complete.\n */\n async attach(\n attachment: string | Uint8Array | ArrayBuffer,\n name: string,\n options: AttachmentOptions = {},\n ): Promise {\n assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);\n assertIs(name, 'name', ['string']);\n assertOrUndefined(options.mimeType, 'mimeType', ['string']);\n assertOrUndefined(options.description, 'description', ['string']);\n assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);\n assertOrUndefined(options.modificationDate, 'options.modificationDate', [\n Date,\n ]);\n assertIsOneOfOrUndefined(\n options.afRelationship,\n 'options.afRelationship',\n AFRelationship,\n );\n\n const bytes = toUint8Array(attachment);\n const embedder = FileEmbedder.for(bytes, name, options);\n\n const ref = this.context.nextRef();\n const embeddedFile = PDFEmbeddedFile.of(ref, this, embedder);\n this.embeddedFiles.push(embeddedFile);\n }\n\n /**\n * Embed a font into this document. The input data can be provided in multiple\n * formats:\n *\n * | Type | Contents |\n * | --------------- | ------------------------------------------------------- |\n * | `StandardFonts` | One of the standard 14 fonts |\n * | `string` | A base64 encoded string (or data URI) containing a font |\n * | `Uint8Array` | The raw bytes of a font |\n * | `ArrayBuffer` | The raw bytes of a font |\n *\n * For example:\n * ```js\n * // font=StandardFonts\n * import { StandardFonts } from 'pdf-lib'\n * const font1 = await pdfDoc.embedFont(StandardFonts.Helvetica)\n *\n * // font=string\n * const font2 = await pdfDoc.embedFont('AAEAAAAVAQAABABQRFNJRx/upe...')\n * const font3 = await pdfDoc.embedFont('data:font/opentype;base64,AAEAAA...')\n *\n * // font=Uint8Array\n * import fs from 'fs'\n * const font4 = await pdfDoc.embedFont(fs.readFileSync('Ubuntu-R.ttf'))\n *\n * // font=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'\n * const ubuntuBytes = await fetch(url).then(res => res.arrayBuffer())\n * const font5 = await pdfDoc.embedFont(ubuntuBytes)\n * ```\n * See also: [[registerFontkit]]\n * @param font The input data for a font.\n * @param options The options to be used when embedding the font.\n * @returns Resolves with the embedded font.\n */\n async embedFont(\n font: StandardFonts | string | Uint8Array | ArrayBuffer,\n options: EmbedFontOptions = {},\n ): Promise {\n const { subset = false, customName, features } = options;\n\n assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);\n assertIs(subset, 'subset', ['boolean']);\n\n let embedder: CustomFontEmbedder | StandardFontEmbedder;\n if (isStandardFont(font)) {\n embedder = StandardFontEmbedder.for(font, customName);\n } else if (canBeConvertedToUint8Array(font)) {\n const bytes = toUint8Array(font);\n const fontkit = this.assertFontkit();\n embedder = subset\n ? await CustomFontSubsetEmbedder.for(\n fontkit,\n bytes,\n customName,\n features,\n )\n : await CustomFontEmbedder.for(fontkit, bytes, customName, features);\n } else {\n throw new TypeError(\n '`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`',\n );\n }\n\n const ref = this.context.nextRef();\n const pdfFont = PDFFont.of(ref, this, embedder);\n this.fonts.push(pdfFont);\n\n return pdfFont;\n }\n\n /**\n * Embed a standard font into this document.\n * For example:\n * ```js\n * import { StandardFonts } from 'pdf-lib'\n * const helveticaFont = pdfDoc.embedFont(StandardFonts.Helvetica)\n * ```\n * @param font The standard font to be embedded.\n * @param customName The name to be used when embedding the font.\n * @returns The embedded font.\n */\n embedStandardFont(font: StandardFonts, customName?: string): PDFFont {\n assertIs(font, 'font', ['string']);\n if (!isStandardFont(font)) {\n throw new TypeError('`font` must be one of type `StandardFonts`');\n }\n\n const embedder = StandardFontEmbedder.for(font, customName);\n\n const ref = this.context.nextRef();\n const pdfFont = PDFFont.of(ref, this, embedder);\n this.fonts.push(pdfFont);\n\n return pdfFont;\n }\n\n /**\n * Embed a JPEG image into this document. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------------- |\n * | `string` | A base64 encoded string (or data URI) containing a JPEG image |\n * | `Uint8Array` | The raw bytes of a JPEG image |\n * | `ArrayBuffer` | The raw bytes of a JPEG image |\n *\n * For example:\n * ```js\n * // jpg=string\n * const image1 = await pdfDoc.embedJpg('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...')\n * const image2 = await pdfDoc.embedJpg('data:image/jpeg;base64,/9j/4AAQ...')\n *\n * // jpg=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n * const image3 = await pdfDoc.embedJpg(uint8Array)\n *\n * // jpg=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const image4 = await pdfDoc.embedJpg(arrayBuffer)\n * ```\n *\n * @param jpg The input data for a JPEG image.\n * @returns Resolves with the embedded image.\n */\n async embedJpg(jpg: string | Uint8Array | ArrayBuffer): Promise {\n assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);\n const bytes = toUint8Array(jpg);\n const embedder = await JpegEmbedder.for(bytes);\n const ref = this.context.nextRef();\n const pdfImage = PDFImage.of(ref, this, embedder);\n this.images.push(pdfImage);\n return pdfImage;\n }\n\n /**\n * Embed a PNG image into this document. The input data can be provided in\n * multiple formats:\n *\n * | Type | Contents |\n * | ------------- | ------------------------------------------------------------ |\n * | `string` | A base64 encoded string (or data URI) containing a PNG image |\n * | `Uint8Array` | The raw bytes of a PNG image |\n * | `ArrayBuffer` | The raw bytes of a PNG image |\n *\n * For example:\n * ```js\n * // png=string\n * const image1 = await pdfDoc.embedPng('iVBORw0KGgoAAAANSUhEUgAAAlgAAAF3...')\n * const image2 = await pdfDoc.embedPng('data:image/png;base64,iVBORw0KGg...')\n *\n * // png=Uint8Array\n * import fs from 'fs'\n * const uint8Array = fs.readFileSync('small_mario.png')\n * const image3 = await pdfDoc.embedPng(uint8Array)\n *\n * // png=ArrayBuffer\n * const url = 'https://pdf-lib.js.org/assets/small_mario.png'\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n * const image4 = await pdfDoc.embedPng(arrayBuffer)\n * ```\n *\n * @param png The input data for a PNG image.\n * @returns Resolves with the embedded image.\n */\n async embedPng(png: string | Uint8Array | ArrayBuffer): Promise {\n assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);\n const bytes = toUint8Array(png);\n const embedder = await PngEmbedder.for(bytes);\n const ref = this.context.nextRef();\n const pdfImage = PDFImage.of(ref, this, embedder);\n this.images.push(pdfImage);\n return pdfImage;\n }\n\n /**\n * Embed one or more PDF pages into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n *\n * // Embed page 74 of `sourcePdf` into `pdfDoc`\n * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, [73])\n * ```\n *\n * See [[PDFDocument.load]] for examples of the allowed input data formats.\n *\n * @param pdf The input data containing a PDF document.\n * @param indices The indices of the pages that should be embedded.\n * @returns Resolves with an array of the embedded pages.\n */\n async embedPdf(\n pdf: string | Uint8Array | ArrayBuffer | PDFDocument,\n indices: number[] = [0],\n ): Promise {\n assertIs(pdf, 'pdf', [\n 'string',\n Uint8Array,\n ArrayBuffer,\n [PDFDocument, 'PDFDocument'],\n ]);\n assertIs(indices, 'indices', [Array]);\n\n const srcDoc =\n pdf instanceof PDFDocument ? pdf : await PDFDocument.load(pdf);\n\n const srcPages = pluckIndices(srcDoc.getPages(), indices);\n\n return this.embedPages(srcPages);\n }\n\n /**\n * Embed a single PDF page into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n * const sourcePdfPage = sourcePdfDoc.getPages()[73]\n *\n * const embeddedPage = await pdfDoc.embedPage(\n * sourcePdfPage,\n *\n * // Clip a section of the source page so that we only embed part of it\n * { left: 100, right: 450, bottom: 330, top: 570 },\n *\n * // Translate all drawings of the embedded page by (10, 200) units\n * [1, 0, 0, 1, 10, 200],\n * )\n * ```\n *\n * @param page The page to be embedded.\n * @param boundingBox\n * Optionally, an area of the source page that should be embedded\n * (defaults to entire page).\n * @param transformationMatrix\n * Optionally, a transformation matrix that is always applied to the embedded\n * page anywhere it is drawn.\n * @returns Resolves with the embedded pdf page.\n */\n async embedPage(\n page: PDFPage,\n boundingBox?: PageBoundingBox,\n transformationMatrix?: TransformationMatrix,\n ): Promise {\n assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n const [embeddedPage] = await this.embedPages(\n [page],\n [boundingBox],\n [transformationMatrix],\n );\n return embeddedPage;\n }\n\n /**\n * Embed one or more PDF pages into this document.\n *\n * For example:\n * ```js\n * const pdfDoc = await PDFDocument.create()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n *\n * const page1 = sourcePdfDoc.getPages()[0]\n * const page2 = sourcePdfDoc.getPages()[52]\n * const page3 = sourcePdfDoc.getPages()[73]\n *\n * const embeddedPages = await pdfDoc.embedPages([page1, page2, page3])\n * ```\n *\n * @param page\n * The pages to be embedded (they must all share the same context).\n * @param boundingBoxes\n * Optionally, an array of clipping boundaries - one for each page\n * (defaults to entirety of each page).\n * @param transformationMatrices\n * Optionally, an array of transformation matrices - one for each page\n * (each page's transformation will apply anywhere it is drawn).\n * @returns Resolves with an array of the embedded pdf pages.\n */\n async embedPages(\n pages: PDFPage[],\n boundingBoxes: (PageBoundingBox | undefined)[] = [],\n transformationMatrices: (TransformationMatrix | undefined)[] = [],\n ) {\n if (pages.length === 0) return [];\n\n // Assert all pages have the same context\n for (let idx = 0, len = pages.length - 1; idx < len; idx++) {\n const currPage = pages[idx];\n const nextPage = pages[idx + 1];\n if (currPage.node.context !== nextPage.node.context) {\n throw new PageEmbeddingMismatchedContextError();\n }\n }\n\n const context = pages[0].node.context;\n const maybeCopyPage =\n context === this.context\n ? (p: PDFPageLeaf) => p\n : PDFObjectCopier.for(context, this.context).copy;\n\n const embeddedPages = new Array(pages.length);\n for (let idx = 0, len = pages.length; idx < len; idx++) {\n const page = maybeCopyPage(pages[idx].node);\n const box = boundingBoxes[idx];\n const matrix = transformationMatrices[idx];\n\n const embedder = await PDFPageEmbedder.for(page, box, matrix);\n\n const ref = this.context.nextRef();\n embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);\n }\n\n this.embeddedPages.push(...embeddedPages);\n\n return embeddedPages;\n }\n\n /**\n * > **NOTE:** You shouldn't need to call this method directly. The [[save]]\n * > and [[saveAsBase64]] methods will automatically ensure that all embedded\n * > assets are flushed before serializing the document.\n *\n * Flush all embedded fonts, PDF pages, and images to this document's\n * [[context]].\n *\n * @returns Resolves when the flush is complete.\n */\n async flush(): Promise {\n await this.embedAll(this.fonts);\n await this.embedAll(this.images);\n await this.embedAll(this.embeddedPages);\n await this.embedAll(this.embeddedFiles);\n await this.embedAll(this.javaScripts);\n }\n\n /**\n * Serialize this document to an array of bytes making up a PDF file.\n * For example:\n * ```js\n * const pdfBytes = await pdfDoc.save()\n * ```\n *\n * There are a number of things you can do with the serialized document,\n * depending on the JavaScript environment you're running in:\n * * Write it to a file in Node or React Native\n * * Download it as a Blob in the browser\n * * Render it in an `iframe`\n *\n * @param options The options to be used when saving the document.\n * @returns Resolves with the bytes of the serialized document.\n */\n async save(options: SaveOptions = {}): Promise {\n const {\n useObjectStreams = true,\n addDefaultPage = true,\n objectsPerTick = 50,\n updateFieldAppearances = true,\n } = options;\n\n assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);\n assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);\n assertIs(objectsPerTick, 'objectsPerTick', ['number']);\n assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);\n\n if (addDefaultPage && this.getPageCount() === 0) this.addPage();\n\n if (updateFieldAppearances) {\n const form = this.formCache.getValue();\n if (form) form.updateFieldAppearances();\n }\n\n await this.flush();\n\n const Writer = useObjectStreams ? PDFStreamWriter : PDFWriter;\n return Writer.forContext(this.context, objectsPerTick).serializeToBuffer();\n }\n\n /**\n * Serialize this document to a base64 encoded string or data URI making up a\n * PDF file. For example:\n * ```js\n * const base64String = await pdfDoc.saveAsBase64()\n * base64String // => 'JVBERi0xLjcKJYGBgYEKC...'\n *\n * const base64DataUri = await pdfDoc.saveAsBase64({ dataUri: true })\n * base64DataUri // => 'data:application/pdf;base64,JVBERi0xLjcKJYGBgYEKC...'\n * ```\n *\n * @param options The options to be used when saving the document.\n * @returns Resolves with a base64 encoded string or data URI of the\n * serialized document.\n */\n async saveAsBase64(options: Base64SaveOptions = {}): Promise {\n const { dataUri = false, ...otherOptions } = options;\n assertIs(dataUri, 'dataUri', ['boolean']);\n const bytes = await this.save(otherOptions);\n const base64 = encodeToBase64(bytes);\n return dataUri ? `data:application/pdf;base64,${base64}` : base64;\n }\n\n findPageForAnnotationRef(ref: PDFRef): PDFPage | undefined {\n const pages = this.getPages();\n for (let idx = 0, len = pages.length; idx < len; idx++) {\n const page = pages[idx];\n const annotations = page.node.Annots();\n\n if (annotations?.indexOf(ref) !== undefined) {\n return page;\n }\n }\n\n return undefined;\n }\n\n private async embedAll(embeddables: Embeddable[]): Promise {\n for (let idx = 0, len = embeddables.length; idx < len; idx++) {\n await embeddables[idx].embed();\n }\n }\n\n private updateInfoDict(): void {\n const pdfLib = `pdf-lib (https://github.com/Hopding/pdf-lib)`;\n const now = new Date();\n\n const info = this.getInfoDict();\n\n this.setProducer(pdfLib);\n this.setModificationDate(now);\n\n if (!info.get(PDFName.of('Creator'))) this.setCreator(pdfLib);\n if (!info.get(PDFName.of('CreationDate'))) this.setCreationDate(now);\n }\n\n private getInfoDict(): PDFDict {\n const existingInfo = this.context.lookup(this.context.trailerInfo.Info);\n if (existingInfo instanceof PDFDict) return existingInfo;\n\n const newInfo = this.context.obj({});\n this.context.trailerInfo.Info = this.context.register(newInfo);\n\n return newInfo;\n }\n\n private assertFontkit(): Fontkit {\n if (!this.fontkit) throw new FontkitNotRegisteredError();\n return this.fontkit;\n }\n\n private computePages = (): PDFPage[] => {\n const pages: PDFPage[] = [];\n this.catalog.Pages().traverse((node, ref) => {\n if (node instanceof PDFPageLeaf) {\n let page = this.pageMap.get(node);\n if (!page) {\n page = PDFPage.of(node, ref, this);\n this.pageMap.set(node, page);\n }\n pages.push(page);\n }\n });\n return pages;\n };\n\n private getOrCreateForm = (): PDFForm => {\n const acroForm = this.catalog.getOrCreateAcroForm();\n return PDFForm.of(acroForm, this);\n };\n}\n\n/* tslint:disable-next-line only-arrow-functions */\nfunction assertIsLiteralOrHexString(\n pdfObject: PDFObject,\n): asserts pdfObject is PDFHexString | PDFString {\n if (\n !(pdfObject instanceof PDFHexString) &&\n !(pdfObject instanceof PDFString)\n ) {\n throw new UnexpectedObjectTypeError([PDFHexString, PDFString], pdfObject);\n }\n}\n","import { Color } from 'src/api/colors';\nimport PDFFont from 'src/api/PDFFont';\nimport { Rotation } from 'src/api/rotations';\nimport { LineCapStyle } from 'src/api/operators';\n\nexport enum BlendMode {\n Normal = 'Normal',\n Multiply = 'Multiply',\n Screen = 'Screen',\n Overlay = 'Overlay',\n Darken = 'Darken',\n Lighten = 'Lighten',\n ColorDodge = 'ColorDodge',\n ColorBurn = 'ColorBurn',\n HardLight = 'HardLight',\n SoftLight = 'SoftLight',\n Difference = 'Difference',\n Exclusion = 'Exclusion',\n}\n\nexport interface PDFPageDrawTextOptions {\n color?: Color;\n opacity?: number;\n blendMode?: BlendMode;\n font?: PDFFont;\n size?: number;\n rotate?: Rotation;\n xSkew?: Rotation;\n ySkew?: Rotation;\n x?: number;\n y?: number;\n lineHeight?: number;\n maxWidth?: number;\n wordBreaks?: string[];\n}\n\nexport interface PDFPageDrawImageOptions {\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n rotate?: Rotation;\n xSkew?: Rotation;\n ySkew?: Rotation;\n opacity?: number;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawPageOptions {\n x?: number;\n y?: number;\n xScale?: number;\n yScale?: number;\n width?: number;\n height?: number;\n rotate?: Rotation;\n xSkew?: Rotation;\n ySkew?: Rotation;\n opacity?: number;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawSVGOptions {\n x?: number;\n y?: number;\n scale?: number;\n rotate?: Rotation;\n borderWidth?: number;\n color?: Color;\n opacity?: number;\n borderColor?: Color;\n borderOpacity?: number;\n borderDashArray?: number[];\n borderDashPhase?: number;\n borderLineCap?: LineCapStyle;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawLineOptions {\n start: { x: number; y: number };\n end: { x: number; y: number };\n thickness?: number;\n color?: Color;\n opacity?: number;\n lineCap?: LineCapStyle;\n dashArray?: number[];\n dashPhase?: number;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawRectangleOptions {\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n rotate?: Rotation;\n xSkew?: Rotation;\n ySkew?: Rotation;\n borderWidth?: number;\n color?: Color;\n opacity?: number;\n borderColor?: Color;\n borderOpacity?: number;\n borderDashArray?: number[];\n borderDashPhase?: number;\n borderLineCap?: LineCapStyle;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawSquareOptions {\n x?: number;\n y?: number;\n size?: number;\n rotate?: Rotation;\n xSkew?: Rotation;\n ySkew?: Rotation;\n borderWidth?: number;\n color?: Color;\n opacity?: number;\n borderColor?: Color;\n borderOpacity?: number;\n borderDashArray?: number[];\n borderDashPhase?: number;\n borderLineCap?: LineCapStyle;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawEllipseOptions {\n x?: number;\n y?: number;\n xScale?: number;\n yScale?: number;\n rotate?: Rotation;\n color?: Color;\n opacity?: number;\n borderColor?: Color;\n borderOpacity?: number;\n borderWidth?: number;\n borderDashArray?: number[];\n borderDashPhase?: number;\n borderLineCap?: LineCapStyle;\n blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawCircleOptions {\n x?: number;\n y?: number;\n size?: number;\n color?: Color;\n opacity?: number;\n borderColor?: Color;\n borderOpacity?: number;\n borderWidth?: number;\n borderDashArray?: number[];\n borderDashPhase?: number;\n borderLineCap?: LineCapStyle;\n blendMode?: BlendMode;\n}\n","import { Color, rgb } from 'src/api/colors';\nimport {\n drawImage,\n drawLine,\n drawLinesOfText,\n drawPage,\n drawRectangle,\n drawSvgPath,\n drawEllipse,\n} from 'src/api/operations';\nimport {\n popGraphicsState,\n pushGraphicsState,\n translate,\n LineCapStyle,\n scale,\n} from 'src/api/operators';\nimport PDFDocument from 'src/api/PDFDocument';\nimport PDFEmbeddedPage from 'src/api/PDFEmbeddedPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport {\n PDFPageDrawCircleOptions,\n PDFPageDrawEllipseOptions,\n PDFPageDrawImageOptions,\n PDFPageDrawLineOptions,\n PDFPageDrawPageOptions,\n PDFPageDrawRectangleOptions,\n PDFPageDrawSquareOptions,\n PDFPageDrawSVGOptions,\n PDFPageDrawTextOptions,\n BlendMode,\n} from 'src/api/PDFPageOptions';\nimport { degrees, Rotation, toDegrees } from 'src/api/rotations';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport {\n PDFContentStream,\n PDFHexString,\n PDFName,\n PDFOperator,\n PDFPageLeaf,\n PDFRef,\n PDFDict,\n PDFArray,\n} from 'src/core';\nimport {\n assertEachIs,\n assertIs,\n assertMultiple,\n assertOrUndefined,\n breakTextIntoLines,\n cleanText,\n rectanglesAreEqual,\n lineSplit,\n assertRangeOrUndefined,\n assertIsOneOfOrUndefined,\n} from 'src/utils';\n\n/**\n * Represents a single page of a [[PDFDocument]].\n */\nexport default class PDFPage {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n * > methods, which can create instances of [[PDFPage]] for you.\n *\n * Create an instance of [[PDFPage]] from an existing leaf node.\n *\n * @param leafNode The leaf node to be wrapped.\n * @param ref The unique reference for the page.\n * @param doc The document to which the page will belong.\n */\n static of = (leafNode: PDFPageLeaf, ref: PDFRef, doc: PDFDocument) =>\n new PDFPage(leafNode, ref, doc);\n\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n * > methods, which can create instances of [[PDFPage]] for you.\n *\n * Create an instance of [[PDFPage]].\n *\n * @param doc The document to which the page will belong.\n */\n static create = (doc: PDFDocument) => {\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n const dummyRef = PDFRef.of(-1);\n const pageLeaf = PDFPageLeaf.withContextAndParent(doc.context, dummyRef);\n const pageRef = doc.context.register(pageLeaf);\n return new PDFPage(pageLeaf, pageRef, doc);\n };\n\n /** The low-level PDFDictionary wrapped by this page. */\n readonly node: PDFPageLeaf;\n\n /** The unique reference assigned to this page within the document. */\n readonly ref: PDFRef;\n\n /** The document to which this page belongs. */\n readonly doc: PDFDocument;\n\n private fontKey?: PDFName;\n private font?: PDFFont;\n private fontSize = 24;\n private fontColor = rgb(0, 0, 0) as Color;\n private lineHeight = 24;\n private x = 0;\n private y = 0;\n private contentStream?: PDFContentStream;\n private contentStreamRef?: PDFRef;\n\n private constructor(leafNode: PDFPageLeaf, ref: PDFRef, doc: PDFDocument) {\n assertIs(leafNode, 'leafNode', [[PDFPageLeaf, 'PDFPageLeaf']]);\n assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n this.node = leafNode;\n this.ref = ref;\n this.doc = doc;\n }\n\n /**\n * Rotate this page by a multiple of 90 degrees. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * page.setRotation(degrees(-90))\n * page.setRotation(degrees(0))\n * page.setRotation(degrees(90))\n * page.setRotation(degrees(180))\n * page.setRotation(degrees(270))\n * ```\n * @param angle The angle to rotate this page.\n */\n setRotation(angle: Rotation): void {\n const degreesAngle = toDegrees(angle);\n assertMultiple(degreesAngle, 'degreesAngle', 90);\n this.node.set(PDFName.of('Rotate'), this.doc.context.obj(degreesAngle));\n }\n\n /**\n * Get this page's rotation angle in degrees. For example:\n * ```js\n * const rotationAngle = page.getRotation().angle;\n * ```\n * @returns The rotation angle of the page in degrees (always a multiple of\n * 90 degrees).\n */\n getRotation(): Rotation {\n const Rotate = this.node.Rotate();\n return degrees(Rotate ? Rotate.asNumber() : 0);\n }\n\n /**\n * Resize this page by increasing or decreasing its width and height. For\n * example:\n * ```js\n * page.setSize(250, 500)\n * page.setSize(page.getWidth() + 50, page.getHeight() + 100)\n * page.setSize(page.getWidth() - 50, page.getHeight() - 100)\n * ```\n *\n * Note that the PDF specification does not allow for pages to have explicit\n * widths and heights. Instead it defines the \"size\" of a page in terms of\n * five rectangles: the MediaBox, CropBox, BleedBox, TrimBox, and ArtBox. As a\n * result, this method cannot directly change the width and height of a page.\n * Instead, it works by adjusting these five boxes.\n *\n * This method performs the following steps:\n * 1. Set width & height of MediaBox.\n * 2. Set width & height of CropBox, if it has same dimensions as MediaBox.\n * 3. Set width & height of BleedBox, if it has same dimensions as MediaBox.\n * 4. Set width & height of TrimBox, if it has same dimensions as MediaBox.\n * 5. Set width & height of ArtBox, if it has same dimensions as MediaBox.\n *\n * This approach works well for most PDF documents as all PDF pages must\n * have a MediaBox, but relatively few have a CropBox, BleedBox, TrimBox, or\n * ArtBox. And when they do have these additional boxes, they often have the\n * same dimensions as the MediaBox. However, if you find this method does not\n * work for your document, consider setting the boxes directly:\n * * [[PDFPage.setMediaBox]]\n * * [[PDFPage.setCropBox]]\n * * [[PDFPage.setBleedBox]]\n * * [[PDFPage.setTrimBox]]\n * * [[PDFPage.setArtBox]]\n *\n * @param width The new width of the page.\n * @param height The new height of the page.\n */\n setSize(width: number, height: number): void {\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n\n const mediaBox = this.getMediaBox();\n this.setMediaBox(mediaBox.x, mediaBox.y, width, height);\n\n const cropBox = this.getCropBox();\n const bleedBox = this.getBleedBox();\n const trimBox = this.getTrimBox();\n const artBox = this.getArtBox();\n\n const hasCropBox = this.node.CropBox()!!;\n const hasBleedBox = this.node.BleedBox()!!;\n const hasTrimBox = this.node.TrimBox()!!;\n const hasArtBox = this.node.ArtBox()!!;\n\n if (hasCropBox && rectanglesAreEqual(cropBox, mediaBox)) {\n this.setCropBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasBleedBox && rectanglesAreEqual(bleedBox, mediaBox)) {\n this.setBleedBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasTrimBox && rectanglesAreEqual(trimBox, mediaBox)) {\n this.setTrimBox(mediaBox.x, mediaBox.y, width, height);\n }\n if (hasArtBox && rectanglesAreEqual(artBox, mediaBox)) {\n this.setArtBox(mediaBox.x, mediaBox.y, width, height);\n }\n }\n\n /**\n * Resize this page by increasing or decreasing its width. For example:\n * ```js\n * page.setWidth(250)\n * page.setWidth(page.getWidth() + 50)\n * page.setWidth(page.getWidth() - 50)\n * ```\n *\n * This method uses [[PDFPage.setSize]] to set the page's width.\n *\n * @param width The new width of the page.\n */\n setWidth(width: number): void {\n assertIs(width, 'width', ['number']);\n this.setSize(width, this.getSize().height);\n }\n\n /**\n * Resize this page by increasing or decreasing its height. For example:\n * ```js\n * page.setHeight(500)\n * page.setHeight(page.getWidth() + 100)\n * page.setHeight(page.getWidth() - 100)\n * ```\n *\n * This method uses [[PDFPage.setSize]] to set the page's height.\n *\n * @param height The new height of the page.\n */\n setHeight(height: number): void {\n assertIs(height, 'height', ['number']);\n this.setSize(this.getSize().width, height);\n }\n\n /**\n * Set the MediaBox of this page. For example:\n * ```js\n * const mediaBox = page.getMediaBox()\n *\n * page.setMediaBox(0, 0, 250, 500)\n * page.setMediaBox(mediaBox.x, mediaBox.y, 50, 100)\n * page.setMediaBox(15, 5, mediaBox.width - 50, mediaBox.height - 100)\n * ```\n *\n * See [[PDFPage.getMediaBox]] for details about what the MediaBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new MediaBox.\n * @param y The y coordinate of the lower left corner of the new MediaBox.\n * @param width The width of the new MediaBox.\n * @param height The height of the new MediaBox.\n */\n setMediaBox(x: number, y: number, width: number, height: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n const mediaBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.MediaBox, mediaBox);\n }\n\n /**\n * Set the CropBox of this page. For example:\n * ```js\n * const cropBox = page.getCropBox()\n *\n * page.setCropBox(0, 0, 250, 500)\n * page.setCropBox(cropBox.x, cropBox.y, 50, 100)\n * page.setCropBox(15, 5, cropBox.width - 50, cropBox.height - 100)\n * ```\n *\n * See [[PDFPage.getCropBox]] for details about what the CropBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new CropBox.\n * @param y The y coordinate of the lower left corner of the new CropBox.\n * @param width The width of the new CropBox.\n * @param height The height of the new CropBox.\n */\n setCropBox(x: number, y: number, width: number, height: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n const cropBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.CropBox, cropBox);\n }\n\n /**\n * Set the BleedBox of this page. For example:\n * ```js\n * const bleedBox = page.getBleedBox()\n *\n * page.setBleedBox(0, 0, 250, 500)\n * page.setBleedBox(bleedBox.x, bleedBox.y, 50, 100)\n * page.setBleedBox(15, 5, bleedBox.width - 50, bleedBox.height - 100)\n * ```\n *\n * See [[PDFPage.getBleedBox]] for details about what the BleedBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new BleedBox.\n * @param y The y coordinate of the lower left corner of the new BleedBox.\n * @param width The width of the new BleedBox.\n * @param height The height of the new BleedBox.\n */\n setBleedBox(x: number, y: number, width: number, height: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n const bleedBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.BleedBox, bleedBox);\n }\n\n /**\n * Set the TrimBox of this page. For example:\n * ```js\n * const trimBox = page.getTrimBox()\n *\n * page.setTrimBox(0, 0, 250, 500)\n * page.setTrimBox(trimBox.x, trimBox.y, 50, 100)\n * page.setTrimBox(15, 5, trimBox.width - 50, trimBox.height - 100)\n * ```\n *\n * See [[PDFPage.getTrimBox]] for details about what the TrimBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new TrimBox.\n * @param y The y coordinate of the lower left corner of the new TrimBox.\n * @param width The width of the new TrimBox.\n * @param height The height of the new TrimBox.\n */\n setTrimBox(x: number, y: number, width: number, height: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n const trimBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.TrimBox, trimBox);\n }\n\n /**\n * Set the ArtBox of this page. For example:\n * ```js\n * const artBox = page.getArtBox()\n *\n * page.setArtBox(0, 0, 250, 500)\n * page.setArtBox(artBox.x, artBox.y, 50, 100)\n * page.setArtBox(15, 5, artBox.width - 50, artBox.height - 100)\n * ```\n *\n * See [[PDFPage.getArtBox]] for details about what the ArtBox represents.\n *\n * @param x The x coordinate of the lower left corner of the new ArtBox.\n * @param y The y coordinate of the lower left corner of the new ArtBox.\n * @param width The width of the new ArtBox.\n * @param height The height of the new ArtBox.\n */\n setArtBox(x: number, y: number, width: number, height: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n assertIs(width, 'width', ['number']);\n assertIs(height, 'height', ['number']);\n const artBox = this.doc.context.obj([x, y, x + width, y + height]);\n this.node.set(PDFName.ArtBox, artBox);\n }\n\n /**\n * Get this page's width and height. For example:\n * ```js\n * const { width, height } = page.getSize()\n * ```\n *\n * This method uses [[PDFPage.getMediaBox]] to obtain the page's\n * width and height.\n *\n * @returns The width and height of the page.\n */\n getSize(): { width: number; height: number } {\n const { width, height } = this.getMediaBox();\n return { width, height };\n }\n\n /**\n * Get this page's width. For example:\n * ```js\n * const width = page.getWidth()\n * ```\n *\n * This method uses [[PDFPage.getSize]] to obtain the page's size.\n *\n * @returns The width of the page.\n */\n getWidth(): number {\n return this.getSize().width;\n }\n\n /**\n * Get this page's height. For example:\n * ```js\n * const height = page.getHeight()\n * ```\n *\n * This method uses [[PDFPage.getSize]] to obtain the page's size.\n *\n * @returns The height of the page.\n */\n getHeight(): number {\n return this.getSize().height;\n }\n\n /**\n * Get the rectangle defining this page's MediaBox. For example:\n * ```js\n * const { x, y, width, height } = page.getMediaBox()\n * ```\n *\n * The MediaBox of a page defines the boundaries of the physical medium on\n * which the page is to be displayed/printed. It may include extended area\n * surrounding the page content for bleed marks, printing marks, etc...\n * It may also include areas close to the edges of the medium that cannot be\n * marked because of physical limitations of the output device. Content\n * falling outside this boundary may safely be discarded without affecting\n * the meaning of the PDF file.\n *\n * @returns An object defining the lower left corner of the MediaBox and its\n * width & height.\n */\n getMediaBox(): { x: number; y: number; width: number; height: number } {\n const mediaBox = this.node.MediaBox();\n return mediaBox.asRectangle();\n }\n\n /**\n * Get the rectangle defining this page's CropBox. For example:\n * ```js\n * const { x, y, width, height } = page.getCropBox()\n * ```\n *\n * The CropBox of a page defines the region to which the contents of the page\n * shall be clipped when displayed or printed. Unlike the other boxes, the\n * CropBox does not necessarily represent the physical page geometry. It\n * merely imposes clipping on the page contents.\n *\n * The CropBox's default value is the page's MediaBox.\n *\n * @returns An object defining the lower left corner of the CropBox and its\n * width & height.\n */\n getCropBox(): { x: number; y: number; width: number; height: number } {\n const cropBox = this.node.CropBox();\n return cropBox?.asRectangle() ?? this.getMediaBox();\n }\n\n /**\n * Get the rectangle defining this page's BleedBox. For example:\n * ```js\n * const { x, y, width, height } = page.getBleedBox()\n * ```\n *\n * The BleedBox of a page defines the region to which the contents of the\n * page shall be clipped when output in a production environment. This may\n * include any extra bleed area needed to accommodate the physical\n * limitations of cutting, folding, and trimming equipment. The actual\n * printed page may include printing marks that fall outside the BleedBox.\n *\n * The BleedBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the BleedBox and its\n * width & height.\n */\n getBleedBox(): { x: number; y: number; width: number; height: number } {\n const bleedBox = this.node.BleedBox();\n return bleedBox?.asRectangle() ?? this.getCropBox();\n }\n\n /**\n * Get the rectangle defining this page's TrimBox. For example:\n * ```js\n * const { x, y, width, height } = page.getTrimBox()\n * ```\n *\n * The TrimBox of a page defines the intended dimensions of the finished\n * page after trimming. It may be smaller than the MediaBox to allow for\n * production-related content, such as printing instructions, cut marks, or\n * color bars.\n *\n * The TrimBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the TrimBox and its\n * width & height.\n */\n getTrimBox(): { x: number; y: number; width: number; height: number } {\n const trimBox = this.node.TrimBox();\n return trimBox?.asRectangle() ?? this.getCropBox();\n }\n\n /**\n * Get the rectangle defining this page's ArtBox. For example:\n * ```js\n * const { x, y, width, height } = page.getArtBox()\n * ```\n *\n * The ArtBox of a page defines the extent of the page's meaningful content\n * (including potential white space).\n *\n * The ArtBox's default value is the page's CropBox.\n *\n * @returns An object defining the lower left corner of the ArtBox and its\n * width & height.\n */\n getArtBox(): { x: number; y: number; width: number; height: number } {\n const artBox = this.node.ArtBox();\n return artBox?.asRectangle() ?? this.getCropBox();\n }\n\n /**\n * Translate this page's content to a new location on the page. This operation\n * is often useful after resizing the page with [[setSize]]. For example:\n * ```js\n * // Add 50 units of whitespace to the top and right of the page\n * page.setSize(page.getWidth() + 50, page.getHeight() + 50)\n *\n * // Move the page's content from the lower-left corner of the page\n * // to the top-right corner.\n * page.translateContent(50, 50)\n *\n * // Now there are 50 units of whitespace to the left and bottom of the page\n * ```\n * See also: [[resetPosition]]\n * @param x The new position on the x-axis for this page's content.\n * @param y The new position on the y-axis for this page's content.\n */\n translateContent(x: number, y: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n\n this.node.normalize();\n this.getContentStream();\n\n const start = this.createContentStream(\n pushGraphicsState(),\n translate(x, y),\n );\n const startRef = this.doc.context.register(start);\n\n const end = this.createContentStream(popGraphicsState());\n const endRef = this.doc.context.register(end);\n\n this.node.wrapContentStreams(startRef, endRef);\n }\n\n /**\n * Scale the size, content, and annotations of a page.\n *\n * For example:\n * ```js\n * page.scale(0.5, 0.5);\n * ```\n *\n * @param x The factor by which the width for the page should be scaled\n * (e.g. `0.5` is 50%).\n * @param y The factor by which the height for the page should be scaled\n * (e.g. `2.0` is 200%).\n */\n scale(x: number, y: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.setSize(this.getWidth() * x, this.getHeight() * y);\n this.scaleContent(x, y);\n this.scaleAnnotations(x, y);\n }\n\n /**\n * Scale the content of a page. This is useful after resizing an existing\n * page. This scales only the content, not the annotations.\n *\n * For example:\n * ```js\n * // Bisect the size of the page\n * page.setSize(page.getWidth() / 2, page.getHeight() / 2);\n *\n * // Scale the content of the page down by 50% in x and y\n * page.scaleContent(0.5, 0.5);\n * ```\n * See also: [[scaleAnnotations]]\n * @param x The factor by which the x-axis for the content should be scaled\n * (e.g. `0.5` is 50%).\n * @param y The factor by which the y-axis for the content should be scaled\n * (e.g. `2.0` is 200%).\n */\n scaleContent(x: number, y: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n\n this.node.normalize();\n this.getContentStream();\n\n const start = this.createContentStream(pushGraphicsState(), scale(x, y));\n const startRef = this.doc.context.register(start);\n\n const end = this.createContentStream(popGraphicsState());\n const endRef = this.doc.context.register(end);\n\n this.node.wrapContentStreams(startRef, endRef);\n }\n\n /**\n * Scale the annotations of a page. This is useful if you want to scale a\n * page with comments or other annotations.\n * ```js\n * // Scale the content of the page down by 50% in x and y\n * page.scaleContent(0.5, 0.5);\n *\n * // Scale the content of the page down by 50% in x and y\n * page.scaleAnnotations(0.5, 0.5);\n * ```\n * See also: [[scaleContent]]\n * @param x The factor by which the x-axis for the annotations should be\n * scaled (e.g. `0.5` is 50%).\n * @param y The factor by which the y-axis for the annotations should be\n * scaled (e.g. `2.0` is 200%).\n */\n scaleAnnotations(x: number, y: number) {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n\n const annots = this.node.Annots();\n if (!annots) return;\n\n for (let idx = 0; idx < annots.size(); idx++) {\n const annot = annots.lookup(idx);\n if (annot instanceof PDFDict) this.scaleAnnot(annot, x, y);\n }\n }\n\n /**\n * Reset the x and y coordinates of this page to `(0, 0)`. This operation is\n * often useful after calling [[translateContent]]. For example:\n * ```js\n * // Shift the page's contents up and to the right by 50 units\n * page.translateContent(50, 50)\n *\n * // This text will shifted - it will be drawn at (50, 50)\n * page.drawText('I am shifted')\n *\n * // Move back to (0, 0)\n * page.resetPosition()\n *\n * // This text will not be shifted - it will be drawn at (0, 0)\n * page.drawText('I am not shifted')\n * ```\n */\n resetPosition(): void {\n this.getContentStream(false);\n this.x = 0;\n this.y = 0;\n }\n\n /**\n * Choose a default font for this page. The default font will be used whenever\n * text is drawn on this page and no font is specified. For example:\n * ```js\n * import { StandardFonts } from 'pdf-lib'\n *\n * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const courierFont = await pdfDoc.embedFont(StandardFonts.Courier)\n *\n * const page = pdfDoc.addPage()\n *\n * page.setFont(helveticaFont)\n * page.drawText('I will be drawn in Helvetica')\n *\n * page.setFont(timesRomanFont)\n * page.drawText('I will be drawn in Courier', { font: courierFont })\n * ```\n * @param font The default font to be used when drawing text on this page.\n */\n setFont(font: PDFFont): void {\n // TODO: Reuse image Font name if we've already added this image to Resources.Fonts\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.font = font;\n this.fontKey = this.node.newFontDictionary(this.font.name, this.font.ref);\n }\n\n /**\n * Choose a default font size for this page. The default font size will be\n * used whenever text is drawn on this page and no font size is specified.\n * For example:\n * ```js\n * page.setFontSize(12)\n * page.drawText('I will be drawn in size 12')\n *\n * page.setFontSize(36)\n * page.drawText('I will be drawn in size 24', { fontSize: 24 })\n * ```\n * @param fontSize The default font size to be used when drawing text on this\n * page.\n */\n setFontSize(fontSize: number): void {\n assertIs(fontSize, 'fontSize', ['number']);\n this.fontSize = fontSize;\n }\n\n /**\n * Choose a default font color for this page. The default font color will be\n * used whenever text is drawn on this page and no font color is specified.\n * For example:\n * ```js\n * import { rgb, cmyk, grayscale } from 'pdf-lib'\n *\n * page.setFontColor(rgb(0.97, 0.02, 0.97))\n * page.drawText('I will be drawn in pink')\n *\n * page.setFontColor(cmyk(0.4, 0.7, 0.39, 0.15))\n * page.drawText('I will be drawn in gray', { color: grayscale(0.5) })\n * ```\n * @param fontColor The default font color to be used when drawing text on\n * this page.\n */\n setFontColor(fontColor: Color): void {\n assertIs(fontColor, 'fontColor', [[Object, 'Color']]);\n this.fontColor = fontColor;\n }\n\n /**\n * Choose a default line height for this page. The default line height will be\n * used whenever text is drawn on this page and no line height is specified.\n * For example:\n * ```js\n * page.setLineHeight(12);\n * page.drawText('These lines will be vertically \\n separated by 12 units')\n *\n * page.setLineHeight(36);\n * page.drawText('These lines will be vertically \\n separated by 24 units', {\n * lineHeight: 24\n * })\n * ```\n * @param lineHeight The default line height to be used when drawing text on\n * this page.\n */\n setLineHeight(lineHeight: number): void {\n assertIs(lineHeight, 'lineHeight', ['number']);\n this.lineHeight = lineHeight;\n }\n\n /**\n * Get the default position of this page. For example:\n * ```js\n * const { x, y } = page.getPosition()\n * ```\n * @returns The default position of the page.\n */\n getPosition(): { x: number; y: number } {\n return { x: this.x, y: this.y };\n }\n\n /**\n * Get the default x coordinate of this page. For example:\n * ```js\n * const x = page.getX()\n * ```\n * @returns The default x coordinate of the page.\n */\n getX(): number {\n return this.x;\n }\n\n /**\n * Get the default y coordinate of this page. For example:\n * ```js\n * const y = page.getY()\n * ```\n * @returns The default y coordinate of the page.\n */\n getY(): number {\n return this.y;\n }\n\n /**\n * Change the default position of this page. For example:\n * ```js\n * page.moveTo(0, 0)\n * page.drawText('I will be drawn at the origin')\n *\n * page.moveTo(0, 25)\n * page.drawText('I will be drawn 25 units up')\n *\n * page.moveTo(25, 25)\n * page.drawText('I will be drawn 25 units up and 25 units to the right')\n * ```\n * @param x The new default position on the x-axis for this page.\n * @param y The new default position on the y-axis for this page.\n */\n moveTo(x: number, y: number): void {\n assertIs(x, 'x', ['number']);\n assertIs(y, 'y', ['number']);\n this.x = x;\n this.y = y;\n }\n\n /**\n * Change the default position of this page to be further down the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveDown(10)\n * page.drawText('I will be drawn at (50, 40)')\n * ```\n * @param yDecrease The amount by which the page's default position along the\n * y-axis should be decreased.\n */\n moveDown(yDecrease: number): void {\n assertIs(yDecrease, 'yDecrease', ['number']);\n this.y -= yDecrease;\n }\n\n /**\n * Change the default position of this page to be further up the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveUp(10)\n * page.drawText('I will be drawn at (50, 60)')\n * ```\n * @param yIncrease The amount by which the page's default position along the\n * y-axis should be increased.\n */\n moveUp(yIncrease: number): void {\n assertIs(yIncrease, 'yIncrease', ['number']);\n this.y += yIncrease;\n }\n\n /**\n * Change the default position of this page to be further left on the x-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveLeft(10)\n * page.drawText('I will be drawn at (40, 50)')\n * ```\n * @param xDecrease The amount by which the page's default position along the\n * x-axis should be decreased.\n */\n moveLeft(xDecrease: number): void {\n assertIs(xDecrease, 'xDecrease', ['number']);\n this.x -= xDecrease;\n }\n\n /**\n * Change the default position of this page to be further right on the y-axis.\n * For example:\n * ```js\n * page.moveTo(50, 50)\n * page.drawText('I will be drawn at (50, 50)')\n *\n * page.moveRight(10)\n * page.drawText('I will be drawn at (60, 50)')\n * ```\n * @param xIncrease The amount by which the page's default position along the\n * x-axis should be increased.\n */\n moveRight(xIncrease: number): void {\n assertIs(xIncrease, 'xIncrease', ['number']);\n this.x += xIncrease;\n }\n\n /**\n * Push one or more operators to the end of this page's current content\n * stream. For example:\n * ```js\n * import {\n * pushGraphicsState,\n * moveTo,\n * lineTo,\n * closePath,\n * setFillingColor,\n * rgb,\n * fill,\n * popGraphicsState,\n * } from 'pdf-lib'\n *\n * // Draw a green triangle in the lower-left corner of the page\n * page.pushOperators(\n * pushGraphicsState(),\n * moveTo(0, 0),\n * lineTo(100, 0),\n * lineTo(50, 100),\n * closePath(),\n * setFillingColor(rgb(0.0, 1.0, 0.0)),\n * fill(),\n * popGraphicsState(),\n * )\n * ```\n * @param operator The operators to be pushed.\n */\n pushOperators(...operator: PDFOperator[]): void {\n assertEachIs(operator, 'operator', [[PDFOperator, 'PDFOperator']]);\n const contentStream = this.getContentStream();\n contentStream.push(...operator);\n }\n\n /**\n * Draw one or more lines of text on this page. For example:\n * ```js\n * import { StandardFonts, rgb } from 'pdf-lib'\n *\n * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n *\n * const page = pdfDoc.addPage()\n *\n * page.setFont(helveticaFont)\n *\n * page.moveTo(5, 200)\n * page.drawText('The Life of an Egg', { size: 36 })\n *\n * page.moveDown(36)\n * page.drawText('An Epic Tale of Woe', { size: 30 })\n *\n * page.drawText(\n * `Humpty Dumpty sat on a wall \\n` +\n * `Humpty Dumpty had a great fall; \\n` +\n * `All the king's horses and all the king's men \\n` +\n * `Couldn't put Humpty together again. \\n`,\n * {\n * x: 25,\n * y: 100,\n * font: timesRomanFont,\n * size: 24,\n * color: rgb(1, 0, 0),\n * lineHeight: 24,\n * opacity: 0.75,\n * },\n * )\n * ```\n * @param text The text to be drawn.\n * @param options The options to be used when drawing the text.\n */\n drawText(text: string, options: PDFPageDrawTextOptions = {}): void {\n assertIs(text, 'text', ['string']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.font, 'options.font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(options.size, 'options.size', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.lineHeight, 'options.lineHeight', ['number']);\n assertOrUndefined(options.maxWidth, 'options.maxWidth', ['number']);\n assertOrUndefined(options.wordBreaks, 'options.wordBreaks', [Array]);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const { oldFont, newFont, newFontKey } = this.setOrEmbedFont(options.font);\n const fontSize = options.size || this.fontSize;\n\n const wordBreaks = options.wordBreaks || this.doc.defaultWordBreaks;\n const textWidth = (t: string) => newFont.widthOfTextAtSize(t, fontSize);\n const lines =\n options.maxWidth === undefined\n ? lineSplit(cleanText(text))\n : breakTextIntoLines(text, wordBreaks, options.maxWidth, textWidth);\n\n const encodedLines = new Array(lines.length) as PDFHexString[];\n for (let idx = 0, len = lines.length; idx < len; idx++) {\n encodedLines[idx] = newFont.encodeText(lines[idx]);\n }\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawLinesOfText(encodedLines, {\n color: options.color ?? this.fontColor,\n font: newFontKey,\n size: fontSize,\n rotate: options.rotate ?? degrees(0),\n xSkew: options.xSkew ?? degrees(0),\n ySkew: options.ySkew ?? degrees(0),\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n lineHeight: options.lineHeight ?? this.lineHeight,\n graphicsState: graphicsStateKey,\n }),\n );\n\n if (options.font) {\n if (oldFont) this.setFont(oldFont);\n else this.resetFont();\n }\n }\n\n /**\n * Draw an image on this page. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * const jpgUrl = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n * const jpgImageBytes = await fetch(jpgUrl).then((res) => res.arrayBuffer())\n *\n * const jpgImage = await pdfDoc.embedJpg(jpgImageBytes)\n * const jpgDims = jpgImage.scale(0.5)\n *\n * const page = pdfDoc.addPage()\n *\n * page.drawImage(jpgImage, {\n * x: 25,\n * y: 25,\n * width: jpgDims.width,\n * height: jpgDims.height,\n * rotate: degrees(30),\n * opacity: 0.75,\n * })\n * ```\n * @param image The image to be drawn.\n * @param options The options to be used when drawing the image.\n */\n drawImage(image: PDFImage, options: PDFPageDrawImageOptions = {}): void {\n // TODO: Reuse image XObject name if we've already added this image to Resources.XObjects\n assertIs(image, 'image', [[PDFImage, 'PDFImage']]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const xObjectKey = this.node.newXObject('Image', image.ref);\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawImage(xObjectKey, {\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n width: options.width ?? image.size().width,\n height: options.height ?? image.size().height,\n rotate: options.rotate ?? degrees(0),\n xSkew: options.xSkew ?? degrees(0),\n ySkew: options.ySkew ?? degrees(0),\n graphicsState: graphicsStateKey,\n }),\n );\n }\n\n /**\n * Draw an embedded PDF page on this page. For example:\n * ```js\n * import { degrees } from 'pdf-lib'\n *\n * const pdfDoc = await PDFDocument.create()\n * const page = pdfDoc.addPage()\n *\n * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n *\n * // Embed page 74 from the PDF\n * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, 73)\n *\n * page.drawPage(embeddedPage, {\n * x: 250,\n * y: 200,\n * xScale: 0.5,\n * yScale: 0.5,\n * rotate: degrees(30),\n * opacity: 0.75,\n * })\n * ```\n *\n * The `options` argument accepts both `width`/`height` and `xScale`/`yScale`\n * as options. Since each of these options defines the size of the drawn page,\n * if both options are given, `width` and `height` take precedence and the\n * corresponding scale variants are ignored.\n *\n * @param embeddedPage The embedded page to be drawn.\n * @param options The options to be used when drawing the embedded page.\n */\n drawPage(\n embeddedPage: PDFEmbeddedPage,\n options: PDFPageDrawPageOptions = {},\n ): void {\n // TODO: Reuse embeddedPage XObject name if we've already added this embeddedPage to Resources.XObjects\n assertIs(embeddedPage, 'embeddedPage', [\n [PDFEmbeddedPage, 'PDFEmbeddedPage'],\n ]);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const xObjectKey = this.node.newXObject(\n 'EmbeddedPdfPage',\n embeddedPage.ref,\n );\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n blendMode: options.blendMode,\n });\n\n // prettier-ignore\n const xScale = (\n options.width !== undefined ? options.width / embeddedPage.width\n : options.xScale !== undefined ? options.xScale\n : 1\n );\n\n // prettier-ignore\n const yScale = (\n options.height !== undefined ? options.height / embeddedPage.height\n : options.yScale !== undefined ? options.yScale\n : 1\n );\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawPage(xObjectKey, {\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n xScale,\n yScale,\n rotate: options.rotate ?? degrees(0),\n xSkew: options.xSkew ?? degrees(0),\n ySkew: options.ySkew ?? degrees(0),\n graphicsState: graphicsStateKey,\n }),\n );\n }\n\n /**\n * Draw an SVG path on this page. For example:\n * ```js\n * import { rgb } from 'pdf-lib'\n *\n * const svgPath = 'M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90'\n *\n * // Draw path as black line\n * page.drawSvgPath(svgPath, { x: 25, y: 75 })\n *\n * // Change border style and opacity\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 275,\n * borderColor: rgb(0.5, 0.5, 0.5),\n * borderWidth: 2,\n * borderOpacity: 0.75,\n * })\n *\n * // Set fill color and opacity\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 475,\n * color: rgb(1.0, 0, 0),\n * opacity: 0.75,\n * })\n *\n * // Draw 50% of original size\n * page.drawSvgPath(svgPath, {\n * x: 25,\n * y: 675,\n * scale: 0.5,\n * })\n * ```\n * @param path The SVG path to be drawn.\n * @param options The options to be used when drawing the SVG path.\n */\n drawSvgPath(path: string, options: PDFPageDrawSVGOptions = {}): void {\n assertIs(path, 'path', ['string']);\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.scale, 'options.scale', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(\n options.borderLineCap,\n 'options.borderLineCap',\n LineCapStyle,\n );\n assertRangeOrUndefined(\n options.borderOpacity,\n 'options.borderOpacity',\n 0,\n 1,\n );\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n\n if (!('color' in options) && !('borderColor' in options)) {\n options.borderColor = rgb(0, 0, 0);\n }\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawSvgPath(path, {\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n scale: options.scale,\n rotate: options.rotate ?? degrees(0),\n color: options.color ?? undefined,\n borderColor: options.borderColor ?? undefined,\n borderWidth: options.borderWidth ?? 0,\n borderDashArray: options.borderDashArray ?? undefined,\n borderDashPhase: options.borderDashPhase ?? undefined,\n borderLineCap: options.borderLineCap ?? undefined,\n graphicsState: graphicsStateKey,\n }),\n );\n }\n\n /**\n * Draw a line on this page. For example:\n * ```js\n * import { rgb } from 'pdf-lib'\n *\n * page.drawLine({\n * start: { x: 25, y: 75 },\n * end: { x: 125, y: 175 },\n * thickness: 2,\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the line.\n */\n drawLine(options: PDFPageDrawLineOptions): void {\n assertIs(options.start, 'options.start', [\n [Object, '{ x: number, y: number }'],\n ]);\n assertIs(options.end, 'options.end', [\n [Object, '{ x: number, y: number }'],\n ]);\n assertIs(options.start.x, 'options.start.x', ['number']);\n assertIs(options.start.y, 'options.start.y', ['number']);\n assertIs(options.end.x, 'options.end.x', ['number']);\n assertIs(options.end.y, 'options.end.y', ['number']);\n assertOrUndefined(options.thickness, 'options.thickness', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertOrUndefined(options.dashArray, 'options.dashArray', [Array]);\n assertOrUndefined(options.dashPhase, 'options.dashPhase', ['number']);\n assertIsOneOfOrUndefined(options.lineCap, 'options.lineCap', LineCapStyle);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n borderOpacity: options.opacity,\n blendMode: options.blendMode,\n });\n\n if (!('color' in options)) {\n options.color = rgb(0, 0, 0);\n }\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawLine({\n start: options.start,\n end: options.end,\n thickness: options.thickness ?? 1,\n color: options.color ?? undefined,\n dashArray: options.dashArray ?? undefined,\n dashPhase: options.dashPhase ?? undefined,\n lineCap: options.lineCap ?? undefined,\n graphicsState: graphicsStateKey,\n }),\n );\n }\n\n /**\n * Draw a rectangle on this page. For example:\n * ```js\n * import { degrees, grayscale, rgb } from 'pdf-lib'\n *\n * page.drawRectangle({\n * x: 25,\n * y: 75,\n * width: 250,\n * height: 75,\n * rotate: degrees(-15),\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the rectangle.\n */\n drawRectangle(options: PDFPageDrawRectangleOptions = {}): void {\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.width, 'options.width', ['number']);\n assertOrUndefined(options.height, 'options.height', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(\n options.borderLineCap,\n 'options.borderLineCap',\n LineCapStyle,\n );\n assertRangeOrUndefined(\n options.borderOpacity,\n 'options.borderOpacity',\n 0,\n 1,\n );\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n\n if (!('color' in options) && !('borderColor' in options)) {\n options.color = rgb(0, 0, 0);\n }\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawRectangle({\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n width: options.width ?? 150,\n height: options.height ?? 100,\n rotate: options.rotate ?? degrees(0),\n xSkew: options.xSkew ?? degrees(0),\n ySkew: options.ySkew ?? degrees(0),\n borderWidth: options.borderWidth ?? 0,\n color: options.color ?? undefined,\n borderColor: options.borderColor ?? undefined,\n borderDashArray: options.borderDashArray ?? undefined,\n borderDashPhase: options.borderDashPhase ?? undefined,\n graphicsState: graphicsStateKey,\n borderLineCap: options.borderLineCap ?? undefined,\n }),\n );\n }\n\n /**\n * Draw a square on this page. For example:\n * ```js\n * import { degrees, grayscale, rgb } from 'pdf-lib'\n *\n * page.drawSquare({\n * x: 25,\n * y: 75,\n * size: 100,\n * rotate: degrees(-15),\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the square.\n */\n drawSquare(options: PDFPageDrawSquareOptions = {}): void {\n const { size } = options;\n assertOrUndefined(size, 'size', ['number']);\n this.drawRectangle({ ...options, width: size, height: size });\n }\n\n /**\n * Draw an ellipse on this page. For example:\n * ```js\n * import { grayscale, rgb } from 'pdf-lib'\n *\n * page.drawEllipse({\n * x: 200,\n * y: 75,\n * xScale: 100,\n * yScale: 50,\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the ellipse.\n */\n drawEllipse(options: PDFPageDrawEllipseOptions = {}): void {\n assertOrUndefined(options.x, 'options.x', ['number']);\n assertOrUndefined(options.y, 'options.y', ['number']);\n assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n assertOrUndefined(options.borderColor, 'options.borderColor', [\n [Object, 'Color'],\n ]);\n assertRangeOrUndefined(\n options.borderOpacity,\n 'options.borderOpacity',\n 0,\n 1,\n );\n assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n Array,\n ]);\n assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n 'number',\n ]);\n assertIsOneOfOrUndefined(\n options.borderLineCap,\n 'options.borderLineCap',\n LineCapStyle,\n );\n assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n const graphicsStateKey = this.maybeEmbedGraphicsState({\n opacity: options.opacity,\n borderOpacity: options.borderOpacity,\n blendMode: options.blendMode,\n });\n\n if (!('color' in options) && !('borderColor' in options)) {\n options.color = rgb(0, 0, 0);\n }\n\n const contentStream = this.getContentStream();\n contentStream.push(\n ...drawEllipse({\n x: options.x ?? this.x,\n y: options.y ?? this.y,\n xScale: options.xScale ?? 100,\n yScale: options.yScale ?? 100,\n rotate: options.rotate ?? undefined,\n color: options.color ?? undefined,\n borderColor: options.borderColor ?? undefined,\n borderWidth: options.borderWidth ?? 0,\n borderDashArray: options.borderDashArray ?? undefined,\n borderDashPhase: options.borderDashPhase ?? undefined,\n borderLineCap: options.borderLineCap ?? undefined,\n graphicsState: graphicsStateKey,\n }),\n );\n }\n\n /**\n * Draw a circle on this page. For example:\n * ```js\n * import { grayscale, rgb } from 'pdf-lib'\n *\n * page.drawCircle({\n * x: 200,\n * y: 150,\n * size: 100,\n * borderWidth: 5,\n * borderColor: grayscale(0.5),\n * color: rgb(0.75, 0.2, 0.2),\n * opacity: 0.5,\n * borderOpacity: 0.75,\n * })\n * ```\n * @param options The options to be used when drawing the ellipse.\n */\n drawCircle(options: PDFPageDrawCircleOptions = {}): void {\n const { size = 100 } = options;\n assertOrUndefined(size, 'size', ['number']);\n this.drawEllipse({ ...options, xScale: size, yScale: size });\n }\n\n private setOrEmbedFont(font?: PDFFont) {\n const oldFont = this.font;\n const oldFontKey = this.fontKey;\n\n if (font) this.setFont(font);\n else this.getFont();\n\n const newFont = this.font!;\n const newFontKey = this.fontKey!;\n\n return { oldFont, oldFontKey, newFont, newFontKey };\n }\n\n private getFont(): [PDFFont, PDFName] {\n if (!this.font || !this.fontKey) {\n const font = this.doc.embedStandardFont(StandardFonts.Helvetica);\n this.setFont(font);\n }\n return [this.font!, this.fontKey!];\n }\n\n private resetFont(): void {\n this.font = undefined;\n this.fontKey = undefined;\n }\n\n private getContentStream(useExisting = true): PDFContentStream {\n if (useExisting && this.contentStream) return this.contentStream;\n this.contentStream = this.createContentStream();\n this.contentStreamRef = this.doc.context.register(this.contentStream);\n this.node.addContentStream(this.contentStreamRef);\n return this.contentStream;\n }\n\n private createContentStream(...operators: PDFOperator[]): PDFContentStream {\n const dict = this.doc.context.obj({});\n const contentStream = PDFContentStream.of(dict, operators);\n return contentStream;\n }\n\n private maybeEmbedGraphicsState(options: {\n opacity?: number;\n borderOpacity?: number;\n blendMode?: BlendMode;\n }): PDFName | undefined {\n const { opacity, borderOpacity, blendMode } = options;\n\n if (\n opacity === undefined &&\n borderOpacity === undefined &&\n blendMode === undefined\n ) {\n return undefined;\n }\n\n const graphicsState = this.doc.context.obj({\n Type: 'ExtGState',\n ca: opacity,\n CA: borderOpacity,\n BM: blendMode,\n });\n\n const key = this.node.newExtGState('GS', graphicsState);\n\n return key;\n }\n\n private scaleAnnot(annot: PDFDict, x: number, y: number) {\n const selectors = ['RD', 'CL', 'Vertices', 'QuadPoints', 'L', 'Rect'];\n for (let idx = 0, len = selectors.length; idx < len; idx++) {\n const list = annot.lookup(PDFName.of(selectors[idx]));\n if (list instanceof PDFArray) list.scalePDFNumbers(x, y);\n }\n\n const inkLists = annot.lookup(PDFName.of('InkList'));\n if (inkLists instanceof PDFArray) {\n for (let idx = 0, len = inkLists.size(); idx < len; idx++) {\n const arr = inkLists.lookup(idx);\n if (arr instanceof PDFArray) arr.scalePDFNumbers(x, y);\n }\n }\n }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport { ImageAlignment } from 'src/api/image/alignment';\nimport {\n AppearanceProviderFor,\n normalizeAppearance,\n defaultButtonAppearanceProvider,\n} from 'src/api/form/appearances';\nimport PDFField, {\n FieldAppearanceOptions,\n assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n PDFRef,\n PDFStream,\n PDFAcroPushButton,\n PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertPositive } from 'src/utils';\n\n/**\n * Represents a button field of a [[PDFForm]].\n *\n * [[PDFButton]] fields are interactive controls that users can click with their\n * mouse. This type of [[PDFField]] is not stateful. The purpose of a button\n * is to perform an action when the user clicks on it, such as opening a print\n * modal or resetting the form. Buttons are typically rectangular in shape and\n * have a text label describing the action that they perform when clicked.\n */\nexport default class PDFButton extends PDFField {\n /**\n * > **NOTE:** You probably don't want to call this method directly. Instead,\n * > consider using the [[PDFForm.getButton]] method, which will create an\n * > instance of [[PDFButton]] for you.\n *\n * Create an instance of [[PDFButton]] from an existing acroPushButton and ref\n *\n * @param acroPushButton The underlying `PDFAcroPushButton` for this button.\n * @param ref The unique reference for this button.\n * @param doc The document to which this button will belong.\n */\n static of = (\n acroPushButton: PDFAcroPushButton,\n ref: PDFRef,\n doc: PDFDocument,\n ) => new PDFButton(acroPushButton, ref, doc);\n\n /** The low-level PDFAcroPushButton wrapped by this button. */\n readonly acroField: PDFAcroPushButton;\n\n private constructor(\n acroPushButton: PDFAcroPushButton,\n ref: PDFRef,\n doc: PDFDocument,\n ) {\n super(acroPushButton, ref, doc);\n\n assertIs(acroPushButton, 'acroButton', [\n [PDFAcroPushButton, 'PDFAcroPushButton'],\n ]);\n\n this.acroField = acroPushButton;\n }\n\n /**\n * Display an image inside the bounds of this button's widgets. For example:\n * ```js\n * const pngImage = await pdfDoc.embedPng(...)\n * const button = form.getButton('some.button.field')\n * button.setImage(pngImage, ImageAlignment.Center)\n * ```\n * This will update the appearances streams for each of this button's widgets.\n * @param image The image that should be displayed.\n * @param alignment The alignment of the image.\n */\n setImage(image: PDFImage, alignment = ImageAlignment.Center) {\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const streamRef = this.createImageAppearanceStream(\n widget,\n image,\n alignment,\n );\n this.updateWidgetAppearances(widget, { normal: streamRef });\n }\n\n this.markAsClean();\n }\n\n /**\n * Set the font size for this field. Larger font sizes will result in larger\n * text being displayed when PDF readers render this button. Font sizes may\n * be integer or floating point numbers. Supplying a negative font size will\n * cause this method to throw an error.\n *\n * For example:\n * ```js\n * const button = form.getButton('some.button.field')\n * button.setFontSize(4)\n * button.setFontSize(15.7)\n * ```\n *\n * > This method depends upon the existence of a default appearance\n * > (`/DA`) string. If this field does not have a default appearance string,\n * > or that string does not contain a font size (via the `Tf` operator),\n * > then this method will throw an error.\n *\n * @param fontSize The font size to be used when rendering text in this field.\n */\n setFontSize(fontSize: number) {\n assertPositive(fontSize, 'fontSize');\n this.acroField.setFontSize(fontSize);\n this.markAsDirty();\n }\n\n /**\n * Show this button on the specified page with the given text. For example:\n * ```js\n * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n * const page = pdfDoc.addPage()\n *\n * const form = pdfDoc.getForm()\n * const button = form.createButton('some.button.field')\n *\n * button.addToPage('Do Stuff', page, {\n * x: 50,\n * y: 75,\n * width: 200,\n * height: 100,\n * textColor: rgb(1, 0, 0),\n * backgroundColor: rgb(0, 1, 0),\n * borderColor: rgb(0, 0, 1),\n * borderWidth: 2,\n * rotate: degrees(90),\n * font: ubuntuFont,\n * })\n * ```\n * This will create a new widget for this button field.\n * @param text The text to be displayed for this button widget.\n * @param page The page to which this button widget should be added.\n * @param options The options to be used when adding this button widget.\n */\n addToPage(\n // TODO: This needs to be optional, e.g. for image buttons\n text: string,\n page: PDFPage,\n options?: FieldAppearanceOptions,\n ) {\n assertOrUndefined(text, 'text', ['string']);\n assertOrUndefined(page, 'page', [[PDFPage, 'PDFPage']]);\n assertFieldAppearanceOptions(options);\n\n // Create a widget for this button\n const widget = this.createWidget({\n x: (options?.x ?? 0) - (options?.borderWidth ?? 0) / 2,\n y: (options?.y ?? 0) - (options?.borderWidth ?? 0) / 2,\n width: options?.width ?? 100,\n height: options?.height ?? 50,\n textColor: options?.textColor ?? rgb(0, 0, 0),\n backgroundColor: options?.backgroundColor ?? rgb(0.75, 0.75, 0.75),\n borderColor: options?.borderColor,\n borderWidth: options?.borderWidth ?? 0,\n rotate: options?.rotate ?? degrees(0),\n caption: text,\n hidden: options?.hidden,\n page: page.ref,\n });\n const widgetRef = this.doc.context.register(widget.dict);\n\n // Add widget to this field\n this.acroField.addWidget(widgetRef);\n\n // Set appearance streams for widget\n const font = options?.font ?? this.doc.getForm().getDefaultFont();\n this.updateWidgetAppearance(widget, font);\n\n // Add widget to the given page\n page.node.addAnnot(widgetRef);\n }\n\n /**\n * Returns `true` if this button has been marked as dirty, or if any of this\n * button's widgets do not have an appearance stream. For example:\n * ```js\n * const button = form.getButton('some.button.field')\n * if (button.needsAppearancesUpdate()) console.log('Needs update')\n * ```\n * @returns Whether or not this button needs an appearance update.\n */\n needsAppearancesUpdate(): boolean {\n if (this.isDirty()) return true;\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n const hasAppearances =\n widget.getAppearances()?.normal instanceof PDFStream;\n if (!hasAppearances) return true;\n }\n\n return false;\n }\n\n /**\n * Update the appearance streams for each of this button's widgets using\n * the default appearance provider for buttons. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const button = form.getButton('some.button.field')\n * button.defaultUpdateAppearances(helvetica)\n * ```\n * @param font The font to be used for creating the appearance streams.\n */\n defaultUpdateAppearances(font: PDFFont) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n this.updateAppearances(font);\n }\n\n /**\n * Update the appearance streams for each of this button's widgets using\n * the given appearance provider. If no `provider` is passed, the default\n * appearance provider for buttons will be used. For example:\n * ```js\n * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n * const button = form.getButton('some.button.field')\n * button.updateAppearances(helvetica, (field, widget, font) => {\n * ...\n * return {\n * normal: drawButton(...),\n * down: drawButton(...),\n * }\n * })\n * ```\n * @param font The font to be used for creating the appearance streams.\n * @param provider Optionally, the appearance provider to be used for\n * generating the contents of the appearance streams.\n */\n updateAppearances(\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n assertOrUndefined(provider, 'provider', [Function]);\n\n const widgets = this.acroField.getWidgets();\n for (let idx = 0, len = widgets.length; idx < len; idx++) {\n const widget = widgets[idx];\n this.updateWidgetAppearance(widget, font, provider);\n }\n }\n\n private updateWidgetAppearance(\n widget: PDFWidgetAnnotation,\n font: PDFFont,\n provider?: AppearanceProviderFor,\n ) {\n const apProvider = provider ?? defaultButtonAppearanceProvider;\n const appearances = normalizeAppearance(apProvider(this, widget, font));\n this.updateWidgetAppearanceWithFont(widget, font, appearances);\n }\n}\n","import React, { useState, useRef } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { PDFDocument } from 'pdf-lib';\r\nimport JSZip from 'jszip';\r\n\r\nconst PdfMergerSplitter = () => {\r\n const [mode, setMode] = useState('merge');\r\n const [files, setFiles] = useState([]);\r\n const [resultPdf, setResultPdf] = useState(null);\r\n const [splitPdfs, setSplitPdfs] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const fileInputRef = useRef(null);\r\n\r\n const getShortFileName = (name, maxLength = 20) => {\r\n const baseName = name.replace(/\\.[^/.]+$/, '');\r\n if (baseName.length <= maxLength) return baseName;\r\n return baseName.slice(0, maxLength - 3) + '...';\r\n };\r\n\r\n const handleFileChange = (e) => {\r\n const selectedFiles = Array.from(e.target.files);\r\n\r\n if (mode === 'merge') {\r\n if (selectedFiles.length < 2) {\r\n alert(\"Please select at least two PDF files for merging.\");\r\n return;\r\n }\r\n if (selectedFiles.length > 5) {\r\n alert(\"Please select up to 5 PDF files only for merging.\");\r\n return;\r\n }\r\n } else if (mode === 'split') {\r\n if (selectedFiles.length !== 1) {\r\n alert(\"Please select exactly one PDF for splitting.\");\r\n return;\r\n }\r\n }\r\n setFiles(selectedFiles);\r\n setResultPdf(null);\r\n setSplitPdfs([]);\r\n if (fileInputRef.current) fileInputRef.current.value = '';\r\n };\r\n\r\n\r\n const handleMerge = async () => {\r\n if (files.length < 2) {\r\n alert(\"Please select at least two PDFs to merge.\");\r\n return;\r\n }\r\n setLoading(true);\r\n try {\r\n const mergedPdf = await PDFDocument.create();\r\n for (const file of files) {\r\n const arrayBuffer = await file.arrayBuffer();\r\n const pdf = await PDFDocument.load(arrayBuffer);\r\n const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\r\n copiedPages.forEach(page => mergedPdf.addPage(page));\r\n }\r\n const mergedPdfBytes = await mergedPdf.save();\r\n const blob = new Blob([mergedPdfBytes], { type: 'application/pdf' });\r\n const url = URL.createObjectURL(blob);\r\n setResultPdf(url);\r\n } catch (error) {\r\n console.error(\"Merge error:\", error);\r\n alert(\"Error merging PDFs: \" + error.message);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const handleSplit = async () => {\r\n if (files.length !== 1) {\r\n alert(\"Please select one PDF to split.\");\r\n return;\r\n }\r\n setLoading(true);\r\n try {\r\n const arrayBuffer = await files[0].arrayBuffer();\r\n const pdf = await PDFDocument.load(arrayBuffer);\r\n const numPages = pdf.getPageCount();\r\n const splitFiles = [];\r\n for (let i = 0; i < numPages; i++) {\r\n const newPdf = await PDFDocument.create();\r\n const [copiedPage] = await newPdf.copyPages(pdf, [i]);\r\n newPdf.addPage(copiedPage);\r\n const pdfBytes = await newPdf.save();\r\n const blob = new Blob([pdfBytes], { type: 'application/pdf' });\r\n const url = URL.createObjectURL(blob);\r\n splitFiles.push({ page: i + 1, url });\r\n }\r\n setSplitPdfs(splitFiles);\r\n } catch (error) {\r\n console.error(\"Split error:\", error);\r\n alert(\"Error splitting PDF: \" + error.message);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n const handleDownloadMerged = () => {\r\n if (!resultPdf) return;\r\n const link = document.createElement('a');\r\n link.href = resultPdf;\r\n link.download = \"merged.pdf\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const handleDownloadZip = async () => {\r\n if (splitPdfs.length === 0) return;\r\n const zip = new JSZip();\r\n for (const splitFile of splitPdfs) {\r\n const response = await fetch(splitFile.url);\r\n const blob = await response.blob();\r\n zip.file(`page_${splitFile.page}.pdf`, blob);\r\n }\r\n zip.generateAsync({ type: 'blob' }).then((content) => {\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(content);\r\n link.download = 'split_pages.zip';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n });\r\n };\r\n\r\n const handleReset = () => {\r\n setFiles([]);\r\n setResultPdf(null);\r\n setSplitPdfs([]);\r\n setLoading(false);\r\n if (fileInputRef.current) fileInputRef.current.value = '';\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n PDF Merger/Splitter - Merge or Split Your PDFs Online\r\n \r\n \r\n \r\n

    PDF Merger/Splitter

    \r\n
    \r\n \r\n \r\n

    {mode === 'merge' ? \"Select multiple PDF files (2 to 5 files)\" : \"Select one PDF file\"}

    \r\n
    \r\n {files.length > 0 && (\r\n
    \r\n

    Selected File{mode === 'merge' ? 's' : ''}

    \r\n
    \r\n {files.map((file, index) => (\r\n
    \r\n
    \r\n

    {getShortFileName(file.name)}

    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n )}\r\n {mode === 'merge' && files.length >= 2 && (\r\n
    \r\n \r\n
    \r\n )}\r\n {mode === 'split' && files.length === 1 && (\r\n
    \r\n \r\n
    \r\n )}\r\n {mode === 'merge' && resultPdf && (\r\n
    \r\n

    Merged PDF

    \r\n
    \r\n
    \r\n

    Your merged PDF is ready.

    \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n {mode === 'split' && splitPdfs.length > 0 && (\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PdfMergerSplitter;\r\n","import React, { useState } from 'react';\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nconst EncoderDecoder = () => {\r\n const [conversionType, setConversionType] = useState(\"url-encode\");\r\n const [inputText, setInputText] = useState(\"\");\r\n const [outputText, setOutputText] = useState(\"\");\r\n\r\n const handleConvert = () => {\r\n try {\r\n let result = \"\";\r\n if (conversionType === \"url-encode\") {\r\n result = encodeURIComponent(inputText);\r\n } else if (conversionType === \"url-decode\") {\r\n result = decodeURIComponent(inputText);\r\n } else if (conversionType === \"base64-encode\") {\r\n result = btoa(inputText);\r\n } else if (conversionType === \"base64-decode\") {\r\n result = atob(inputText);\r\n }\r\n setOutputText(result);\r\n } catch (error) {\r\n alert(\"Conversion error: \" + error.message);\r\n setOutputText(\"\");\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n URL & Base64 Encoder/Decoder - Encode or Decode Your Strings\r\n \r\n \r\n \r\n

    URL & Base64 Encoder/Decoder

    \r\n
    \r\n \r\n