LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA0IEpvc+kgTWFudWVsIEZlcnJlciBPcnRpegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfREVGQVVMVAoKLyogTWVudSAqLwoKTUFJTl9NRU5VIE1FTlUKewogUE9QVVAgIiZBcmNoaXZvIiB7CiAgIE1FTlVJVEVNICImTnVldm8uLi4iLAkJCVBNX05FVwogICBNRU5VSVRFTSAiQSZicmlyXHRFbnRlciIsCQkJUE1fT1BFTgogICBNRU5VSVRFTSAiJk1vdmVyLi4uXHRGNyIsCQkJUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZDb3BpYXIuLi5cdEY4IiwJCQlQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJkVsaW1pbmFyXHRFbnRmIiwJCQlQTV9ERUxFVEUKICAgTUVOVUlURU0gIiZBdHJpYnV0b3MuLi5cdEFsdCtFbnRlciIsCQlQTV9BVFRSSUJVVEVTCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJkVqZWN1dGFyLi4uIiwJCQlQTV9FWEVDVVRFCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJlNhbGlyIGRlIFdpbmRvd3MuLi4iLAkJUE1fRVhJVAogfQogUE9QVVAgIiZPcGNpb25lcyIgewogICBNRU5VSVRFTSAiJk9yZGVuYXIgYXV0b23hdGljYW1lbnRlIiwJCVBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAiJk1pbmltaXphciBhbCBsYW56YXJzZSIsCQlQTV9NSU5fT05fUlVOCiAgIE1FTlVJVEVNICImR3VhcmRhciBjb25maWd1cmFjafNuIGFsIHNhbGlyIiwJUE1fU0FWRV9TRVRUSU5HUwogfQogUE9QVVAgIiZWZW50YW5hcyIgewogICBNRU5VSVRFTSAiJkNhc2NhZGFcdFNoaWZ0K0Y1IiwJCVBNX09WRVJMQVAKICAgTUVOVUlURU0gIiZNb3NhaWNvXHRTaGlmdCtGNCIsCQlQTV9TSURFX0JZX1NJREUKICAgTUVOVUlURU0gIiZPcmRlbmFyIGljb25vcyIsCQkJUE1fQVJSQU5HRQogfQogClBPUFVQICJBJnl1ZGEiIHsKICAgTUVOVUlURU0gIiZDb250ZW5pZG8iLAkJCVBNX0NPTlRFTlRTCiAgIE1FTlVJVEVNICImQnVzY2FyLi4uIiwJCQlQTV9TRUFSQ0gKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImQXl1ZGEgc29icmUgbGEgYXl1ZGEiLAkJUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJlR1dG9yaWFsIiwJCQlQTV9UVVRPUklBTAogICBNRU5VSVRFTSBTRVBBUkFUT1IKCiAgIFBPUFVQICImSW5mby4uLiIgewogICAgIE1FTlVJVEVNICImTGljZW5jaWEiLAkJCVBNX0xJQ0VOU0UKICAgICBNRU5VSVRFTSAiJlNJTiBHQVJBTlTNQSIsCQkJUE1fTk9fV0FSUkFOVFkKICAgICBNRU5VSVRFTSAiJkFjZXJjYSBkZSBXSU5FIiwJCVBNX0FCT1VUX1dJTkUKICAgfQogfQp9CgovKiBEaWFsb2cgYE5ldycgKi8KCkRJQUxPR19ORVcgRElBTE9HIDAsIDAsIDE3MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJOdWV2byIKewpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX0dST1VQLCAgICAxMCwgMTUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJkdydXBvIGRlIHByb2dyYW1hIiwgICBQTV9ORVdfR1JPVVAsICAgIDIwLCAxOCwgIDgwLCAxNQpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJlByb2dyYW1hIiwgUE1fTkVXX1BST0dSQU0sICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICBJRENBTkNFTCwgICAgICAgMTA1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQXl1ZGEiLCAgICAgICAgUE1fSEVMUCwgICAgICAgIDEwNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBNb3ZlJyAqLwoKRElBTE9HX01PVkUgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJNb3ZlciBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICJNb3ZlciBwcm9ncmFtYToiLCAgICBJRElHTk9SRSwgICAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICAgOTUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZEZXNkZSBlbCBncnVwbzoiLCBJRElHTk9SRSwgICAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICAgOTUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiZIYXN0YSBlbCBncnVwbzoiLCAgIFBNX1RPX0dST1VQX1RYVCwgICAgIDUsIDI4LCAxNDAsIDE1CkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fVE9fR1JPVVAsICAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQXl1ZGEiLCAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgQ29weScgKi8KCkRJQUxPR19DT1BZIERJQUxPRyAwLCAwLCAyNTAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiQ29wYXIgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiQ29waWFyIHByb2dyYW1hOiIsICAgIElESUdOT1JFLCAgICAgICAgICAgIDUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fUFJPR1JBTSwgICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkRlc2RlIGVsIGdydXBvOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkhhc3RhIGVsIGdydXBvOiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW5jZWxhciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYXIiLCAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgR3JvdXAgYXR0cmlidXRlcycgKi8KCkRJQUxPR19HUk9VUCBESUFMT0cgMCwgMCwgMjMwLCA2NQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIkF0cmlidXRvcyBkZWwgZ3J1cG8gZGUgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICImRGVzY3JpcGNp8246IiwgUE1fREVTQ1JJUFRJT05fVFhULCAgIDA1LCAxOCwgIDUwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAiJkFyY2hpdm8gZGUgZ3J1cG86IiwgICAgICAgIFBNX0ZJTEVfVFhULCAgICAgICAgICAwNSwgMzgsICA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRklMRSwgICAgICAgICAgICAgIDYwLCAzOCwgIDkwLCAxNSwgV1NfVEFCU1RPUApERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxNTUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAgIDE1NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkF5dWRhIiwgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTU1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFByb2dyYW0gYXR0cmlidXRlcycgKi8KCkRJQUxPR19QUk9HUkFNIERJQUxPRyAwLCAwLCAyNTAsIDEwNQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIkF0cmlidXRvcyBkZWwgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiJkRlc2NyaXBjafNuOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDEwLCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgODAsIDEwLCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZM7W5lYSBkZSBjb21hbmRvczoiLCBQTV9DT01NQU5EX0xJTkVfVFhULCAgMDUsIDI1LCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5EX0xJTkUsICAgICAgODAsIDI1LCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZEaXJlY3RvcmlvIGRlIHRyYWJham86IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZLCAgICAgICAgIDgwLCA0MCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImQ29tYmluYWNp824gZGUgdGVjbGFzOiIsICAgICAgUE1fSE9UX0tFWV9UWFQsICAgICAgIDA1LCA1NSwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSE9UX0tFWSwgICAgICAgICAgIDgwLCA1NSwgIDkwLCAxNSwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTiwgICAgICAgICAgICAgIDIwLCA3MApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgICAgICAgICAgIDgwLCA3NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImTWluaW1pemFyIGFsIGxhbnphcnNlIiwgICAgICAgSURJR05PUkUsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW5jZWxhciIsICAgICAgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRXhwbG9yYXIuLi4iLCAgICAgICAgICAgICAgIFBNX0JST1dTRSwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FtYmlhciAmaWNvbm8uLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYSIsICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgU3ltYm9sJyAqLwoKRElBTE9HX1NZTUJPTCBESUFMT0cgMCwgMCwgMjAwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIkNhbWJpYXIgaWNvbm8iCnsKTFRFWFQgICAgICImTm9tYnJlIGRlIGFyY2hpdm86IiwgICAgUE1fSUNPTl9GSUxFX1RYVCwgICAgNSwgMTUsICA0MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTl9GSUxFLCAgICAgICA0NSwgMTUsICA4NSwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImSWNvbm8gYWN0dWFsOiIsIFBNX1NZTUJPTF9MSVNUX1RYVCwgIDUsIDMwLCAxMjUsIDEwCkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTF9MSVNULCAgICAgIDUsIDQwLCAxMjUsIDUwLAogICBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgV1NfVEFCU1RPUApERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTM1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW5jZWxhciIsICAgICBJRENBTkNFTCwgICAgICAgICAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRXhwbG9yYXIuLi4iLCAgICBQTV9CUk9XU0UsICAgICAgICAgMTM1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQXl1ZGEiLCAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYEV4ZWN1dGUnICovCgpESUFMT0dfRVhFQ1VURSBESUFMT0cgMCwgMCwgMjAwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIkVqZWN1dGFyIHByb2dyYW1hIgp7CkxURVhUICAgICAiTO1uZWEgZGUgJmNvbWFuZG9zOiIsIElESUdOT1JFLCAgIDA1LCAxNSwgMTIwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9DT01NQU5ELCAwNSwgMjUsIDEyMCwgMTUsIFdTX1RBQlNUT1AKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgMDUsIDQ1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAgIElESUdOT1JFLCAgIDIwLCA0NSwgMTIwLCAxMApERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICAgICAgICBJRE9LLCAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgICAgICAgIFBNX0JST1dTRSwgMTM1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQXl1ZGEiLCAgICAgICAgICAgICBQTV9IRUxQLCAgIDEzNSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogU3RyaW5ncyAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewpJRFNfUFJPR1JBTV9NQU5BR0VSLAkJIkdlc3RvciBkZSBwcm9ncmFtYXMiCklEU19FUlJPUiwJCQkiRVJST1IiCklEU19XQVJOSU5HLAkJCSJBRFZFUlRFTkNBIgpJRFNfSU5GTywJCQkiSW5mb3JtYWNp824iCklEU19ERUxFVEUsCQkJIkVsaW1pbmFyIgpJRFNfREVMRVRFX0dST1VQX3MsCQkiv0VsaW1pbmFyIGdydXBvIGAlcyc/IgpJRFNfREVMRVRFX1BST0dSQU1fcywJCSK/RWxpbWluYXIgcHJvZ3JhbWEgYCVzJz8iCklEU19OT1RfSU1QTEVNRU5URUQsCQkiTm8gaW1wbGVtZW50YWRvIgpJRFNfRklMRV9SRUFEX0VSUk9SX3MsCQkiRXJyb3IgbGV5ZW5kbyBgJXMnLiIKSURTX0ZJTEVfV1JJVEVfRVJST1JfcywJCSJFcnJvciBlc2NyaWJpZW5kbyBgJXMnLiIKSURTX0dSUEZJTEVfUkVBRF9FUlJPUl9zLAkiXApFbCBhcmNoaXZvIGRlIGdydXBvIGAlcycgbm8gc2UgcHVlZGUgYWJyaXIuXG5cCr9EZWJlIHZvbHZlciBhIGludGVudGFyc2UgbeFzIGFkZWxhbnRlPyIKSURTX09VVF9PRl9NRU1PUlksCQkiU2luIG1lbW9yaWEuIgpJRFNfV0lOSEVMUF9FUlJPUiwJCSJBeXVkYSBubyBkaXNwb25pYmxlLiIKSURTX1VOS05PV05fRkVBVFVSRV9zLAkJIkNhcmFjdGVy7XN0aWNhIGRlc2Nvbm9jaWRhIGVuICVzIgpJRFNfRklMRV9OT1RfT1ZFUldSSVRURU5fcywJIkVsIGFyY2hpdm8gYCVzJyBleGlzdGUuIE5vIHNlIGhhIHNvYnJlZXNjcml0by4iCklEU19TQVZFX0dST1VQX0FTX3MsCQkiR3VhcmRlIGVsIGdydXBvIGNvbW8gYCVzJyBwYXJhIHByZXZlbmlyIGxhIHNvYnJlZXNjcml0dXJhIGRlIGxvcyBhcmNoaXZvcyBvcmlnaW5hbGVzLiIKSURTX05PX0hPVF9LRVksCQkJIk5pbmd1bmEiCklEU19BTExfRklMRVMsCQkJIlRvZG9zIGxvcyBhcmNoaXZvcyAoKi4qKSIKSURTX1BST0dSQU1TLAkJCSJQcm9ncmFtYXMiCklEU19MSUJSQVJJRVNfRExMLAkJIkxpYnJhcu1hcyAoKi5kbGwpIgpJRFNfU1lNQk9MX0ZJTEVTLAkJIkFyY2hpdm9zIGRlIGljb25vcyIKSURTX1NZTUJPTFNfSUNPLAkJIkljb25vcyAoKi5pY28pIgp9Cg==