LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwMyBTeWx2YWluIFBldHJlb2xsZQogKiBDb3B5cmlnaHQgMjAwNyBKb25hdGhhbiBFcm5zdAogKiAKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiQWlkZSBkJ0FUVFJJQlxuIgogIFdDTURfQ0FMTCwKIkNBTEwgPGZpY2hpZXJiYXRjaD4gc2VydCDgIGFwcGVsZXIgdW4gZmljaGllciBiYXRjaFxuXApkZXB1aXMgdW4gYXV0cmUgZmljaGllciBiYXRjaC4gUXVhbmQgbGUgZmljaGllciBiYXRjaCBzb3J0LCBsZSBjb250cvRsZSByZXZpZW50XG5cCmF1IGZpY2hpZXIgcXVpIGwnYSBhcHBlbOkuIExhIGNvbW1hbmRlIENBTEwgZG9pdCDqdHJlIHN1aXZpZSBkZXMgcGFyYW3odHJlc1xuXApkZSBsYSBwcm9j6WR1cmUgYXBwZWzpZS5cblwKXG5cCkxlcyBjaGFuZ2VtZW50cyBkZSBy6XBlcnRvaXJlIGNvdXJhbnQsIGRlIHZhcmlhYmxlcyBkJ2Vudmlyb25tZW50IGV0Yy4gZmFpdHNcblwKZGFucyB1bmUgcHJvY+lkdXJlIGFwcGVs6WUgc29udCB0cmFuc21pcyDgIGwnYXBwZWxhbnQuXG4iCgogIFdDTURfQ0QsICAgICAiQ2hhbmdlIGxlIHLpcGVydG9pcmUgY291cmFudCBwYXIgZOlmYXV0XG4iCiAgV0NNRF9DSERJUiwgICJDaGFuZ2UgbGUgculwZXJ0b2lyZSBjb3VyYW50IHBhciBk6WZhdXRcbiIKCiAgV0NNRF9DTFMsCiJDTFMgZWZmYWNlIGwn6WNyYW5cbiIKCiAgV0NNRF9DT1BZLCAgICJBaWRlIGRlIENPUFlcbiIKICBXQ01EX0NUVFksICAgIkFpZGUgZGUgQ1RUWVxuIgogIFdDTURfREFURSwgICAiQWlkZSBkZSBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJBaWRlIGRlIERFTFxuIgogIFdDTURfRElSLCAgICAiQWlkZSBkZSBESVJcbiIKCiAgV0NNRF9FQ0hPLAoiRUNITyA8Y2hh7m5lPiBhZmZpY2hlIDxjaGHubmU+IHN1ciBsYSBjb25zb2xlIGNvdXJhbnRlLlxuXApcblwKRUNITyBPTiBwcm92b3F1ZSBsJ2FmZmljaGFnZSBkZSB0b3V0ZXMgbGVzIGNvbW1hbmRlcyBzdXIgbGEgY29uc29sZVxuXAphdmFudCBsZXVyIGV46WN1dGlvbi5cblwKXG5cCkVDSE8gT0ZGIGFubnVsZSBsJ2VmZmV0IGRlIHRvdXQgcHLpY+lkZW50IEVDSE8gT04gKEVDSE8gZXN0IE9GRiBwYXJcblwKZOlmYXV0KS4gT24gcGV1dCBlbXDqY2hlciBsJ2FmZmljaGFnZSBkZSBFQ0hPIE9GRiBlbiBsZSBmYWlzYW50XG5cCnBy6WPpZGVyIGQndW4gc2lnbmUgQC5cbiIKCiAgV0NNRF9FUkFTRSwgICJBaWRlIGRlIEVSQVNFXG4iCgogIFdDTURfRk9SLAoiTGEgY29tbWFuZGUgRk9SIHNlcnQg4CBleOljdXRlciB1bmUgY29tbWFuZGUgcG91ciB1biBncm91cGUgZGUgZmljaGllcnMuXG5cClxuXApTeW50YXhloDogRk9SICV2YXJpYWJsZSBJTiAoZ3JvdXBlKSBETyBjb21tYW5kZVxuXApcblwKTGEgbuljZXNzaXTpIGRlIGRvdWJsZXIgbGUgc2lnbmUgJyUnIGVuIHV0aWxpc2FudCBGT1IgZGFucyB1biBmaWNoaWVyIGJhdGNoXG5cCm4nZXhpc3RlIHBhcyBkYW5zIGNtZC5cbiIKCiAgV0NNRF9HT1RPLAoiTGEgY29tbWFuZGUgR09UTyB0cmFuc2bocmUgbCdleOljdXRpb24g4CB1biBhdXRyZSBsYWJlbCBkYW5zIHVuXG5cCmZpY2hpZXIgYmF0Y2guXG5cClxuXApMZSBsYWJlbCBjaWJsZSBkZSBHT1RPIHBldXQg6nRyZSBsb25nIGRlIDI1NSBjYXJhY3TocmVzXG5cCm1haXMgbmUgcGV1dCBpbmNsdXJlIGQnZXNwYWNlcyAoY2VjaSBlc3QgZGlmZulyZW50IGQnYXV0cmVzIHN5c3TobWVzXG5cCmQnZXhwbG9pdGF0aW9uKS4gU2kgZGV1eCBvdSBwbHVzaWV1cnMgbGFiZWxzIGlkZW50aXF1ZXMgc29udCBkYW5zIGxlIG3qbWUgZmljaGllclxuXApzZXVsIGxlIHByZW1pZXIgc2VyYSBleOljdXTpLiBFc3NheWVyIGRlIHNhdXRlciDgIHVuIGxhYmVsIG5vbi1leGlzdGFudFxuXAp0ZXJtaW5lIGwnZXjpY3V0aW9uIGR1IGZpY2hpZXIgYmF0Y2ggLlxuXApcblwKR09UTyBuJ2EgcGFzIGQnZWZmZXQgc2kgdXRpbGlz6SBpbnRlcmFjdGl2ZW1lbnQuXG4iCgogIFdDTURfSEVMUCwgICAiQWZmaWNoZSB1bmUgYnLodmUgYWlkZSBzdXIgbGVzIGNvbW1hbmRlcyBpbnRlcm5lcyBkZSBDTURcbiIKCiAgV0NNRF9JRiwKIklGIGVzdCB1dGlsaXPpIHBvdXIgZXjpY3V0ZXIgdW5lIGNvbW1hbmRlIGRlIGZh529uIGNvbmRpdGlvbm5lbGxlLlxuXApcblwKU3ludGF4ZaA6CUlGIFtOT1RdIEVYSVNUIG5vbWZpY2hpZXIgY29tbWFuZGVcblwKCQlJRiBbTk9UXSBjaGHubmUxPT1jaGHubmUyIGNvbW1hbmRlXG5cCgkJSUYgW05PVF0gRVJST1JMRVZFTCBub21icmUgY29tbWFuZGVcblwKXG5cCkRhbnMgbGEgZGV1eGnobWUgZm9ybWUgZGUgbGEgY29tbWFuZGUsIGNoYe5uZTEgZXQgY2hh7m5lMiBkb2l2ZW50IOp0cmVcblwKZW50cmUgZ3VpbGxlbWV0cyBkb3VibGVzLiBMYSBjb21wYXJhaXNvbiBlc3QgaW5zZW5zaWJsZSDgIGxhIGNhc3NlLlxuIgoKICBXQ01EX0xBQkVMLCAgIkxBQkVMIHNlcnQg4CBtb2RpZmllciBsZSBub20gZGUgdm9sdW1lIGQndW4gZGlzcXVlLlxuXApcblwKU3ludGF4ZaA6IExBQkVMIFtsZWN0ZXVyOl1cblwKTGEgY29tbW5hbmRlIGRlbWFuZGVyYSBsZSBub3V2ZWF1IG5vbSBkZSB2b2x1bWUgcG91ciBsZSBsZWN0ZXVyIGRvbm7pLlxuXApWb3VzIHBvdXZleiBhZmZpY2hlciBsZSBub20gZGUgdm9sdW1lIGF2ZWMgbGEgY29tbWFuZGUgVk9MLlxuIgoKICBXQ01EX01ELCAgICAgIkNy6WUgIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgogIFdDTURfTUtESVIsICAiQ3LpZSAgbGUgculwZXJ0b2lyZSBkb25u6SBlbiBwYXJhbeh0cmUuXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSBk6XBsYWNlIHVuIGZpY2hpZXIsIHVuIGdyb3VwZSBkZSBmaWNoaWVycyBvdSB1biBy6XBlcnRvaXJlXG5cCuAgdW4gYXV0cmUgZW5kcm9pdC4gU2kgbCdvYmpldCBk6XBsYWPpIGVzdCB1biBy6XBlcnRvaXJlIGFsb3JzXG5cCnRvdXMgbGVzIGZpY2hpZXJzIGV0IHNvdXMtculwZXJ0b2lyZXMgZGUgbCdvYmpldCBzb250IOlnYWxlbWVudCBk6XBsYWPpcy5cblwKTU9WRSDpY2hvdWUgc2kgbCdhbmNpZW4gZXQgbGUgbm91dmVsIGVtcGxhY2VtZW50IHNvbnQgc3VyIGRlcyBsZWN0ZXVycyBET1MgZGlmZulyZW50cy5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCBhZmZpY2hlIG91IGNoYW5nZSBsZSBjaGVtaW4gZGUgcmVjaGVyY2hlIGRlIGNtZC5cblwKRW50cmVyIFBBVEggYWZmaWNoZXJhIGxlIHLpZ2xhZ2UgY291cmFudCBkZSBQQVRIIChhdSBk6XBhcnRcblwKYydlc3QgbGEgdmFsZXVyIGRvbm7pZSBkYW5zIGxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiB3aW5lKS4gUG91ciBjaGFuZ2VyXG5cCmxlIHLpZ2xhZ2UsIGZhaXRlcyBzdWl2cmUgbGEgY29tbWFuZGUgUEFUSCBkZSBsYSBub3V2ZWxsZSB2YWxldXIuXG5cCklsIGVzdCBwb3NzaWJsZSBkZSBtb2RpZmllciBsZSBQQVRIIGVuIHV0aWxpc2FudCBsYSB2YXJpYWJsZSBkJ2Vudmlyb25tZW50IFBBVEgsXG5cCnBhciBleGVtcGxlIDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0UgYWZmaWNoZSB1biBtZXNzYWdlIHN1ciBsJ+ljcmFuIDogJ1ByZXNzZXogRW50cullIHBvdXIgY29udGludWVyJ1xuXApldCBhdHRlbmQgcXVlIGwndXRpbGlzYXRldXIgcHJlc3NlIGxhIHRvdWNoZSBFbnRy6WUuIFBBVVNFIGVzdCBzdXJ0b3V0IHV0aWxpc+kgZGFuc1xuXApsZXMgZmljaGllcnMgYmF0Y2hzIHBvdXIgcGVybWV0dHJlIOAgbCd1dGlsaXNhdGV1ciBkZSBsaXJlIGxhIHNvcnRpZSBkZVxuXApsYSBkZXJuaehyZSBjb21tYW5kZSBhdmFudCBxdSdlbGxlIG5lIGRpc3BhcmFpc3NlIGRlIGwn6WNyYW4uXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHLoZ2xlIGwnaW52aXRlIGRlIGNvbW1hbmRlLlxuXApcblwKTGEgY2hh7m5lIHN1aXZhbnQgbGEgY29tbWFuZGUgUFJPTVBUIChhbmQgdGhlIHNwYWNlIGltbWVkaWF0ZWx5IGFmdGVyKVxuXAphcHBhcmHudCBhdSBk6WJ1dCBkZSBsYSBsaWduZSBxdWFuZCBjbWQgYXR0ZW5kIHVuZSBlbnRy6WUgdGV4dGUuXG5cClxuXApMZXMgY2hh7m5lcyBkZSBjYXJhY3TocmVzIHN1aXZhbnRlcyBvbnQgdW5lIHNpZ25pZmljYXRpb24gc3DpY2lhbGUgOlxuXApcblwKJCQgICAgU2lnbmUgRG9sbGFyICAgICAgICAkXyAgICBTYXV0IGRlIGxpZ25lICAgICAgICRiICAgIFNpZ25lIFBpcGUgKHwpXG5cCiRkICAgIERhdGUgY291cmFudGUgICAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICBTaWduZSA+XG5cCiRsICAgIFNpZ25lIDwgICAgICAgICAgICAgJG4gICAgTGVjdGV1ciBjb3VyYW50ICAgICAkcCAgICBS6XBlcnRvaXJlIGNvdXJhbnRcblwKJHEgICAgU2lnbmUgPSAgICAgICAgICAgICAkdCAgICBIZXVyZSBjb3VyYW50ZSAgICAgICR2ICAgIFZlcnNpb24gZGUgY21kXG5cClxuXApOb3RleiBxdSdlbnRyZXIgbGEgY29tbWFuZGUgUFJPTVBUIHNhbnMgdGV4dGUgZCdpbnZpdGUgcmVtZXQgbCdpbnZpdGVcblwK4CBsYSB2YWxldXIgcGFyIGTpZmF1dCwgcXVpIGVzdCBsYSBsZXR0cmUgZHUgbGVjdGV1ciBjb3VyYW50IHN1aXZpZSBkZVxuXApzb24gculwZXJ0b2lyZSBjb3VyYW50IGV0IGQndW4gc2lnbmUgcGx1cy1ncmFuZC1xdWUgKD4pLlxuXAooVGVsIHF1ZSBsYSBjb21tYW5kZSBQUk9NUFQgJHAkZykuXG5cClxuXApMJ2ludml0ZSBwZXV0IGF1c3NpIOp0cmUgbW9kaWZp6WUgZW4gY2hhbmdlYW50IGxhIHZhcmlhYmxlIGQnZW52aXJvbm1lbnQgUFJPTVBULFxuXApkb25jIGxhIGNvbW1hbmRlICdTRVQgUFJPTVBUPXRleHRlJyBhIGxlIG3qbWUgZWZmZXQgcXVlICdQUk9NUFQgdGV4dGUnXG4iCgogIFdDTURfUkVNLAoiVW5lIGxpZ25lIGRlIGNvbW1hbmRlIGNvbW1lbudhbnQgcGFyIFJFTSAoc3VpdmkgZCd1bmUgZXNwYWNlKSBuJ2VuZ2VuZHJlXG5cCmF1Y3VuZSBhY3Rpb24sIGV0IHBldXQgZG9uYyBzZXJ2aXIgZGUgY29tbWVudGFpcmUgZGFucyB1biBmaWNoaWVyIGJhdGNoLlxuIgoKICBXQ01EX1JFTiwgICAgIkFpZGUgZGUgUkVOXG4iCiAgV0NNRF9SRU5BTUUsICJBaWRlIGRlIFJFTkFNRVxuIgogIFdDTURfUkQsICAgICAiRWZmYWNlIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgogIFdDTURfUk1ESVIsICAiRWZmYWNlIGxlIHLpcGVydG9pcmUgZG9ubukgZW4gcGFyYW3odHJlLlxuIgoKICBXQ01EX1NFVCwKIlNFVCBhZmZpY2hlIG91IGNoYW5nZSBsZXMgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudCBkZSBjbWQuXG5cClxuXApTRVQgc2FucyBwYXJhbeh0cmUgYWZmaWNoZSBsJ2Vudmlyb25uZW1lbnQgY291cmFudC5cblwKXG5cClBvdXIgY3LpZXIgZXQgbW9kaWZpZXIgdW5lIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudCBsYSBzeW50YXhlIGVzdDpcblwKXG5cCiAgICAgIFNFVCA8dmFyaWFibGU+PTx2YWxldXI+XG5cClxuXApv+SA8dmFyaWFibGU+IGV0IDx2YWxldXI+IHNvbnQgZGVzIGNoYe5uZXMgZGUgY2FyYWN06HJlcy4gSWwgZXN0IOAgbm90ZXIgcXVlIDx2YXJpYWJsZT5cblwKbmUgcGV1dCBjb250ZW5pciBkJ2VzcGFjZSwgZXQgcXUnaWwgbmUgZG9pdCBwYXMgeSBlbiBhdm9pciBub24gcGx1cyBhdXRvdXIgZHUgc2lnbmUgZCfpZ2FsaXTpLlxuXApcblwKU291cyBXaW5lLCBsJ2Vudmlyb25tZW50IGR1IHN5c3TobWUgaPR0ZSBlc3RcblwKaW5jbHVzIGRhbnMgbCdlbnZpcm9ubm1lbnQgV2luMzIsIGlsIHkgYXVyYSBwYXIgY29uc+lxdWVudCBn6W7pcmFsZW1lbnRcblwKYmllbiBwbHVzIGRlIHZhbGV1cnMgcXVlIGRhbnMgdW4gc3lzdOhtZSBXaW4zMiBuYXRpZi4gTm90ZXogcXUnaWxcblwKbidlc3QgcGFzIHBvc3NpYmxlIGRlIG1vZGlmaWVyIGwnZW52aXJvbm5lbWVudCBkdSBzeXN06G1lIGQnZXhwbG9pdGF0aW9uIGRhbnMgY21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgZXN0IHV0aWxpc+kgZGFucyB1biBmaWNoaWVyIGJhdGNoIHBvdXIgZW5sZXZlciB1biBwYXJhbeh0cmUgZGUgbGFcblwKbGlzdGUsIGFpbnNpIGxlIHBhcmFt6HRyZSAyIGRldmllbnQgcGFyYW3odHJlIDEgZXQgYWluc2kgZGUgc3VpdGUuIElsIGVzdCBzYW5zIGVmZmV0XG5cCnMnaWwgZXN0IGFwcGVs6SBkZXB1aXMgbGEgbGlnbmUgZGUgY29tbWFuZGUuXG4iCgogIFdDTURfVElNRSwgICAiQWlkZSBkZSBUSU1FXG4iCgogIFdDTURfVElUTEUsCiJS6GdsZSBsZSB0aXRyZSBkZSBsYSBmZW7qdHJlIHBvdXIgbGEgc2Vzc2lvbiBjbWQsIFN5bnRheGWgOiBUSVRMRSBbY2hh7m5lXVxuIgoKICBXQ01EX1RZUEUsCiJUWVBFIDxub21maWNoaWVyPiBhZmZpY2hlIDxub21maWNoaWVyPiBzdXIgbGEgY29uc29sZSAob3UgYWlsbGV1cnNcblwKc2kgcmVkaXJpZ+kpLiBBdWN1biB0ZXN0IG4nZXN0IGZhaXQgcXVhbmQgYXUgZm9ybWF0IHRleHRlIGR1IGZpY2hpZXIuXG4iCgogIFdDTURfVkVSSUZZLAoiVkVSSUZZIGVzdCB1dGlsaXPpIHBvdXIgcG9zaXRpb25uZXIsIGVmZmFjZXIgb3UgdGVzdGVyIGxlIGZsYWcgZGUgdulyaWZpY2F0aW9uLlxuXApMZXMgZm9ybWVzIHN1aXZhbnRlcyBzb250IGNvcnJlY3RlcyA6XG5cClZFUklGWSBPTglQb3NpdGlvbm5lIGxlIGZsYWdcblwKVkVSSUZZIE9GRglFZmZhY2UgbGUgZmxhZ1xuXApWRVJJRllcdFx0QWZmaWNoZSBsJ+l0YXQgT04gb3UgT0ZGIGR1IGZsYWcuXG5cClxuXApMZSBmbGFnIGRlIHZlcmlmaWNhdGlvbiBuJ2EgcGFzIGRlIGZvbmN0aW9uIGRhbnMgV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgYWZmaWNoZSBsYSB2ZXJzaW9uIGRlIGNtZCBhY3R1ZWxsZW1lbnQgZW4gbeltb2lyZS5cbiIKCiAgV0NNRF9WT0wsICAgICJBaWRlIGRlIFZPTFxuIgoKICBXQ01EX1BVU0hELCAgIlBVU0hEIDxy6XBlcnRvaXJlPiBlbnJlZ2lzdHJlIGxlIHLpcGVydG9pcmUgY291cmFudCBzdXJcblwKdW5lIHBpbGUgZXQgY2hhbmdlIGxlIHLpcGVydG9pcmUgY291cnJhbnQgcGFyIGxlIHLpcGVydG9pcmUgc3DpY2lmaekuXG4iCgogIFdDTURfUE9QRCwgICAiUE9QRCBjaGFuZ2UgbGUgculwZXJ0b2lyZSBjb3VyYW50IHBhciBsZSBkZXJuaWVyIGVucmVnaXN0cukg4CBsJ2FpZGUgZGVcblwKUFVTSEQuXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdGVybWluZSBsYSBzZXNzaW9uIGRlIGxpZ25lIGRlIGNvbW1hbmRlIGV0IHJldG91cm5lXG5cCmF1IHN5c3TobWUgZCdleHBsb2l0YXRpb24gb3UgYXUgc2hlbGwgb/kgdm91cyBhdmV6IGludm9xdekgY21kLlxuIgoKICBXQ01EX0FMTEhFTFAsICJMZXMgY29tbWFuZGVzIGludGVybmVzIENNRCBzb250oDpcblwKQVRUUklCXHRcdEFmZmljaGUgb3UgY2hhbmdlIGxlcyBhdHRyaWJ1dHMgZGUgZmljaGllcnMgRE9TXG5cCkNBTExcdFx0SW52b3F1ZSB1biBmaWNoaWVyIGJhdGNoIOAgbCdpbnTpcmlldXIgZCd1biBhdXRyZVxuXApDRCAoQ0hESVIpXHRDaGFuZ2UgbGUgculwZXJ0b2lyZSBjb3VyYW50IHBhciBk6WZhdXRcblwKQ0xTXHRcdEVmZmFjZSBsJ+ljcmFuXG5cCkNPUFlcdFx0Q29waWUgdW4gb3UgcGx1c2lldXJzIGZpY2hpZXJzXG5cCkNUVFlcdFx0Q2hhbmdlIGxlIHDpcmlwaOlyaXF1ZSBkJ2VudHLpZS9zb3J0aWVcblwKREFURVx0XHRBZmZpY2hlIG91IGNoYW5nZSBsYSBkYXRlIHN5c3TobWVcblwKREVMIChFUkFTRSlcdEVmZmFjZSB1biBmaWNoaWVyIG91IHVuIGdyb3VwZSBkZSBmaWNoaWVyc1xuXApESVJcdFx0TGlzdGUgbGUgY29udGVudSBkJ3VuIHLpcGVydG9pcmVcblwKRUNIT1x0XHRBZmZpY2hlIGR1IHRleHRlIHN1ciBsYSBjb25zb2xlXG5cCkhFTFBcdFx0QWZmaWNoZSBkZSBicmVmcyBk6XRhaWxzIHN1ciBsJ3V0aWxpc2F0aW9uIGQndW5lIGNvbW1hbmRlXG5cCk1EIChNS0RJUilcdENy6WUgdW4gculwZXJ0b2lyZVxuXApNT1JFXHRcdERpc3BsYXkgb3V0cHV0IGluIHBhZ2VzXG5cCk1PVkVcdFx0ROlwbGFjZSB1biBmaWNoaWVyLCB1biBncm91cGUgZGUgZmljaGllcnMgb3UgdW4gculwZXJ0b2lyZVxuXApQQVRIXHRcdFLoZ2xlIG91IGFmZmljaGUgbGUgY2hlbWluIGRlIHJlY2hlcmNoZVxuXApQT1BEXHRcdENoYW5nZSBsZSBy6XBlcnRvaXJlIGNvdXJhbnQgcGFyIGxlIGRlcm5pZXIgZW5yZWdpc3Ry6SBhdmVjIFBVU0hEXG5cClBST01QVFx0XHRDaGFuZ2UgbCdpbnZpdGUgZGUgY29tbWFuZGVcblwKUFVTSERcdFx0Q2hhbmdlIGRlIHLpcGVydG9pcmUgZW4gZW5yZWdpc3RyYW50IGxlIHLpcGVydG9pcmUgY291cmFudFxuXApSRU4gKFJFTkFNRSlcdFJlbm9tbWUgdW4gZmljaGllciwgdW4gZ3JvdXBlIGRlIGZpY2hpZXJzIG91IHVuIHLpcGVydG9pcmVcblwKUkQgKFJNRElSKVx0RWZmYWNlIHVuIHLpcGVydG9pcmVcblwKU0VUXHRcdFLoZ2xlIG91IGFmZmljaGUgbGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25tZW50XG5cClRJTUVcdFx0UuhnbGUgb3UgYWZmaWNoZSBsJ2hldXJlIHN5c3TobWUgY291cmFudGVcblwKVElUTEVcdFx0UuhnbGUgbGUgdGl0cmUgZGUgbGEgZmVu6nRyZSBwb3VyIGxhIHNlc3Npb24gQ01EXG5cClRZUEVcdFx0QWZmaWNoZSBsZSBjb250ZW51IGQndW4gZmljaGllciB0ZXh0ZVxuXApWRVJcdFx0QWZmaWNoZSBsYSB2ZXJzaW9uIGRlIGNtZCBhY3R1ZWxsZW1lbnQgZW4gbeltb2lyZS5cblwKVk9MXHRcdEFmZmljaGUgbGUgbm9tIGRlIHZvbHVtZSBkJ3VuIGxlY3RldXIgZGUgZGlzcXVlXG5cCkVYSVRcdFx0UXVpdHRlIENNRFxuXG5cCkVudHJleiBIRUxQIDxjb21tYW5kZT4gcG91ciBwbHVzIGQnaW5mb3JtYXRpb25zIHN1ciBsZXMgY29tbWFuZGVzIGNpLWRlc3N1c1xuIgoKICBXQ01EX0NPTkZJUk0sICLKdGVzLXZvdXMgc/tyIgogIFdDTURfWUVTLCAiTyIKICBXQ01EX05PLCAiTiIKICBXQ01EX05PQVNTT0MsICJBc3NvY2lhdGlvbiBkZSBmaWNoaWVyIG1hbnF1YW50ZSBwb3VyIGwnZXh0ZW5zaW9uICVzXG4iCiAgV0NNRF9OT0ZUWVBFLCAiQXVjdW4gY29tbWFuZGUgZCdvdXZlcnR1cmUgYXNzb2Np6WUgYXZlYyBsZSB0eXBlIGRlIGZpY2hpZXIgq6Alc6C7XG4iCiAgV0NNRF9PVkVSV1JJVEUsICLJY3Jhc2VyICVzIgogIFdDTURfTU9SRVNUUiwgIlBsdXMuLi4iCiAgV0NNRF9UUlVOQ0FURURMSU5FLCAiTGlnbmUgZHUgcHJvY2Vzc3VzIGJhdGNoIHByb2JhYmxlbWVudCB0cm9ucXXpZS4gVXRpbGlzYXRpb24gZGWgOlxuIgogIFdDTURfTllJLCAiUGFzIGVuY29yZSBpbXBs6W1lbnTpXG5cbiIKICBXQ01EX05PQVJHLCAiQXJndW1lbnQgbWFucXVhbnRcbiIKICBXQ01EX1NZTlRBWEVSUiwgIkVycmV1ciBkZSBzeW50YXhlXG4iCiAgV0NNRF9GSUxFTk9URk9VTkQsICIlcyA6IEZpY2hpZXIgbm9uIHRyb3V26VxuIgogIFdDTURfTk9DTURIRUxQLCAiUGFzIGQnYWlkZSBkaXNwb25pYmxlIHBvdXIgJXNcbiIKICBXQ01EX05PVEFSR0VULCAiTGEgZGVzdGluYXRpb24gZGUgbCdpbnN0cnVjdGlvbiBHT1RPIG4nYSBwYXMg6XTpIHRyb3V26WVcbiIKICBXQ01EX0NVUlJFTlREQVRFLCAiTGEgZGF0ZSBjb3VyYW50ZSBlc3QgJXNcbiIKICBXQ01EX0NVUlJFTlRUSU1FLCAiTCdoZXVyZSBjb3VyYW50ZSBlc3QgJXNcbiIKICBXQ01EX05FV0RBVEUsICJTYWlzaXNzZXogbGEgbm91dmVsbGUgZGF0ZaA6ICIKICBXQ01EX05FV1RJTUUsICJTYWlzaXNzZXogbGEgbm91dmVsbGUgaGV1cmWgOiAiCiAgV0NNRF9NSVNTSU5HRU5WLCAiTGEgdmFyaWFibGUgZCdlbnZpcm9ubmVtZW50ICVzIG4nZXN0IHBhcyBk6WZpbmllXG4iCiAgV0NNRF9SRUFERkFJTCwgIkltcG9zc2libGUgZCdvdXZyaXIgq6Alc6C7XG4iCiAgV0NNRF9DQUxMSU5TQ1JJUFQsICJJbXBvc3NpYmxlIGQnYXBwZWxlciB1bmUg6XRpcXVldHRlIGRlIGJhdGNoIGhvcnMgZCd1biBzY3JpcHQgYmF0Y2hcbiIKICBXQ01EX0FMTCwgIlQiCiAgV0NNRF9ERUxQUk9NUFQsICIlcywgU3VwcHJpbWVyIgogIFdDTURfRUNIT1BST01QVCwgIkVjaG8gZXN0ICVzXG4iCiAgV0NNRF9WRVJJRllQUk9NUFQsICJWZXJpZnkgZXN0ICVzXG4iCiAgV0NNRF9WRVJJRllFUlIsICJWZXJpZnkgZG9pdCDqdHJlIE9OIG91IE9GRlxuIjsKICBXQ01EX0FSR0VSUiwgIkVycmV1ciBkZSBwYXJhbeh0cmVcbiIKICBXQ01EX1ZPTFVNRURFVEFJTCwgIkxlIHZvbHVtZSBkYW5zIGxlIGxlY3RldXIgJWMgZXN0ICVzXG5MZSBudW3pcm8gZGUgc+lyaWUgZHUgdm9sdW1lIGVzdCAlMDR4LSUwNHhcblxuIgogIFdDTURfVk9MVU1FUFJPTVBULCAiyXRpcXVldHRlIGR1IHZvbHVtZSAoMTEgY2FyYWN06HJlcywgRU5UUslFIHBvdXIgYXVjdW4poD8iCiAgV0NNRF9OT1BBVEgsICJQQVRIIG5vdCBmb3VuZFxuIgogIFdDTURfQU5ZS0VZLCJBcHB1eWV6IHN1ciBFTlRSyUUgcG91ciBjb250aW51ZXKgOiAiCiAgV0NNRF9DT05TVElUTEUsIkludml0ZSBkZSBjb21tYW5kZSBXaW5lIgogIFdDTURfVkVSU0lPTiwiQ01EIHZlcnNpb24gJXNcblxuIgogIFdDTURfTU9SRVBST01QVCwgIlBsdXOgPyAiCn0K