IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IGludGVycHJldGF0aW9uIG9mICQgYXMgZW5kLW9mLWxpbmUgYW5jaG9yLgoKY2F0IDw8XEVPRiA+IG1nLXRlc3Q5LnBvCiMgR2VybWFuIHRyYW5zbGF0aW9ucyBmb3IgR05VIGdldHRleHQgcGFja2FnZS4KIyBDb3B5cmlnaHQgKEMpIDE5OTUsIDE5OTYsIDE5OTcsIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCm1zZ2lkICIiCm1zZ3N0ciAiIgoiUHJvamVjdC1JZC1WZXJzaW9uOiBHTlUgZ2V0dGV4dCAwLjExLXByZTFcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDAxLTEyLTA4IDIwOjMzKzAxMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDEtMTEtMDQgMTI6MjUrMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLYXJsIEVpY2h3YWxkZXIgPGtlQHN1c2UuZGU+XG4iCiJMYW5ndWFnZS1UZWFtOiBHZXJtYW4gPGRlQGxpLm9yZz5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCgojOiBhcmdtYXRjaC5jOjE0MQptc2dpZCAiaW52YWxpZCBhcmd1bWVudCIKbXNnc3RyICJ1bmf8bHRpZ2VzIEFyZ3VtZW50IgoKIzogYXJnbWF0Y2guYzoxNDIKbXNnaWQgImFtYmlndW91cyBhcmd1bWVudCIKbXNnc3RyICJtZWhyZGV1dGlnZXMgQXJndW1lbnQiCgojOiBhcmdtYXRjaC5jOjE2Mgptc2dpZCAiVmFsaWQgYXJndW1lbnRzIGFyZToiCm1zZ3N0ciAiR/xsdGlnZSBBcmd1bWVudGUgc2luZDoiCgojOiBjb3B5LWZpbGUuYzo2MAojLCBjLWZvcm1hdAptc2dpZCAiZXJyb3Igd2hpbGUgb3BlbmluZyBcIiVzXCIgZm9yIHJlYWRpbmciCm1zZ3N0ciAi1mZmbmVuIGRlciBEYXRlaSC7JXOrIHp1bSBMZXNlbiBmZWhsZ2VzY2hsYWdlbiIKCiM6IGNvcHktZmlsZS5jOjY3CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYW5ub3Qgb3BlbiBiYWNrdXAgZmlsZSBcIiVzXCIgZm9yIHdyaXRpbmciCm1zZ3N0ciAi1mZmbmVuIGRlciBTaWNoZXJ1bmdzZGF0ZWkguyVzqyB6dW0gU2NocmVpYmVuIGZlaGxnZXNjaGxhZ2VuIgoKIzogY29weS1maWxlLmM6ODAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHJlYWRpbmcgXCIlc1wiIgptc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIHZvbiC7JXOrIgoKIzogY29weS1maWxlLmM6ODYgY29weS1maWxlLmM6OTAKIywgYy1mb3JtYXQKbXNnaWQgImVycm9yIHdyaXRpbmcgXCIlc1wiIgptc2dzdHIgIkZlaGxlciBiZWltIFNjaHJlaWJlbiB2b24guyVzqyIKCiM6IGNvcHktZmlsZS5jOjkyCiMsIGMtZm9ybWF0Cm1zZ2lkICJlcnJvciBhZnRlciByZWFkaW5nIFwiJXNcIiIKbXNnc3RyICJGZWhsZXIgbmFjaCBkZW0gTGVzZW4gdm9uILslc6siCgojOiBlcnJvci5jOjExNQptc2dpZCAiVW5rbm93biBzeXN0ZW0gZXJyb3IiCm1zZ3N0ciAiVW5iZWthbm50ZXIgU3lzdGVtZmVobGVyIgoKIzogZXhlY3V0ZS5jOjE3MCBleGVjdXRlLmM6MjA1IHBpcGUtYmlkaS5jOjE1NiBwaXBlLWJpZGkuYzoxOTEgcGlwZS1pbi5jOjE2OQojOiBwaXBlLWluLmM6MjA1IHBpcGUtb3V0LmM6MTY5IHBpcGUtb3V0LmM6MjA1IHdhaXQtcHJvY2Vzcy5jOjEzNgojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyBmYWlsZWQiCm1zZ3N0ciAiU3VicHJvemVzcyAlcyBmZWhsZ2VzY2hsYWdlbiIKCiM6IGdldG9wdC5jOjY5MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJXMnIGlzIGFtYmlndW91c1xuIgptc2dzdHIgIiVzOiBPcHRpb24guyVzqyBpc3QgbWVocmRldXRpZ1xuIgoKIzogZ2V0b3B0LmM6NzE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LS0lc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlYyVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JWMlc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzM5IGdldG9wdC5jOjkxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JXOrIGVyd2FydGV0IGVpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzY4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiBgLS0lcydcbiIKbXNnc3RyICIlczogdW5iZWthbm50ZSBPcHRpb24guy0tJXOrXG4iCgojOiBnZXRvcHQuYzo3NzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB1bnJlY29nbml6ZWQgb3B0aW9uIGAlYyVzJ1xuIgptc2dzdHIgIiVzOiB1bmJla2FubnRlIE9wdGlvbiC7JWMlc6tcbiIKCiM6IGdldG9wdC5jOjc5OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGlsbGVnYWwgb3B0aW9uIC0tICVjXG4iCm1zZ3N0ciAiJXM6IHVuenVs5HNzaWdlIE9wdGlvbiAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODAxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogaW52YWxpZCBvcHRpb24gLS0gJWNcbiIKbXNnc3RyICIlczogdW5n/Gx0aWdlIE9wdGlvbiAtLSAlY1xuIgoKIzogZ2V0b3B0LmM6ODMxIGdldG9wdC5jOjk2MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgoiLS0+ICVjXG4iCm1zZ3N0ciAiIgoiJXM6IE9wdGlvbiBlcndhcnRldCBlaW4gQXJndW1lbnRcbiIKIi0tPiAlY1xuIgoKIzogZ2V0b3B0LmM6ODc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtVyAlcycgaXMgYW1iaWd1b3VzXG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LVcgJXOrIGlzdCBtZWhyZGV1dGlnXG4iCgojOiBnZXRvcHQuYzo4OTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBvcHRpb24gYC1XICVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LVcgJXOrIGVyd2FydGV0IGtlaW4gQXJndW1lbnRcbiIKCiM6IGphdmFjb21wLmM6NDY1Cm1zZ2lkICJKYXZhIGNvbXBpbGVyIG5vdCBmb3VuZCwgdHJ5IGluc3RhbGxpbmcgZ2NqIG9yIHNldCAkSkFWQUMiCm1zZ3N0ciAiIgoiSmF2YS1Db21waWxlciBuaWNodCBnZWZ1bmRlbjsgYml0dGUgu2djaqsgaW5zdGFsbGllcmVuIG9kZXIgJEpBVkFDIHNldHplbiIKCiM6IGphdmFleGVjLmM6NDA0Cm1zZ2lkICJKYXZhIHZpcnR1YWwgbWFjaGluZSBub3QgZm91bmQsIHRyeSBpbnN0YWxsaW5nIGdpaiBvciBzZXQgJEpBVkEiCm1zZ3N0ciAiIgoiVmlydHVlbGxlIEphdmEtTWFzY2hpbmUgbmljaHQgZ2VmdW5kZW47IGJpdHRlILtnY2qrIGluc3RhbGxpZXJlbiBvZGVyXG4iCiIkSkFWQSBzZXR6ZW4iCgojOiBvYnN0YWNrLmM6NDc0IHhlcnJvci5jOjc1IHhtYWxsb2MuYzo1Ngptc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKbXNnc3RyICJ2aXJ0dWVsbGVyIFNwZWljaGVyIGVyc2No9nBmdCIKCiM6IHBpcGUtYmlkaS5jOjExOSBwaXBlLWJpZGkuYzoxMjEgcGlwZS1pbi5jOjEzNiBwaXBlLW91dC5jOjEzNgptc2dpZCAiY2Fubm90IGNyZWF0ZSBwaXBlIgptc2dzdHIgIkVzIGlzdCBuaWNodCBt9mdsaWNoLCBlaW5lIFBpcGUgenUgZXJ6ZXVnZW4iCgojOiB3YWl0LXByb2Nlc3MuYzoxMTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzIHN1YnByb2Nlc3MiCm1zZ3N0ciAiU3VicHJvemVzcyAlcyIKCiM6IHdhaXQtcHJvY2Vzcy5jOjEyOQojLCBjLWZvcm1hdAptc2dpZCAiJXMgc3VicHJvY2VzcyBnb3QgZmF0YWwgc2lnbmFsIgptc2dzdHIgIlN1YnByb3plc3MgJXMgaGF0IGVpbiBmYXRhbGVzIFNpZ25hbCBlcmhhbHRlbiIKRU9GCgo6ICR7TVNHR1JFUD1tc2dncmVwfQpMQ19NRVNTQUdFUz1DIExDX0FMTD0gXAoke01TR0dSRVB9IC1LIC1lICdhcmd1bWVudCQnIC1vIG1nLXRlc3Q5LnRtcCBtZy10ZXN0OS5wbyA+IG1nLXRlc3Q5LmVyciAyPiYxCnJlc3VsdD0kPwpjYXQgbWctdGVzdDkuZXJyIHwgZ3JlcCAtdiAnd2FybmluZzogTG9jYWxlIGNoYXJzZXQnIHwgZ3JlcCAtdiAnXiAnCnRlc3QgJHJlc3VsdCA9IDAgfHwgeyBFeGl0IDE7IH0KTENfQUxMPUMgdHIgLWQgJ1xyJyA8IG1nLXRlc3Q5LnRtcCA+IG1nLXRlc3Q5Lm91dCB8fCBFeGl0IDEKCmNhdCA8PFxFT0YgPiBtZy10ZXN0OS5vawojIEdlcm1hbiB0cmFuc2xhdGlvbnMgZm9yIEdOVSBnZXR0ZXh0IHBhY2thZ2UuCiMgQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk3LCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lvbjogR05VIGdldHRleHQgMC4xMS1wcmUxXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwMS0xMi0wOCAyMDozMyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAxLTExLTA0IDEyOjI1KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogS2FybCBFaWNod2FsZGVyIDxrZUBzdXNlLmRlPlxuIgoiTGFuZ3VhZ2UtVGVhbTogR2VybWFuIDxkZUBsaS5vcmc+XG4iCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTFcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgoKIzogYXJnbWF0Y2guYzoxNDEKbXNnaWQgImludmFsaWQgYXJndW1lbnQiCm1zZ3N0ciAidW5n/Gx0aWdlcyBBcmd1bWVudCIKCiM6IGFyZ21hdGNoLmM6MTQyCm1zZ2lkICJhbWJpZ3VvdXMgYXJndW1lbnQiCm1zZ3N0ciAibWVocmRldXRpZ2VzIEFyZ3VtZW50IgoKIzogZ2V0b3B0LmM6NzE2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtLSVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7LS0lc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzIxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAlYyVzJyBkb2Vzbid0IGFsbG93IGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JWMlc6sgZXJ3YXJ0ZXQga2VpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6NzM5IGdldG9wdC5jOjkxMgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG9wdGlvbiBgJXMnIHJlcXVpcmVzIGFuIGFyZ3VtZW50XG4iCm1zZ3N0ciAiJXM6IE9wdGlvbiC7JXOrIGVyd2FydGV0IGVpbiBBcmd1bWVudFxuIgoKIzogZ2V0b3B0LmM6ODMxIGdldG9wdC5jOjk2MQojLCBjLWZvcm1hdAptc2dpZCAiIgoiJXM6IG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudFxuIgoiLS0+ICVjXG4iCm1zZ3N0ciAiIgoiJXM6IE9wdGlvbiBlcndhcnRldCBlaW4gQXJndW1lbnRcbiIKIi0tPiAlY1xuIgoKIzogZ2V0b3B0LmM6ODk2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3B0aW9uIGAtVyAlcycgZG9lc24ndCBhbGxvdyBhbiBhcmd1bWVudFxuIgptc2dzdHIgIiVzOiBPcHRpb24guy1XICVzqyBlcndhcnRldCBrZWluIEFyZ3VtZW50XG4iCkVPRgoKOiAke0RJRkY9ZGlmZn0KJHtESUZGfSBtZy10ZXN0OS5vayBtZy10ZXN0OS5vdXQKcmVzdWx0PSQ/CgpleGl0ICRyZXN1bHQK