lakutata 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/codeStyles/Project.xml +18 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/lakutata.iml +13 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/build/Application-78a416de.d.ts +387 -0
- package/build/Application-b5e19e08.d.ts +387 -0
- package/build/Components.cjs +55 -0
- package/build/Components.d.cts +9 -0
- package/build/Components.d.ts +9 -0
- package/build/Components.js +44 -0
- package/build/Core.cjs +148 -0
- package/build/Core.d.cts +33 -0
- package/build/Core.d.ts +33 -0
- package/build/Core.js +71 -0
- package/build/Crypto.cjs +96 -0
- package/build/Crypto.d.cts +19 -0
- package/build/Crypto.d.ts +19 -0
- package/build/Crypto.js +41 -0
- package/build/Decorators.cjs +100 -0
- package/build/Decorators.d.cts +23 -0
- package/build/Decorators.d.ts +23 -0
- package/build/Decorators.js +45 -0
- package/build/DependencyInjectionContainer-871a6c03.d.ts +340 -0
- package/build/DependencyInjectionContainer-f037ac36.d.ts +340 -0
- package/build/Exceptions.cjs +144 -0
- package/build/Exceptions.d.cts +28 -0
- package/build/Exceptions.d.ts +28 -0
- package/build/Exceptions.js +37 -0
- package/build/Hash.cjs +223 -0
- package/build/Hash.d.cts +535 -0
- package/build/Hash.d.ts +535 -0
- package/build/Hash.js +10 -0
- package/build/Time.cjs +14 -0
- package/build/Time.d.cts +5 -0
- package/build/Time.d.ts +5 -0
- package/build/Time.js +5 -0
- package/build/TimeInput-24fced42.d.ts +243 -0
- package/build/TimeInput-4401fc58.d.ts +243 -0
- package/build/Utilities.cjs +100 -0
- package/build/Utilities.d.cts +212 -0
- package/build/Utilities.d.ts +212 -0
- package/build/Utilities.js +7 -0
- package/build/Validator.cjs +24 -0
- package/build/Validator.d.cts +1851 -0
- package/build/Validator.d.ts +1851 -0
- package/build/Validator.js +11 -0
- package/build/chunk-26TQI22I.js +196 -0
- package/build/chunk-27OFA7C3.js +16 -0
- package/build/chunk-2C2UILFN.js +23 -0
- package/build/chunk-2CHYQHWR.cjs +16 -0
- package/build/chunk-2DN35UQB.cjs +10947 -0
- package/build/chunk-2E4TF6LU.cjs +16 -0
- package/build/chunk-2PLJEW2R.js +14 -0
- package/build/chunk-2RW3VMNS.js +45 -0
- package/build/chunk-2T6JU2UH.js +14 -0
- package/build/chunk-3CX3GCQF.js +32 -0
- package/build/chunk-3JIQCDQG.cjs +25 -0
- package/build/chunk-3KLEN3PR.js +14 -0
- package/build/chunk-3LZRQPJ5.js +14 -0
- package/build/chunk-3NHHHZFR.cjs +870 -0
- package/build/chunk-4332C5BW.js +30 -0
- package/build/chunk-46V7GHKE.cjs +25 -0
- package/build/chunk-4EPPSZ7L.js +14 -0
- package/build/chunk-4FEEQIQ4.js +23 -0
- package/build/chunk-4G2ZCUBN.js +5570 -0
- package/build/chunk-4KTVY73U.js +15 -0
- package/build/chunk-4MQXSUTL.cjs +14 -0
- package/build/chunk-4OHSPWRQ.js +34 -0
- package/build/chunk-4PK4TGU4.cjs +16 -0
- package/build/chunk-4YXUEJSO.js +23 -0
- package/build/chunk-5475IFR4.cjs +16 -0
- package/build/chunk-5B5Z4GCR.cjs +17 -0
- package/build/chunk-5FPTDIKI.cjs +16 -0
- package/build/chunk-5NK7E2HA.js +69 -0
- package/build/chunk-67F5WP5Z.cjs +8 -0
- package/build/chunk-6BJTKEXZ.cjs +25 -0
- package/build/chunk-6WNLPTDY.cjs +8 -0
- package/build/chunk-7G7FCNEG.cjs +8 -0
- package/build/chunk-7IVNTVYK.cjs +16 -0
- package/build/chunk-7MJAWOWL.js +22896 -0
- package/build/chunk-7MTOK62N.js +767 -0
- package/build/chunk-7PADGZPI.cjs +129 -0
- package/build/chunk-7ZUM53G6.js +14 -0
- package/build/chunk-A4BYNKYF.js +42 -0
- package/build/chunk-A7F6LCRA.cjs +16 -0
- package/build/chunk-AFV3VN3X.cjs +8 -0
- package/build/chunk-AGHMOCC3.cjs +16 -0
- package/build/chunk-AHUH4FWQ.cjs +29 -0
- package/build/chunk-AM4YMG2S.js +6 -0
- package/build/chunk-ANDEVIKJ.cjs +16 -0
- package/build/chunk-APETX7ZT.cjs +16 -0
- package/build/chunk-ASMC7EUP.js +6 -0
- package/build/chunk-BDCRHGKN.js +6 -0
- package/build/chunk-BDJXMO44.js +2920 -0
- package/build/chunk-BE7ICF5R.js +32 -0
- package/build/chunk-BEDKPRVX.cjs +17 -0
- package/build/chunk-BFE66ADZ.cjs +34 -0
- package/build/chunk-BKCT2HSQ.js +178 -0
- package/build/chunk-BMNC4W46.js +20 -0
- package/build/chunk-BO7Y6HNS.cjs +176 -0
- package/build/chunk-D4H35ART.cjs +53 -0
- package/build/chunk-D5DE7Z4J.js +29 -0
- package/build/chunk-DHSSJJMD.cjs +25 -0
- package/build/chunk-DIMOR6NE.cjs +8 -0
- package/build/chunk-DN5TSX6S.cjs +244 -0
- package/build/chunk-EEH5LCBP.cjs +16 -0
- package/build/chunk-EFYDUUXT.cjs +92 -0
- package/build/chunk-ENJSEFE4.js +14 -0
- package/build/chunk-EPYJVQHQ.js +6 -0
- package/build/chunk-EUVLTNDV.js +32 -0
- package/build/chunk-EXQVCESB.cjs +20 -0
- package/build/chunk-EYPPC6HP.js +18 -0
- package/build/chunk-F5NKGQDL.cjs +16 -0
- package/build/chunk-F7RNH2H2.js +266 -0
- package/build/chunk-FCTV4OB7.cjs +50 -0
- package/build/chunk-FHEXUE67.js +29 -0
- package/build/chunk-FJP3KNXK.js +23 -0
- package/build/chunk-FJQSLRIP.js +14 -0
- package/build/chunk-FSFWPTIC.js +6 -0
- package/build/chunk-FTKFMQHJ.cjs +16 -0
- package/build/chunk-FW26MPE4.js +69 -0
- package/build/chunk-FZNRGZGE.js +6372 -0
- package/build/chunk-G7EDOLQ7.cjs +100 -0
- package/build/chunk-GGY7LCMQ.cjs +73 -0
- package/build/chunk-GLWUJIMW.cjs +8 -0
- package/build/chunk-GZ5KN2PE.js +6 -0
- package/build/chunk-HBPRX3WA.cjs +202 -0
- package/build/chunk-HJAQ6WJM.cjs +288 -0
- package/build/chunk-HJSJA5CF.js +14 -0
- package/build/chunk-HKAY7FWM.js +28 -0
- package/build/chunk-HMKTNRQF.js +14 -0
- package/build/chunk-HODDA5D5.js +199 -0
- package/build/chunk-HPKJUFTM.js +14 -0
- package/build/chunk-HWCTWIVZ.cjs +30 -0
- package/build/chunk-HXWC4YN6.cjs +22908 -0
- package/build/chunk-HZJ7XFHQ.cjs +8 -0
- package/build/chunk-I5TGKTX6.js +18 -0
- package/build/chunk-I7J6V3EU.cjs +34 -0
- package/build/chunk-IKWXYUGY.js +14 -0
- package/build/chunk-IYGGR65W.cjs +16 -0
- package/build/chunk-J6RXNX2K.js +174 -0
- package/build/chunk-JAEEMFEZ.cjs +24 -0
- package/build/chunk-JFOMNL5I.cjs +22 -0
- package/build/chunk-JPV2PUHF.cjs +8 -0
- package/build/chunk-JR726PDZ.cjs +70 -0
- package/build/chunk-JTKOYDJB.js +5914 -0
- package/build/chunk-JU53NOVA.cjs +31 -0
- package/build/chunk-JVSBYHUY.js +10944 -0
- package/build/chunk-JYBISTRN.cjs +25 -0
- package/build/chunk-K2ALA7QI.js +12 -0
- package/build/chunk-KG6DPM4B.js +14 -0
- package/build/chunk-KNSBLLL2.cjs +32 -0
- package/build/chunk-KNTGBUSY.js +6 -0
- package/build/chunk-KWOHVRRL.js +6 -0
- package/build/chunk-L3IVYIVA.js +23 -0
- package/build/chunk-LBL5XNWX.js +221 -0
- package/build/chunk-LBOBUFWZ.js +6 -0
- package/build/chunk-LEJXJUBE.js +6 -0
- package/build/chunk-LJTCXKC4.js +242 -0
- package/build/chunk-MBKTJ3KM.cjs +118 -0
- package/build/chunk-MDE5SRLT.cjs +16 -0
- package/build/chunk-MEKICSEL.js +22 -0
- package/build/chunk-MNDBRDT2.cjs +608 -0
- package/build/chunk-MSWZLYS7.cjs +5916 -0
- package/build/chunk-MT2OB376.js +14 -0
- package/build/chunk-MVWB4XDJ.js +14 -0
- package/build/chunk-MXAAAL2S.js +53 -0
- package/build/chunk-N37KV2VV.cjs +199 -0
- package/build/chunk-NZ5IZMM5.cjs +2922 -0
- package/build/chunk-O2NOYN65.js +54 -0
- package/build/chunk-OAD22QZQ.js +6 -0
- package/build/chunk-OIFILR4I.js +125 -0
- package/build/chunk-OJGBPS2B.cjs +16 -0
- package/build/chunk-OMPATIMZ.cjs +71 -0
- package/build/chunk-P3Z7ZEGJ.cjs +18 -0
- package/build/chunk-P6BBXCBD.cjs +6425 -0
- package/build/chunk-PE4C2TIO.cjs +16 -0
- package/build/chunk-PF2WAZLH.cjs +52 -0
- package/build/chunk-PFFTGOAR.cjs +25 -0
- package/build/chunk-PFUZLHWJ.cjs +25 -0
- package/build/chunk-POE7A7NF.cjs +180 -0
- package/build/chunk-PQSDA5BN.js +50 -0
- package/build/chunk-PR5TPAGH.js +14 -0
- package/build/chunk-PXMWVOKK.cjs +16 -0
- package/build/chunk-PZ5OJC4I.cjs +16 -0
- package/build/chunk-Q4LNTPEI.cjs +34 -0
- package/build/chunk-QCA5YGYV.js +14 -0
- package/build/chunk-QGGML4PP.js +17 -0
- package/build/chunk-QHW273SN.js +32 -0
- package/build/chunk-QJJRQMA6.cjs +8 -0
- package/build/chunk-QKB76MIV.cjs +769 -0
- package/build/chunk-QKVPGRI5.cjs +8 -0
- package/build/chunk-QME47CJL.cjs +8 -0
- package/build/chunk-QNJ6XBYQ.js +14 -0
- package/build/chunk-QWYKUNU5.js +14 -0
- package/build/chunk-QXTBP6TW.js +116 -0
- package/build/chunk-RH3LAIQS.js +32 -0
- package/build/chunk-RMAXG5F7.js +118 -0
- package/build/chunk-RUHAPGDE.js +14 -0
- package/build/chunk-S4KA3ZGO.js +6 -0
- package/build/chunk-SAGMV3YX.cjs +16 -0
- package/build/chunk-SCWEQ5JA.cjs +34 -0
- package/build/chunk-SEKBDIJH.cjs +16 -0
- package/build/chunk-SGWWTKLW.cjs +16 -0
- package/build/chunk-SWCU6OID.cjs +61 -0
- package/build/chunk-T4C7UJEZ.js +29 -0
- package/build/chunk-TBWIKIS3.cjs +8 -0
- package/build/chunk-TS74DN3N.cjs +229 -0
- package/build/chunk-TXTNUC7S.cjs +16 -0
- package/build/chunk-UEGDBJEG.cjs +127 -0
- package/build/chunk-UR2ZK7MI.cjs +16 -0
- package/build/chunk-VAOR6JOP.js +14 -0
- package/build/chunk-VELZ3KJY.cjs +45 -0
- package/build/chunk-VHTAHAD6.cjs +34 -0
- package/build/chunk-VISA22LF.js +14 -0
- package/build/chunk-VOFRWVGM.js +23 -0
- package/build/chunk-VPRNM6FU.cjs +118 -0
- package/build/chunk-VTFNEUOF.js +14 -0
- package/build/chunk-VVNU27G2.js +868 -0
- package/build/chunk-W3TQER3B.cjs +31 -0
- package/build/chunk-WINISBV4.js +70 -0
- package/build/chunk-WSEZ7DZV.js +14 -0
- package/build/chunk-WW57G6RG.js +124 -0
- package/build/chunk-WYJCE3KY.cjs +5593 -0
- package/build/chunk-WZI5UPER.cjs +61 -0
- package/build/chunk-WZZF2IEV.js +14 -0
- package/build/chunk-X4AIZSIY.cjs +47 -0
- package/build/chunk-XO6M5AYN.js +585 -0
- package/build/chunk-XWP76C6E.js +25 -0
- package/build/chunk-Y7O5SCF6.cjs +16 -0
- package/build/chunk-YEBPQG7X.js +96 -0
- package/build/chunk-YT4CYDJ3.js +14 -0
- package/build/chunk-ZG3PHRVQ.cjs +20 -0
- package/build/chunk-ZG7QF5S2.cjs +16 -0
- package/build/chunk-ZJYLWSBE.js +90 -0
- package/build/chunk-ZYBMNLGI.js +48 -0
- package/build/constants/DefaultValue.cjs +14 -0
- package/build/constants/DefaultValue.d.cts +9 -0
- package/build/constants/DefaultValue.d.ts +9 -0
- package/build/constants/DefaultValue.js +5 -0
- package/build/constants/MetadataKey.cjs +114 -0
- package/build/constants/MetadataKey.d.cts +30 -0
- package/build/constants/MetadataKey.d.ts +30 -0
- package/build/constants/MetadataKey.js +5 -0
- package/build/decorators/ControllerDecorators.cjs +21 -0
- package/build/decorators/ControllerDecorators.d.cts +32 -0
- package/build/decorators/ControllerDecorators.d.ts +32 -0
- package/build/decorators/ControllerDecorators.js +12 -0
- package/build/decorators/DependencyInjectionDecorators.cjs +78 -0
- package/build/decorators/DependencyInjectionDecorators.d.cts +75 -0
- package/build/decorators/DependencyInjectionDecorators.d.ts +75 -0
- package/build/decorators/DependencyInjectionDecorators.js +41 -0
- package/build/decorators/ValidationDecorators.cjs +35 -0
- package/build/decorators/ValidationDecorators.d.cts +36 -0
- package/build/decorators/ValidationDecorators.d.ts +36 -0
- package/build/decorators/ValidationDecorators.js +14 -0
- package/build/exceptions/DependencyInjectionException.cjs +18 -0
- package/build/exceptions/DependencyInjectionException.d.cts +8 -0
- package/build/exceptions/DependencyInjectionException.d.ts +8 -0
- package/build/exceptions/DependencyInjectionException.js +9 -0
- package/build/exceptions/InvalidConfigurableValueException.cjs +18 -0
- package/build/exceptions/InvalidConfigurableValueException.d.cts +8 -0
- package/build/exceptions/InvalidConfigurableValueException.d.ts +8 -0
- package/build/exceptions/InvalidConfigurableValueException.js +9 -0
- package/build/exceptions/InvalidDTOValueException.cjs +18 -0
- package/build/exceptions/InvalidDTOValueException.d.cts +8 -0
- package/build/exceptions/InvalidDTOValueException.d.ts +8 -0
- package/build/exceptions/InvalidDTOValueException.js +9 -0
- package/build/exceptions/InvalidGlobStringException.cjs +18 -0
- package/build/exceptions/InvalidGlobStringException.d.cts +8 -0
- package/build/exceptions/InvalidGlobStringException.d.ts +8 -0
- package/build/exceptions/InvalidGlobStringException.js +9 -0
- package/build/exceptions/MethodNotFoundException.cjs +18 -0
- package/build/exceptions/MethodNotFoundException.d.cts +8 -0
- package/build/exceptions/MethodNotFoundException.d.ts +8 -0
- package/build/exceptions/MethodNotFoundException.js +9 -0
- package/build/exceptions/NotSupportHashException.cjs +18 -0
- package/build/exceptions/NotSupportHashException.d.cts +8 -0
- package/build/exceptions/NotSupportHashException.d.ts +8 -0
- package/build/exceptions/NotSupportHashException.js +9 -0
- package/build/exceptions/controller/DuplicateControllerActionPatternException.cjs +18 -0
- package/build/exceptions/controller/DuplicateControllerActionPatternException.d.cts +8 -0
- package/build/exceptions/controller/DuplicateControllerActionPatternException.d.ts +8 -0
- package/build/exceptions/controller/DuplicateControllerActionPatternException.js +9 -0
- package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.cjs +18 -0
- package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.d.cts +8 -0
- package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.d.ts +8 -0
- package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.js +9 -0
- package/build/exceptions/controller/NoMatchedControllerActionPatternException.cjs +18 -0
- package/build/exceptions/controller/NoMatchedControllerActionPatternException.d.cts +8 -0
- package/build/exceptions/controller/NoMatchedControllerActionPatternException.d.ts +8 -0
- package/build/exceptions/controller/NoMatchedControllerActionPatternException.js +9 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.js +9 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.js +9 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricSignException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricSignException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricSignException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricSignException.js +9 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.js +9 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.js +9 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.js +9 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.js +9 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.js +9 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.cjs +18 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.d.cts +8 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.d.ts +8 -0
- package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.js +9 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.cjs +18 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.d.cts +8 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.d.ts +8 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.js +9 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.cjs +18 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.d.cts +8 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.d.ts +8 -0
- package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.js +9 -0
- package/build/exceptions/crypto/symmetric/NotSupportCipherException.cjs +18 -0
- package/build/exceptions/crypto/symmetric/NotSupportCipherException.d.cts +8 -0
- package/build/exceptions/crypto/symmetric/NotSupportCipherException.d.ts +8 -0
- package/build/exceptions/crypto/symmetric/NotSupportCipherException.js +9 -0
- package/build/exceptions/crypto/symmetric/SymmetricDecryptException.cjs +18 -0
- package/build/exceptions/crypto/symmetric/SymmetricDecryptException.d.cts +8 -0
- package/build/exceptions/crypto/symmetric/SymmetricDecryptException.d.ts +8 -0
- package/build/exceptions/crypto/symmetric/SymmetricDecryptException.js +9 -0
- package/build/exceptions/crypto/symmetric/SymmetricEncryptException.cjs +18 -0
- package/build/exceptions/crypto/symmetric/SymmetricEncryptException.d.cts +8 -0
- package/build/exceptions/crypto/symmetric/SymmetricEncryptException.d.ts +8 -0
- package/build/exceptions/crypto/symmetric/SymmetricEncryptException.js +9 -0
- package/build/exceptions/validation/InvalidMethodAcceptException.cjs +18 -0
- package/build/exceptions/validation/InvalidMethodAcceptException.d.cts +8 -0
- package/build/exceptions/validation/InvalidMethodAcceptException.d.ts +8 -0
- package/build/exceptions/validation/InvalidMethodAcceptException.js +9 -0
- package/build/exceptions/validation/InvalidMethodReturnException.cjs +18 -0
- package/build/exceptions/validation/InvalidMethodReturnException.d.cts +8 -0
- package/build/exceptions/validation/InvalidMethodReturnException.d.ts +8 -0
- package/build/exceptions/validation/InvalidMethodReturnException.js +9 -0
- package/build/exceptions/validation/InvalidValueException.cjs +18 -0
- package/build/exceptions/validation/InvalidValueException.d.cts +8 -0
- package/build/exceptions/validation/InvalidValueException.d.ts +8 -0
- package/build/exceptions/validation/InvalidValueException.js +9 -0
- package/build/index.d-e5279fea.d.ts +872 -0
- package/build/interfaces/IConstructor.cjs +7 -0
- package/build/interfaces/IConstructor.d.cts +6 -0
- package/build/interfaces/IConstructor.d.ts +6 -0
- package/build/interfaces/IConstructor.js +4 -0
- package/build/interfaces/ILogger.cjs +7 -0
- package/build/interfaces/ILogger.d.cts +22 -0
- package/build/interfaces/ILogger.d.ts +22 -0
- package/build/interfaces/ILogger.js +4 -0
- package/build/interfaces/IPatRun.cjs +7 -0
- package/build/interfaces/IPatRun.d.cts +12 -0
- package/build/interfaces/IPatRun.d.ts +12 -0
- package/build/interfaces/IPatRun.js +4 -0
- package/build/interfaces/ISortArrayOptions.cjs +7 -0
- package/build/interfaces/ISortArrayOptions.d.cts +12 -0
- package/build/interfaces/ISortArrayOptions.d.ts +12 -0
- package/build/interfaces/ISortArrayOptions.js +4 -0
- package/build/interfaces/ISortObjectOptions.cjs +7 -0
- package/build/interfaces/ISortObjectOptions.d.cts +6 -0
- package/build/interfaces/ISortObjectOptions.d.ts +6 -0
- package/build/interfaces/ISortObjectOptions.js +4 -0
- package/build/lib/Application.cjs +50 -0
- package/build/lib/Application.d.cts +20 -0
- package/build/lib/Application.d.ts +20 -0
- package/build/lib/Application.js +41 -0
- package/build/lib/base/BaseObject.cjs +50 -0
- package/build/lib/base/BaseObject.d.cts +112 -0
- package/build/lib/base/BaseObject.d.ts +112 -0
- package/build/lib/base/BaseObject.js +41 -0
- package/build/lib/base/Component.cjs +50 -0
- package/build/lib/base/Component.d.cts +116 -0
- package/build/lib/base/Component.d.ts +116 -0
- package/build/lib/base/Component.js +41 -0
- package/build/lib/base/Container.cjs +50 -0
- package/build/lib/base/Container.d.cts +20 -0
- package/build/lib/base/Container.d.ts +20 -0
- package/build/lib/base/Container.js +41 -0
- package/build/lib/base/Controller.cjs +50 -0
- package/build/lib/base/Controller.d.cts +20 -0
- package/build/lib/base/Controller.d.ts +20 -0
- package/build/lib/base/Controller.js +41 -0
- package/build/lib/base/DTO.cjs +23 -0
- package/build/lib/base/DTO.d.cts +59 -0
- package/build/lib/base/DTO.d.ts +59 -0
- package/build/lib/base/DTO.js +14 -0
- package/build/lib/base/Model.cjs +51 -0
- package/build/lib/base/Model.d.cts +30 -0
- package/build/lib/base/Model.d.ts +30 -0
- package/build/lib/base/Model.js +42 -0
- package/build/lib/base/Module.cjs +50 -0
- package/build/lib/base/Module.d.cts +20 -0
- package/build/lib/base/Module.d.ts +20 -0
- package/build/lib/base/Module.js +41 -0
- package/build/lib/base/abstracts/AsymmetricEncryption.cjs +27 -0
- package/build/lib/base/abstracts/AsymmetricEncryption.d.cts +172 -0
- package/build/lib/base/abstracts/AsymmetricEncryption.d.ts +172 -0
- package/build/lib/base/abstracts/AsymmetricEncryption.js +18 -0
- package/build/lib/base/abstracts/Exception.cjs +17 -0
- package/build/lib/base/abstracts/Exception.d.cts +23 -0
- package/build/lib/base/abstracts/Exception.d.ts +23 -0
- package/build/lib/base/abstracts/Exception.js +8 -0
- package/build/lib/base/abstracts/Interval.cjs +51 -0
- package/build/lib/base/abstracts/Interval.d.cts +76 -0
- package/build/lib/base/abstracts/Interval.d.ts +76 -0
- package/build/lib/base/abstracts/Interval.js +42 -0
- package/build/lib/base/abstracts/SymmetricEncryption.cjs +23 -0
- package/build/lib/base/abstracts/SymmetricEncryption.d.cts +149 -0
- package/build/lib/base/abstracts/SymmetricEncryption.d.ts +149 -0
- package/build/lib/base/abstracts/SymmetricEncryption.js +14 -0
- package/build/lib/base/async-constructor/Append.cjs +14 -0
- package/build/lib/base/async-constructor/Append.d.cts +5 -0
- package/build/lib/base/async-constructor/Append.d.ts +5 -0
- package/build/lib/base/async-constructor/Append.js +5 -0
- package/build/lib/base/async-constructor/AsyncConstructor.cjs +15 -0
- package/build/lib/base/async-constructor/AsyncConstructor.d.cts +7 -0
- package/build/lib/base/async-constructor/AsyncConstructor.d.ts +7 -0
- package/build/lib/base/async-constructor/AsyncConstructor.js +6 -0
- package/build/lib/components/Formatter.cjs +50 -0
- package/build/lib/components/Formatter.d.cts +203 -0
- package/build/lib/components/Formatter.d.ts +203 -0
- package/build/lib/components/Formatter.js +41 -0
- package/build/lib/components/Logger.cjs +50 -0
- package/build/lib/components/Logger.d.cts +61 -0
- package/build/lib/components/Logger.d.ts +61 -0
- package/build/lib/components/Logger.js +41 -0
- package/build/lib/crypto/RSA.cjs +28 -0
- package/build/lib/crypto/RSA.d.cts +61 -0
- package/build/lib/crypto/RSA.d.ts +61 -0
- package/build/lib/crypto/RSA.js +19 -0
- package/build/lib/crypto/SM2.cjs +28 -0
- package/build/lib/crypto/SM2.d.cts +47 -0
- package/build/lib/crypto/SM2.d.ts +47 -0
- package/build/lib/crypto/SM2.js +19 -0
- package/build/lib/crypto/aes/AES128.cjs +25 -0
- package/build/lib/crypto/aes/AES128.d.cts +14 -0
- package/build/lib/crypto/aes/AES128.d.ts +14 -0
- package/build/lib/crypto/aes/AES128.js +16 -0
- package/build/lib/crypto/aes/AES192.cjs +25 -0
- package/build/lib/crypto/aes/AES192.d.cts +14 -0
- package/build/lib/crypto/aes/AES192.d.ts +14 -0
- package/build/lib/crypto/aes/AES192.js +16 -0
- package/build/lib/crypto/aes/AES256.cjs +25 -0
- package/build/lib/crypto/aes/AES256.d.cts +14 -0
- package/build/lib/crypto/aes/AES256.d.ts +14 -0
- package/build/lib/crypto/aes/AES256.js +16 -0
- package/build/lib/crypto/aria/ARIA128.cjs +24 -0
- package/build/lib/crypto/aria/ARIA128.d.cts +13 -0
- package/build/lib/crypto/aria/ARIA128.d.ts +13 -0
- package/build/lib/crypto/aria/ARIA128.js +15 -0
- package/build/lib/crypto/aria/ARIA192.cjs +24 -0
- package/build/lib/crypto/aria/ARIA192.d.cts +13 -0
- package/build/lib/crypto/aria/ARIA192.d.ts +13 -0
- package/build/lib/crypto/aria/ARIA192.js +15 -0
- package/build/lib/crypto/aria/ARIA256.cjs +24 -0
- package/build/lib/crypto/aria/ARIA256.d.cts +13 -0
- package/build/lib/crypto/aria/ARIA256.d.ts +13 -0
- package/build/lib/crypto/aria/ARIA256.js +15 -0
- package/build/lib/crypto/camellia/CAMELLIA128.cjs +24 -0
- package/build/lib/crypto/camellia/CAMELLIA128.d.cts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA128.d.ts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA128.js +15 -0
- package/build/lib/crypto/camellia/CAMELLIA192.cjs +24 -0
- package/build/lib/crypto/camellia/CAMELLIA192.d.cts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA192.d.ts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA192.js +15 -0
- package/build/lib/crypto/camellia/CAMELLIA256.cjs +24 -0
- package/build/lib/crypto/camellia/CAMELLIA256.d.cts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA256.d.ts +13 -0
- package/build/lib/crypto/camellia/CAMELLIA256.js +15 -0
- package/build/lib/crypto/des/DES.cjs +25 -0
- package/build/lib/crypto/des/DES.d.cts +14 -0
- package/build/lib/crypto/des/DES.d.ts +14 -0
- package/build/lib/crypto/des/DES.js +16 -0
- package/build/lib/crypto/des/TripleDES.cjs +25 -0
- package/build/lib/crypto/des/TripleDES.d.cts +14 -0
- package/build/lib/crypto/des/TripleDES.d.ts +14 -0
- package/build/lib/crypto/des/TripleDES.js +16 -0
- package/build/lib/ioc/DependencyInjectionContainer.cjs +29 -0
- package/build/lib/ioc/DependencyInjectionContainer.d.cts +4 -0
- package/build/lib/ioc/DependencyInjectionContainer.d.ts +4 -0
- package/build/lib/ioc/DependencyInjectionContainer.js +20 -0
- package/build/lib/ioc/Errors.cjs +27 -0
- package/build/lib/ioc/Errors.d.cts +53 -0
- package/build/lib/ioc/Errors.d.ts +53 -0
- package/build/lib/ioc/Errors.js +10 -0
- package/build/lib/ioc/FunctionTokenizer.cjs +18 -0
- package/build/lib/ioc/FunctionTokenizer.d.cts +33 -0
- package/build/lib/ioc/FunctionTokenizer.d.ts +33 -0
- package/build/lib/ioc/FunctionTokenizer.js +5 -0
- package/build/lib/ioc/InjectionMode.cjs +14 -0
- package/build/lib/ioc/InjectionMode.d.cts +12 -0
- package/build/lib/ioc/InjectionMode.d.ts +12 -0
- package/build/lib/ioc/InjectionMode.js +5 -0
- package/build/lib/ioc/Lifetime.cjs +14 -0
- package/build/lib/ioc/Lifetime.d.cts +12 -0
- package/build/lib/ioc/Lifetime.d.ts +12 -0
- package/build/lib/ioc/Lifetime.js +5 -0
- package/build/lib/ioc/ListModules.cjs +17 -0
- package/build/lib/ioc/ListModules.d.cts +4 -0
- package/build/lib/ioc/ListModules.d.ts +4 -0
- package/build/lib/ioc/ListModules.js +8 -0
- package/build/lib/ioc/LoadModuleNative.cjs +14 -0
- package/build/lib/ioc/LoadModuleNative.d.cts +9 -0
- package/build/lib/ioc/LoadModuleNative.d.ts +9 -0
- package/build/lib/ioc/LoadModuleNative.js +5 -0
- package/build/lib/ioc/LoadModules.cjs +26 -0
- package/build/lib/ioc/LoadModules.d.cts +4 -0
- package/build/lib/ioc/LoadModules.d.ts +4 -0
- package/build/lib/ioc/LoadModules.js +17 -0
- package/build/lib/ioc/ParamParser.cjs +15 -0
- package/build/lib/ioc/ParamParser.d.cts +25 -0
- package/build/lib/ioc/ParamParser.d.ts +25 -0
- package/build/lib/ioc/ParamParser.js +6 -0
- package/build/lib/ioc/Resolvers.cjs +49 -0
- package/build/lib/ioc/Resolvers.d.cts +4 -0
- package/build/lib/ioc/Resolvers.d.ts +4 -0
- package/build/lib/ioc/Resolvers.js +16 -0
- package/build/lib/ioc/Utils.cjs +35 -0
- package/build/lib/ioc/Utils.d.cts +38 -0
- package/build/lib/ioc/Utils.d.ts +38 -0
- package/build/lib/ioc/Utils.js +6 -0
- package/build/options/ApplicationOptions.cjs +50 -0
- package/build/options/ApplicationOptions.d.cts +20 -0
- package/build/options/ApplicationOptions.d.ts +20 -0
- package/build/options/ApplicationOptions.js +41 -0
- package/build/options/LoadComponentOptions.cjs +50 -0
- package/build/options/LoadComponentOptions.d.cts +22 -0
- package/build/options/LoadComponentOptions.d.ts +22 -0
- package/build/options/LoadComponentOptions.js +41 -0
- package/build/options/LoadEntryClassOptions.cjs +50 -0
- package/build/options/LoadEntryClassOptions.d.cts +16 -0
- package/build/options/LoadEntryClassOptions.d.ts +16 -0
- package/build/options/LoadEntryClassOptions.js +41 -0
- package/build/options/LoadEntryCommonOptions.cjs +27 -0
- package/build/options/LoadEntryCommonOptions.d.cts +13 -0
- package/build/options/LoadEntryCommonOptions.d.ts +13 -0
- package/build/options/LoadEntryCommonOptions.js +18 -0
- package/build/options/LoadModuleOptions.cjs +50 -0
- package/build/options/LoadModuleOptions.d.cts +20 -0
- package/build/options/LoadModuleOptions.d.ts +20 -0
- package/build/options/LoadModuleOptions.js +41 -0
- package/build/options/ModuleOptions.cjs +50 -0
- package/build/options/ModuleOptions.d.cts +20 -0
- package/build/options/ModuleOptions.d.ts +20 -0
- package/build/options/ModuleOptions.js +41 -0
- package/build/types/AsyncFunction.cjs +7 -0
- package/build/types/AsyncFunction.d.cts +3 -0
- package/build/types/AsyncFunction.d.ts +3 -0
- package/build/types/AsyncFunction.js +4 -0
- package/build/types/ControllerActionMapItem.cjs +7 -0
- package/build/types/ControllerActionMapItem.d.cts +20 -0
- package/build/types/ControllerActionMapItem.d.ts +20 -0
- package/build/types/ControllerActionMapItem.js +4 -0
- package/build/types/InjectionProperties.cjs +7 -0
- package/build/types/InjectionProperties.d.cts +3 -0
- package/build/types/InjectionProperties.d.ts +3 -0
- package/build/types/InjectionProperties.js +4 -0
- package/build/types/TimeInput.cjs +7 -0
- package/build/types/TimeInput.d.cts +5 -0
- package/build/types/TimeInput.d.ts +5 -0
- package/build/types/TimeInput.js +4 -0
- package/build/types/TimeObject.cjs +7 -0
- package/build/types/TimeObject.d.cts +11 -0
- package/build/types/TimeObject.d.ts +11 -0
- package/build/types/TimeObject.js +4 -0
- package/build/types/UnitOfTime.cjs +7 -0
- package/build/types/UnitOfTime.d.cts +14 -0
- package/build/types/UnitOfTime.d.ts +14 -0
- package/build/types/UnitOfTime.js +4 -0
- package/package.json +145 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkA7F6LCRA_cjs = require('./chunk-A7F6LCRA.cjs');
|
|
4
|
+
var chunkGGY7LCMQ_cjs = require('./chunk-GGY7LCMQ.cjs');
|
|
5
|
+
|
|
6
|
+
// src/lib/ioc/Errors.ts
|
|
7
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
8
|
+
var _ExtendableError = class _ExtendableError extends chunkA7F6LCRA_cjs.DependencyInjectionException {
|
|
9
|
+
/**
|
|
10
|
+
* 可扩展错误类构造函数
|
|
11
|
+
* @param message
|
|
12
|
+
*/
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message);
|
|
15
|
+
Object.defineProperty(this, "message", {
|
|
16
|
+
enumerable: false,
|
|
17
|
+
value: message
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, "name", {
|
|
20
|
+
enumerable: false,
|
|
21
|
+
value: this.constructor.name
|
|
22
|
+
});
|
|
23
|
+
if ("captureStackTrace" in Error) {
|
|
24
|
+
Error.captureStackTrace(this, this.constructor);
|
|
25
|
+
} else {
|
|
26
|
+
Object.defineProperty(this, "stack", {
|
|
27
|
+
enumerable: false,
|
|
28
|
+
value: Error(message).stack,
|
|
29
|
+
writable: true,
|
|
30
|
+
configurable: true
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
chunkGGY7LCMQ_cjs.__name(_ExtendableError, "ExtendableError");
|
|
36
|
+
var ExtendableError = _ExtendableError;
|
|
37
|
+
var _DependencyInjectionTypeError = class _DependencyInjectionTypeError extends ExtendableError {
|
|
38
|
+
/**
|
|
39
|
+
* 构造函数,接受函数名称、期望的类型和给定的类型,以生成错误
|
|
40
|
+
* @param funcDescription
|
|
41
|
+
* @param paramName
|
|
42
|
+
* @param expectedType
|
|
43
|
+
* @param givenType
|
|
44
|
+
*/
|
|
45
|
+
constructor(funcDescription, paramName, expectedType, givenType) {
|
|
46
|
+
super(
|
|
47
|
+
`${funcDescription}: expected ${paramName} to be ${expectedType}, but got ${givenType}.`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 断言给定的条件,否则抛出错误
|
|
52
|
+
* @param condition
|
|
53
|
+
* @param funcDescription
|
|
54
|
+
* @param paramName
|
|
55
|
+
* @param expectedType
|
|
56
|
+
* @param givenType
|
|
57
|
+
*/
|
|
58
|
+
static assert(condition, funcDescription, paramName, expectedType, givenType) {
|
|
59
|
+
if (!condition) {
|
|
60
|
+
throw new _DependencyInjectionTypeError(
|
|
61
|
+
funcDescription,
|
|
62
|
+
paramName,
|
|
63
|
+
expectedType,
|
|
64
|
+
givenType
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
return condition;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
chunkGGY7LCMQ_cjs.__name(_DependencyInjectionTypeError, "DependencyInjectionTypeError");
|
|
71
|
+
var DependencyInjectionTypeError = _DependencyInjectionTypeError;
|
|
72
|
+
var _DependencyInjectionResolutionError = class _DependencyInjectionResolutionError extends ExtendableError {
|
|
73
|
+
/**
|
|
74
|
+
* 构造函数,接受注册的模块和未解析的标记,以创建一条消息
|
|
75
|
+
* @param name
|
|
76
|
+
* @param resolutionStack
|
|
77
|
+
* @param message
|
|
78
|
+
*/
|
|
79
|
+
constructor(name, resolutionStack, message) {
|
|
80
|
+
if (typeof name === "symbol")
|
|
81
|
+
name = name.toString();
|
|
82
|
+
const purifiedName = name.split("_$$").reverse()[0];
|
|
83
|
+
resolutionStack = resolutionStack.map((val) => typeof val === "symbol" ? val.toString() : val);
|
|
84
|
+
resolutionStack.push(purifiedName);
|
|
85
|
+
const resolutionPathString = resolutionStack.join(" -> ");
|
|
86
|
+
let msg = `Could not resolve '${purifiedName}'.`;
|
|
87
|
+
if (message)
|
|
88
|
+
msg = `${msg} ${message}`;
|
|
89
|
+
msg = `${msg} Resolution path: ${resolutionPathString}`;
|
|
90
|
+
super(msg);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
chunkGGY7LCMQ_cjs.__name(_DependencyInjectionResolutionError, "DependencyInjectionResolutionError");
|
|
94
|
+
var DependencyInjectionResolutionError = _DependencyInjectionResolutionError;
|
|
95
|
+
|
|
96
|
+
exports.DependencyInjectionResolutionError = DependencyInjectionResolutionError;
|
|
97
|
+
exports.DependencyInjectionTypeError = DependencyInjectionTypeError;
|
|
98
|
+
exports.ExtendableError = ExtendableError;
|
|
99
|
+
//# sourceMappingURL=out.js.map
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvaW9jL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQVFPLElBQU0sbUJBQU4sTUFBTSx5QkFBd0IsNkJBQTZCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUs5RCxZQUFZLFNBQWlCO0FBQ3pCLFVBQU0sT0FBTztBQUNiLFdBQU8sZUFBZSxNQUFNLFdBQVc7QUFBQSxNQUNuQyxZQUFZO0FBQUEsTUFDWixPQUFPO0FBQUEsSUFDWCxDQUFDO0FBQ0QsV0FBTyxlQUFlLE1BQU0sUUFBUTtBQUFBLE1BQ2hDLFlBQVk7QUFBQSxNQUNaLE9BQU8sS0FBSyxZQUFZO0FBQUEsSUFDNUIsQ0FBQztBQUNELFFBQUksdUJBQXVCLE9BQU87QUFDOUIsWUFBTSxrQkFBa0IsTUFBTSxLQUFLLFdBQVc7QUFBQSxJQUNsRCxPQUFPO0FBQ0gsYUFBTyxlQUFlLE1BQU0sU0FBUztBQUFBLFFBQ2pDLFlBQVk7QUFBQSxRQUNaLE9BQVEsTUFBMkIsT0FBTyxFQUFFO0FBQUEsUUFDNUMsVUFBVTtBQUFBLFFBQ1YsY0FBYztBQUFBLE1BQ2xCLENBQUM7QUFBQSxJQUNMO0FBQUEsRUFDSjtBQUNKO0FBMUJrRTtBQUEzRCxJQUFNLGtCQUFOO0FBK0JBLElBQU0sZ0NBQU4sTUFBTSxzQ0FBcUMsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVE5RCxZQUNJLGlCQUNBLFdBQ0EsY0FDQSxXQUNGO0FBQ0U7QUFBQSxNQUNJLEdBQUcsZUFBZSxjQUFjLFNBQVMsVUFBVSxZQUFZLGFBQWEsU0FBUztBQUFBLElBQ3pGO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVBLE9BQU8sT0FDSCxXQUNBLGlCQUNBLFdBQ0EsY0FDQSxXQUNGO0FBQ0UsUUFBSSxDQUFDLFdBQVc7QUFDWixZQUFNLElBQUk7QUFBQSxRQUNOO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDSjtBQUFBLElBQ0o7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUNKO0FBNUNrRTtBQUEzRCxJQUFNLCtCQUFOO0FBaURBLElBQU0sc0NBQU4sTUFBTSw0Q0FBMkMsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPcEUsWUFDSSxNQUNBLGlCQUNBLFNBQ0Y7QUFDRSxRQUFJLE9BQU8sU0FBUztBQUFVLGFBQVEsS0FBYSxTQUFTO0FBQzVELFVBQU0sZUFBd0IsS0FBYSxNQUFNLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUNuRSxzQkFBa0IsZ0JBQWdCLElBQUksQ0FBQyxRQUFRLE9BQU8sUUFBUSxXQUFZLElBQVksU0FBUyxJQUFJLEdBQUc7QUFDdEcsb0JBQWdCLEtBQUssWUFBWTtBQUNqQyxVQUFNLHVCQUErQixnQkFBZ0IsS0FBSyxNQUFNO0FBQ2hFLFFBQUksTUFBYyxzQkFBc0IsWUFBWTtBQUNwRCxRQUFJO0FBQVMsWUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPO0FBQ3BDLFVBQU0sR0FBRyxHQUFHLHFCQUFxQixvQkFBb0I7QUFDckQsVUFBTSxHQUFHO0FBQUEsRUFDYjtBQUNKO0FBdEJ3RTtBQUFqRSxJQUFNLHFDQUFOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJ1xuaW1wb3J0IHtSZXNvbHV0aW9uU3RhY2t9IGZyb20gJy4vRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lci5qcydcbmltcG9ydCB7RGVwZW5kZW5jeUluamVjdGlvbkV4Y2VwdGlvbn0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy9EZXBlbmRlbmN5SW5qZWN0aW9uRXhjZXB0aW9uLmpzJ1xuaW1wb3J0IHtFT0x9IGZyb20gJ29zJ1xuXG4vKipcbiAqIOWPr+aJqeWxlemUmeivr+exu1xuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5kYWJsZUVycm9yIGV4dGVuZHMgRGVwZW5kZW5jeUluamVjdGlvbkV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgICog5Y+v5omp5bGV6ZSZ6K+v57G75p6E6YCg5Ye95pWwXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSlcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdtZXNzYWdlJywge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogbWVzc2FnZVxuICAgICAgICB9KVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWVcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKCdjYXB0dXJlU3RhY2tUcmFjZScgaW4gRXJyb3IpIHtcbiAgICAgICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0YWNrJywge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAoRXJyb3IgYXMgRXJyb3JDb25zdHJ1Y3RvcikobWVzc2FnZSkuc3RhY2ssXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIOaKm+WHuueahOmUmeivr++8jOeUqOS6juaMh+ekuuexu+Wei+S4jeWMuemFjVxuICovXG5leHBvcnQgY2xhc3MgRGVwZW5kZW5jeUluamVjdGlvblR5cGVFcnJvciBleHRlbmRzIEV4dGVuZGFibGVFcnJvciB7XG4gICAgLyoqXG4gICAgICog5p6E6YCg5Ye95pWw77yM5o6l5Y+X5Ye95pWw5ZCN56ew44CB5pyf5pyb55qE57G75Z6L5ZKM57uZ5a6a55qE57G75Z6L77yM5Lul55Sf5oiQ6ZSZ6K+vXG4gICAgICogQHBhcmFtIGZ1bmNEZXNjcmlwdGlvblxuICAgICAqIEBwYXJhbSBwYXJhbU5hbWVcbiAgICAgKiBAcGFyYW0gZXhwZWN0ZWRUeXBlXG4gICAgICogQHBhcmFtIGdpdmVuVHlwZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmdW5jRGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgICAgcGFyYW1OYW1lOiBzdHJpbmcsXG4gICAgICAgIGV4cGVjdGVkVHlwZTogc3RyaW5nLFxuICAgICAgICBnaXZlblR5cGU6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGAke2Z1bmNEZXNjcmlwdGlvbn06IGV4cGVjdGVkICR7cGFyYW1OYW1lfSB0byBiZSAke2V4cGVjdGVkVHlwZX0sIGJ1dCBnb3QgJHtnaXZlblR5cGV9LmBcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaWreiogOe7meWumueahOadoeS7tu+8jOWQpuWImeaKm+WHuumUmeivr1xuICAgICAqIEBwYXJhbSBjb25kaXRpb25cbiAgICAgKiBAcGFyYW0gZnVuY0Rlc2NyaXB0aW9uXG4gICAgICogQHBhcmFtIHBhcmFtTmFtZVxuICAgICAqIEBwYXJhbSBleHBlY3RlZFR5cGVcbiAgICAgKiBAcGFyYW0gZ2l2ZW5UeXBlXG4gICAgICovXG4gICAgc3RhdGljIGFzc2VydDxUPihcbiAgICAgICAgY29uZGl0aW9uOiBULFxuICAgICAgICBmdW5jRGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgICAgcGFyYW1OYW1lOiBzdHJpbmcsXG4gICAgICAgIGV4cGVjdGVkVHlwZTogc3RyaW5nLFxuICAgICAgICBnaXZlblR5cGU6IGFueVxuICAgICkge1xuICAgICAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lJbmplY3Rpb25UeXBlRXJyb3IoXG4gICAgICAgICAgICAgICAgZnVuY0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHBhcmFtTmFtZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZFR5cGUsXG4gICAgICAgICAgICAgICAgZ2l2ZW5UeXBlXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvblxuICAgIH1cbn1cblxuLyoqXG4gKiDkuIDkuKrlj4vlpb3nmoTplJnor6/nsbvvvIzku6Xkvr/miJHku6zlj6/ku6Xov5vooYwgaW5zdGFuY2VvZiDmo4Dmn6VcbiAqL1xuZXhwb3J0IGNsYXNzIERlcGVuZGVuY3lJbmplY3Rpb25SZXNvbHV0aW9uRXJyb3IgZXh0ZW5kcyBFeHRlbmRhYmxlRXJyb3Ige1xuICAgIC8qKlxuICAgICAqIOaehOmAoOWHveaVsO+8jOaOpeWPl+azqOWGjOeahOaooeWdl+WSjOacquino+aekOeahOagh+iusO+8jOS7peWIm+W7uuS4gOadoea2iOaBr1xuICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICogQHBhcmFtIHJlc29sdXRpb25TdGFja1xuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5hbWU6IHN0cmluZyB8IHN5bWJvbCxcbiAgICAgICAgcmVzb2x1dGlvblN0YWNrOiBSZXNvbHV0aW9uU3RhY2ssXG4gICAgICAgIG1lc3NhZ2U/OiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSAnc3ltYm9sJykgbmFtZSA9IChuYW1lIGFzIGFueSkudG9TdHJpbmcoKVxuICAgICAgICBjb25zdCBwdXJpZmllZE5hbWU6IHN0cmluZyA9IChuYW1lIGFzIGFueSkuc3BsaXQoJ18kJCcpLnJldmVyc2UoKVswXVxuICAgICAgICByZXNvbHV0aW9uU3RhY2sgPSByZXNvbHV0aW9uU3RhY2subWFwKCh2YWwpID0+IHR5cGVvZiB2YWwgPT09ICdzeW1ib2wnID8gKHZhbCBhcyBhbnkpLnRvU3RyaW5nKCkgOiB2YWwpXG4gICAgICAgIHJlc29sdXRpb25TdGFjay5wdXNoKHB1cmlmaWVkTmFtZSlcbiAgICAgICAgY29uc3QgcmVzb2x1dGlvblBhdGhTdHJpbmc6IHN0cmluZyA9IHJlc29sdXRpb25TdGFjay5qb2luKCcgLT4gJylcbiAgICAgICAgbGV0IG1zZzogc3RyaW5nID0gYENvdWxkIG5vdCByZXNvbHZlICcke3B1cmlmaWVkTmFtZX0nLmBcbiAgICAgICAgaWYgKG1lc3NhZ2UpIG1zZyA9IGAke21zZ30gJHttZXNzYWdlfWBcbiAgICAgICAgbXNnID0gYCR7bXNnfSBSZXNvbHV0aW9uIHBhdGg6ICR7cmVzb2x1dGlvblBhdGhTdHJpbmd9YFxuICAgICAgICBzdXBlcihtc2cpXG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
11
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
12
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
13
|
+
}) : x)(function(x) {
|
|
14
|
+
if (typeof require !== "undefined")
|
|
15
|
+
return require.apply(this, arguments);
|
|
16
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
17
|
+
});
|
|
18
|
+
var __esm = (fn, res) => function __init() {
|
|
19
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
20
|
+
};
|
|
21
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
22
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
23
|
+
};
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
38
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
39
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
40
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
41
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
42
|
+
mod
|
|
43
|
+
));
|
|
44
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
45
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
46
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
47
|
+
if (decorator = decorators[i])
|
|
48
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
49
|
+
if (kind && result)
|
|
50
|
+
__defProp(target, key, result);
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
var __publicField = (obj, key, value) => {
|
|
54
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
55
|
+
return value;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
59
|
+
var init_cjs_shims = __esm({
|
|
60
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
exports.__commonJS = __commonJS;
|
|
65
|
+
exports.__decorateClass = __decorateClass;
|
|
66
|
+
exports.__export = __export;
|
|
67
|
+
exports.__name = __name;
|
|
68
|
+
exports.__publicField = __publicField;
|
|
69
|
+
exports.__require = __require;
|
|
70
|
+
exports.__toESM = __toESM;
|
|
71
|
+
exports.init_cjs_shims = init_cjs_shims;
|
|
72
|
+
//# sourceMappingURL=out.js.map
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy90c3VwL2Fzc2V0cy9janNfc2hpbXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU2hpbSBnbG9iYWxzIGluIGNqcyBidW5kbGVcbi8vIFRoZXJlJ3MgYSB3ZWlyZCBidWcgdGhhdCBlc2J1aWxkIHdpbGwgYWx3YXlzIGluamVjdCBpbXBvcnRNZXRhVXJsXG4vLyBpZiB3ZSBleHBvcnQgaXQgYXMgYGNvbnN0IGltcG9ydE1ldGFVcmwgPSAuLi4gX19maWxlbmFtZSAuLi5gXG4vLyBCdXQgdXNpbmcgYSBmdW5jdGlvbiB3aWxsIG5vdCBjYXVzZSB0aGlzIGlzc3VlXG5cbmNvbnN0IGdldEltcG9ydE1ldGFVcmwgPSAoKSA9PlxuICB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnXG4gICAgPyBuZXcgVVJMKCdmaWxlOicgKyBfX2ZpbGVuYW1lKS5ocmVmXG4gICAgOiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdCAmJiBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYykgfHxcbiAgICAgIG5ldyBVUkwoJ21haW4uanMnLCBkb2N1bWVudC5iYXNlVVJJKS5ocmVmXG5cbmV4cG9ydCBjb25zdCBpbXBvcnRNZXRhVXJsID0gLyogQF9fUFVSRV9fICovIGdldEltcG9ydE1ldGFVcmwoKVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkGGY7LCMQ_cjs = require('./chunk-GGY7LCMQ.cjs');
|
|
4
|
+
|
|
5
|
+
// src/Core.ts
|
|
6
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
7
|
+
//# sourceMappingURL=out.js.map
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnXG5cbi8v5Li756iL5bqPXG5leHBvcnQge0FwcGxpY2F0aW9ufSBmcm9tICcuL2xpYi9BcHBsaWNhdGlvbi5qcydcblxuLy/lj4LmlbDpgInpoblcbmV4cG9ydCB7QXBwbGljYXRpb25PcHRpb25zfSBmcm9tICcuL29wdGlvbnMvQXBwbGljYXRpb25PcHRpb25zLmpzJ1xuZXhwb3J0IHtMb2FkRW50cnlDb21tb25PcHRpb25zfSBmcm9tICcuL29wdGlvbnMvTG9hZEVudHJ5Q29tbW9uT3B0aW9ucy5qcydcbmV4cG9ydCB7TG9hZEVudHJ5Q2xhc3NPcHRpb25zfSBmcm9tICcuL29wdGlvbnMvTG9hZEVudHJ5Q2xhc3NPcHRpb25zLmpzJ1xuZXhwb3J0IHtMb2FkTW9kdWxlT3B0aW9uc30gZnJvbSAnLi9vcHRpb25zL0xvYWRNb2R1bGVPcHRpb25zLmpzJ1xuZXhwb3J0IHtMb2FkQ29tcG9uZW50T3B0aW9uc30gZnJvbSAnLi9vcHRpb25zL0xvYWRDb21wb25lbnRPcHRpb25zLmpzJ1xuZXhwb3J0IHtNb2R1bGVPcHRpb25zfSBmcm9tICcuL29wdGlvbnMvTW9kdWxlT3B0aW9ucy5qcydcblxuLy/mjqXlj6NcbmV4cG9ydCB7SUNvbnN0cnVjdG9yfSBmcm9tICcuL2ludGVyZmFjZXMvSUNvbnN0cnVjdG9yLmpzJ1xuZXhwb3J0IHtJU29ydE9iamVjdE9wdGlvbnN9IGZyb20gJy4vaW50ZXJmYWNlcy9JU29ydE9iamVjdE9wdGlvbnMuanMnXG5leHBvcnQge0lTb3J0QXJyYXlPcHRpb25zfSBmcm9tICcuL2ludGVyZmFjZXMvSVNvcnRBcnJheU9wdGlvbnMuanMnXG5leHBvcnQge0lQYXRSdW59IGZyb20gJy4vaW50ZXJmYWNlcy9JUGF0UnVuLmpzJ1xuZXhwb3J0IHtJTG9nZ2VyfSBmcm9tICcuL2ludGVyZmFjZXMvSUxvZ2dlci5qcydcblxuLy/nsbvlnotcbmV4cG9ydCB7QXN5bmNGdW5jdGlvbn0gZnJvbSAnLi90eXBlcy9Bc3luY0Z1bmN0aW9uLmpzJ1xuZXhwb3J0IHtJbmplY3Rpb25Qcm9wZXJ0aWVzfSBmcm9tICcuL3R5cGVzL0luamVjdGlvblByb3BlcnRpZXMuanMnXG5leHBvcnQge0NvbnRyb2xsZXJBY3Rpb25NYXBJdGVtfSBmcm9tICcuL3R5cGVzL0NvbnRyb2xsZXJBY3Rpb25NYXBJdGVtLmpzJ1xuZXhwb3J0IHtUaW1lSW5wdXR9IGZyb20gJy4vdHlwZXMvVGltZUlucHV0LmpzJ1xuZXhwb3J0IHtUaW1lT2JqZWN0fSBmcm9tICcuL3R5cGVzL1RpbWVPYmplY3QuanMnXG5leHBvcnQge1VuaXRPZlRpbWV9IGZyb20gJy4vdHlwZXMvVW5pdE9mVGltZS5qcydcblxuLy/ln7rnoYDnsbtcbmV4cG9ydCB7RFRPfSBmcm9tICcuL2xpYi9iYXNlL0RUTy5qcydcbmV4cG9ydCB7QmFzZU9iamVjdH0gZnJvbSAnLi9saWIvYmFzZS9CYXNlT2JqZWN0LmpzJ1xuZXhwb3J0IHtDb21wb25lbnR9IGZyb20gJy4vbGliL2Jhc2UvQ29tcG9uZW50LmpzJ1xuZXhwb3J0IHtDb250cm9sbGVyfSBmcm9tICcuL2xpYi9iYXNlL0NvbnRyb2xsZXIuanMnXG5leHBvcnQge01vZGVsfSBmcm9tICcuL2xpYi9iYXNlL01vZGVsLmpzJ1xuZXhwb3J0IHtNb2R1bGV9IGZyb20gJy4vbGliL2Jhc2UvTW9kdWxlLmpzJ1xuZXhwb3J0IHtDb250YWluZXJ9IGZyb20gJy4vbGliL2Jhc2UvQ29udGFpbmVyLmpzJ1xuZXhwb3J0IHtFeGNlcHRpb259IGZyb20gJy4vbGliL2Jhc2UvYWJzdHJhY3RzL0V4Y2VwdGlvbi5qcydcbmV4cG9ydCB7SW50ZXJ2YWx9IGZyb20gJy4vbGliL2Jhc2UvYWJzdHJhY3RzL0ludGVydmFsLmpzJ1xuZXhwb3J0IHtTeW1tZXRyaWNFbmNyeXB0aW9ufSBmcm9tICcuL2xpYi9iYXNlL2Fic3RyYWN0cy9TeW1tZXRyaWNFbmNyeXB0aW9uLmpzJ1xuZXhwb3J0IHtBc3ltbWV0cmljRW5jcnlwdGlvbn0gZnJvbSAnLi9saWIvYmFzZS9hYnN0cmFjdHMvQXN5bW1ldHJpY0VuY3J5cHRpb24uanMnXG5cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { init_esm_shims } from './chunk-5NK7E2HA.js';
|
|
2
|
+
|
|
3
|
+
// src/interfaces/IConstructor.ts
|
|
4
|
+
init_esm_shims();
|
|
5
|
+
//# sourceMappingURL=out.js.map
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmZhY2VzL0lDb25zdHJ1Y3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ29uc3RydWN0b3I8VD4ge1xuICAgIG5ldyguLi5hcmdzOiBhbnlbXSk6IFRcblxuICAgIFtwcm9wOiBzdHJpbmddOiBhbnlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkMNDBRDT2_cjs = require('./chunk-MNDBRDT2.cjs');
|
|
4
|
+
var chunkGGY7LCMQ_cjs = require('./chunk-GGY7LCMQ.cjs');
|
|
5
|
+
|
|
6
|
+
// src/lib/base/abstracts/Exception.ts
|
|
7
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
8
|
+
|
|
9
|
+
// node_modules/pupa/index.js
|
|
10
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
11
|
+
|
|
12
|
+
// node_modules/escape-goat/index.js
|
|
13
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
14
|
+
var _htmlEscape = /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name((string) => string.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"), "_htmlEscape");
|
|
15
|
+
function htmlEscape(strings, ...values) {
|
|
16
|
+
if (typeof strings === "string") {
|
|
17
|
+
return _htmlEscape(strings);
|
|
18
|
+
}
|
|
19
|
+
let output = strings[0];
|
|
20
|
+
for (const [index, value] of values.entries()) {
|
|
21
|
+
output = output + _htmlEscape(String(value)) + strings[index + 1];
|
|
22
|
+
}
|
|
23
|
+
return output;
|
|
24
|
+
}
|
|
25
|
+
chunkGGY7LCMQ_cjs.__name(htmlEscape, "htmlEscape");
|
|
26
|
+
|
|
27
|
+
// node_modules/pupa/index.js
|
|
28
|
+
var _MissingValueError = class _MissingValueError extends Error {
|
|
29
|
+
constructor(key) {
|
|
30
|
+
super(`Missing a value for ${key ? `the placeholder: ${key}` : "a placeholder"}`, key);
|
|
31
|
+
this.name = "MissingValueError";
|
|
32
|
+
this.key = key;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
chunkGGY7LCMQ_cjs.__name(_MissingValueError, "MissingValueError");
|
|
36
|
+
var MissingValueError = _MissingValueError;
|
|
37
|
+
function pupa(template, data, { ignoreMissing = false, transform = /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name(({ value }) => value, "transform") } = {}) {
|
|
38
|
+
if (typeof template !== "string") {
|
|
39
|
+
throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof template}\``);
|
|
40
|
+
}
|
|
41
|
+
if (typeof data !== "object") {
|
|
42
|
+
throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof data}\``);
|
|
43
|
+
}
|
|
44
|
+
const replace2 = /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name((placeholder, key) => {
|
|
45
|
+
let value = data;
|
|
46
|
+
for (const property of key.split(".")) {
|
|
47
|
+
value = value ? value[property] : void 0;
|
|
48
|
+
}
|
|
49
|
+
const transformedValue = transform({ value, key });
|
|
50
|
+
if (transformedValue === void 0) {
|
|
51
|
+
if (ignoreMissing) {
|
|
52
|
+
return placeholder;
|
|
53
|
+
}
|
|
54
|
+
throw new MissingValueError(key);
|
|
55
|
+
}
|
|
56
|
+
return String(transformedValue);
|
|
57
|
+
}, "replace");
|
|
58
|
+
const composeHtmlEscape = /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name((replacer) => (...args) => htmlEscape(replacer(...args)), "composeHtmlEscape");
|
|
59
|
+
const doubleBraceRegex = /{{(\d+|[a-z$_][\w\-$]*?(?:\.[\w\-$]*?)*?)}}/gi;
|
|
60
|
+
if (doubleBraceRegex.test(template)) {
|
|
61
|
+
template = template.replace(doubleBraceRegex, composeHtmlEscape(replace2));
|
|
62
|
+
}
|
|
63
|
+
const braceRegex = /{(\d+|[a-z$_][\w\-$]*?(?:\.[\w\-$]*?)*?)}/gi;
|
|
64
|
+
return template.replace(braceRegex, replace2);
|
|
65
|
+
}
|
|
66
|
+
chunkGGY7LCMQ_cjs.__name(pupa, "pupa");
|
|
67
|
+
|
|
68
|
+
// node_modules/camel-case/dist.es2015/index.js
|
|
69
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
70
|
+
|
|
71
|
+
// node_modules/tslib/tslib.es6.mjs
|
|
72
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
73
|
+
var __assign = /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name(function() {
|
|
74
|
+
__assign = Object.assign || /* @__PURE__ */ chunkGGY7LCMQ_cjs.__name(function __assign2(t) {
|
|
75
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
76
|
+
s = arguments[i];
|
|
77
|
+
for (var p in s)
|
|
78
|
+
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
79
|
+
t[p] = s[p];
|
|
80
|
+
}
|
|
81
|
+
return t;
|
|
82
|
+
}, "__assign");
|
|
83
|
+
return __assign.apply(this, arguments);
|
|
84
|
+
}, "__assign");
|
|
85
|
+
|
|
86
|
+
// node_modules/pascal-case/dist.es2015/index.js
|
|
87
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
88
|
+
|
|
89
|
+
// node_modules/no-case/dist.es2015/index.js
|
|
90
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
91
|
+
|
|
92
|
+
// node_modules/lower-case/dist.es2015/index.js
|
|
93
|
+
chunkGGY7LCMQ_cjs.init_cjs_shims();
|
|
94
|
+
function lowerCase(str) {
|
|
95
|
+
return str.toLowerCase();
|
|
96
|
+
}
|
|
97
|
+
chunkGGY7LCMQ_cjs.__name(lowerCase, "lowerCase");
|
|
98
|
+
|
|
99
|
+
// node_modules/no-case/dist.es2015/index.js
|
|
100
|
+
var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
|
|
101
|
+
var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
|
|
102
|
+
function noCase(input, options) {
|
|
103
|
+
if (options === void 0) {
|
|
104
|
+
options = {};
|
|
105
|
+
}
|
|
106
|
+
var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
|
|
107
|
+
var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
|
|
108
|
+
var start = 0;
|
|
109
|
+
var end = result.length;
|
|
110
|
+
while (result.charAt(start) === "\0")
|
|
111
|
+
start++;
|
|
112
|
+
while (result.charAt(end - 1) === "\0")
|
|
113
|
+
end--;
|
|
114
|
+
return result.slice(start, end).split("\0").map(transform).join(delimiter);
|
|
115
|
+
}
|
|
116
|
+
chunkGGY7LCMQ_cjs.__name(noCase, "noCase");
|
|
117
|
+
function replace(input, re, value) {
|
|
118
|
+
if (re instanceof RegExp)
|
|
119
|
+
return input.replace(re, value);
|
|
120
|
+
return re.reduce(function(input2, re2) {
|
|
121
|
+
return input2.replace(re2, value);
|
|
122
|
+
}, input);
|
|
123
|
+
}
|
|
124
|
+
chunkGGY7LCMQ_cjs.__name(replace, "replace");
|
|
125
|
+
|
|
126
|
+
// node_modules/pascal-case/dist.es2015/index.js
|
|
127
|
+
function pascalCaseTransform(input, index) {
|
|
128
|
+
var firstChar = input.charAt(0);
|
|
129
|
+
var lowerChars = input.substr(1).toLowerCase();
|
|
130
|
+
if (index > 0 && firstChar >= "0" && firstChar <= "9") {
|
|
131
|
+
return "_" + firstChar + lowerChars;
|
|
132
|
+
}
|
|
133
|
+
return "" + firstChar.toUpperCase() + lowerChars;
|
|
134
|
+
}
|
|
135
|
+
chunkGGY7LCMQ_cjs.__name(pascalCaseTransform, "pascalCaseTransform");
|
|
136
|
+
function pascalCase(input, options) {
|
|
137
|
+
if (options === void 0) {
|
|
138
|
+
options = {};
|
|
139
|
+
}
|
|
140
|
+
return noCase(input, __assign({ delimiter: "", transform: pascalCaseTransform }, options));
|
|
141
|
+
}
|
|
142
|
+
chunkGGY7LCMQ_cjs.__name(pascalCase, "pascalCase");
|
|
143
|
+
|
|
144
|
+
// node_modules/camel-case/dist.es2015/index.js
|
|
145
|
+
function camelCaseTransform(input, index) {
|
|
146
|
+
if (index === 0)
|
|
147
|
+
return input.toLowerCase();
|
|
148
|
+
return pascalCaseTransform(input, index);
|
|
149
|
+
}
|
|
150
|
+
chunkGGY7LCMQ_cjs.__name(camelCaseTransform, "camelCaseTransform");
|
|
151
|
+
function camelCase(input, options) {
|
|
152
|
+
if (options === void 0) {
|
|
153
|
+
options = {};
|
|
154
|
+
}
|
|
155
|
+
return pascalCase(input, __assign({ transform: camelCaseTransform }, options));
|
|
156
|
+
}
|
|
157
|
+
chunkGGY7LCMQ_cjs.__name(camelCase, "camelCase");
|
|
158
|
+
|
|
159
|
+
// src/lib/base/abstracts/Exception.ts
|
|
160
|
+
var _Exception = class _Exception extends Error {
|
|
161
|
+
appId = process.env.appId ? process.env.appId : "Unknown";
|
|
162
|
+
appName = process.env.appName ? process.env.appName : "Unknown";
|
|
163
|
+
errMsg;
|
|
164
|
+
err;
|
|
165
|
+
constructor(a, b) {
|
|
166
|
+
super();
|
|
167
|
+
if (b) {
|
|
168
|
+
const template = a;
|
|
169
|
+
const data = b;
|
|
170
|
+
try {
|
|
171
|
+
this.message = pupa(template, data, { ignoreMissing: true });
|
|
172
|
+
} catch (e) {
|
|
173
|
+
this.message = "Unknown (broken exception template or data)";
|
|
174
|
+
}
|
|
175
|
+
} else if (a) {
|
|
176
|
+
if (typeof a === "string") {
|
|
177
|
+
this.message = a;
|
|
178
|
+
} else {
|
|
179
|
+
this.message = chunkMNDBRDT2_cjs.As(a).message;
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
const message = camelCase(this.name, { delimiter: " " }).toLowerCase();
|
|
183
|
+
this.message = `${message.charAt(0).toUpperCase()}${message.slice(1)}`;
|
|
184
|
+
}
|
|
185
|
+
this.errMsg = this.message;
|
|
186
|
+
this.err = this.name;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* 获取错误名称
|
|
190
|
+
* @returns {string}
|
|
191
|
+
*/
|
|
192
|
+
get name() {
|
|
193
|
+
return this.constructor.name;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
chunkGGY7LCMQ_cjs.__name(_Exception, "Exception");
|
|
197
|
+
var Exception = _Exception;
|
|
198
|
+
|
|
199
|
+
exports.Exception = Exception;
|
|
200
|
+
exports.camelCase = camelCase;
|
|
201
|
+
//# sourceMappingURL=out.js.map
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvYmFzZS9hYnN0cmFjdHMvRXhjZXB0aW9uLnRzIiwiLi4vbm9kZV9tb2R1bGVzL3B1cGEvaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvZXNjYXBlLWdvYXQvaW5kZXguanMiLCIuLi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2Lm1qcyIsIi4uL25vZGVfbW9kdWxlcy9uby1jYXNlL3NyYy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9sb3dlci1jYXNlL3NyYy9pbmRleC50cyIsIi4uL25vZGVfbW9kdWxlcy9wYXNjYWwtY2FzZS9zcmMvaW5kZXgudHMiLCIuLi9ub2RlX21vZHVsZXMvY2FtZWwtY2FzZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOlsicmVwbGFjZSIsIl9fYXNzaWduIiwiaW5wdXQiLCJyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7OztBQ0FBOzs7QUNBQTtBQUFBLElBQU0sY0FBYyxtQ0FBVSxPQUM1QixRQUFRLE1BQU0sT0FBTyxFQUNyQixRQUFRLE1BQU0sUUFBUSxFQUN0QixRQUFRLE1BQU0sT0FBTyxFQUNyQixRQUFRLE1BQU0sTUFBTSxFQUNwQixRQUFRLE1BQU0sTUFBTSxHQUxGO0FBY2IsU0FBUyxXQUFXLFlBQVksUUFBUTtBQUM5QyxNQUFJLE9BQU8sWUFBWSxVQUFVO0FBQ2hDLFdBQU8sWUFBWSxPQUFPO0FBQUEsRUFDM0I7QUFFQSxNQUFJLFNBQVMsUUFBUSxDQUFDO0FBQ3RCLGFBQVcsQ0FBQyxPQUFPLEtBQUssS0FBSyxPQUFPLFFBQVEsR0FBRztBQUM5QyxhQUFTLFNBQVMsWUFBWSxPQUFPLEtBQUssQ0FBQyxJQUFJLFFBQVEsUUFBUSxDQUFDO0FBQUEsRUFDakU7QUFFQSxTQUFPO0FBQ1I7QUFYZ0I7OztBRFpULElBQU0scUJBQU4sTUFBTSwyQkFBMEIsTUFBTTtBQUFBLEVBQzVDLFlBQVksS0FBSztBQUNoQixVQUFNLHVCQUF1QixNQUFNLG9CQUFvQixHQUFHLEtBQUssZUFBZSxJQUFJLEdBQUc7QUFDckYsU0FBSyxPQUFPO0FBQ1osU0FBSyxNQUFNO0FBQUEsRUFDWjtBQUNEO0FBTjZDO0FBQXRDLElBQU0sb0JBQU47QUFRUSxTQUFSLEtBQXNCLFVBQVUsTUFBTSxFQUFDLGdCQUFnQixPQUFPLFlBQVksd0JBQUMsRUFBQyxNQUFLLE1BQU0sT0FBYixhQUFrQixJQUFJLENBQUMsR0FBRztBQUMxRyxNQUFJLE9BQU8sYUFBYSxVQUFVO0FBQ2pDLFVBQU0sSUFBSSxVQUFVLHNEQUFzRCxPQUFPLFFBQVEsSUFBSTtBQUFBLEVBQzlGO0FBRUEsTUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM3QixVQUFNLElBQUksVUFBVSxxRUFBcUUsT0FBTyxJQUFJLElBQUk7QUFBQSxFQUN6RztBQUVBLFFBQU1BLFdBQVUsd0JBQUMsYUFBYSxRQUFRO0FBQ3JDLFFBQUksUUFBUTtBQUNaLGVBQVcsWUFBWSxJQUFJLE1BQU0sR0FBRyxHQUFHO0FBQ3RDLGNBQVEsUUFBUSxNQUFNLFFBQVEsSUFBSTtBQUFBLElBQ25DO0FBRUEsVUFBTSxtQkFBbUIsVUFBVSxFQUFDLE9BQU8sSUFBRyxDQUFDO0FBQy9DLFFBQUkscUJBQXFCLFFBQVc7QUFDbkMsVUFBSSxlQUFlO0FBQ2xCLGVBQU87QUFBQSxNQUNSO0FBRUEsWUFBTSxJQUFJLGtCQUFrQixHQUFHO0FBQUEsSUFDaEM7QUFFQSxXQUFPLE9BQU8sZ0JBQWdCO0FBQUEsRUFDL0IsR0FoQmdCO0FBa0JoQixRQUFNLG9CQUFvQixxQ0FBWSxJQUFJLFNBQVMsV0FBVyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQXJEO0FBRzFCLFFBQU0sbUJBQW1CO0FBRXpCLE1BQUksaUJBQWlCLEtBQUssUUFBUSxHQUFHO0FBQ3BDLGVBQVcsU0FBUyxRQUFRLGtCQUFrQixrQkFBa0JBLFFBQU8sQ0FBQztBQUFBLEVBQ3pFO0FBRUEsUUFBTSxhQUFhO0FBRW5CLFNBQU8sU0FBUyxRQUFRLFlBQVlBLFFBQU87QUFDNUM7QUF2Q3dCOzs7Ozs7QUVWeEI7QUErQk8sSUFBSSxXQUFXLGtDQUFXO0FBQy9CLGFBQVcsT0FBTyxVQUFVLGdDQUFTQyxVQUFTLEdBQUc7QUFDN0MsYUFBUyxHQUFHLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxJQUFJLEdBQUcsS0FBSztBQUNqRCxVQUFJLFVBQVUsQ0FBQztBQUNmLGVBQVMsS0FBSztBQUFHLFlBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyxHQUFHLENBQUM7QUFBRyxZQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7QUFBQSxJQUMvRTtBQUNBLFdBQU87QUFBQSxFQUNYLEdBTjRCO0FBTzVCLFNBQU8sU0FBUyxNQUFNLE1BQU0sU0FBUztBQUN2QyxHQVRzQjs7Ozs7O0FDL0J0Qjs7O0FDUUE7QUE2Q00sU0FBVSxVQUFVLEtBQVc7QUFDbkMsU0FBTyxJQUFJLFlBQVc7QUFDeEI7QUFGZ0I7OztBRDNDaEIsSUFBTSx1QkFBdUIsQ0FBQyxzQkFBc0Isc0JBQXNCO0FBRzFFLElBQU0sdUJBQXVCO0FBS3ZCLFNBQVUsT0FBTyxPQUFlLFNBQXFCO0FBQXJCLE1BQUEsWUFBQSxRQUFBO0FBQUEsY0FBQSxDQUFBO0VBQXFCO0FBRXZELE1BQUEsS0FJRSxRQUFPLGFBSlQsY0FBVyxPQUFBLFNBQUcsdUJBQW9CLElBQ2xDLEtBR0UsUUFBTyxhQUhULGNBQVcsT0FBQSxTQUFHLHVCQUFvQixJQUNsQyxLQUVFLFFBQU8sV0FGVCxZQUFTLE9BQUEsU0FBRyxZQUFTLElBQ3JCLEtBQ0UsUUFBTyxXQURULFlBQVMsT0FBQSxTQUFHLE1BQUc7QUFHakIsTUFBSSxTQUFTLFFBQ1gsUUFBUSxPQUFPLGFBQWEsUUFBUSxHQUNwQyxhQUNBLElBQUk7QUFFTixNQUFJLFFBQVE7QUFDWixNQUFJLE1BQU0sT0FBTztBQUdqQixTQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU07QUFBTTtBQUN0QyxTQUFPLE9BQU8sT0FBTyxNQUFNLENBQUMsTUFBTTtBQUFNO0FBR3hDLFNBQU8sT0FBTyxNQUFNLE9BQU8sR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssU0FBUztBQUMzRTtBQXRCZ0I7QUEyQmhCLFNBQVMsUUFBUSxPQUFlLElBQXVCLE9BQWE7QUFDbEUsTUFBSSxjQUFjO0FBQVEsV0FBTyxNQUFNLFFBQVEsSUFBSSxLQUFLO0FBQ3hELFNBQU8sR0FBRyxPQUFPLFNBQUNDLFFBQU9DLEtBQUU7QUFBSyxXQUFBRCxPQUFNLFFBQVFDLEtBQUksS0FBSztFQUF2QixHQUEwQixLQUFLO0FBQ2pFO0FBSFM7OztBRXpDSCxTQUFVLG9CQUFvQixPQUFlLE9BQWE7QUFDOUQsTUFBTSxZQUFZLE1BQU0sT0FBTyxDQUFDO0FBQ2hDLE1BQU0sYUFBYSxNQUFNLE9BQU8sQ0FBQyxFQUFFLFlBQVc7QUFDOUMsTUFBSSxRQUFRLEtBQUssYUFBYSxPQUFPLGFBQWEsS0FBSztBQUNyRCxXQUFPLE1BQUksWUFBWTs7QUFFekIsU0FBTyxLQUFHLFVBQVUsWUFBVyxJQUFLO0FBQ3RDO0FBUGdCO0FBYVYsU0FBVSxXQUFXLE9BQWUsU0FBcUI7QUFBckIsTUFBQSxZQUFBLFFBQUE7QUFBQSxjQUFBLENBQUE7RUFBcUI7QUFDN0QsU0FBTyxPQUFPLE9BQUssU0FBQSxFQUNqQixXQUFXLElBQ1gsV0FBVyxvQkFBbUIsR0FDM0IsT0FBTyxDQUFBO0FBRWQ7QUFOZ0I7OztBQ1JWLFNBQVUsbUJBQW1CLE9BQWUsT0FBYTtBQUM3RCxNQUFJLFVBQVU7QUFBRyxXQUFPLE1BQU0sWUFBVztBQUN6QyxTQUFPLG9CQUFvQixPQUFPLEtBQUs7QUFDekM7QUFIZ0I7QUFVVixTQUFVLFVBQVUsT0FBZSxTQUFxQjtBQUFyQixNQUFBLFlBQUEsUUFBQTtBQUFBLGNBQUEsQ0FBQTtFQUFxQjtBQUM1RCxTQUFPLFdBQVcsT0FBSyxTQUFBLEVBQ3JCLFdBQVcsbUJBQWtCLEdBQzFCLE9BQU8sQ0FBQTtBQUVkO0FBTGdCOzs7QVBYVCxJQUFlLGFBQWYsTUFBZSxtQkFBa0IsTUFBTTtBQUFBLEVBRTFCLFFBQWdCLFFBQVEsSUFBSSxRQUFRLFFBQVEsSUFBSSxRQUFRO0FBQUEsRUFDeEQsVUFBa0IsUUFBUSxJQUFJLFVBQVUsUUFBUSxJQUFJLFVBQVU7QUFBQSxFQUM5RDtBQUFBLEVBQ0E7QUFBQSxFQU1oQixZQUFZLEdBQW9CLEdBQXFDO0FBQ2pFLFVBQU07QUFDTixRQUFJLEdBQUc7QUFDSCxZQUFNLFdBQW1CO0FBQ3pCLFlBQU0sT0FBd0M7QUFFOUMsVUFBSTtBQUNBLGFBQUssVUFBVSxLQUFLLFVBQVUsTUFBTSxFQUFDLGVBQWUsS0FBSSxDQUFDO0FBQUEsTUFDN0QsU0FBUyxHQUFHO0FBQ1IsYUFBSyxVQUFVO0FBQUEsTUFDbkI7QUFBQSxJQUNKLFdBQVcsR0FBRztBQUNWLFVBQUksT0FBUSxNQUFPLFVBQVU7QUFFekIsYUFBSyxVQUFVO0FBQUEsTUFDbkIsT0FBTztBQUVILGFBQUssVUFBVSxHQUFVLENBQUMsRUFBRTtBQUFBLE1BQ2hDO0FBQUEsSUFDSixPQUFPO0FBRUgsWUFBTSxVQUFrQixVQUFVLEtBQUssTUFBTSxFQUFDLFdBQVcsSUFBRyxDQUFDLEVBQUUsWUFBWTtBQUMzRSxXQUFLLFVBQVUsR0FBRyxRQUFRLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLFFBQVEsTUFBTSxDQUFDLENBQUM7QUFBQSxJQUN4RTtBQUNBLFNBQUssU0FBUyxLQUFLO0FBQ25CLFNBQUssTUFBTSxLQUFLO0FBQUEsRUFDcEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsSUFBVyxPQUFlO0FBQ3RCLFdBQU8sS0FBSyxZQUFZO0FBQUEsRUFDNUI7QUFDSjtBQTlDOEM7QUFBdkMsSUFBZSxZQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJ1xuaW1wb3J0IHB1cGEgZnJvbSAncHVwYSdcbmltcG9ydCB7Y2FtZWxDYXNlfSBmcm9tICdjYW1lbC1jYXNlJ1xuaW1wb3J0IHtBc30gZnJvbSAnLi4vLi4vLi4vVXRpbGl0aWVzLmpzJ1xuXG4vKipcbiAqIOW8guW4uOaKveixoeexu1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICAgIHB1YmxpYyBhYnN0cmFjdCBlcnJubzogbnVtYmVyIHwgc3RyaW5nXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcElkOiBzdHJpbmcgPSBwcm9jZXNzLmVudi5hcHBJZCA/IHByb2Nlc3MuZW52LmFwcElkIDogJ1Vua25vd24nXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcE5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LmFwcE5hbWUgPyBwcm9jZXNzLmVudi5hcHBOYW1lIDogJ1Vua25vd24nXG4gICAgcHVibGljIHJlYWRvbmx5IGVyck1zZzogc3RyaW5nXG4gICAgcHVibGljIHJlYWRvbmx5IGVycjogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZTogc3RyaW5nLCBkYXRhOiB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+KVxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZylcbiAgICBjb25zdHJ1Y3RvcihlcnJvcjogRXJyb3IpXG4gICAgY29uc3RydWN0b3IoKVxuICAgIGNvbnN0cnVjdG9yKGE/OiBzdHJpbmcgfCBFcnJvciwgYj86IHVua25vd25bXSB8IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAgICAgc3VwZXIoKVxuICAgICAgICBpZiAoYikge1xuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGU6IHN0cmluZyA9IGEgYXMgc3RyaW5nXG4gICAgICAgICAgICBjb25zdCBkYXRhOiB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gYlxuICAgICAgICAgICAgLy9FcnJvciB0ZW1wbGF0ZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBwdXBhKHRlbXBsYXRlLCBkYXRhLCB7aWdub3JlTWlzc2luZzogdHJ1ZX0pXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJ1Vua25vd24gKGJyb2tlbiBleGNlcHRpb24gdGVtcGxhdGUgb3IgZGF0YSknXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAoYSkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgLy9FcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gYSBhcyBzdHJpbmdcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy9FcnJvciBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IEFzPEVycm9yPihhKS5tZXNzYWdlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvL0VtcHR5IG1lc3NhZ2VcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IGNhbWVsQ2FzZSh0aGlzLm5hbWUsIHtkZWxpbWl0ZXI6ICcgJ30pLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IGAke21lc3NhZ2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHttZXNzYWdlLnNsaWNlKDEpfWBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVyck1zZyA9IHRoaXMubWVzc2FnZVxuICAgICAgICB0aGlzLmVyciA9IHRoaXMubmFtZVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+WPlumUmeivr+WQjeensFxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWVcbiAgICB9XG59XG4iLCJpbXBvcnQge2h0bWxFc2NhcGV9IGZyb20gJ2VzY2FwZS1nb2F0JztcblxuZXhwb3J0IGNsYXNzIE1pc3NpbmdWYWx1ZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXHRjb25zdHJ1Y3RvcihrZXkpIHtcblx0XHRzdXBlcihgTWlzc2luZyBhIHZhbHVlIGZvciAke2tleSA/IGB0aGUgcGxhY2Vob2xkZXI6ICR7a2V5fWAgOiAnYSBwbGFjZWhvbGRlcid9YCwga2V5KTtcblx0XHR0aGlzLm5hbWUgPSAnTWlzc2luZ1ZhbHVlRXJyb3InO1xuXHRcdHRoaXMua2V5ID0ga2V5O1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHB1cGEodGVtcGxhdGUsIGRhdGEsIHtpZ25vcmVNaXNzaW5nID0gZmFsc2UsIHRyYW5zZm9ybSA9ICh7dmFsdWV9KSA9PiB2YWx1ZX0gPSB7fSkge1xuXHRpZiAodHlwZW9mIHRlbXBsYXRlICE9PSAnc3RyaW5nJykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgXFxgc3RyaW5nXFxgIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgZ290IFxcYCR7dHlwZW9mIHRlbXBsYXRlfVxcYGApO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGFuIFxcYG9iamVjdFxcYCBvciBcXGBBcnJheVxcYCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LCBnb3QgXFxgJHt0eXBlb2YgZGF0YX1cXGBgKTtcblx0fVxuXG5cdGNvbnN0IHJlcGxhY2UgPSAocGxhY2Vob2xkZXIsIGtleSkgPT4ge1xuXHRcdGxldCB2YWx1ZSA9IGRhdGE7XG5cdFx0Zm9yIChjb25zdCBwcm9wZXJ0eSBvZiBrZXkuc3BsaXQoJy4nKSkge1xuXHRcdFx0dmFsdWUgPSB2YWx1ZSA/IHZhbHVlW3Byb3BlcnR5XSA6IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gdHJhbnNmb3JtKHt2YWx1ZSwga2V5fSk7XG5cdFx0aWYgKHRyYW5zZm9ybWVkVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKGlnbm9yZU1pc3NpbmcpIHtcblx0XHRcdFx0cmV0dXJuIHBsYWNlaG9sZGVyO1xuXHRcdFx0fVxuXG5cdFx0XHR0aHJvdyBuZXcgTWlzc2luZ1ZhbHVlRXJyb3Ioa2V5KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gU3RyaW5nKHRyYW5zZm9ybWVkVmFsdWUpO1xuXHR9O1xuXG5cdGNvbnN0IGNvbXBvc2VIdG1sRXNjYXBlID0gcmVwbGFjZXIgPT4gKC4uLmFyZ3MpID0+IGh0bWxFc2NhcGUocmVwbGFjZXIoLi4uYXJncykpO1xuXG5cdC8vIFRoZSByZWdleCB0cmllcyB0byBtYXRjaCBlaXRoZXIgYSBudW1iZXIgaW5zaWRlIGB7eyB9fWAgb3IgYSB2YWxpZCBKUyBpZGVudGlmaWVyIG9yIGtleSBwYXRoLlxuXHRjb25zdCBkb3VibGVCcmFjZVJlZ2V4ID0gL3t7KFxcZCt8W2EteiRfXVtcXHdcXC0kXSo/KD86XFwuW1xcd1xcLSRdKj8pKj8pfX0vZ2k7XG5cblx0aWYgKGRvdWJsZUJyYWNlUmVnZXgudGVzdCh0ZW1wbGF0ZSkpIHtcblx0XHR0ZW1wbGF0ZSA9IHRlbXBsYXRlLnJlcGxhY2UoZG91YmxlQnJhY2VSZWdleCwgY29tcG9zZUh0bWxFc2NhcGUocmVwbGFjZSkpO1xuXHR9XG5cblx0Y29uc3QgYnJhY2VSZWdleCA9IC97KFxcZCt8W2EteiRfXVtcXHdcXC0kXSo/KD86XFwuW1xcd1xcLSRdKj8pKj8pfS9naTtcblxuXHRyZXR1cm4gdGVtcGxhdGUucmVwbGFjZShicmFjZVJlZ2V4LCByZXBsYWNlKTtcbn1cbiIsImNvbnN0IF9odG1sRXNjYXBlID0gc3RyaW5nID0+IHN0cmluZ1xuXHQucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuXHQucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG5cdC5yZXBsYWNlKC8nL2csICcmIzM5OycpXG5cdC5yZXBsYWNlKC88L2csICcmbHQ7Jylcblx0LnJlcGxhY2UoLz4vZywgJyZndDsnKTtcblxuY29uc3QgX2h0bWxVbmVzY2FwZSA9IGh0bWxTdHJpbmcgPT4gaHRtbFN0cmluZ1xuXHQucmVwbGFjZSgvJmd0Oy9nLCAnPicpXG5cdC5yZXBsYWNlKC8mbHQ7L2csICc8Jylcblx0LnJlcGxhY2UoLyYjMD8zOTsvZywgJ1xcJycpXG5cdC5yZXBsYWNlKC8mcXVvdDsvZywgJ1wiJylcblx0LnJlcGxhY2UoLyZhbXA7L2csICcmJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sRXNjYXBlKHN0cmluZ3MsIC4uLnZhbHVlcykge1xuXHRpZiAodHlwZW9mIHN0cmluZ3MgPT09ICdzdHJpbmcnKSB7XG5cdFx0cmV0dXJuIF9odG1sRXNjYXBlKHN0cmluZ3MpO1xuXHR9XG5cblx0bGV0IG91dHB1dCA9IHN0cmluZ3NbMF07XG5cdGZvciAoY29uc3QgW2luZGV4LCB2YWx1ZV0gb2YgdmFsdWVzLmVudHJpZXMoKSkge1xuXHRcdG91dHB1dCA9IG91dHB1dCArIF9odG1sRXNjYXBlKFN0cmluZyh2YWx1ZSkpICsgc3RyaW5nc1tpbmRleCArIDFdO1xuXHR9XG5cblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxVbmVzY2FwZShzdHJpbmdzLCAuLi52YWx1ZXMpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmdzID09PSAnc3RyaW5nJykge1xuXHRcdHJldHVybiBfaHRtbFVuZXNjYXBlKHN0cmluZ3MpO1xuXHR9XG5cblx0bGV0IG91dHB1dCA9IHN0cmluZ3NbMF07XG5cdGZvciAoY29uc3QgW2luZGV4LCB2YWx1ZV0gb2YgdmFsdWVzLmVudHJpZXMoKSkge1xuXHRcdG91dHB1dCA9IG91dHB1dCArIF9odG1sVW5lc2NhcGUoU3RyaW5nKHZhbHVlKSkgKyBzdHJpbmdzW2luZGV4ICsgMV07XG5cdH1cblxuXHRyZXR1cm4gb3V0cHV0O1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXG5cblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1Jcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXG5cbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xuICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xuICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xufVxuXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XG4gIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XG4gICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XG4gICAgICB9XG4gICAgICByZXR1cm4gdDtcbiAgfVxuICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XG4gIHZhciB0ID0ge307XG4gIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgdFtwXSA9IHNbcF07XG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgfVxuICByZXR1cm4gdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XG4gIGZ1bmN0aW9uIGFjY2VwdChmKSB7IGlmIChmICE9PSB2b2lkIDAgJiYgdHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZ1bmN0aW9uIGV4cGVjdGVkXCIpOyByZXR1cm4gZjsgfVxuICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSBcImdldHRlclwiID8gXCJnZXRcIiA6IGtpbmQgPT09IFwic2V0dGVyXCIgPyBcInNldFwiIDogXCJ2YWx1ZVwiO1xuICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcbiAgdmFyIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySW4gfHwgKHRhcmdldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSkgOiB7fSk7XG4gIHZhciBfLCBkb25lID0gZmFsc2U7XG4gIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgY29udGV4dCA9IHt9O1xuICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSBcImFjY2Vzc1wiID8ge30gOiBjb250ZXh0SW5bcF07XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgPSBmdW5jdGlvbiAoZikgeyBpZiAoZG9uZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZFwiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07XG4gICAgICB2YXIgcmVzdWx0ID0gKDAsIGRlY29yYXRvcnNbaV0pKGtpbmQgPT09IFwiYWNjZXNzb3JcIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTtcbiAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIGNvbnRpbnVlO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgdHlwZW9mIHJlc3VsdCAhPT0gXCJvYmplY3RcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZFwiKTtcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5zZXQpKSBkZXNjcmlwdG9yLnNldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKF8gPSBhY2NlcHQocmVzdWx0KSkge1xuICAgICAgICAgIGlmIChraW5kID09PSBcImZpZWxkXCIpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcbiAgICAgIH1cbiAgfVxuICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XG4gIGRvbmUgPSB0cnVlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHtcbiAgdmFyIHVzZVZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+IDI7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7XG4gIH1cbiAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN5bWJvbFwiID8geCA6IFwiXCIuY29uY2F0KHgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fc2V0RnVuY3Rpb25OYW1lKGYsIG5hbWUsIHByZWZpeCkge1xuICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gXCJbXCIuY29uY2F0KG5hbWUuZGVzY3JpcHRpb24sIFwiXVwiKSA6IFwiXCI7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcbiAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cbiAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxuICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7IH1cbiAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XG4gIGZ1bmN0aW9uIHNldHRsZShmLCB2KSB7IGlmIChmKHYpLCBxLnNoaWZ0KCksIHEubGVuZ3RoKSByZXN1bWUocVswXVswXSwgcVswXVsxXSk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNEZWxlZ2F0b3Iobykge1xuICB2YXIgaSwgcDtcbiAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlbbl0gPSBvW25dID8gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIChwID0gIXApID8geyB2YWx1ZTogX19hd2FpdChvW25dKHYpKSwgZG9uZTogZmFsc2UgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xuICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xuICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xuICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyBpW25dID0gb1tuXSAmJiBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2ID0gb1tuXSh2KSwgc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgdi5kb25lLCB2LnZhbHVlKTsgfSk7IH07IH1cbiAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcbiAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cbiAgcmV0dXJuIGNvb2tlZDtcbn07XG5cbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gIG9bXCJkZWZhdWx0XCJdID0gdjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XG4gIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZTtcbiAgICBpZiAoYXN5bmMpIHtcbiAgICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XG4gICAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgICBpZiAoIVN5bWJvbC5kaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuXCIpO1xuICAgICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRpc3Bvc2UgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBub3QgZGlzcG9zYWJsZS5cIik7XG4gICAgZW52LnN0YWNrLnB1c2goeyB2YWx1ZTogdmFsdWUsIGRpc3Bvc2U6IGRpc3Bvc2UsIGFzeW5jOiBhc3luYyB9KTtcbiAgfVxuICBlbHNlIGlmIChhc3luYykge1xuICAgIGVudi5zdGFjay5wdXNoKHsgYXN5bmM6IHRydWUgfSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG52YXIgX1N1cHByZXNzZWRFcnJvciA9IHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xuICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2Rpc3Bvc2VSZXNvdXJjZXMoZW52KSB7XG4gIGZ1bmN0aW9uIGZhaWwoZSkge1xuICAgIGVudi5lcnJvciA9IGVudi5oYXNFcnJvciA/IG5ldyBfU3VwcHJlc3NlZEVycm9yKGUsIGVudi5lcnJvciwgXCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuXCIpIDogZTtcbiAgICBlbnYuaGFzRXJyb3IgPSB0cnVlO1xuICB9XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKGVudi5zdGFjay5sZW5ndGgpIHtcbiAgICAgIHZhciByZWMgPSBlbnYuc3RhY2sucG9wKCk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gcmVjLmRpc3Bvc2UgJiYgcmVjLmRpc3Bvc2UuY2FsbChyZWMudmFsdWUpO1xuICAgICAgICBpZiAocmVjLmFzeW5jKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbihlKSB7IGZhaWwoZSk7IHJldHVybiBuZXh0KCk7IH0pO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBfX2V4dGVuZHMsXG4gIF9fYXNzaWduLFxuICBfX3Jlc3QsXG4gIF9fZGVjb3JhdGUsXG4gIF9fcGFyYW0sXG4gIF9fbWV0YWRhdGEsXG4gIF9fYXdhaXRlcixcbiAgX19nZW5lcmF0b3IsXG4gIF9fY3JlYXRlQmluZGluZyxcbiAgX19leHBvcnRTdGFyLFxuICBfX3ZhbHVlcyxcbiAgX19yZWFkLFxuICBfX3NwcmVhZCxcbiAgX19zcHJlYWRBcnJheXMsXG4gIF9fc3ByZWFkQXJyYXksXG4gIF9fYXdhaXQsXG4gIF9fYXN5bmNHZW5lcmF0b3IsXG4gIF9fYXN5bmNEZWxlZ2F0b3IsXG4gIF9fYXN5bmNWYWx1ZXMsXG4gIF9fbWFrZVRlbXBsYXRlT2JqZWN0LFxuICBfX2ltcG9ydFN0YXIsXG4gIF9faW1wb3J0RGVmYXVsdCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEluLFxuICBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSxcbiAgX19kaXNwb3NlUmVzb3VyY2VzLFxufTtcbiIsImltcG9ydCB7IGxvd2VyQ2FzZSB9IGZyb20gXCJsb3dlci1jYXNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIHNwbGl0UmVnZXhwPzogUmVnRXhwIHwgUmVnRXhwW107XG4gIHN0cmlwUmVnZXhwPzogUmVnRXhwIHwgUmVnRXhwW107XG4gIGRlbGltaXRlcj86IHN0cmluZztcbiAgdHJhbnNmb3JtPzogKHBhcnQ6IHN0cmluZywgaW5kZXg6IG51bWJlciwgcGFydHM6IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG59XG5cbi8vIFN1cHBvcnQgY2FtZWwgY2FzZSAoXCJjYW1lbENhc2VcIiAtPiBcImNhbWVsIENhc2VcIiBhbmQgXCJDQU1FTENhc2VcIiAtPiBcIkNBTUVMIENhc2VcIikuXG5jb25zdCBERUZBVUxUX1NQTElUX1JFR0VYUCA9IFsvKFthLXowLTldKShbQS1aXSkvZywgLyhbQS1aXSkoW0EtWl1bYS16XSkvZ107XG5cbi8vIFJlbW92ZSBhbGwgbm9uLXdvcmQgY2hhcmFjdGVycy5cbmNvbnN0IERFRkFVTFRfU1RSSVBfUkVHRVhQID0gL1teQS1aMC05XSsvZ2k7XG5cbi8qKlxuICogTm9ybWFsaXplIHRoZSBzdHJpbmcgaW50byBzb21ldGhpbmcgb3RoZXIgbGlicmFyaWVzIGNhbiBtYW5pcHVsYXRlIGVhc2llci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHNwbGl0UmVnZXhwID0gREVGQVVMVF9TUExJVF9SRUdFWFAsXG4gICAgc3RyaXBSZWdleHAgPSBERUZBVUxUX1NUUklQX1JFR0VYUCxcbiAgICB0cmFuc2Zvcm0gPSBsb3dlckNhc2UsXG4gICAgZGVsaW1pdGVyID0gXCIgXCIsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGxldCByZXN1bHQgPSByZXBsYWNlKFxuICAgIHJlcGxhY2UoaW5wdXQsIHNwbGl0UmVnZXhwLCBcIiQxXFwwJDJcIiksXG4gICAgc3RyaXBSZWdleHAsXG4gICAgXCJcXDBcIlxuICApO1xuICBsZXQgc3RhcnQgPSAwO1xuICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcblxuICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gIHdoaWxlIChyZXN1bHQuY2hhckF0KHN0YXJ0KSA9PT0gXCJcXDBcIikgc3RhcnQrKztcbiAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpIGVuZC0tO1xuXG4gIC8vIFRyYW5zZm9ybSBlYWNoIHRva2VuIGluZGVwZW5kZW50bHkuXG4gIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoXCJcXDBcIikubWFwKHRyYW5zZm9ybSkuam9pbihkZWxpbWl0ZXIpO1xufVxuXG4vKipcbiAqIFJlcGxhY2UgYHJlYCBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpdGggdGhlIHJlcGxhY2VtZW50IHZhbHVlLlxuICovXG5mdW5jdGlvbiByZXBsYWNlKGlucHV0OiBzdHJpbmcsIHJlOiBSZWdFeHAgfCBSZWdFeHBbXSwgdmFsdWU6IHN0cmluZykge1xuICBpZiAocmUgaW5zdGFuY2VvZiBSZWdFeHApIHJldHVybiBpbnB1dC5yZXBsYWNlKHJlLCB2YWx1ZSk7XG4gIHJldHVybiByZS5yZWR1Y2UoKGlucHV0LCByZSkgPT4gaW5wdXQucmVwbGFjZShyZSwgdmFsdWUpLCBpbnB1dCk7XG59XG4iLCIvKipcbiAqIExvY2FsZSBjaGFyYWN0ZXIgbWFwcGluZyBydWxlcy5cbiAqL1xuaW50ZXJmYWNlIExvY2FsZSB7XG4gIHJlZ2V4cDogUmVnRXhwO1xuICBtYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogU291cmNlOiBmdHA6Ly9mdHAudW5pY29kZS5vcmcvUHVibGljL1VDRC9sYXRlc3QvdWNkL1NwZWNpYWxDYXNpbmcudHh0XG4gKi9cbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEU6IFJlY29yZDxzdHJpbmcsIExvY2FsZT4gPSB7XG4gIHRyOiB7XG4gICAgcmVnZXhwOiAvXFx1MDEzMHxcXHUwMDQ5fFxcdTAwNDlcXHUwMzA3L2csXG4gICAgbWFwOiB7XG4gICAgICDEsDogXCJcXHUwMDY5XCIsXG4gICAgICBJOiBcIlxcdTAxMzFcIixcbiAgICAgIEnMhzogXCJcXHUwMDY5XCIsXG4gICAgfSxcbiAgfSxcbiAgYXo6IHtcbiAgICByZWdleHA6IC9cXHUwMTMwL2csXG4gICAgbWFwOiB7XG4gICAgICDEsDogXCJcXHUwMDY5XCIsXG4gICAgICBJOiBcIlxcdTAxMzFcIixcbiAgICAgIEnMhzogXCJcXHUwMDY5XCIsXG4gICAgfSxcbiAgfSxcbiAgbHQ6IHtcbiAgICByZWdleHA6IC9cXHUwMDQ5fFxcdTAwNEF8XFx1MDEyRXxcXHUwMENDfFxcdTAwQ0R8XFx1MDEyOC9nLFxuICAgIG1hcDoge1xuICAgICAgSTogXCJcXHUwMDY5XFx1MDMwN1wiLFxuICAgICAgSjogXCJcXHUwMDZBXFx1MDMwN1wiLFxuICAgICAgxK46IFwiXFx1MDEyRlxcdTAzMDdcIixcbiAgICAgIMOMOiBcIlxcdTAwNjlcXHUwMzA3XFx1MDMwMFwiLFxuICAgICAgw406IFwiXFx1MDA2OVxcdTAzMDdcXHUwMzAxXCIsXG4gICAgICDEqDogXCJcXHUwMDY5XFx1MDMwN1xcdTAzMDNcIixcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBMb2NhbGl6ZWQgbG93ZXIgY2FzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsZUxvd2VyQ2FzZShzdHI6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpIHtcbiAgY29uc3QgbGFuZyA9IFNVUFBPUlRFRF9MT0NBTEVbbG9jYWxlLnRvTG93ZXJDYXNlKCldO1xuICBpZiAobGFuZykgcmV0dXJuIGxvd2VyQ2FzZShzdHIucmVwbGFjZShsYW5nLnJlZ2V4cCwgKG0pID0+IGxhbmcubWFwW21dKSk7XG4gIHJldHVybiBsb3dlckNhc2Uoc3RyKTtcbn1cblxuLyoqXG4gKiBMb3dlciBjYXNlIGFzIGEgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb3dlckNhc2Uoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpO1xufVxuIiwiaW1wb3J0IHsgbm9DYXNlLCBPcHRpb25zIH0gZnJvbSBcIm5vLWNhc2VcIjtcblxuZXhwb3J0IHsgT3B0aW9ucyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZVRyYW5zZm9ybShpbnB1dDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG4gIGNvbnN0IGZpcnN0Q2hhciA9IGlucHV0LmNoYXJBdCgwKTtcbiAgY29uc3QgbG93ZXJDaGFycyA9IGlucHV0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoaW5kZXggPiAwICYmIGZpcnN0Q2hhciA+PSBcIjBcIiAmJiBmaXJzdENoYXIgPD0gXCI5XCIpIHtcbiAgICByZXR1cm4gYF8ke2ZpcnN0Q2hhcn0ke2xvd2VyQ2hhcnN9YDtcbiAgfVxuICByZXR1cm4gYCR7Zmlyc3RDaGFyLnRvVXBwZXJDYXNlKCl9JHtsb3dlckNoYXJzfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXNjYWxDYXNlVHJhbnNmb3JtTWVyZ2UoaW5wdXQ6IHN0cmluZykge1xuICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpbnB1dC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIG5vQ2FzZShpbnB1dCwge1xuICAgIGRlbGltaXRlcjogXCJcIixcbiAgICB0cmFuc2Zvcm06IHBhc2NhbENhc2VUcmFuc2Zvcm0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG4iLCJpbXBvcnQge1xuICBwYXNjYWxDYXNlLFxuICBwYXNjYWxDYXNlVHJhbnNmb3JtLFxuICBwYXNjYWxDYXNlVHJhbnNmb3JtTWVyZ2UsXG4gIE9wdGlvbnMsXG59IGZyb20gXCJwYXNjYWwtY2FzZVwiO1xuXG5leHBvcnQgeyBPcHRpb25zIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbENhc2VUcmFuc2Zvcm0oaW5wdXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICBpZiAoaW5kZXggPT09IDApIHJldHVybiBpbnB1dC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gcGFzY2FsQ2FzZVRyYW5zZm9ybShpbnB1dCwgaW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxDYXNlVHJhbnNmb3JtTWVyZ2UoaW5wdXQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICBpZiAoaW5kZXggPT09IDApIHJldHVybiBpbnB1dC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gcGFzY2FsQ2FzZVRyYW5zZm9ybU1lcmdlKGlucHV0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIHBhc2NhbENhc2UoaW5wdXQsIHtcbiAgICB0cmFuc2Zvcm06IGNhbWVsQ2FzZVRyYW5zZm9ybSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
|