{"version":3,"file":"static/js/main.8196aa15.js","mappings":"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C,EAnFxB,IAoFV,WAAmB,CAAED,EAAG,WAAYC,EApF1B,IAqFV,WAAmB,CAAC,GAIxBugD,GAAc,CACV,EAAe,KACf,EAAe,KACf,EAAe,GACf,EAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,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,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,GAAOr0B,GAA6D,OAAOA,EAAI9G,KAAI,SAASplB,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,GAAI,CAIrJ,IA4FIwgD,GAAsBzP,GA5FEwP,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,E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ACL,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,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,iBACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,gBACL,IAAK,qBAEHJ,GAAO,CACT,EAAG,QACH,EAAG,KACH,EAAG,OACH,EAAG,UACH,EAAG,MACH,EAAG,UACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,SACH,GAAI,KACJ,GAAI,MACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,IACL,IAAK,IACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,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,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,IA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","sources":["../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","components/Button.jsx","components/TextInput.jsx","kids/Kidslist.jsx","components/NumberInput.jsx","workshops/WorkshopList.jsx","components/Card.jsx","../node_modules/xlsx/xlsx.mjs","exportExcel.jsx","ResultView.jsx","Navbar.jsx","Welcomepage.jsx","components/Checkbox.jsx","SettingsTab.jsx","App.jsx","reportWebVitals.js","index.js"],"sourcesContent":["/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"1e138e35\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"workshops-frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkworkshops_frontend\"] = self[\"webpackChunkworkshops_frontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","export default function Button(props) {\n return \n {props.disabled && \n \n \n }\n {props.children}\n \n}","import { forwardRef, useImperativeHandle, useRef } from \"react\";\n\nconst getAutocomplete = (input, stringlist) => {\n if (stringlist === null || stringlist === undefined) return \"\";\n\n if (input === \"\") return \"\";\n\n const beginsWith = stringlist.filter(s => s.toLowerCase().startsWith(input.toLowerCase()));\n if (beginsWith.length > 0) {\n return beginsWith[0] === input ? \"\" : beginsWith[0];\n }\n\n const contains = stringlist.filter(s => s.toLowerCase().includes(input.toLowerCase()));\n if (contains.length > 0) {\n return contains[0] === input ? \"\" : contains[0];\n }\n\n return \"\";\n}\n\nconst TextInput = forwardRef((props, forwardedRef) => {\n\n const ref = useRef(null);\n\n useImperativeHandle(forwardedRef, () => ref.current);\n\n const autocomplete = getAutocomplete(props.value, props.autocomplete);\n\n return
\n {\n let triggeredAutocompletion = false;\n if ((props.autocomplete && props.autocompleteSetValue) && ((e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter')) {\n if (autocomplete !== \"\") {\n props.autocompleteSetValue(autocomplete);\n triggeredAutocompletion = true;\n }\n }\n\n props.onKeyDown && props.onKeyDown(e, triggeredAutocompletion);\n }}\n className={\n props.extraStyle\n + \" block w-full px-4 py-2 text-gray-700 bg-white border border-gray-200 \"\n + \"rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-indigo-400 \"\n + \"focus:ring-indigo-300 focus:ring-opacity-40 dark:focus:border-indigo-300 focus:outline-none focus:ring\"}\n />\n {ref.current && ref.current.id === document.activeElement.id \n && autocomplete !== \"\" \n && \n \n Tab\n \n {autocomplete}\n }\n
\n});\n\nexport default TextInput;","import { useRef, useState } from \"react\";\nimport { v4 as uuidv4 } from 'uuid';\nimport Button from \"../components/Button\";\nimport TextInput from \"../components/TextInput\";\n\nexport default function KidsList(props) {\n const kids = props.kids;\n const setKids = props.setKids;\n const workshopNames = props.workshopNames;\n\n const wishCount = 3;\n\n const [newName, setNewName] = useState('');\n const [newWishList, setNewWishList] = useState([...Array(wishCount).fill('')]);\n\n const nameInputRef = useRef(null);\n\n const addKid = () => {\n let wishes = newWishList\n while (wishes.length < wishCount) {\n wishes.push(\"\");\n }\n while (wishes.length > wishCount) {\n wishes.pop();\n }\n\n setKids([\n {\"id\": uuidv4(), \"name\": newName, \"wishes\": wishes},\n ...kids\n ]);\n setNewWishList([...Array(wishCount).fill('')]);\n setNewName('');\n\n nameInputRef.current.focus();\n }\n\n const removeKid = (id) => {\n setKids(kids.filter(k => k.id !== id));\n }\n\n const updateWish = (index, wish) => {\n const newlist = newWishList.map((a,j) => j === index ? wish : a);\n setNewWishList(newlist);\n }\n\n return (\n
\n {/*

Teilnehmer

*/}\n\n

\n Füge die Teilnehmer und ihre Wünsche hinzu.\n \n Workshops, die es in der Workshopliste nicht gibt, werden\n \n in gelb\n \n markiert.\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 {[...Array(wishCount)].map((x, i) => {\n return \n })}\n \n \n\n {kids.map(k => (\n \n \n {[...Array(wishCount)].map((x, i) => {\n return \n })}\n\n \n \n ))}\n\n {kids.length > 0 && \n \n {[...Array(wishCount)].map((x, i) => {\n return \n })}\n \n }\n\n \n
\n Name\n \n Erst-Wunsch\n \n Zweit-Wunsch\n \n Dritt-Wunsch\n \n Löschen\n
\n setNewName(e.target.value)}/>\n \n updateWish(i, e.target.value)}\n onKeyDown={(e, trAuoCom) => (i === wishCount-1 && (e.key === 'Enter') && !trAuoCom) && (e.preventDefault() || addKid())}\n autocomplete={workshopNames}\n autocompleteSetValue={value => updateWish(i, value)}\n />\n \n \n
\n

{k.name}

\n
\n \n {k.wishes[i]}\n \n \n removeKid(k.id)}>\n Löschen\n \n
\n Anzahl Teilnehmer: {kids.length}\n \n Anzahl gesetzer Wünsche in dieser Spalte: {kids.reduce((a,b) => b.wishes[i] !== \"\" ? a + 1 : a, 0)}\n
\n\n
\n
\n
\n
\n
\n );\n}","export default function NumberInput(props) {\n return \n}","import { useRef, useState } from \"react\";\nimport { v4 as uuidv4 } from 'uuid';\nimport Button from \"../components/Button\";\nimport TextInput from \"../components/TextInput\";\nimport NumberInput from \"../components/NumberInput\";\n\nexport default function Workshoplist(props) {\n const workshops = props.workshops;\n const setWorkshops = props.setWorkshops;\n\n const [newName, setNewName] = useState('');\n const [newCapa, setNewCapa] = useState(0);\n\n const nameInputRef = useRef(null);\n\n const addWorkshop = () => {\n setWorkshops([\n {id: uuidv4(), \"name\": newName, \"capacity\": newCapa},\n ...workshops\n ]);\n setNewCapa(0);\n setNewName('');\n\n nameInputRef.current.focus();\n }\n\n const removeWorkshop = (id) => {\n setWorkshops(workshops.filter(w => w.id !== id));\n }\n\n return (\n
\n {/*

Workshops

*/}\n\n

\n Füge die Workshops hinzu, die es gibt.\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 {workshops.map(w => (\n \n \n \n\n \n \n ))}\n\n {workshops.length > 0 && \n \n \n \n }\n \n
\n Name\n \n Kapazität\n \n Löschen\n
\n setNewName(e.target.value)}/>\n \n setNewCapa(e.target.value)}\n onKeyDown={(e) => ((e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter' ) && (e.preventDefault() || addWorkshop())} \n />\n \n \n
\n

{w.name}

\n
\n {w.capacity}\n \n removeWorkshop(w.id)}>\n Löschen\n \n
\n Anzahl Workshops: {workshops.length}\n \n Gesamte Kapazität: {workshops.reduce((a,b) => a + Number(b.capacity), 0)}\n
\n\n
\n
\n
\n
\n
\n );\n} ","export default function Card(props) {\n return \n {props.children}\n \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 * as XLSX from 'xlsx/xlsx.mjs';\n\nexport const exportExcel = (result, unassignedKids) => {\n let workbook = worksheetAllKids(result, unassignedKids);\n \n let workshops = [...new Set(result.map(edge => edge.Right.name))].sort();\n for (let workshop of workshops) {\n let data = result.filter(edge => edge.Right.name === workshop).map(edge => { return {Name: edge.Left.name}});\n let worksheet = XLSX.utils.json_to_sheet(data);\n XLSX.utils.book_append_sheet(workbook, worksheet, workshop, true);\n }\n\n XLSX.writeFile(workbook, \"Workshopeinteilung.xlsx\", { compression: false });\n}\n\nconst worksheetAllKids = (result, unassignedKids) => {\n const dataSorted = result.sort((e1, e2) => e1.Left.name.localeCompare(e2.Left.name)).map(edge => {\n return {name: edge.Left.name, workshop: edge.Right.name}\n });\n\n let dataAsCSV = formatCSV(dataSorted);\n\n if (unassignedKids.length > 0)\n dataAsCSV += \"\\n\" + [\"Nicht eingeteilt\", unassignedKids.join(\", \")].join(SEP) + \"\\n\";\n\n let workbook = XLSX.read(dataAsCSV, { type: \"binary\" });\n return workbook;\n}\n\nconst SEP = \",\";\n\nconst formatCSV = (data) => {\n let newData = [\"Name\",\"Workshop\"].join(SEP) + \"\\n\";\n\n data.forEach(e => {\n newData += [e.name, e.workshop].join(SEP) + \"\\n\";\n });\n \n return newData;\n}","import Button from \"./components/Button\";\nimport Card from \"./components/Card\";\nimport { exportExcel } from \"./exportExcel\";\n\nfunction interpretStatus(status) {\n switch (status) {\n case \"no-perfect-solution\": return \"Es ist keine vollständige Einteilung möglich. Die Gesamtkapazität der Workshops oder die Kapazität eines Workshops reichen nicht für alle Teilnehmer aus. Es wurden so viele Teilnehmer wie möglich zugeteilt.\"\n case \"error-unknown\": return \"Es ist ein unbekannter Fehler aufgetreten. Es wurde eine Teillösung berechnet:\"\n case \"ok\": return \"Es wurde eine Einteilung gefunden. Falls es mehrere gleichwertige Einteilungen gab, wurde eine davon zufällig ausgewählt.\"\n case \"unknown-status\": return \"Es wurde keine Nachricht zur Einteilung übermittelt.\"\n default: return \"\"\n }\n}\n\nexport default function ResultView(props) {\n const result = props.result;\n\n if (!result) {\n return (<>);\n }\n\n const problemSolution = result.solution || [];\n const status = result.status || \"unknown-status\";\n\n const asssignedKids = problemSolution.map((e1, e2) => e1.Left.name);\n const unassignedKids = result.kids.filter(kid => !(asssignedKids.includes(kid.name))).map(k => k.name);\n\n return (\n
\n {interpretStatus(status)}\n
\n \n
\n Teilnehmer nach Alphabet sortiert:\n \n \n \n
\n
\n {problemSolution.sort((e1, e2) => e1.Left.name.localeCompare(e2.Left.name)).map(edge => {\n let wishNr = edge.Left.wishes.indexOf(edge.Right.name) + 1;\n return (
\n
\n

{edge.Left.name}

\n
\n \n

{edge.Right.name}

\n

({wishNr > 0 ? \"entspricht \" + wishNr + \". Wunsch\" : \"Wurde nicht gewünscht\"})

\n
\n
\n )})}\n
\n
\n Zugeteilt wurden: {asssignedKids.join(\", \") || \"Niemand\"} ({asssignedKids.length})
\n Nicht zugeteilt wurden: {unassignedKids.join(\", \") || \"Niemand\"} ({unassignedKids.length})\n
\n
\n
\n
\n );\n}","import { useEffect, useState } from \"react\";\nimport Button from \"./components/Button\";\n \nconst saveTheme = (theme) => {\n localStorage.theme = theme\n}\n\nconst loadTheme = () => {\n if (!('theme' in localStorage)) {\n saveTheme(\"system\");\n return \"system\"\n } else return localStorage.theme\n}\n\nconst realizeTheme = (theme) => {\n if (theme === \"system\") {\n theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? \"dark\" : \"light\";\n }\n\n if (theme === 'dark') {\n document.documentElement.classList.add('dark')\n } else {\n document.documentElement.classList.remove('dark')\n }\n}\n\nconst printTheme = (theme) => {\n switch (theme) {\n case \"light\": return \"Hell\"\n case \"dark\": return \"Dunkel\"\n default: return \"System\"\n }\n}\n\nexport default function NavBar(props) {\n const [isOpen, setIsOpen] = useState(false);\n\n const [theme, setTheme] = useState(loadTheme());\n\n const onThemeSelect = (t) => {\n saveTheme(t);\n setTheme(t);\n realizeTheme(t);\n }\n\n useEffect(() => {\n setTheme(loadTheme());\n realizeTheme(theme);\n }, [theme]);\n\n return
\n}","export default function WelcomePage(props) {\n const setTab = props.setTab;\n\n return (\n <>\n

\n Herzlich Wilkommen\n

\n

\n Das ist mein selbst entworfenes Gruppen-Tool, mit dem du Teilnehmer in\n Gruppen einteilen kannst.\n

\n\n
\n\n
\n
\n
\n

\n Wie lege ich die Gruppen und die Teilnehmer fest?\n

\n\n

\n Unter dem Reiter{\" \"}\n {\" \"}\n kannst du verschiedene Gruppen mit ihrem Namen und einer maximalen\n Anzahl an Teilnehmern angeben.\n

\n\n

\n Anschließend kannst du im daneben liegeneden Reiter{\" \"}\n {\" \"}\n Namen von Personen angeben, die in die Workshops eingeteilt\n werden sollen. Jeder kann bis zu drei Wünsche\n abgeben.\n

\n
\n\n
\n

\n Wie teile ich die Gruppen ein?\n

\n\n

\n Unter dem Reiter{\" \"}\n {\" \"}\n kannst du deine Daten an den Server übermitteln und eine\n Einteilung anfordern. Das Tool berechnet mit Hilfe eines mathmatischen\n Algorithmus eine Einteilung, die die maximalen\n Kapzitäten der Workshops berückslichtigt und dabei möglichst vielen\n Teilnehmern ihre Wünsche erfüllt.\n

\n
\n\n
\n

\n Was ist, wenn es mehrere Möglichkeiten gibt?\n

\n\n

\n Wenn es verschiedene gleichwertige Einteilgungen gibt (d.h.\n Einteilgungen, bei denen gleich viele Teilnehmer ihren Erst- bzw.\n Zweit. bzw. Dritt-Wunsch erhalten), dann wird das Tool davon\n zufällig eine auswählen.\n
\n
\n Wenn du mehrfach auf den Button \"Gruppen jetzt einteilen\" klickst,\n kannst du verschiedene zufällig generierte Einteilgungen ansehen.\n

\n
\n\n
\n

\n Werden meine Daten/Ergebnisse gespeichert?\n

\n\n

\n Deine angegebenen Daten (Workshops und Teilnehmer) werden in\n deinem Browser gespeichert und erneut in die Tabellen gefüllt, wenn du diese Seite\n zu einem späteren Zeitpunkt wieder aufrufst. Außerdem werden die\n Workshops und Teilnehmer, sobald du auf \"Gruppen jetzt einteilen\" klickst, an einen Server geschickt, dort zur\n Verarbeitung kurzzeitig gespeichert und dann gelöscht. Deine dabei entstandene\n Einteilgung wird nicht gespeichert. Du kannst aber eine\n Excel-Datei mit allen Namen und ihren Workshop herunterladen und abspeichern.\n

\n
\n\n
\n

\n Wie funktioniert die Einteilung genau?\n

\n\n

\n Es wird zu jedem Zeitpunkt\n sichergestellt, dass keiner der Workshops seine Kapazität\n überschreitet.\n
\n
\n Unter dieser Bedigung werden in zufälliger Reihnfolge Teilnehmer\n ihren Wünschen zugeordnet. Dabei werden Erst-Wünsche natürlich\n gegenüber Zweit-Wünschen und diese gegenüber Dritt-Wünschen\n priorisiert, sofern die entsprechende Einstellung aktiv ist.\n
\n
\n Dabei kann es passieren, dass bereits zugeteilte Teilnehmer,\n wieder aus der Gruppe herausgenommen werden, wenn das Platz für\n einen Teilnehmer schafft, der sich diese Gruppe mit höherer\n Priorität wünscht.\n
\n
\n Das passiert solange, bis alle Teilnehmer eingeteilt sind (oder\n das Tool merkt, dass die Kapazität der Workshops nicht für alle\n Teilnehmer ausreicht.)\n

\n
\n\n
\n

\n Was passiert, wenn ein Teilnehmer nirgends zugeordnet werden kann?\n

\n\n

\n Es gibt zwei verschiedene Probleme, durch die das vorkommen kann.\n
\n
\n 1. Kapazität reicht nicht aus. \n Wenn die Anzahl der Teilnehmer größer ist als die Summe der\n Kapazitäten der Workshops, wird es unweigerlich zum Fall kommen,\n dass Teilnehmer nicht zugeteilt werden können. In diesem Fall wird\n das Tool darauf mit einer Warnung hinweisen und eine Einteilung\n angeben, in der möglichst viele Teilnehmer zugeteilt wurden. In\n diese Einteilung werden diejenigen Teilnehmer aufgenommen, die am\n besten zu den verfügbaren Plätzen passen.\n
\n
\n \n 2. Der Teilnehmer kann keinen seiner drei Wünsche erhalten.{\" \"}\n \n Es kann passieren, dass es einen Teilnehmer gibt, der keinen seiner Wünsche erfüllt\n bekommen kann. \n Je nach Einstellung der Option \"Einteilung in nicht gewünschte Workshops zulassen\"\n wird ein solcher Teilnehmer einem noch freien Workshop zugeteilt, oder überheupt nicht\n zugeteilt.\n

\n
\n\n
\n

\n Wie funktioniert die Einteilung mathematisch nun wirklich ganz ganz genau?\n

\n\n

\n Modellierung. \n Das Problem wird mathematisch als (nicht-gerichteter, einfacher)\n kanten-gewichteter Graph modelliert.\n Für jeden Teilnehmer und jeden Workshop gibt es jeweils einen Knoten\n in diesem Graphen. Jeder Teilnehmer wird genau mit den Workshops durch\n eine Kante verbunden, die er sich wünscht, und mit der entstandenen\n Kante wird ein Kostenwert (ein Gewicht) assoziiert.\n Dieser Kostenwert hängt davon ab, mit welcher Priorität sich der Teilnehmer den Workshop gewünscht hat.\n Wenn die Wünsche als ungewichtet betrachtet werden, ist der Wert in jedem Fall eins.\n Bei gewichteten Wünschen kostet ein 1.-Wunsch eine, ein 2.-Wunsch vier und ein 3.-Wunsch\n neun Kosteneinheiten.\n Falls die Option \"Einteilung in nicht gewünschte Workshops zulassen\" gesetzt ist,\n werden alle noch nicht verbundenen Teilnehmer-Workshop-Paare durch eine Kante mit Kosten\n 16 verbunden.\n
\n
\n Problemstellung. \n Als Einteilung (Matching) versteht man (in diesem Kontext) eine Auswahl einiger Kanten aus dem Graphen,\n die so erfolgt, dass jeder Teilnehmer mit genau einem Workshop verbunden ist,\n und jeder Workshop mit maximal so vielen Teilnehmern verbunden ist, wie\n seine Kapazität es erlaubt.\n Da die Wünsche der Teilnehmer (mitunter) als gewichtet betrachtet werden,\n ist es nicht nur das Ziel, ein irgendein Matching zu finden, sondern unter allen Matchings,\n die es gibt, eines zu finden, welches minimale Gesamtkosten realisiert.\n Die Gesamtkosten ergibt sich dabei aus der Summe aller Kosten der am Matching beteiligten Kanten.\n
\n
\n Lösungsansatz. \n Um ein günstiges (auch minimales) Matching zu finden, wird das\n Problem in ein Maximaler Flusswert-Problem (Maximum network flow problem) umformuliert.\n Alle Kanten im Graphen erhalten einen weiteren Wert: eine Kapazität.\n Die Kapazität einer Kante entspricht der gesetzten Kapazität des Workshops, der an einem Ende der Kante liegt.\n Es werden außerdem 2 Knoten in den Graphen hinzugefügt: Ein Quelle (Source), die \n mit allen Teilnehmer-Knoten verbunden wird,\n und eine Senke (Sink), die mit allen Workshop-Knoten verbunden wird.\n Alle so entstandenen Kanten bekommen beliebige, aber uniforme Kosten- und Kapazitätenwerte,\n in dieser Implementierung \"eins\".\n \n Nun ist das gesetzt Ziel wie folgt formuliert:\n Wenn wir uns vorstellen, aus der Quelle entspringt Wasser, welches entlang der Kanten\n zur Senke fließt, wie viel Wasser kommt pro Zeiteinheit an der Senke an, wenn pro Zeiteinheit\n nur so viel Wasser entlang der Kanten fließen kann, wie es die Kapazitäten angeben?\n \n Die Angaben, wie viel Wasser wo fließt, wird als Funktion in den Kanten\n dargestellt und als Fluss (Flow) bezeichnet.\n Da die Wünsche der Teilnehmer weiterhin als gewichtet betrachtet werden,\n ist es nicht nur das Ziel, irgendeinen Flow zu finden, sondern unter allen Flows,\n die es gibt, einen zu finden, welcher minimale Gesamtkosten realisiert. Ein Flow kann kann\n in ein Matching überführt werden.\n
\n
\n Min-Cost-Max-Flow. \n Für das genennate Problem gibt es Algorithmen. Eine Methode zum Lösen des Problems\n ist ein sogenannter \"Successive Shortest Path\"-Algorithmus. Hier wird ein anfänglicher\n Null-Fluss schrittweise entland eines (bezüglich der Kosten) kürzesten (günstigsten)\n Pfades in Richtung eines maxiamlen Flusses erhöht.\n Zum Finden der kürzesten Pfade wird in diesem Tool\n eine Implementierung des Bellman-Ford-Moore-Algorithmus verwendet.\n\n
\n
\n Der Quellcode für die algorithmischen Teile des Tools befinden sich\n hier: https://github.com/JonasBernard/min-cost-max-flow.\n\n
\n
\n Der Quellcode für die Webseite befindet sich hier: https://github.com/JonasBernard/datto.\n

\n
\n
\n
\n \n );\n}\n","import { useId } from \"react\";\n\nexport default function Checkbox(props) {\n const checkbox = useId();\n const checkboxLabel = useId();\n\n return <>\n
\n
\n \n
\n
\n \n {props.details &&\n

{ props.details }

\n }\n
\n
\n \n}","import { useEffect, useState } from \"react\";\nimport Checkbox from \"./components/Checkbox\";\n\nexport default function SettingsTab(props) {\n const setSettings = props.setSettings;\n const initialSettings = props.initialSettings;\n\n const [useWeighted, setUseWeighted] = useState(initialSettings.useWeighted !== undefined ? initialSettings.useWeighted : false);\n const [allowAssignmentToNonWishedWorkshop, setallowAssignmentToNonWishedWorkshop] = useState(initialSettings.allowAssignmentToNonWishedWorkshop !== undefined ? initialSettings.allowAssignmentToNonWishedWorkshop : true);\n\n useEffect(() => {\n setSettings({\n useWeighted: useWeighted,\n allowAssignmentToNonWishedWorkshop: allowAssignmentToNonWishedWorkshop\n })\n }, [useWeighted, allowAssignmentToNonWishedWorkshop, setSettings]);\n\n return (\n
\n
\n setUseWeighted(e.target.checked)}>\n setallowAssignmentToNonWishedWorkshop(e.target.checked)}>\n
\n
);\n}","import { useEffect, useState } from \"react\";\nimport \"./App.css\";\nimport KidsList from \"./kids/Kidslist\";\nimport Workshoplist from \"./workshops/WorkshopList\";\nimport ResultView from \"./ResultView\";\nimport Button from \"./components/Button\";\nimport NavBar from \"./Navbar\";\nimport Card from \"./components/Card\";\nimport WelcomePage from \"./Welcomepage\";\nimport SettingsTab from \"./SettingsTab\";\n\nconst APIBASE = process.env.REACT_APP_API_BASEURL || \"http://localhost:5000\";\n\nfunction saveData(kids, workshops, settings) {\n localStorage.dataV1 = JSON.stringify({\n kids: kids,\n workshops: workshops,\n settings: settings,\n })\n}\n\nfunction loadData() {\n if (localStorage.dataV1) {\n let data = JSON.parse(localStorage.dataV1);\n if (data.kids.length > 0 || data.workshops.length > 0)\n return [true, data.kids, data.workshops, data.settings]\n }\n return [false, [], []];\n}\n\nfunction App() {\n const [kids, setKids] = useState([]);\n const [workshops, setWorkshops] = useState([]);\n\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [warningMessage, setWarningMessage] = useState(\"\");\n const [infoMessage, setInfoMessage] = useState(\"\");\n\n const [settings, setSettings] = useState({});\n const [result, setRequestResult] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const [currentTab, setTab] = useState(3);\n\n useEffect(() => {\n let [loaded,k,w,s] = loadData();\n if (loaded) {\n \n setKids(k); setWorkshops(w); setTab(2);\n s && setSettings(s);\n\n setInfoMessage(\"Es wurden Daten aus deiner letzten Sitzung wiederhergestellt.\");\n }\n }, []);\n\n useEffect(() => {\n saveData(kids, workshops, settings);\n }, [kids, workshops, settings]);\n\n const sendData = () => {\n setErrorMessage(\"\");\n setWarningMessage(\"\");\n setRequestResult(null);\n\n const kidsOrig = kids;\n const workshopsOrig = workshops;\n\n if (kidsOrig.map(k=>k.name).length > [...new Set(kidsOrig.map(k=>k.name))].length) {\n setWarningMessage(\"Es gibt mehrere Teilnehmer mit dem gleichem Namen. Das kann zu Problemen führen.\");\n }\n\n if (kidsOrig.filter(k => k.name === \"\").length > 0) {\n setWarningMessage(\"Es gibt einen Teilnehmer mit leerem Namen. Das kann zu Problemen führen.\");\n }\n\n if (kidsOrig.filter(k => {\n return k.wishes.filter(w => w !== \"\").length > [...new Set(k.wishes.filter(w => w !== \"\"))].length;\n }).length > 0) {\n setWarningMessage(\"Es gibt Teilnehmer die sich den gleichen Workshop mehrfach wünschen.\");\n }\n \n if (workshopsOrig.filter(w => w.name === \"\").length > 0) {\n setErrorMessage(\"Es gibt einen Workshop mit leerem Namen. Das muss behoben werden bevor eine Einteilung gefunden werden kann.\")\n return;\n }\n\n if (workshopsOrig.filter(w => w.capacity === 0).length > 0) {\n setErrorMessage(\"Es gibt einen Workshop mit Kapazität null. Dieser muss gelöscht werden bevor eine Einteilung gefunden werden kann.\")\n return;\n }\n\n saveData(kidsOrig, workshopsOrig);\n\n const path = settings.useWeighted ? \"/weighted\" : \"/unweighted\";\n\n setIsLoading(true);\n fetch(APIBASE + path, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n kids: kidsOrig,\n workshops: workshopsOrig,\n settings: settings,\n }),\n })\n .then((response) => response.json())\n .catch((err) => {\n setIsLoading(false);\n console.error(err);\n setErrorMessage(\"Failed to parse JSON: \" + err.message);\n })\n .then((actualData) => {\n setIsLoading(false);\n const result = {\n ...actualData,\n kids: kidsOrig,\n workshops: workshopsOrig,\n }\n setRequestResult(result);\n })\n .catch((err) => {\n setErrorMessage(err.message);\n });\n };\n\n return (\n
\n
\n \n
\n\n
\n {infoMessage && (\n
\n {infoMessage}\n setInfoMessage(\"\")}\n className=\"m-4 text-black cursor-pointer\"\n >\n OK\n \n
\n )}\n
\n\n \n
\n
\n \n \n \n
\n\n
\n \n
\n
\n\n\n {currentTab === 0 &&
\n \n
}\n {currentTab === 1 &&
\n w.name)} />\n
}\n\n {currentTab === 2 &&
\n \n
\n \n
\n
\n {errorMessage && (\n
\n {errorMessage}\n setErrorMessage(\"\")}\n className=\"m-4 text-black cursor-pointer\"\n >\n x\n \n
\n )}\n
\n
\n {warningMessage && (\n
\n {warningMessage}\n setWarningMessage(\"\")}\n className=\"m-4 text-black cursor-pointer\"\n >\n x\n \n
\n )}\n
\n \n
}\n\n {currentTab === 3 &&
\n \n
}\n\n
\n \n
\n
\n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["aa","require","ca","p","a","b","c","arguments","length","encodeURIComponent","da","Set","ea","fa","ha","add","ia","window","document","createElement","ja","Object","prototype","hasOwnProperty","ka","la","ma","v","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","forEach","toLowerCase","ra","sa","toUpperCase","ta","slice","pa","isNaN","qa","call","test","oa","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","A","assign","Ma","Error","stack","trim","match","Na","Oa","prepareStackTrace","defineProperty","set","Reflect","construct","l","h","k","displayName","includes","name","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","Array","isArray","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","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","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","indexOf","setProperty","keys","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","ub","vb","is","wb","xb","target","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","push","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","apply","m","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","Math","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","id","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","key","String","fromCharCode","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","concat","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","capture","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","ref","_owner","_stringRef","refs","Mg","join","Ng","Og","index","Pg","Qg","props","Rg","implementation","Sg","Tg","q","r","y","next","done","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","context","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","payload","callback","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","create","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","defaultProps","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","contextType","state","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","message","digest","Ki","Li","console","error","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","S","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","size","createElementNS","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","version","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","exports","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","err","module","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","map","count","toArray","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","o","chunkId","all","reduce","promises","miniCssF","obj","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","i","s","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","fn","head","toStringTag","installedChunks","j","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","unsafeStringify","arr","buf","native","rnds","Button","_jsxs","className","bgColor","xmlns","fill","viewBox","_jsx","cx","cy","stroke","forwardedRef","autocomplete","getAutocomplete","stringlist","beginsWith","filter","startsWith","onChange","placeholder","onKeyDown","triggeredAutocompletion","autocompleteSetValue","extraStyle","KidsList","kids","setKids","workshopNames","newName","setNewName","newWishList","setNewWishList","nameInputRef","addKid","wishes","uuidv4","updateWish","wish","newlist","scope","TextInput","trAuoCom","wishCount","removeKid","NumberInput","Workshoplist","workshops","setWorkshops","newCapa","setNewCapa","addWorkshop","capacity","removeWorkshop","Number","Card","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","char_codes","len","charCodeAt","utf16beread","$cptable","debom","c1","c2","utf16leread","_getchar","_getansi","Base64_map","Base64_encode","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer","process","versions","Buffer_from","nbfs","from","enc","new_raw_buf","alloc","new_unsafe_buf","allocUnsafe","s2a","s2ab","ArrayBuffer","a2s","ab2a","bconcat","bufs","isBuffer","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pow","pad0r","round","pad0r1","pad0r2","SSF_isgeneral","days","months","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","mixed","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","opts","b2","dow","dout","out","abs","date1904","setDate","getDate","getFullYear","getMonth","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","getTime","SSFbase1904","datenum_local","epoch","getTimezoneOffset","SSF_strip_decimal","SSF_general_num","LOG10E","toPrecision","toFixed","toExponential","SSF_small_exp","substr","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","val","ss0","ss","tt","outl","commaify","pct1","write_num_exp","idx","period","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","str","rnd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","mul","write_num_pct","aval","sign","den","parseInt","rr","myn","myd","write_num_f1","carry","max","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","lastIndexOf","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","parseFloat","choose_fmt","in_str","SSF_split_fmt","lat","m1","m2","dateNF","table","flen","dt","lst","ssm","bt","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","SSFImplicit","dateNFregex","CRC32","T0","Int32Array","signed_crc_table","TT","subarray","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","bstr","seed","CFB","fs","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse","file","parse_zip","root","row","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","line","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","header","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","chkd","buf_chain","modulus","seen","addr","__readInt32LE","nodes","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","files","mini","minifat_store","sector","namelen","__utf16le","clsid","ct","read_date","storage","get_sector_list","content","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","entry","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","find","rebuild_cfb","seed_cfb","_file","fullPaths","HEADER_CLSID","sort","namecmp","elt","_write","_opts","fileType","fp","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","method","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","copy","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","hash","mlen","len_eb","dst_eb","write_huff_fixed","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","dst","inflate","warn_or_throw","wrn","msg","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","_csz","_usz","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","ext","encoded","tmp","fdata","fname","cte","parse_quoted_printable","fpath","utils","cfb_gc","path","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","chrome","downloads","download","revokeObjectURL","click","$","File","Folder","open","encoding","close","ks","o2","evert_key","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","decode","dup","fuzzynum","isFinite","NaN","wt","lower_months","fuzzydate","getYear","lower","split_regex","safe_split_regex","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","safegetzipfile","zip","getzipfile","getzipdata","safe","getzipstr","getzipbin","zipentries","zip_add_file","res","widx","ridx","utf8decode","zip_new","zip_read","resolve_path","result","step","XML_HEADER","attregexg","tagregex1","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","RegExp","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","matches","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","xlml_normalize","xlmlregex","XMLNS","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","bs","av","write_double_le","hexstr","fld","pos","parsenoop","recordhopper","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","decode_range","encode_range","cs","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","run","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","rgb","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","XLSIcv","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","metadata","styles","write_ct","type2ct","evert_arr","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","CORE_PROPS","EXT_PROPS","CUST_PROPS","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","TCMNT","PEOPLE","VBA","get_rels_path","parse_rels","currentFilePath","rels","rel","Type","Target","TargetMode","canonictarget","write_rels","rid","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS_REGEX","parse_core_props","cur","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","PseudoPropsPairs","load_props_pairs","HP","TOP","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","write_ext_props","Application","custregex","write_cust_props","pid","write_vt","evert_XLMLDPM","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","xlml_set_prop","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","parse_dictionary","CodePage","dict","parse_BLOB","bytes","ret","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecLpwstrValue","parse_VtVecUnalignedLpstrValue","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","pr","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","write_Bes","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkMoniker","extra","parse_URLMoniker","cAnti","preamble","ansiPath","parse_FileMoniker","parse_HyperlinkString","write_HyperlinkString","write_Hyperlink","hashidx","Pretarget","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","fSharedNote","parse_BOF","BIFFVer","write_BOF","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","cchName","write_HLink","write_HLinkTooltip","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","level","parse_Blank","parse_Scl","parse_String","DBF_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","_f","rout","_n","_s","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa_str","records","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","hidden","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","RS","rec","wpx","width2px","px2char","rows","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","dateNF_regex","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","args","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","parse_rs","tregex","rpregex","parse_r","rpr","font","pass","shadow","outline","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","align","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","byte1","byte2","Byte","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Data","Value","crypto_DecryptData_Method1","parse_FilePassHeader","Info","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","exec","lastIndex","rgb2Hex","rgb_tint","hex","hsl","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","delta","_MDW","coll","customWidth","PPI","pt","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","NumberFmt","formatCode","parse_numFmts","Fonts","bold","italic","underline","condense","vertAlign","scheme","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","border","diagonalUp","diagonalDown","parse_borders","CellXf","alignment","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","write_sty_xml","SSF","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","write_FontFlags","sss","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","cm","write_BrtBeginEsmdb","mdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","on","sheet_insert_comments","threaded","people","comment","author","write_comments_xml","iauthor","ID","lastauthor","ts","write_tcmnt_xml","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","parse_RgceLocRel_BIFF2","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","func","lbl","names","xlfn","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","write_Formula","os","o1","write_FormulaValue","o3","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","margins","defs","right","bottom","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","parse_ws_xml_dim","svs","Views","sviewregex","zoomScale","rightToLeft","RTL","parse_ws_xml_sheetviews","seencol","coli","colm","colM","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","Rel","tooltip","parse_ws_xml_hlinks","margin","parse_ws_xml_margins","tmpref","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","___f","_tag","xlmeta","Cell","_r","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","params","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","first","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","parse_chart","csheet","num","parse_Cache","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","defaults","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","check_wb","codes","cn","wbnsregex","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","parse_BrtFRTArchID$","ArchID","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","parse_wb","Ptg","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_ws","vm","RR","aii","_d","relId","rfx","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","parse_sst_bin","parse_sst_xml","parse_cmnt","authors","parse_comments_bin","commentList","authtag","cmnttag","authorId","guid","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","parse_xlmeta","Types","metatype","parse_xlmeta_bin","lastmeta","offsets","parse_xlmeta_xml","write_ws","write_cmnt","XLMLFormatMap","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","format","xlml_format","process_style_xlml","stag","Interior","Pattern","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","Rn","opening","ishtml","_o","html_to_sheet","book_append_sheet","html_to_workbook","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","attr","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","CONTINUE_RT","slurp","RecordType","insitu","nextrt","XLSRecordEnum","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","fBelow","fRight","ExternCount","tmpri","biffguess","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_j","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","fill_vba_xls","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","idObj","stAuthor","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","env","lcb","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","mtch2","midx","colspan","rowspan","_t","make_html_row","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","hasAttribute","Aelts","Aelti","parse_dom_table","get_computed_style","getComputedStyle","get_get_computed_style_function","getPropertyValue","parse_text_p","fixed","number_formats_ods","day","year","hours","minutes","seconds","era","quarter","parse_content_xml","sheetag","rowtag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","FEtag","parse_manifest","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","array","DataView","buffer","byteOffset","byteLength","u8str","u8","stru8","u8concat","u8a","acc","popcnt","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","proto","item","mappa","parse_iwa_file","_a","messages","merge","write_iwa_file","ias","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","parse_new_storage","rsst","dv","getUint32","data_offset","d128","ieee","exp","mantissa","readDecimal128LE","getFloat64","write_new_storage","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_cell_storage","parse_old_storage","parse_TSP_Reference","parse_TST_TableDataList","rtp","rtpref","mtype","tswpsa","parse_TST_Tile","_b","_c","_e","_g","_h","_i","_k","_l","_m","used_storage_u8","used_storage","wide_offsets","used_storage_offsets","getUint16","parse_TST_TileRowInfo","nrows","parse_TST_TableInfoArchive","tableref","store","tile","_tile","parse_TST_TableModelArchive","parse_TN_DocumentArchive","root2","parse_TN_SheetArchive","parse_numbers_iwa","indices","packets","packet","docroot","iwam","write_tile_row","tri","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","parse_drawing","chartp","crelsp","parse_ds","tcomments","tidx","parse_tcmnt_xml","strip_front_slash","_zip","binname","dir","threadedcomments","links","coreprops","extprops","custprops","calcchains","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_theme","propdata","parse_ext_props","toks","warn","parse_cust_props","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","displayname","parse_people_xml","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","numbers","trunc","dependents","packet2","x2","y2","indices_varint","ivi","mess","u8contains","sheetrootref","cruidsref","oldbucket","_x","cruids","uuid","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","raw32","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","foo","vbafmt","_sn","wsrels","need_vml","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","userId","providerId","write_people_xml","read_plaintext","main","read_prn","readSync","infile","read_binary","bstrify","vu","read_cfb","OLD_WTF","read_wb_ID","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","txt","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","book_new","roll","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","dynamic","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","exportExcel","unassignedKids","workbook","worksheetAllKids","edge","workshop","worksheet","dataSorted","localeCompare","dataAsCSV","formatCSV","SEP","newData","interpretStatus","status","ResultView","_Fragment","problemSolution","solution","asssignedKids","kid","wishNr","saveTheme","localStorage","loadTheme","realizeTheme","matchMedia","classList","remove","printTheme","NavBar","isOpen","setIsOpen","setTheme","onThemeSelect","alt","wasOpen","fillRule","clipRule","WelcomePage","setTab","Checkbox","checkbox","checkboxLabel","htmlFor","title","details","SettingsTab","setSettings","initialSettings","useWeighted","setUseWeighted","allowAssignmentToNonWishedWorkshop","setallowAssignmentToNonWishedWorkshop","saveData","settings","dataV1","errorMessage","setErrorMessage","warningMessage","setWarningMessage","infoMessage","setInfoMessage","setRequestResult","isLoading","setIsLoading","currentTab","loaded","loadData","sendData","kidsOrig","workshopsOrig","fetch","response","json","actualData","onPerfEntry","Function","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","getElementById","React","App","reportWebVitals"],"sourceRoot":""}