IyBSdXNzaWFuIHRyYW5zbGF0aW9ucyBmb3IgUgojIPLV09PLycog0MXSxdfPxCDEzNEgUgojCiMgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBSIEZvdW5kYXRpb24KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUiBwYWNrYWdlLgojIENvcHlyaWdodCAoQykgMjAxNSBBbGV4ZXkgU2hpcHVub3YgPGRhY3R5bG9yaGl6YSBhdCBnbWFpbD4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogUiAzLjMuMFxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgoiUE9ULUNyZWF0aW9uLURhdGU6IDIwMjAtMDMtMjQgMTA6NTQtMDcwMFxuIgoiUE8tUmV2aXNpb24tRGF0ZTogMjAxOC0wNC0wNyAwMToxOS0wNTAwXG4iCiJMYXN0LVRyYW5zbGF0b3I6IEFsZXhleSBTaGlwdW5vdiA8ZGFjdHlsb3JoaXphQGdtYWlsLmNvbT5cbiIKIkxhbmd1YWdlLVRlYW06IFJ1c3NpYW5cbiIKIkxhbmd1YWdlOiBydVxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1LT0k4LVJcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MzsgcGx1cmFsPShuJTEwPT0xICYmIG4lMTAwIT0xMSA/IDAgOiBuJTEwPj0yICYmIG4iCiIlMTA8PTQgJiYgKG4lMTAwPDEwIHx8IG4lMTAwPj0yMCkgPyAxIDogMik7XG4iCiJYLUdlbmVyYXRvcjogUG9lZGl0IDEuOC43LjFcbiIKCiM6IGlvLmM6MzI5IGlvLmM6MzMzIGlvLmM6MzQzIGlvLmM6NTc0IGlvLmM6Nzc0IGlvLmM6ODI3IGlvLmM6ODQwIGlvLmM6ODQ0CiM6IGlvLmM6ODUwIGlvLmM6ODUxIGlvLmM6MTA5NyBpby5jOjEwOTggaW8uYzoxMTAwIGlvLmM6MTEwMSBpby5jOjExMDIKIzogaW8uYzoxMTAzIGlvLmM6MTEwNCBpby5jOjExMDUgc3R1YnMuYzo0NyBzdHVicy5jOjY3IHdpbmRvd3MvZGlhbG9ncy5jOjE2OQojOiB3aW5kb3dzL2RpYWxvZ3MuYzoxOTQgd2luZG93cy9kaWFsb2dzLmM6MTk3IHdpbmRvd3MvZGlhbG9ncy5jOjI0MQojOiB3aW5kb3dzL2RpYWxvZ3MuYzoyNzggd2luZG93cy9kaWFsb2dzLmM6Mjg5IHdpbmRvd3MvZGlhbG9ncy5jOjMxMwojOiB3aW5kb3dzL2RpYWxvZ3MuYzozMjEgd2luZG93cy91dGlsLmM6MTE3IHdpbmRvd3Mvd2lkZ2V0cy5jOjc5CiM6IHdpbmRvd3Mvd2lkZ2V0cy5jOjgyIHdpbmRvd3Mvd2lkZ2V0cy5jOjg3CiMsIGMtZm9ybWF0Cm1zZ2lkICJpbnZhbGlkICclcycgYXJndW1lbnQiCm1zZ3N0ciAizsXQ0sHXyczYztnKIMHSx9XNxc7UICclcyciCgojOiBpby5jOjM1MiBpby5jOjgzNwptc2dpZCAiaW52YWxpZCBxdW90ZSBzeW1ib2wgc2V0Igptc2dzdHIgIs7F0NLB18nM2M7B0SDV09TBzs/Xy8Eg08nN18/MwSDLwdfZ3sXLIgoKIzogaW8uYzozNjQgaW8uYzo4NjAgaW8uYzoxMDg1Cm1zZ2lkICJjYW5ub3Qgb3BlbiB0aGUgY29ubmVjdGlvbiIKbXNnc3RyICLOxSDNz8fVIM/Uy9LZ1Ngg08/FxMnOxc7JxSIKCiM6IGlvLmM6MzY3IGlvLmM6MzcxCm1zZ2lkICJjYW5ub3QgcmVhZCBmcm9tIHRoaXMgY29ubmVjdGlvbiIKbXNnc3RyICLOxSDNz8fVINDSz97J1MHU2CDJ2iDTz8XEyc7FzsnRIgoKIzogaW8uYzo0MTggaW8uYzo0MzYKIywgYy1mb3JtYXQKbXNnaWQgInF1b3RlZCBzdHJpbmcgb24gbGluZSAlZCB0ZXJtaW5hdGVkIGJ5IEVPRiIKbXNnc3RyICLawcvB19nexc7OwdEg0M/E09TSz8vBINPU0s/LySAlZCDawcvBzt7J18HF1NPRIEVPRiIKCiM6IGlvLmM6NTcwCm1zZ2lkICJ0aGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvZiBtb2RlIGNoYXJhY3RlciIKbXNnc3RyICLQxdLX2cogwdLH1c3FztQgxM/M1sXOIMLZ1Ngg1MXL09TP19nNIgoKIzogaW8uYzo2MDAKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJ251bWVyYWxzJyBzdHJpbmc6IFwiJXNcIiIKbXNnc3RyICLOxdDSwdfJzNjOwdEg09TSz8vBICdudW1lcmFscyc6IFwiJXNcIiIKCiM6IGlvLmM6Nzc2CiMsIGMtZm9ybWF0Cm1zZ2lkICJTZWxlY3Rpb246ICIKbXNnc3RyICL32cLP0joiCgojOiBpby5jOjg3MCBpby5jOjg4Ngptc2dpZCAiY2Fubm90IGFsbG9jYXRlIGJ1ZmZlciBpbiAncmVhZFRhYmxlSGVhZCciCm1zZ3N0ciAizsUgzc/H1SDSwdrNxdPUydTYIMLVxsXSINcgJ3JlYWRUYWJsZUhlYWQnIgoKIzogaW8uYzo5MDAKbXNnaWQgIlxcIGZvbGxvd2VkIGJ5IEVPRiIKbXNnc3RyICJcXCDawdfF0tvBxdTT0SBFT0YiCgojOiBpby5jOjk1MyBpby5jOjk1OAojLCBjLWZvcm1hdAptc2dpZCAiaW5jb21wbGV0ZSBmaW5hbCBsaW5lIGZvdW5kIGJ5IHJlYWRUYWJsZUhlYWRlciBvbiAnJXMnIgptc2dzdHIgInJlYWRUYWJsZUhlYWRlciDOwdvFzCDOxdDPzM7VwCDQz9PMxcTOwMAg09TSz8vVINcgJyVzJyIKCiM6IGlvLmM6MTAxNgptc2dpZCAiaW5kZXggb3V0IG9mIHJhbmdlIgptc2dzdHIgIsnOxMXL0yDXzsUg0NLFxMXMz9ciCgojOiBpby5jOjEwNTMKIywgYy1mb3JtYXQKbXNnaWQgIlByb2JsZW0gY2xvc2luZyBjb25uZWN0aW9uOiAgJXMiCm1zZ3N0ciAiIgoKIzogaW8uYzoxMDU1CiMsIGZ1enp5Cm1zZ2lkICJQcm9ibGVtIGNsb3NpbmcgY29ubmVjdGlvbiIKbXNnc3RyICInZmlsZScgLS0g3NTPIM7FINPPxcTJzsXOycUiCgojOiBpby5jOjEwNzgKbXNnaWQgIidmaWxlJyBpcyBub3QgYSBjb25uZWN0aW9uIgptc2dzdHIgIidmaWxlJyAtLSDc1M8gzsUg08/FxMnOxc7JxSIKCiM6IGlvLmM6MTA4MQptc2dpZCAiY2Fubm90IHdyaXRlIHRvIHRoaXMgY29ubmVjdGlvbiIKbXNnc3RyICLOxSDNz8fVINDJ08HU2CDXINzUzyDTz8XEyc7FzsnFIgoKIzogaW8uYzoxMTExCm1zZ2lkICInZGVjJyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciIKbXNnc3RyICInZGVjJyDEz8zWxc4gwtnU2CDPxM7JzSDTyc3Xz8zPzSIKCiM6IGlvLmM6MTEzNwojLCBmdXp6eSwgYy1mb3JtYXQKbXNnaWQgImNvcnJ1cHQgZGF0YSBmcmFtZSAtLSBsZW5ndGggb2YgY29sdW1uICVkIGRvZXMgbm90IG1hdGNoIG5yb3dzIgptc2dzdHIgIiIKItDP19LF1sTFzs7B0SDUwcLMycPBIMTBzs7ZyCAtLSDEzMnOwSDLz8zPzsvJICVkIM7FINPPz9TXxdTT1NfVxdQg09TSz8vBzSIKCiM6IGlvLmM6MTE2OAojLCBjLWZvcm1hdAptc2dpZCAiY29sdW1uICVzIGNsYWltcyB0byBiZSBhIGZhY3RvciBidXQgZG9lcyBub3QgaGF2ZSBudW1lcmljIGNvZGVzIgptc2dzdHIgIsvPzM/Oy8EgJXMg097J1MHF1CDTxcLRIMbBy9TP0s/NLCDOzyDVIM7FxSDOxdQg3snTzM/X2cggy8/Ez9ciCgojOiBpby5jOjExODYKIywgZnV6enkKbXNnaWQgImNvcnJ1cHQgbWF0cml4IC0tIGRpbXMgZG8gbm90IG1hdGNoIGxlbmd0aCIKbXNnc3RyICLQz9fSxdbExc7OwdEgzcHU0snDwSAtLSDEzMnO2SDJ2s3F0sXOycogzsUg08jPxNHU09EiCgojOiBzdHVicy5jOjU2Cm1zZ2lkICInc2F2ZWhpc3RvcnknIGNhbiBvbmx5IGJlIHVzZWQgaW4gUmd1aSBhbmQgUnRlcm0iCm1zZ3N0ciAiJ3NhdmVoaXN0b3J5JyDNz9bOzyDJ09DPzNjaz9fB1Ngg1M/M2MvPINcgUmd1aSDJIFJ0ZXJtIgoKIzogc3R1YnMuYzo3Mwptc2dpZCAiJ2xvYWRoaXN0b3J5JyBjYW4gb25seSBiZSB1c2VkIGluIFJndWkgYW5kIFJ0ZXJtIgptc2dzdHIgIidsb2FkaGlzdG9yeScgzc/Wzs8gydPQz8zY2s/XwdTYINTPzNjLzyBSZ3VpIMkgUnRlcm0iCgojOiBzdHVicy5jOjg1Cm1zZ2lkICJpbnZhbGlkIHRpbWVzdGFtcCIKbXNnc3RyICLOxdDSwdfJzNjOwdEgxMHUwSDJINfSxc3RIgoKIzogc3R1YnMuYzoxNTEgc3R1YnMuYzoxNTkKbXNnaWQgIlgxMSBkYXRhZW50cnkgY2Fubm90IGJlIGxvYWRlZCIKbXNnc3RyICLUwcLMycPVIFgxMSDOxczY2tEg2sHH0tXaydTYIgoKIzogc3R1YnMuYzoxNTUgc3R1YnMuYzoxODQgc3R1YnMuYzoxOTAKbXNnaWQgIlgxMSBpcyBub3QgYXZhaWxhYmxlIgptc2dzdHIgIlgxMSDOxcTP09TV0M7BIgoKIzogc3R1YnMuYzoyNDggc3R1YnMuYzoyNTEKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJyVzJyBzcGVjaWZpY2F0aW9uIgptc2dzdHIgIs7F0NLB18nM2M7PxSDP0NLFxMXMxc7JxSAnJXMnIgoKIzogc3R1YnMuYzoyNTQKIywgYy1mb3JtYXQKbXNnaWQgIiclcycgY29udGFpbnMgbWlzc2luZyB2YWx1ZXMiCm1zZ3N0ciAiIgoKIzogdXRpbHMuYzo4NQptc2dpZCAiJ2hvc3RuYW1lJyBtdXN0IGJlIGEgY2hhcmFjdGVyIHZlY3RvciBvZiBsZW5ndGggMSIKbXNnc3RyICInaG9zdG5hbWUnIMTPzNbOzyDC2dTYINTFy9PUz9fZzSDXxcvUz9LPzSDEzMnOz8ogMSIKCiM6IHV0aWxzLmM6OTEKIywgYy1mb3JtYXQKbXNnaWQgIm5zbCgpIHdhcyB1bmFibGUgdG8gcmVzb2x2ZSBob3N0ICclcyciCm1zZ3N0ciAibnNsKCkgzsUg083PxyDSwdrSxdvJ1NggyM/T1CAnJXMnIgoKIzogdXRpbHMuYzo5OAptc2dpZCAidW5rbm93biBmb3JtYXQgcmV0dXJuZWQgYnkgJ2dldGhvc3RieW5hbWUnIgptc2dzdHIgIidnZXRob3N0YnluYW1lJyDXxdLO1czBIM7F0NLB18nM2M7ZyiDGz9LNwdQiCgojOiB1dGlscy5jOjEwNwptc2dpZCAibnNsKCkgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIgptc2dzdHIgIm5zbCgpIM7FINDPxMTF0tbJ18HF1NPRIM7BINzUz8og0MzB1MbP0s3FIgoKIzogd2luZG93cy9kaWFsb2dzLmM6MTgxCm1zZ2lkICJ1bmtub3duIHR5cGUiCm1zZ3N0ciAizsXJ2tfF09TO2cog1MnQIgoKIzogd2luZG93cy9kaWFsb2dzLmM6MjEzIHdpbmRvd3MvZGlhbG9ncy5jOjIzNyB3aW5kb3dzL2RpYWxvZ3MuYzoyNzUKIzogd2luZG93cy9kaWFsb2dzLmM6MzEwCm1zZ2lkICJtZW51IGZ1bmN0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIHRoZSBHVUkiCm1zZ3N0ciAixtXOy8PJySDNxc7AIM3P1s7PIMnT0M/M2NrP18HU2CDUz8zYy88g1yBHVUkiCgojOiB3aW5kb3dzL2RpYWxvZ3MuYzoyNDUKIywgYy1mb3JtYXQKbXNnaWQgInVuYWJsZSB0byByZXRyaWV2ZSBpdGVtcyBmb3IgJXMgKCVzKSIKbXNnc3RyICLOxSDNz8fVINDPzNXeydTYINzMxc3FztTZIMTM0SAlcyAoJXMpIgoKIzogd2luZG93cy9kaWFsb2dzLmM6MjgzCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1bmFibGUgdG8gYWRkIG1lbnUgKCVzKSIKbXNnc3RyICLOxSDNz8fVIMTPwsHXydTYIM3FzsAgKCVzKSIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjI5NQojLCBjLWZvcm1hdAptc2dpZCAidW5hYmxlIHRvIGFkZCBtZW51IGl0ZW0gKCVzKSIKbXNnc3RyICLOxSDNz8fVIMTPwsHXydTYINzMxc3FztQgzcXOwCAoJXMpIgoKIzogd2luZG93cy9kaWFsb2dzLmM6MzE4Cm1zZ2lkICJtZW51IGRvZXMgbm90IGV4aXN0Igptc2dzdHIgIs3FzsAgzsUg09XdxdPU19XF1CIKCiM6IHdpbmRvd3MvZGlhbG9ncy5jOjMyNQojLCBjLWZvcm1hdAptc2dpZCAidW5hYmxlIHRvIGRlbGV0ZSBtZW51IGl0ZW0gKCVzKSIKbXNnc3RyICLOxSDNz8fVINXEwczJ1Ngg3MzFzcXO1CDNxc7AICglcykiCgojOiB3aW5kb3dzL3JlZ2lzdHJ5LmM6NzMgd2luZG93cy9yZWdpc3RyeS5jOjI0OCB3aW5kb3dzL3JlZ2lzdHJ5LmM6MjUxCiM6IHdpbmRvd3MvcmVnaXN0cnkuYzoyNTQKIywgYy1mb3JtYXQKbXNnaWQgImludmFsaWQgJyVzJyB2YWx1ZSIKbXNnc3RyICLOxdDSwdfJzNjOz8Ug2s7B3sXOycUgJyVzJyIKCiM6IHdpbmRvd3MvcmVnaXN0cnkuYzoyNjYKIywgYy1mb3JtYXQKbXNnaWQgIlJlZ2lzdHJ5IGtleSAnJWxzJyBub3QgZm91bmQiCm1zZ3N0ciAi68zA3iDSxcXT1NLBICclbHMnIM7FIM7BysTFziIKCiM6IHdpbmRvd3MvdXRpbC5jOjQyCm1zZ2lkICJ1bnN1cHBvcnRlZCB2ZXJzaW9uIG9mIFdpbmRvd3MiCm1zZ3N0ciAizsXQz8TExdLWydfBxc3B0SDXxdLTydEgV2luZG93cyIKCiM6IHdpbmRvd3MvdXRpbC5jOjI4MQptc2dpZCAiYXJndW1lbnQgbXVzdCBiZSBhIGNoYXJhY3RlciB2ZWN0b3Igb3IgYSByYXcgdmVjdG9yIgptc2dzdHIgIsHSx9XNxc7UIMTPzNbFziDC2dTYINTFy9PUz9fZzSDXxcvUz9LPzSDJzMkg0NLP09TZzSDXxcvUz9LPzSIKCiM6IHdpbmRvd3MvdXRpbC5jOjMyMAptc2dpZCAidW5hYmxlIHRvIG9wZW4gdGhlIGNsaXBib2FyZCIKbXNnc3RyICLOxSDNz8fVIM/Uy9LZ1NggwtXGxdIgz8LNxc7BIgoKIzogd2luZG93cy91dGlsLmM6MzI1Cm1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdG8gdGhlIGNsaXBib2FyZCIKbXNnc3RyICLOxSDNz8fVINDJ08HU2CDXIMLVxsXSIM/CzcXOwSIKCiM6IHdpbmRvd3MvdXRpbC5jOjQwNAptc2dpZCAiJ3RpdGxlJyBtdXN0IGJlIGEgY2hhcmFjdGVyIHN0cmluZyIKbXNnc3RyICIndGl0bGUnIMTPzNbFziDC2dTYINTFy9PUz9fPyiDT1NLPy8/KIgoKIzogd2luZG93cy91dGlsLmM6NDEzCm1zZ2lkICIndGV4dCcgbXVzdCBiZSBhIGNoYXJhY3RlciBzdHJpbmciCm1zZ3N0ciAiJ3RleHQnIMTPzNbFziDC2dTYINTFy9PUz9fPyiDT1NLPy8/KIgoKIzogd2luZG93cy91dGlsLmM6NDUyCiMsIGMtZm9ybWF0Cm1zZ2lkICInJXMnIG11c3QgYmUgbGVuZ3RoIDEiCm1zZ3N0ciAiJyVzJyDEz8zWxc4gwtnU2CDEzMnOz8ogMSIKCiM6IHdpbmRvd3MvdXRpbC5jOjU2NQojLCBjLWZvcm1hdAptc2dpZCAiJyVzJyBtdXN0IGJlIGEgbGlzdCIKbXNnc3RyICInJXMnIMTPzNbFziDC2dTYINPQydPLz80iCgojOiB3aW5kb3dzL3V0aWwuYzo1NjkKIywgYy1mb3JtYXQKbXNnaWQgIiclcycgZWxlbWVudCAlZCBpcyBub3QgYSB3aW5kb3cgaGFuZGxlIgptc2dzdHIgIiclcycg3MzFzcXO1CDJ2iAlZCAtLSDOxSDExdPL0snQ1M/SIM/LzsEiCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxMDkKbXNnaWQgIlNlbGVjdCBvbmUgb3IgbW9yZSIKbXNnc3RyICL32cLF0snUxSDPxMnOIMnMySDCz8zY28UiCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxMDkKbXNnaWQgIlNlbGVjdCBvbmUiCm1zZ3N0ciAi99nCxdLJ1MUgz8TJziIKCiM6IHdpbmRvd3Mvd2lkZ2V0cy5jOjE4MyB3aW5kb3dzL3dpZGdldHMuYzoyNTEKbXNnaWQgIidkZWZhdWx0JyBtdXN0IGJlIGEgY2hhcmFjdGVyIHN0cmluZyIKbXNnc3RyICInZGVmYXVsdCcgxM/M1sXOIMLZ1Ngg1MXL09TP18/KINPU0s/Lz8oiCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxODUgd2luZG93cy93aWRnZXRzLmM6MjUzCm1zZ2lkICInZGVmYXVsdCcgaXMgb3ZlcmxvbmciCm1zZ3N0ciAiJ2RlZmF1bHQnINPMydvLz80gxMzJzs7ZyiIKCiM6IHdpbmRvd3Mvd2lkZ2V0cy5jOjE4OSB3aW5kb3dzL3dpZGdldHMuYzoyNTcKbXNnaWQgIidjYXB0aW9uJyBtdXN0IGJlIGEgY2hhcmFjdGVyIHN0cmluZyIKbXNnc3RyICInY2FwdGlvbicgxM/M1sXOIMLZ1Ngg1MXL09TP18/KINPU0s/Lz8oiCgojOiB3aW5kb3dzL3dpZGdldHMuYzoxOTEKbXNnaWQgIidtdWx0aScgbXVzdCBiZSBhIGxvZ2ljYWwgdmFsdWUiCm1zZ3N0ciAiJ211bHRpJyDEz8zWxc4gwtnU2CDMz8fJ3sXTy8nNIgoKIzogd2luZG93cy93aWRnZXRzLmM6MTkzCm1zZ2lkICInZmlsdGVyaW5kZXgnIG11c3QgYmUgYW4gaW50ZWdlciB2YWx1ZSIKbXNnc3RyICInZmlsdGVyaW5kZXgnIMTPzNbFziDC2dTYIMPFzM/eydPMxc7O2c0iCg==