ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvYWYvYWZfWkEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvYWYvYWZfWkEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Yzg1ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9hZi9hZl9aQS5kaWZmCkBAIC0wLDAgKzEsMzYgQEAKKyoqKiBhZl9aQS5vcmlnLmFmZglTdW4gQXVnIDE0IDE3OjM3OjAxIDIwMDUKKy0tLSBhZl9aQS5hZmYJU3VuIEF1ZyAxNCAxNzozODoxMSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMywyNCAqKioqCistLS0gMjMsMzQgLS0tLQorICAKKysgRk9MICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCAgwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUlEV09SRAknLQorKyBTTEFTSCAsCisrIAorICBNQVAgMworKioqIGFmX1pBLm9yaWcuZGljCVN1biBBdWcgMTQgMTc6Mzc6MDEgMjAwNQorLS0tIGFmX1pBLmRpYwlTdW4gQXVnIDE0IDE3OjM4OjU0IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE4NjEsMTg2NCAqKioqCisgIFQtc2t5ZgorISBUQ1AvSVAKKyEgVENQL0lQLWJvbmRlbAorICBUTEEKKy0tLSAxODYxLDE4NjQgLS0tLQorICBULXNreWYKKyEgVENQLElQCishIFRDUCxJUC1ib25kZWwKKyAgVExBCisqKioqKioqKioqKioqKioKKyoqKiAxMjQxMDksMTI0MTExICoqKioKKyAgdnJ5d2lsbGlnbGlrCistIHZ0CisgIHZ1aWxlL1IKKy0tLSAxMjQxMDksMTI0MTEwIC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvYWYvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2FmL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOTNjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2FmL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQWZyaWthYW5zIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gYWZfWkEuYWZmIGFmX1pBLmRpYworCithbGw6ICRTUEVMTERJUi9hZi5sYXRpbjEuc3BsICRTUEVMTERJUi9hZi51dGYtOC5zcGwgLi4vUkVBRE1FX2FmLnR4dAorCiskU1BFTExESVIvYWYubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9YWZfWkEuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2FmIGFmX1pBIiAtYyBxCisKKyRTUEVMTERJUi9hZi51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWFmX1pBLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2FmIGFmX1pBIiAtYyBxCisKKy4uL1JFQURNRV9hZi50eHQgOiBSRUFETUVfYWZfWkEudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlIGZyb20gU291cmNlRm9yZ2UuICBUaGUgYXJjaGl2ZSBhdCBPcGVuT2ZmaWNlIGlzIGJyb2tlbiEKKyMKK0ZJTEUgPSBodHRwOi8vc3VyZm5ldC5kbC5zb3VyY2Vmb3JnZS5uZXQvc291cmNlZm9yZ2UvdHJhbnNsYXRlL215c3BlbGwtYWZfWkEtMjAwNDA3MjcuemlwCisKKzphdHRyIHtmZXRjaCA9ICRGSUxFfSBhZl9aQS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2FmX1pBLmFmZiBhZl9aQS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggYWZfWkEuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGFmX1pBLnppcAorICAgICAgICA6ZGVsZXRlIGFmX1pBLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdhZl9aQS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgYWZfWkEuYWZmIGFmX1pBLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2FmX1pBLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBhZl9aQS5kaWMgYWZfWkEub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdhZl9aQS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxhZl9aQS5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGFmX1pBLm9yaWcuYWZmIGFmX1pBLmFmZiA+YWZfWkEuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGFmX1pBLm9yaWcuZGljIGFmX1pBLmRpYyA+PmFmX1pBLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGFmX1pBLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vYWZfWkEuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9hZl9aQS5vcmlnLmFmZiBhZl9aQS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgYWZfWkEuYWZmIC4uL2FmX1pBLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2FmX1pBLm9yaWcuZGljIGFmX1pBLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBhZl9aQS5kaWMgLi4vYWZfWkEubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGFmX1pBLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2JnL2JnX0JHLmRpZmYgYi9ydW50aW1lL3NwZWxsL2JnL2JnX0JHLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGEwYTRmMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvYmcvYmdfQkcuZGlmZgpAQCAtMCwwICsxLDQyIEBACisqKiogYmdfQkcub3JpZy5hZmYJU3VuIEF1ZyAxNCAxODoxMjo0NCAyMDA1CistLS0gYmdfQkcuYWZmCVN1biBBdWcgMTQgMTg6MTM6MTIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMSwyICoqKioKKyEgU0VUIG1pY3Jvc29mdC1jcDEyNTEKKyAgVFJZIODl7e7o8PLi8evq7O/n5P/z+uH34/bm9fj06fn+/MDFzc7I0NLC0cvKzM/HxN/T2sHXw9bG1djUydne3AorLS0tIDEsMiAtLS0tCishIFNFVCBjcDEyNTEKKyAgVFJZIODl7e7o8PLi8evq7O/n5P/z+uH34/bm9fj06fn+/MDFzc7I0NLC0cvKzM/HxN/T2sHXw9bG1djUydne3AorKioqKioqKioqKioqKioqCisqKiogMTY4MiwxNjg0ICoqKioKKyAgCishIE1BUCAyNgorICBNQVAg4Pr8YQorLS0tIDE2ODIsMTY4NCAtLS0tCisgIAorISBNQVAgMjUKKyAgTUFQIOD6/GEKKyoqKioqKioqKioqKioqKgorKioqIDE2OTEsMTY5NSAqKioqCisgIE1BUCDm+AorISBNQVAg5/EKKyAgTUFQIHDwCistIE1BUCBj8QorICBNQVAgePUKKy0tLSAxNjkxLDE2OTQgLS0tLQorICBNQVAg5vgKKyEgTUFQIGPn8QorICBNQVAgcPAKKyAgTUFQIHj1CisqKioqKioqKioqKioqKioKKyoqKiAxNzA3LDE3MDkgKioqKgorICBNQVAgUNAKKy0gTUFQIFnTCisgIE1BUCBY1QorLS0tIDE3MDYsMTcxMSAtLS0tCisgIE1BUCBQ0AorICBNQVAgWNUKKysgCisrIFJFUCAyCisrIFJFUCBZINMKKysgUkVQINMgWQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9iZy9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvYmcvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzg0OTUyNgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvYmcvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBDemVjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGJnX0JHLmFmZiBiZ19CRy5kaWMKKworYWxsOiAkU1BFTExESVIvYmcuY3AxMjUxLnNwbCAkU1BFTExESVIvYmcudXRmLTguc3BsIC4uL1JFQURNRV9iZy50eHQKKworJFNQRUxMRElSL2JnLmNwMTI1MS5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWJnX0JHLkNQMTI1MSAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9iZyBiZ19CRyIgLWMgcQorCiskU1BFTExESVIvYmcudXRmLTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1iZ19CRy5VVEYtOCAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9iZyBiZ19CRyIgLWMgcQorCisuLi9SRUFETUVfYmcudHh0OiBSRUFETUVfYmdfQkcudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gYmdfQkcuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorYmdfQkcuYWZmIGJnX0JHLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBiZ19CRy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgYmdfQkcuemlwCisgICAgICAgIDpkZWxldGUgYmdfQkcuemlwCisgICAgICAgIDpzeXMgJFZJTSBiZ19CRy5hZmYgLWMgInNldCBmZj11bml4IiAtYyAidXBkYXRlIiAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBiZ19CRy5kaWMgLWMgInNldCBmZj11bml4IiAtYyAidXBkYXRlIiAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2JnX0JHLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBiZ19CRy5hZmYgYmdfQkcub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnYmdfQkcub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGJnX0JHLmRpYyBiZ19CRy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2JnX0JHLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGJnX0JHLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgYmdfQkcub3JpZy5hZmYgYmdfQkcuYWZmID5iZ19CRy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgYmdfQkcub3JpZy5kaWMgYmdfQkcuZGljID4+YmdfQkcuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggYmdfQkcuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9iZ19CRy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2JnX0JHLm9yaWcuYWZmIGJnX0JHLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBiZ19CRy5hZmYgLi4vYmdfQkcubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vYmdfQkcub3JpZy5kaWMgYmdfQkcuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGJnX0JHLmRpYyAuLi9iZ19CRy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgYmdfQkcuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY2EvY2FfRVMuZGlmZiBiL3J1bnRpbWUvc3BlbGwvY2EvY2FfRVMuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGEzYjBhCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jYS9jYV9FUy5kaWZmCkBAIC0wLDAgKzEsNzYgQEAKKyoqKiBjYV9FUy5vcmlnLmFmZglTYXQgQXVnIDEzIDE4OjAxOjM2IDIwMDUKKy0tLSBjYV9FUy5hZmYJU2F0IEF1ZyAxMyAxODowMTozMiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiA0NCw0OCAqKioqCisgIAorISAjIHN1YnN0aXR1Y2lvbnMgcHJlZmVyaWRlcworISBGSVJTVCBhL+AgZS/pL+gg6S/oL2Ug6C/pL2UgaS/tL+8g7S9pL+8gby/zL/Ig8y/yL28g8i/zL28gdS/6L/wg+i91L/wg/C91L/oKKyEgRklSU1QgbC9st2wgbLdsL2wKKyAgCistLS0gNDQsNjUgLS0tLQorICAKKyEgRk9MICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worISBMT1cgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CishIFVQUCAgwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKyEgCishIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKyEgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworISAKKyEgTUlEV09SRAm3LScKKyEgCishIE1BUCA2CishIE1BUCBh4OHi4+TlCishIE1BUCBl6Onq6worISBNQVAgaezt7u8KKyEgTUFQIG/y8/T19gorISBNQVAgdfn6+/wKKyEgTUFQIGPnCishIAorISBSRVAgMgorISBSRVAgbCBst2wKKyEgUkVQIGy3bCBsCisgIAorKioqIGNhX0VTLm9yaWcuZGljCVNhdCBBdWcgMTMgMTg6MDE6NTUgMjAwNQorLS0tIGNhX0VTLmRpYwlTYXQgQXVnIDEzIDE4OjAxOjUxIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDI1MzEyLDI1MzE0ICoqKioKKyAgY2Fvcy9FCistIGNhcAorICBjYXAtcm9kby9FCistLS0gMjUzMTIsMjUzMTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzUxMDMsMzUxMDUgKioqKgorICBjb3JyYXNp8y9HCistIGNvcnJlCisgIGNvcnJlLWNvcnJlbnRzCistLS0gMzUxMDIsMzUxMDMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTk4MDYsOTk4MDggKioqKgorICBtYWr6c2N1bC9GCistIG1hbAorICBtYWwtbGxldmF0L0UKKy0tLSA5OTgwNCw5OTgwNSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMDc1MTcsMTA3NTE5ICoqKioKKyAgbm908nJpYW1lbnQKKy0gbm91CisgIG5vdS1jZW50ZXMvRQorLS0tIDEwNzUxNCwxMDc1MTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTIyNjg3LDEyMjY4OSAqKioqCisgIHJhdOBuaWEvRQorLSByYXUKKyAgcmF1LXJhdS9FCistLS0gMTIyNjgzLDEyMjY4NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzkzODksMTM5MzkxICoqKioKKyAgdGH8dC9FCistIHRlCisgIHRlJ2wKKy0tLSAxMzkzODQsMTM5Mzg1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0NzU5MCwxNDc1OTIgKioqKgorICB2aXTtY29sYS9FCistIHZpdQorICB2aXUtdml1L0UKKy0tLSAxNDc1ODQsMTQ3NTg1IC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY2EvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2NhL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZjczNTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2NhL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQ2F0ZWxhbiAoU3BhaW4pIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gY2FfRVMuYWZmIGNhX0VTLmRpYworCithbGw6ICRTUEVMTERJUi9jYS5sYXRpbjEuc3BsICRTUEVMTERJUi9jYS51dGYtOC5zcGwgLi4vUkVBRE1FX2NhLnR4dAorCiskU1BFTExESVIvY2EubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9Y2FfRVMuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2NhIGNhX0VTIiAtYyBxCisKKyRTUEVMTERJUi9jYS51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWNhX0VTLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2NhIGNhX0VTIiAtYyBxCisKKy4uL1JFQURNRV9jYS50eHQgOiBSRUFETUVfY2FfRVMudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gY2FfRVMuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIE1ha2Ugc3VyZSB0aGUgZmlsZXMgYXJlIGluIFVuaXggZmlsZWZvcm1hdAorY2FfRVMuYWZmIGNhX0VTLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBjYV9FUy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgY2FfRVMuemlwCisgICAgICAgIDpkZWxldGUgY2FfRVMuemlwCisgICAgICAgIDpzeXMgJFZJTSBjYV9FUy5hZmYgLWMgInNldCBmZj11bml4IiAtYyAidXBkYXRlIiAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBjYV9FUy5kaWMgLWMgInNldCBmZj11bml4IiAtYyAidXBkYXRlIiAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2NhX0VTLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBjYV9FUy5hZmYgY2FfRVMub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY2FfRVMub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGNhX0VTLmRpYyBjYV9FUy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2NhX0VTLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGNhX0VTLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY2FfRVMub3JpZy5hZmYgY2FfRVMuYWZmID5jYV9FUy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY2FfRVMub3JpZy5kaWMgY2FfRVMuZGljID4+Y2FfRVMuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggY2FfRVMuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9jYV9FUy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2NhX0VTLm9yaWcuYWZmIGNhX0VTLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBjYV9FUy5hZmYgLi4vY2FfRVMubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY2FfRVMub3JpZy5kaWMgY2FfRVMuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGNhX0VTLmRpYyAuLi9jYV9FUy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgY2FfRVMuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3MvY3NfQ1ouZGlmZiBiL3J1bnRpbWUvc3BlbGwvY3MvY3NfQ1ouZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE4NGVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jcy9jc19DWi5kaWZmCkBAIC0wLDAgKzEsNzgzIEBACisqKiogY3NfQ1oub3JpZy5hZmYJU2F0IEF1ZyAxMyAyMTozODoyOSAyMDA1CistLS0gY3NfQ1ouYWZmCVNhdCBBdWcgMTMgMjM6Mjk6MTMgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDggLS0tLQorICAKKysgRk9MILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisgIFBGWCBOIFkgMQorKioqKioqKioqKioqKioqCisqKiogMjExOCwyMTIwICoqKioKKyAgU0ZYIEEgICBub3V0ICAgICAgICBseSAgICAgICAgIFthZWlvdXnh6e3z+v357F1ybm91dAorISBTRlggQSAgIG5vdXQgICAgICAgIGwgICAgICAgICAgW2FlaW91eeHp7fP6/fnscl1bXmFlaW91eeHp7fP6/fnscmxdW15hZWlvdXkKKyAgU0ZYIEEgICBub3V0ICAgICAgICBsICAgICAgICAgIFthZWlvdXnh6e3z+v357HJdW15hZWlvdXnh6e3z+v357HJsXW5vdXQKKy0tLSAyMTIyLDIxMjQgLS0tLQorICBTRlggQSAgIG5vdXQgICAgICAgIGx5ICAgICAgICAgW2FlaW91eeHp7fP6/fnsXXJub3V0CishIFNGWCBBICAgbm91dCAgICAgICAgbCAgICAgICAgICBbYWVpb3V54ent8/r9+exyXVteYWVpb3V54ent8/r9+exybF1bXmFlaW91eV1vdXQKKyAgU0ZYIEEgICBub3V0ICAgICAgICBsICAgICAgICAgIFthZWlvdXnh6e3z+v357HJdW15hZWlvdXnh6e3z+v357HJsXW5vdXQKKyoqKiBjc19DWi5vcmlnLmRpYwlTYXQgQXVnIDEzIDIxOjM4OjI5IDIwMDUKKy0tLSBjc19DWi5kaWMJU3VuIEF1ZyAxNCAxNTozMzozOCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyOTQ0LDI5NDYgKioqKgorICBhci9ICistIGFyY2gKKyAgYXJjaGFpY2v9L1lDUk4KKy0tLSAyOTQ0LDI5NDUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzA5OCwzMTAwICoqKioKKyAgYXJvZ2FudG7tL1lLUk4KKy0gYXJvbWEKKyAgYXJvbWEvSworLS0tIDMwOTcsMzA5OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0NzUzLDQ3NTUgKioqKgorICBiYW5qby9NUQorLSBiYW5rCisgIGJhbmthL1pRCistLS0gNDc1MSw0NzUyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDU1NDAsNTU0MiAqKioqCisgIEJlY2h58uFr+XYvWQorLSBCZWNoeW7sCisgIEJlY2h5buwvUworLS0tIDU1MzcsNTUzOCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1OTQ1LDU5NDcgKioqKgorICBiZXJtdWRza/0vWVJOCistIEJlcm11ZHkKKyAgQmVybXVkeS9aUQorLS0tIDU5NDEsNTk0MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA2MTExLDYxMTMgKioqKgorICBCZXVzdPl2L1kKKy0gYmV6CisgIEJleuFrb3bhL1kKKy0tLSA2MTA2LDYxMDcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNzI5NCw3Mjk2ICoqKioKKyAgYmzhbmEvWgorLSBCbGFuYworICBCbGFuYy9QVgorLS0tIDcyODgsNzI4OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA5NDU2LDk0NTggKioqKgorICBi+GljaG92aXT9L1lLUgorLSBi+O1t7AorICBi+O1t7C9NCistLS0gOTQ0OSw5NDUwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDk2NjcsOTY2OSAqKioqCisgIGJ1ZHm57W5za/0vWQorLSBidWZldAorICBidWZldOH46GluL1kKKy0tLSA5NjU5LDk2NjAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTY3Nyw5Njc5ICoqKioKKyAgYnVmZmVyb3b9L1lSTgorLSBidWZmZXQKKyAgYnVmZmV0L0gKKy0tLSA5NjY4LDk2NjkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTEzODYsMTEzODggKioqKgorICBjb3AvSAorLSBjb3B5cmlnaHQKKyAgY29weXJpZ2h0L0gKKy0tLSAxMTM3NiwxMTM3NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMTQ0NiwxMTQ0OCAqKioqCisgIGNyZXNjCistIGNyZXNjZW5kbworICBjcmVzY2VuZG8vTVEKKy0tLSAxMTQzNSwxMTQzNiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzgxMCwxMzgxMiAqKioqCisgIGRha3R5bHVzL1EKKy0gZOFsCisgIGRhbGFqbOFtYS9QVgorLS0tIDEzNzk4LDEzNzk5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzODE2LDEzODE4ICoqKioKKyAgZOFsL0UKKy0gZOFsZQorICBEYWxlY2v9L1kKKy0tLSAxMzgwMywxMzgwNCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzgyMSwxMzgyMyAqKioqCisgIGThbGUvRQorLSBkYWxla28KKyAgZGFsZWtvaGxlZC9ICistLS0gMTM4MDcsMTM4MDggLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQwODIsMTQwODQgKioqKgorICBkYXRsYQorLSBkYXRsZQorICBkYXRsZWNoCistLS0gMTQwNjcsMTQwNjggLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQ3NTYsMTQ3NTggKioqKgorICBkZWt1cmHobu0vWVJOCistIGTsbAorICBkZWxhYm9yYWNlL1oKKy0tLSAxNDc0MCwxNDc0MSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTMwMSwxNTMwMyAqKioqCisgIGRlc2F0ZXLha/l2L1kKKy0gZGVzYXRlcm8KKyAgZGVzYXRlcm8vTVEKKy0tLSAxNTI4NCwxNTI4NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTcxNiwxNTcxOCAqKioqCisgIGRldmF0ZXJu7WsvSAorLSBkZXZhdGVybworICBkZXZhdGVyby9NUQorLS0tIDE1Njk4LDE1Njk5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE2MTUyLDE2MTU0ICoqKioKKyAgRElLCistIGTtaworICBkaWthbGNpdW1mb3Nm4XQvSAorLS0tIDE2MTMzLDE2MTM0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE2NjAzLDE2NjA1ICoqKioKKyAgRGn5di9ZCistIGRpdgorICBkaXbhY2v9L1lLUgorLS0tIDE2NTgzLDE2NTg0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE5ODg2LDE5ODg4ICoqKioKKyAgZG9wb2xhCistIGRvcG9sZWRuZQorICBkb3BvbGVkbmUvTQorLS0tIDE5ODY1LDE5ODY2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE5OTcwLDE5OTcyICoqKioKKyAgZG9wcmF0L0FUTgorLSBkb3ByYXZhCisgIGRvcHJhdmEvWlEKKy0tLSAxOTk0OCwxOTk0OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyMjkxMiwyMjkxNCAqKioqCisgIGT47XYvRQorLSBk+O12ZQorICBk+O12Zehrby9NUQorLS0tIDIyODg5LDIyODkwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDI2MzY5LDI2MzcxICoqKioKKyAgZmFrb2VtdWxzaWZpa2FjZS9aCistIGZha3NpbWlsZQorICBmYWtzaW1pbGUvWgorLS0tIDI2MzQ1LDI2MzQ2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDI3MjY2LDI3MjY4ICoqKioKKyAgZmlt83phL1pRCistIGZpbuFsZQorICBmaW7hbGUvWgorLS0tIDI3MjQxLDI3MjQyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDI4MTAxLDI4MTAzICoqKioKKyAgZm94dHJvdG92/S9ZCistIGZveWVyCisgIGZveWVyL0gKKy0tLSAyODA3NSwyODA3NiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODc1OSwyODc2MSAqKioqCisgIEdhamT5di9ZCistIEdhbAorICBnYWwKKy0tLSAyODczMiwyODczMyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyOTA2MCwyOTA2MiAqKioqCisgIGdlbW92YXQvQVROCistIGdlbgorICBnZW5jaeFub3b9L1lSCistLS0gMjkwMzIsMjkwMzMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjk0MTAsMjk0MTIgKioqKgorICBnbGVqdC9ICistIGdsaXNzYW5kbworICBnbGlzc2FuZG8vTVEKKy0tLSAyOTM4MSwyOTM4MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzMTI0NywzMTI0OSAqKioqCisgIGhlZmVicmFuZC9ICistIEhlZ2VsCisgIEhlZ2VsYQorLS0tIDMxMjE3LDMxMjE4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDMxNjAyLDMxNjA0ICoqKioKKyAgSGVya3VsZW0KKy0gSGVya3VsZXMKKyAgSGVya3VsZXMvRAorLS0tIDMxNTcxLDMxNTcyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDMyMjU4LDMyMjYwICoqKioKKyAgaGxvdWLsdO1uc2v9L1kKKy0gaGxvdWJpCisgIGhsb3ViaWPtL1kKKy0tLSAzMjIyNiwzMjIyNyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzMjYxMiwzMjYxNCAqKioqCisgIEhvY2v9L1kKKy0gaG9kCisgIEhvZOxqaWNlL0MKKy0tLSAzMjU3OSwzMjU4MCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzMzA2OSwzMzA3MSAqKioqCisgIGhvbW9pc29mbGF2b25vaWQvSAorLSBIb21vbGEKKyAgSG9tb2xhL1BWCistLS0gMzMwMzUsMzMwMzYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzQzODksMzQzOTEgKioqKgorICBo+GViZWxlYy9TCistIGj4ZWJlbgorICBo+GViZW5hdGthL1pRCistLS0gMzQzNTQsMzQzNTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzQ4MTcsMzQ4MTkgKioqKgorICBIdXNlcmv5di9ZCistIGh1c+0KKyAgaHVzaWNlL1pRCistLS0gMzQ3ODEsMzQ3ODIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzY0NDEsMzY0NDMgKioqKgorICBjaPh1cGF2/S9ZS1JOCistIGNodOwKKyAgY2h07GplL1hOCistLS0gMzY0MDQsMzY0MDUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzg1NjksMzg1NzEgKioqKgorICBqYWphagorLSBqYWsKKyAgamFr4WtvbGkKKy0tLSAzODUzMSwzODUzMiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzOTMyMywzOTMyNSAqKioqCisgIGplZG7pL04KKy0gamVkbmkKKyAgamVkbmljZS9aUQorLS0tIDM5Mjg0LDM5Mjg1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM5NTM0LDM5NTM2ICoqKioKKyAgamVkbm90/WRlbm7tL1lSCistIGplZG5vdQorICBqZWRub/roZWxvdv0vWVJOCistLS0gMzk0OTQsMzk0OTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzk3MTcsMzk3MTkgKioqKgorICBqZW11vgorLSBqZW4KKyAgSmVuYS9aUQorLS0tIDM5Njc2LDM5Njc3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM5NzU1LDM5NzU3ICoqKioKKyAgamVuL04KKy0gamVub20KKyAgamVub20vTgorLS0tIDM5NzEzLDM5NzE0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQwMTQ5LDQwMTUxICoqKioKKyAgamlu4egvUworLSBqaW5haworICBqaW5hay9OCistLS0gNDAxMDYsNDAxMDcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDEzMTcsNDEzMTkgKioqKgorICBLYWxpc3T5di9ZCistIEthbGm5CisgIGthbO25ZWsvUQorLS0tIDQxMjczLDQxMjc0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQyODYxLDQyODYzICoqKioKKyAga2RlvnRvCistIGtkbworICBrZG9q7WphaworLS0tIDQyODE2LDQyODE3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQ0MDQ4LDQ0MDUwICoqKioKKyAgS2xz4Wv5di9ZCistIGtsdWIKKyAga2x1YmFq7WPtL1lOCistLS0gNDQwMDIsNDQwMDMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDQyMzUsNDQyMzcgKioqKgorICBLbmX4+XYvWQorLSBrbux6CisgIGtu7HplCistLS0gNDQxODgsNDQxODkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDUwMDcsNDUwMDkgKioqKgorICBrb2xpaworLSBrb2xpa2EKKyAga29saWthY2lmZXJu/S9ZS1JOCistLS0gNDQ5NTksNDQ5NjAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDYyOTIsNDYyOTQgKioqKgorICBrb250aW51dW0vTVEKKy0ga29udG8KKyAga29udG9rb3JlbnQvSAorLS0tIDQ2MjQzLDQ2MjQ0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQ3MTUyLDQ3MTU0ICoqKioKKyAga29zbW9wb2xpdPl2L1kKKy0ga29zbW9zCisgIGtvc21vcy9RCistLS0gNDcxMDIsNDcxMDMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTE4NDQsNTE4NDYgKioqKgorICBMZWNsYW5jaGX5di9ZCistIGxl6AorICBs6ehiYS9aUQorLS0tIDUxNzkzLDUxNzk0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDUyNDQ5LDUyNDUxICoqKioKKyAgbGW5dGl2/S9ZS1JOCistIGxldAorICBs6XRhY+0vWU4KKy0tLSA1MjM5Nyw1MjM5OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NDM1MSw1NDM1MyAqKioqCisgIGz5agorLSBsdWsKKyAgTHVr4ehvduEvWQorLS0tIDU0Mjk4LDU0Mjk5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDU1NDA4LDU1NDEwICoqKioKKyAgTWFsbG9yY2EvWlEKKy0gbeFsbworICBtYWxvYnVyvm9hc2llL1oKKy0tLSA1NTM1NCw1NTM1NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NTU3NCw1NTU3NiAqKioqCisgIG1hbXV0+XYvWQorLSBNYW4KKyAgbeEvTgorLS0tIDU1NTE5LDU1NTIwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDU1ODUyLDU1ODU0ICoqKioKKyAgTWFwdXRvL01RCistIG1hcmFidQorICBtYXJhYnUvUFYKKy0tLSA1NTc5Niw1NTc5NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NzI1NCw1NzI1NiAqKioqCisgIE1lbmRs+XYvWQorLSBt6W7sCisgIG3pbuxjZW5u7Gq57S9ZUlcKKy0tLSA1NzE5Nyw1NzE5OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1ODM1OCw1ODM2MCAqKioqCisgIG1pbGVu/S9ZTgorLSBtaWxlcuFkCisgIG1pbGVy4WQvTworLS0tIDU4MzAwLDU4MzAxIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDU5NDI2LDU5NDI4ICoqKioKKyAgbW9j7W0KKy0gbW9jaXDhbgorICBtb2NpcOFuYQorLS0tIDU5MzY3LDU5MzY4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDYwODMzLDYwODM1ICoqKioKKyAgTXVjaPl2L1kKKy0gbflqCisgIG35ai9ZCistLS0gNjA3NzMsNjA3NzQgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjIzMDgsNjIzMTAgKioqKgorICBuYWRwbG9jaGEvWlEKKy0gbmFkcG/oZXQKKyAgbmFkcG/oZXRu7Gq57S9ZUlcKKy0tLSA2MjI0Nyw2MjI0OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA2NjExNCw2NjExNiAqKioqCisgIG5hdmG+dWrtY+0vWU4KKy0gbmF2ZehlcgorICBuYXZl6GVyL0wKKy0tLSA2NjA1Miw2NjA1MyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA2NjU4MSw2NjU4MyAqKioqCisgIG5lYmVzCistIG5lYmVzYQorICBuZWJlc2EvTVEKKy0tLSA2NjUxOCw2NjUxOSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA2ODA4MCw2ODA4MiAqKioqCisgIG5vYmxlc27tL1lLUgorLSBub2MKKyAgbm9jZW1pCistLS0gNjgwMTYsNjgwMTcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjg1NjIsNjg1NjQgKioqKgorICBub3Z1bS9NUQorLSBOb3b9CisgIE5vdv0vWQorLS0tIDY4NDk3LDY4NDk4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDczMDE4LDczMDIwICoqKioKKyAgb2Rwb2pvduF2YXQvSlROCistIG9kcG9sZWRuZQorICBvZHBvbGVkbmUvTQorLS0tIDcyOTUyLDcyOTUzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDczMTIxLDczMTIzICoqKioKKyAgb2RwcmG5b3ZhdC9BVE4KKy0gb2RwcmF2YQorICBvZHByYXZhL1pRCistLS0gNzMwNTQsNzMwNTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNzYxNDUsNzYxNDcgKioqKgorICBvb3Nm6XJhL1pRCistIG9wCisgIG9w4ehlbu0vU04KKy0tLSA3NjA3Nyw3NjA3OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA3ODA0MCw3ODA0MiAqKioqCisgIG9zdPhpaG5vdXQvQVROCistIE9zdPhpaG9tCisgIE9zdPhpaG9tL0sKKy0tLSA3Nzk3MSw3Nzk3MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4MDExNyw4MDEyMSAqKioqCisgIHBhbnRoZWlzdGlja/0vWUNSCistIHBhbnRvZmVsCisgIHBhbnRvZmVsL1EKKy0gcGFudG9mbGUKKyAgcGFudG9mbGVtaQorLS0tIDgwMDQ3LDgwMDQ5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDgwMjU4LDgwMjYwICoqKioKKyAgcGFyCistIHDhcgorICBwYXJhYW1maWJvbGl0L0gKKy0tLSA4MDE4Niw4MDE4NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4MTQxNCw4MTQxNiAqKioqCisgIFBFCistIHBlYworICBwZWNh+C9VCistLS0gODEzNDEsODEzNDIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogODI3MjAsODI3MjIgKioqKgorICBwaWFuaXN0+XYvWQorLSBwaWFubworICBwaeFuby9NUQorLS0tIDgyNjQ2LDgyNjQ3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDgzMzIxLDgzMzIzICoqKioKKyAgcGl6emVyaWUvWgorLSBwaXp6aWNhdG8KKyAgcGl6emljYXRvL01RCistLS0gODMyNDYsODMyNDcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogODM3MzEsODM3MzMgKioqKgorICBwbGViaXNjaXQvSAorLSBwbGVicworICBwbGVic2UKKy0tLSA4MzY1NSw4MzY1NiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4MzgzMyw4MzgzNSAqKioqCisgIFBsZXNrb3T5di9ZCistIHBsZXNreQorICBwbGVza3kvSAorLS0tIDgzNzU2LDgzNzU3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDg1ODYxLDg1ODYzICoqKioKKyAgcG9k+GFk7G7tL1NOCistIHBvZPhhZOxu/QorICBwb2T4YWTsbv0vWUtSTgorLS0tIDg1NzgzLDg1Nzg0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDg5MDc3LDg5MDc5ICoqKioKKyAgcG9w+OF2YXQvSk4KKy0gcG9w+GVk7QorICBwb3D4ZWTtL1MKKy0tLSA4ODk5OCw4ODk5OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA5MTM1OCw5MTM2MCAqKioqCisgIHBvemFi7WpldC9KVE4KKy0gcG96YWTtCisgIHBvemFk7S9TCistLS0gOTEyNzgsOTEyNzkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTE3ODMsOTE3ODUgKioqKgorICBwcuFjZXNjaG9wbv0vWUtSCistIHByYWPtCisgIHBy4WNpCistLS0gOTE3MDIsOTE3MDMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTIxNzYsOTIxNzggKioqKgorICBwcmF27Gv9L1lLUgorLSBwcuF2ZW0KKyAgcHLhdmVtL04KKy0tLSA5MjA5NCw5MjA5NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA5NTM3Nyw5NTM3OSAqKioqCisgIHByb3Nw4XZhdC9KVE4KKy0gcHJvc3DsY2gKKyAgcHJvc3DsY2jhbu0vU04KKy0tLSA5NTI5NCw5NTI5NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMDUxOTUsMTA1MTk3ICoqKioKKyAgcPlsZGVubu0vWVIKKy0gcPlsZG5lCisgIHD5bGRuZWNoCistLS0gMTA1MTExLDEwNTExMiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMDUyMTYsMTA1MjE4ICoqKioKKyAgcPlsZHJ1aP0vWQorLSBw+WxlCisgIHB1bGVjL1UKKy0tLSAxMDUxMzEsMTA1MTMyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEwNjI1NywxMDYyNTkgKioqKgorICBy4W1jb3b9L1lSCistIHLhbewKKyAgcuFtZWMvUworLS0tIDEwNjE3MSwxMDYxNzIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTA5MzA0LDEwOTMwNiAqKioqCisgIHJvemTsbHVq7WPtL1lOCistIHJvemTtbAorICByb3pk7Wxlbu0vU04KKy0tLSAxMDkyMTcsMTA5MjE4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExMzAyOSwxMTMwMzEgKioqKgorICBS+nIvSAorLSBSdXMKKyAgcnVzYWzo7S9ZCistLS0gMTEyOTQxLDExMjk0MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMTMxMjQsMTEzMTI2ICoqKioKKyAgcnW5dGluYS9aUQorLSBS+nQKKyAgUvl0YS9QVgorLS0tIDExMzAzNSwxMTMwMzYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTE1MTA0LDExNTEwNiAqKioqCisgIHNjZXpvdmF0L0FUTgorLSBzY2llbmNlCisgIHNjaWVuY2UvWgorLS0tIDExNTAxNCwxMTUwMTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTE1NzIzLDExNTcyNSAqKioqCisgIHNlZG1lcuhlL0sKKy0gc2VkbWVybworICBzZWRtZXJvL01RCistLS0gMTE1NjMyLDExNTYzMyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMTYyNDksMTE2MjUxICoqKioKKyAgU+lt+XYvWQorLSBzZW4KKyAgc2VuYfgvUEkKKy0tLSAxMTYxNTcsMTE2MTU4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExNjk2MiwxMTY5NjQgKioqKgorICBzZbl2aW5kbG92YXQvQVROCistIHNldAorICBzZXRiYS9aUQorLS0tIDExNjg2OSwxMTY4NzAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTE3Nzg2LDExNzc4OCAqKioqCisgIFNpa/l2L1kKKy0gc2lsCisgIHNpbOFja/0vWUtSTgorLS0tIDExNzY5MiwxMTc2OTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTIxNjM1LDEyMTYzNyAqKioqCisgIHNwYXRu/S9ZS1IKKy0gc3BhdHJhCisgIHNwYXRyYS9aUQorLS0tIDEyMTU0MCwxMjE1NDEgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTIxODg3LDEyMTg4OSAqKioqCisgIHNw7bkKKy0gc3DtuWUKKyAgc3DtuWUvRQorLS0tIDEyMTc5MSwxMjE3OTIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTIyMzIzLDEyMjMyNSAqKioqCisgIHNwb2x1cHLhY2UvTgorLSBzcG9sdXBy4WNpCisgIHNwb2x1cHJhY+1jaC9OCistLS0gMTIyMjI2LDEyMjIyNyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMjI4OTAsMTIyODkyICoqKioKKyAgc3Jvdm5hbuxque0vWVJXCistIHNyb3Zu4W7tCisgIHNyb3Zu4W7tL1NOCistLS0gMTIyNzkyLDEyMjc5MyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMjk5ODcsMTI5OTg5ICoqKioKKyAguXVudC9ICistILl1cAorICC5dXDhY2v9L1lLUgorLS0tIDEyOTg4OCwxMjk4ODkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTMwNDI3LDEzMDQyOSAqKioqCisgIHRha292b3V0bworLSB0YWtvdv0KKyAgdGFrb3b9Y2h0bworLS0tIDEzMDMyNywxMzAzMjggLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTMxMTkwLDEzMTE5MiAqKioqCisgIHRlbb5za/0vWQorLSB0ZW4KKyAgdGVuYXRhL01RCistLS0gMTMxMDg5LDEzMTA5MCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzE5NTgsMTMxOTYwICoqKioKKyAgdGljaP0vWUtSTworLSB0aWsKKyAgdGlrYWrtY+0vWU4KKy0tLSAxMzE4NTYsMTMxODU3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzMjU0MSwxMzI1NDMgKioqKgorICBUb21hc2No+XYvWQorLSBUb23huQorICBUb23huWVrL1BWCistLS0gMTMyNDM4LDEzMjQzOSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzM4OTAsMTMzODkyICoqKioKKyAgVHJ1YnNr4S9ZCistIHRydWMKKyAgdHJ1Yy9ICistLS0gMTMzNzg2LDEzMzc4NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzQwNTcsMTM0MDU5ICoqKioKKyAgdPjhc3QvSU4KKy0gdPhlYmEKKyAgdPhlYmEvTgorLS0tIDEzMzk1MiwxMzM5NTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM1MDI0LDEzNTAyNiAqKioqCisgIHR2cnovWgorLSB0dvlqCisgIHR2+WovWQorLS0tIDEzNDkxOCwxMzQ5MTkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM1NTMyLDEzNTUzNCAqKioqCisgIProZXNvdv0vWVIKKy0g+uhldAorICD66GV0bmlja/0vWVJOCistLS0gMTM1NDI1LDEzNTQyNiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzk2MjAsMTM5NjIyICoqKioKKyAgdXphbWtudXTtL1NOCistIHV6YW1rbnV0/QorICB1emFta251dP0vWUtSTgorLS0tIDEzOTUxMiwxMzk1MTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQxNjI0LDE0MTYyNiAqKioqCisgIFZlcmRvbPl2L1kKKy0gduxyZW4KKyAgduxyZW4vTgorLS0tIDE0MTUxNSwxNDE1MTYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQxNjUxLDE0MTY1MyAqKioqCisgIHbsci9OCistIHbscm5hCisgIHbscm5hL04KKy0tLSAxNDE1NDEsMTQxNTQyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTY2MywxNDE2NjUgKioqKgorICBWZXJuZS9ZCistIHbscm5pCisgIHbscm5pL04KKy0tLSAxNDE1NTIsMTQxNTUzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTY2NywxNDE2NjkgKioqKgorICB2ZXJuaXPhvi9aCistIHbscm5vCisgIHbscm5vL04KKy0tLSAxNDE1NTUsMTQxNTU2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTY3MSwxNDE2NzYgKioqKgorICB2ZXJub3ZrYS9aUQorLSB27HJudQorICB27HJudS9OCisgIFZlcm75di9ZCistIHbscm55CisgIHbscm55L04KKy0tLSAxNDE1NTgsMTQxNTYxIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTkyNCwxNDE5MjYgKioqKgorICB2ZXRrbnV07S9TTgorLSB2ZXRrbnV0/QorICB2ZXRrbnV0/S9ZS1JOCistLS0gMTQxODA5LDE0MTgxMCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDIxMTcsMTQyMTE5ICoqKioKKyAgdmhsb3ViZW79L1lLUk4KKy0gdmhsb3ViaXQKKyAgdmhsb3ViaXQvQVROCistLS0gMTQyMDAxLDE0MjAwMiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDQxMDQsMTQ0MTA2ICoqKioKKyAgVm9sZOFu+XYvWQorLSB2b2xlCisgIHZvbGVibu0vWVIKKy0tLSAxNDM5ODcsMTQzOTg4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0NDQwOSwxNDQ0MTEgKioqKgorICBWb3T9cGv5di9ZCistIHZvdXMKKyAgdm91c+HoL1UKKy0tLSAxNDQyOTEsMTQ0MjkyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0NDk1MiwxNDQ5NTQgKioqKgorICB2cnR1bG92/S9ZUgorLSB2cnViCisgIHZydWIvSAorLS0tIDE0NDgzMywxNDQ4MzQgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQ0OTc5LDE0NDk4MSAqKioqCisgIHZy/XZhdv0vWVIKKy0gdnJ6CisgIFZyeuHoZWsvUFYKKy0tLSAxNDQ4NTksMTQ0ODYwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE1MTMzMCwxNTEzMzIgKioqKgorICB2eXRrbnV07S9TTgorLSB2eXRrbnV0/QorICB2eXRrbnV0/S9ZUk4KKy0tLSAxNTEyMDksMTUxMjEwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE1MTkyNywxNTE5MjkgKioqKgorICB2eXZyaG51dO0vU04KKy0gdnl2cmhudXT9CisgIHZ5dnJobnV0/S9ZS1JOCistLS0gMTUxODA1LDE1MTgwNiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTI0MzUsMTUyNDM3ICoqKioKKyAgdnpk7GzhdmF0L0pUTgorLSB2emRvcgorICB2emRvci9ICistLS0gMTUyMzEyLDE1MjMxMyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTYwNDAsMTU2MDQyICoqKioKKyAgemFta251dO0vU04KKy0gemFta251dP0KKyAgemFta251dP0vWUtSTgorLS0tIDE1NTkxNiwxNTU5MTcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTU3Nzk1LDE1Nzc5NyAqKioqCisgIHphc3RvbmVqdGUvTgorLSB6YXN0b3VwZW7tCisgIHphc3RvdXBlbu0vU04KKy0tLSAxNTc2NzAsMTU3NjcxIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE2MDM2NCwxNjAzNjYgKioqKgorICB6ZWL47S9ZCistIHplYnUKKyAgemVidS9CTgorLS0tIDE2MDIzOCwxNjAyMzkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTY2NDA5LDE2NjQxMSAqKioqCisgIK5tde8KKy0gvm5lYworICC+bmVjL1UKKy0tLSAxNjYyODIsMTY2MjgzIC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3MvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2NzL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYWQ2ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2NzL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQ3plY2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBjc19DWi5hZmYgY3NfQ1ouZGljCisKK2FsbDogJFNQRUxMRElSL2NzLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9jcy51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvY3MuY3AxMjUwLnNwbCAuLi9SRUFETUVfY3MudHh0CisKKyRTUEVMTERJUi9jcy5pc28tODg1OS0yLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9Y3NfQ1ouSVNPODg1OS0yICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2NzIGNzX0NaIiAtYyBxCisKKyRTUEVMTERJUi9jcy51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWNzX0NaLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2NzIGNzX0NaIiAtYyBxCisKKyRTUEVMTERJUi9jcy5jcDEyNTAuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2NzIGNzX0NaIiAtYyBxCisKKy4uL1JFQURNRV9jcy50eHQ6IFJFQURNRV9jc19DWi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBjc19DWi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitjc19DWi5hZmYgY3NfQ1ouZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGNzX0NaLnppcAorICAgICAgICA6c3lzICRVTlpJUCBjc19DWi56aXAKKyAgICAgICAgOmRlbGV0ZSBjc19DWi56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3NfQ1oub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGNzX0NaLmFmZiBjc19DWi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdjc19DWi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgY3NfQ1ouZGljIGNzX0NaLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnY3NfQ1ouZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8Y3NfQ1ouZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjc19DWi5vcmlnLmFmZiBjc19DWi5hZmYgPmNzX0NaLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjc19DWi5vcmlnLmRpYyBjc19DWi5kaWMgPj5jc19DWi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBjc19DWi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2NzX0NaLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY3NfQ1oub3JpZy5hZmYgY3NfQ1ouYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGNzX0NaLmFmZiAuLi9jc19DWi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9jc19DWi5vcmlnLmRpYyBjc19DWi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgY3NfQ1ouZGljIC4uL2NzX0NaLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBjc19DWi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNlMzcxNgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBGcmVuY2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBkYV9ESy5hZmYgZGFfREsuZGljCisKK2FsbDogJFNQRUxMRElSL2RhLmxhdGluMS5zcGwgJFNQRUxMRElSL2RhLnV0Zi04LnNwbCAuLi9SRUFETUVfZGEudHh0CisKKyRTUEVMTERJUi9kYS5sYXRpbjEuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1kYV9ESy5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZGEgZGFfREsiIC1jIHEKKworJFNQRUxMRElSL2RhLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9ZGFfREsuVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZGEgZGFfREsiIC1jIHEKKworLi4vUkVBRE1FX2RhLnR4dCA6IFJFQURNRSBDb3B5cmlnaHQKKyAgICAgICAgOmNhdCAkc291cmNlID4hICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGRhX0RLLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorZGFfREsuYWZmIGRhX0RLLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBkYV9ESy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZGFfREsuemlwCisgICAgICAgIDpkZWxldGUgZGFfREsuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RhX0RLLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBkYV9ESy5hZmYgZGFfREsub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGFfREsub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGRhX0RLLmRpYyBkYV9ESy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2RhX0RLLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGRhX0RLLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGFfREsub3JpZy5hZmYgZGFfREsuYWZmID5kYV9ESy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGFfREsub3JpZy5kaWMgZGFfREsuZGljID4+ZGFfREsuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggZGFfREsuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9kYV9ESy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2RhX0RLLm9yaWcuYWZmIGRhX0RLLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBkYV9ESy5hZmYgLi4vZGFfREsubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZGFfREsub3JpZy5kaWMgZGFfREsuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGRhX0RLLmRpYyAuLi9kYV9ESy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgZGFfREsuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvZGVfMTkuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfMTkuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODA3YThiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9kZS9kZV8xOS5kaWZmCkBAIC0wLDAgKzEsMjcgQEAKKyoqKiBkZV8xOS5vcmlnLmFmZglNb24gQXVnIDE1IDIyOjQ1OjM1IDIwMDUKKy0tLSBkZV8xOS5hZmYJTW9uIEF1ZyAxNSAyMjo1NDoxMCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsMjQgLS0tLQorICAKKysgRk9MICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCAgwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUlEV09SRAknCisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kZS9kZV8yMC5kaWZmIGIvcnVudGltZS9zcGVsbC9kZS9kZV8yMC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzMmFkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2RlL2RlXzIwLmRpZmYKQEAgLTAsMCArMSwyOCBAQAorKioqIGRlXzIwLm9yaWcuYWZmCU1vbiBBdWcgMTUgMjI6NDU6NDEgMjAwNQorLS0tIGRlXzIwLmFmZglNb24gQXVnIDE1IDIyOjU0OjE2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsMyAqKioqCistLS0gMiwyNCAtLS0tCisgIFRSWSBlc2lhbnJ0b2xjZHVnbXBoYnlmdmt35Pz23+Hp6uDi8UVTSUFOUlRPTENEVUdNUEhCWUZWS1fE3NYKKysgCisrIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICAjCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2RlL2RlX0FULmRpZmYgYi9ydW50aW1lL3NwZWxsL2RlL2RlX0FULmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEzZTRkNQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfQVQuZGlmZgpAQCAtMCwwICsxLDQ0IEBACisqKiogZGVfQVQub3JpZy5hZmYJTW9uIEF1ZyAxNSAyMjo1OTo0MyAyMDA1CistLS0gZGVfQVQuYWZmCU1vbiBBdWcgMTUgMjM6MDA6MjUgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDI0IC0tLS0KKyAgCisrIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICAKKyoqKiBkZV9BVC5vcmlnLmRpYwlNb24gQXVnIDE1IDIyOjU5OjQzIDIwMDUKKy0tLSBkZV9BVC5kaWMJTW9uIEF1ZyAxNSAyMzowMzoxOSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxOCwyMCAqKioqCisgIEZsZWlzY2hi5G5rZS9OCistIEZsZWlzY2hiYW5rCisgIEZsZWlzY2hoYXVlci9OUworLS0tIDE4LDE5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE1MSwxNTMgKioqKgorICB6dWxpZWIKKyEgNzc4NTcKKyAgxGJ0ZS9OCistLS0gMTUwLDE1MiAtLS0tCisgIHp1bGllYgorISAKKyAgxGJ0ZS9OCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2RlL2RlX0NILmRpZmYgYi9ydW50aW1lL3NwZWxsL2RlL2RlX0NILmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA3Zjg3NAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfQ0guZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogZGVfQ0gub3JpZy5hZmYJTW9uIEF1ZyAxNSAyMjo0NTo0MyAyMDA1CistLS0gZGVfQ0guYWZmCU1vbiBBdWcgMTUgMjI6NTQ6MjEgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDI0IC0tLS0KKyAgCisrIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvZGVfREUuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfREUuZGlmZgppbmRleCAwZDM5NWU4Li5mZTMzYjQxIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2RlL2RlX0RFLmRpZmYKKysrIGIvcnVudGltZS9zcGVsbC9kZS9kZV9ERS5kaWZmCkBAIC0xLDUgKzEsNSBAQAotKioqIGRlX0RFLm9yaWcuYWZmCUZyaSBGZWIgMjUgMTI6NTA6MTAgMjAwNQotLS0tIGRlX0RFLmFmZglTdW4gSnVsIDMxIDIyOjE1OjQ5IDIwMDUKKyoqKiBkZV9ERS5vcmlnLmFmZglNb24gQXVnIDE1IDIyOjQ1OjMzIDIwMDUKKy0tLSBkZV9ERS5hZmYJTW9uIEF1ZyAxNSAyMjo0NTozMyAyMDA1CiAqKioqKioqKioqKioqKioKICoqKiAyLDMgKioqKgogLS0tIDIsMjQgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kZS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAKaW5kZXggODBiZmNlYS4uZGY2MDhlMSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9kZS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2RlL21haW4uYWFwCkBAIC0xLDQgKzEsMTMgQEAKICMgQWFwIHJlY2lwZSBmb3IgR2VybWFuIFZpbSBzcGVsbCBmaWxlcy4KKyMKKyMgU2luY2UgdGhlcmUgaXMgYSBiaWcgZGlzY3Vzc2lvbiBhYm91dCB3aGV0aGVyIHRvIHVzZSB0aGUgb2xkIG9yIHRoZSBuZXcKKyMgc3BlbGxpbmcgcnVsZXMsIGJvdGggaGF2ZSBiZWVuIGluY2x1ZGVkLgorIyAgICAiZGUiOiBhbGwgcG9zc2libGUgd29yZHMgYWxsb3dlZAorIyAiZGVfZGUiOiBvbGQgYW5kIG5ldyBHZXJtYW4gc3BlbGxpbmcKKyMgImRlXzE5Ijogb2xkIEdlcm1hbiBzcGVsbGluZworIyAiZGVfMjAiOiBuZXcgR2VybWFuIHNwZWxsaW5nCisjICJkZV9BVCI6IEF1c3RyaWFuIHNwZWxsaW5nCisjICJkZV9DSCI6IFN3aXNzIHNwZWxsaW5nCiAKICMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgogQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CkBAIC02LDY2ICsxNSwxNzAgQEAKIEBlbHNlOgogICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KIAotU1BFTExESVIgPSAuLgotRklMRVMgICAgPSBkZV9ERS5hZmYgZGVfREUuZGljCi1aSVBGSUxFICA9IGRlX0RFX2NvbWIuemlwCitSRUdJT05TID0gREUgMTkgMjAgQVQgQ0gKK0RFX1JFR0lPTlMgPSBkZV8kKlJFR0lPTlMKIAotYWxsOiAkKFNQRUxMRElSKS9kZS5sYXRpbjEuc3BsICQoU1BFTExESVIpL2RlLnV0Zi04LnNwbCAuLi9SRUFETUVfZGUudHh0CitTUEVMTERJUiAgID0gLi4KK0ZJTEVTICAgICAgPSBkZV8kKihSRUdJT05TKS5hZmYgZGVfJCooUkVHSU9OUykuZGljCiAKLSQoU1BFTExESVIpL2RlLmxhdGluMS5zcGwgOiAkKFZJTSkgJChGSUxFUykKK1pJUEZJTEVfREUgPSBkZV9ERV9jb21iLnppcAorWklQRklMRV8xOSA9IGRlX0RFLnppcAorWklQRklMRV8yMCA9IGRlX0RFX25ldS56aXAKK1pJUEZJTEVfQVQgPSBkZV9BVC56aXAKK1pJUEZJTEVfQ0ggPSBkZV9DSC56aXAKK1pJUEZJTEVTICAgPSAkWklQRklMRV9ERSAkWklQRklMRV8xOSAkWklQRklMRV8yMCAkWklQRklMRV9BVCAkWklQRklMRV9DSAorCitSRUFETUVTICAgID0gUkVBRE1FX2RlXyQqKFJFR0lPTlMpLnR4dAorCithbGw6ICRTUEVMTERJUi9kZS5sYXRpbjEuc3BsICRTUEVMTERJUi9kZS51dGYtOC5zcGwgLi4vUkVBRE1FX2RlLnR4dAorCiskU1BFTExESVIvZGUubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9ZGVfREUuSVNPODg1OS0xCi0JCSQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9kZSBkZV9ERSIgLWMgcQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9kZSAkREVfUkVHSU9OUyIgLWMgcQogCi0kKFNQRUxMRElSKS9kZS51dGYtOC5zcGwgOiAkKFZJTSkgJChGSUxFUykKKyRTUEVMTERJUi9kZS51dGYtOC5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWRlX0RFLlVURi04Ci0JCSQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9kZSBkZV9ERSIgLWMgcQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9kZSAkREVfUkVHSU9OUyIgLWMgcQogCi0uLi9SRUFETUVfZGUudHh0OiBSRUFETUVfZGVfREVfY29tYi50eHQKLSAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisuLi9SRUFETUVfZGUudHh0OiAkUkVBRE1FUworICAgICAgICA6cHJpbnQgZGVfREUgKGNvbWJpbmVkKSA+ISAkdGFyZ2V0CisgICAgICAgIDpjYXQgUkVBRE1FX2RlX0RFLnR4dCAgID4+ICR0YXJnZXQKKyAgICAgICAgOnByaW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA+PiR0YXJnZXQKKyAgICAgICAgOnByaW50IGRlXzE5IChvbGQpICAgICAgPj4gJHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9kZV8xOS50eHQgICA+PiAkdGFyZ2V0CisgICAgICAgIDpwcmludCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPj4kdGFyZ2V0CisgICAgICAgIDpwcmludCBkZV8yMCAobmV3KSAgICAgID4+ICR0YXJnZXQKKyAgICAgICAgOmNhdCBSRUFETUVfZGVfMjAudHh0ICAgPj4gJHRhcmdldAorICAgICAgICA6cHJpbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgZGVfQVQgKEF1c3RyaWEpICA+PiAkdGFyZ2V0CisgICAgICAgIDpjYXQgUkVBRE1FX2RlX0FULnR4dCAgID4+ICR0YXJnZXQKKyAgICAgICAgOnByaW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA+PiR0YXJnZXQKKyAgICAgICAgOnByaW50IGRlX0NIIChTd2lzcykgICAgPj4gJHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9kZV9DSC50eHQgICA+PiAkdGFyZ2V0CiAKICMKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiBPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkKE9PRElSKS8lZmlsZSV9ICQoWklQRklMRSkKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9ICRaSVBGSUxFUwogCiAjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCiAjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgogZGVfREUuYWZmIGRlX0RFLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCi0gICAgICAgIDpmZXRjaCAkKFpJUEZJTEUpCi0gICAgICAgIDpzeXMgJChVTlpJUCkgJChaSVBGSUxFKQotICAgICAgICA6ZGVsZXRlICQoWklQRklMRSkKKyAgICAgICAgOmZldGNoICRaSVBGSUxFX0RFCisgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFX0RFCisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfREUKICAgICAgICAgOm1vdmUgZGVfREVfY29tYi5hZmYgZGVfREUuYWZmCiAgICAgICAgIDptb3ZlIGRlX0RFX2NvbWIuZGljIGRlX0RFLmRpYworICAgICAgICA6bW92ZSBSRUFETUVfZGVfREVfY29tYi50eHQgUkVBRE1FX2RlX0RFLnR4dAogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV9ERS5vcmlnLmFmZicpOgotICAgICAgICAgICAgICAgIDpjb3B5IGRlX0RFLmFmZiBkZV9ERS5vcmlnLmFmZgorICAgICAgICAgICAgOmNvcHkgZGVfREUuYWZmIGRlX0RFLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RlX0RFLm9yaWcuZGljJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZGVfREUuZGljIGRlX0RFLm9yaWcuZGljCisgICAgICAgICAgICA6Y29weSBkZV9ERS5kaWMgZGVfREUub3JpZy5kaWMKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdkZV9ERS5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxkZV9ERS5kaWZmCiAKK2RlXzE5LmFmZiBkZV8xOS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggJFpJUEZJTEVfMTkKKyAgICAgICAgIyBNb3ZlIHRoZSBvdGhlciBmaWxlcyBvdXQgb2YgdGhlIHdheS4KKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCJkZV9ERS5hZmYiKToKKyAgICAgICAgICAgIDptb3ZlIGRlX0RFLmFmZiBkZV9ERV9jb21iLmFmZgorICAgICAgICAgICAgOm1vdmUgZGVfREUuZGljIGRlX0RFX2NvbWIuZGljCisgICAgICAgICAgICA6bW92ZSBSRUFETUVfZGVfREUudHh0IFJFQURNRV9kZV9ERV9jb21iLnR4dAorCisgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFXzE5CisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfMTkKKyAgICAgICAgOmRlbGV0ZSB7Zn0gZGVfQVQuZGljCisgICAgICAgIDptb3ZlIGRlX0RFLmFmZiBkZV8xOS5hZmYKKyAgICAgICAgOm1vdmUgZGVfREUuZGljIGRlXzE5LmRpYworICAgICAgICA6bW92ZSBSRUFETUVfZGVfREUudHh0IFJFQURNRV9kZV8xOS50eHQKKworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoImRlX0RFX2NvbWIuYWZmIik6CisgICAgICAgICAgICA6bW92ZSBkZV9ERV9jb21iLmFmZiBkZV9ERS5hZmYKKyAgICAgICAgICAgIDptb3ZlIGRlX0RFX2NvbWIuZGljIGRlX0RFLmRpYworICAgICAgICAgICAgOm1vdmUgUkVBRE1FX2RlX0RFX2NvbWIudHh0IFJFQURNRV9kZV9ERS50eHQKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfMTkub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGRlXzE5LmFmZiBkZV8xOS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV8xOS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZGVfMTkuZGljIGRlXzE5Lm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZGVfMTkuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZGVfMTkuZGlmZgorCitkZV8yMC5hZmYgZGVfMjAuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoICRaSVBGSUxFXzIwCisgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFXzIwCisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfMjAKKyAgICAgICAgOm1vdmUgZGVfREVfbmV1LmFmZiBkZV8yMC5hZmYKKyAgICAgICAgOm1vdmUgZGVfREVfbmV1LmRpYyBkZV8yMC5kaWMKKyAgICAgICAgOm1vdmUgUkVBRE1FX2RlX0RFX25ldS50eHQgUkVBRE1FX2RlXzIwLnR4dAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV8yMC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgZGVfMjAuYWZmIGRlXzIwLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RlXzIwLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBkZV8yMC5kaWMgZGVfMjAub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdkZV8yMC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxkZV8yMC5kaWZmCisKKyMgSXQgYXBwZWFycyBkZV9BVC5kaWMgaXMgb25seSBhbiBhZGRpdGlvbmFsIGZpbGUgZm9yIGFub3RoZXIgd29yZCBsaXN0LiAgV2UKKyMgZ3Vlc3MgaXQncyB0aGUgb2xkIHNwZWxsaW5nIG9uZSBhbmQgY29uY2F0ZW5hdGUgdGhlbS4gIENvbXBsaWNhdGlvbiBpcyB0aGF0CisjIGRlX0FULmRpYyBpcyBtaXNzaW5nIGEgbmV3bGluZSBhdCB0aGUgZW5kLgorZGVfQVQuYWZmIGRlX0FULmRpYzoge2J1aWxkY2hlY2s9fSBkZV8xOS5kaWMKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggJFpJUEZJTEVfQVQKKyAgICAgICAgOnN5cyAkVU5aSVAgJFpJUEZJTEVfQVQKKyAgICAgICAgOmRlbGV0ZSAkWklQRklMRV9BVAorICAgICAgICA6cHJpbnQgPj5kZV9BVC5kaWMKKyAgICAgICAgOmNhdCBkZV8xOS5kaWMgPj5kZV9BVC5kaWMKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfQVQub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGRlX0FULmFmZiBkZV9BVC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV9BVC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZGVfQVQuZGljIGRlX0FULm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZGVfQVQuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZGVfQVQuZGlmZgorCitkZV9DSC5hZmYgZGVfQ0guZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoICRaSVBGSUxFX0NICisgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFX0NICisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfQ0gKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfQ0gub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGRlX0NILmFmZiBkZV9DSC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV9DSC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZGVfQ0guZGljIGRlX0NILm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZGVfQ0guZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZGVfQ0guZGlmZgorCiAKICMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKICMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgotCiBkaWZmOgogICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV9ERS5vcmlnLmFmZiBkZV9ERS5hZmYgPmRlX0RFLmRpZmYKICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV9ERS5vcmlnLmRpYyBkZV9ERS5kaWMgPj5kZV9ERS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfMTkub3JpZy5hZmYgZGVfMTkuYWZmID5kZV8xOS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfMTkub3JpZy5kaWMgZGVfMTkuZGljID4+ZGVfMTkuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlXzIwLm9yaWcuYWZmIGRlXzIwLmFmZiA+ZGVfMjAuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlXzIwLm9yaWcuZGljIGRlXzIwLmRpYyA+PmRlXzIwLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV9BVC5vcmlnLmFmZiBkZV9BVC5hZmYgPmRlX0FULmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV9BVC5vcmlnLmRpYyBkZV9BVC5kaWMgPj5kZV9BVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfQ0gub3JpZy5hZmYgZGVfQ0guYWZmID5kZV9DSC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfQ0gub3JpZy5kaWMgZGVfQ0guZGljID4+ZGVfQ0guZGlmZgogCiAKICMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCiAjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KIAogY2hlY2s6CisgICAgICAgIDpwcmludCBUT0RPISEhIQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKLSAgICAgICAgOmZldGNoICQoWklQRklMRSkKKyAgICAgICAgOmZldGNoICRaSVBGSUxFX0RFCiAgICAgICAgIDpta2RpciB0bXAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uLyQoWklQRklMRSkKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uLyRaSVBGSUxFX0RFCiAgICAgICAgICAgICA6bW92ZSBkZV9ERV9jb21iLmFmZiBkZV9ERS5hZmYKICAgICAgICAgICAgIDptb3ZlIGRlX0RFX2NvbWIuZGljIGRlX0RFLmRpYwogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZGVfREUub3JpZy5hZmYgZGVfREUuYWZmID5kCkBAIC03Nyw3ICsxOTAsNyBAQAogICAgICAgICBAZmluYWxseToKICAgICAgICAgICAgIDpjZCAuLgogICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCi0gICAgICAgICAgICA6ZGVsZXRlICQoWklQRklMRSkKKyAgICAgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfREUKIAogCiAjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAppbmRleCA3M2M1OWM3Li5jNzdlZjlhIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKaW5kZXggZWQ2NDViOC4uODUxZjcxNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbCBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCmluZGV4IGJiMmJkYjUuLmQ2Yjc4MzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZW4vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2VuL21haW4uYWFwCmluZGV4IGQ0NjY4MzAuLjM3YTllZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4vbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9lbi9tYWluLmFhcApAQCAtMTMsMjEgKzEzLDIxIEBACiAgICAgICAgICAgIGVuX0dCLmFmZiBlbl9HQi5kaWMKICAgICAgICAgICAgZW5fTlouYWZmIGVuX05aLmRpYwogCi1hbGw6ICQoU1BFTExESVIpL2VuLmxhdGluMS5zcGwgJChTUEVMTERJUikvZW4udXRmLTguc3BsIFwKLSAgICAgICAgJChTUEVMTERJUikvZW4uYXNjaWkuc3BsIC4uL1JFQURNRV9lbi50eHQKK2FsbDogJFNQRUxMRElSL2VuLmxhdGluMS5zcGwgJFNQRUxMRElSL2VuLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9lbi5hc2NpaS5zcGwgLi4vUkVBRE1FX2VuLnR4dAogCi0kKFNQRUxMRElSKS9lbi5sYXRpbjEuc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvZW4ubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9ZW5fVVMuSVNPODg1OS0xCi0JCSQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9lbgorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9lbgogICAgICAgICAgICAgICAgICAgICAgICAgZW5fVVMgZW5fQVUgZW5fQ0EgZW5fR0IgZW5fTloiIC1jIHEKIAotJChTUEVMTERJUikvZW4udXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvZW4udXRmLTguc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1lbl9VUy5VVEYtOAotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZW4KKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZW4KICAgICAgICAgICAgICAgICAgICAgICAgIGVuX1VTIGVuX0FVIGVuX0NBIGVuX0dCIGVuX05aIiAtYyBxCiAKLSQoU1BFTExESVIpL2VuLmFzY2lpLnNwbCA6ICQoVklNKSAkKEZJTEVTKQotICAgICAgICA6c3lzICQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAtYXNjaWkgJChTUEVMTERJUikvZW4KKyRTUEVMTERJUi9lbi5hc2NpaS5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgLWFzY2lpICRTUEVMTERJUi9lbgogICAgICAgICAgICAgICAgICAgICAgICAgZW5fVVMgZW5fQVUgZW5fQ0EgZW5fR0IgZW5fTloiIC1jIHEKICAKIC4uL1JFQURNRV9lbi50eHQ6IFJFQURNRV9lbl9VUy50eHQgUkVBRE1FX2VuX0FVLnR4dApAQCAtNTAsNyArNTAsNyBAQAogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KICMKIE9PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKLTphdHRyIHtmZXRjaCA9ICQoT09ESVIpLyVmaWxlJX0gZW5fVVMuemlwIGVuX0NBLnppcCBlbl9OWi56aXAKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGVuX1VTLnppcCBlbl9DQS56aXAgZW5fTlouemlwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuX0dCLnppcCBlbl9BVS56aXAKIAogIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgpAQCAtNTgsNjEgKzU4LDYxIEBACiBlbl9VUy5hZmYgZW5fVVMuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGVuX1VTLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGVuX1VTLnppcAorICAgICAgICA6c3lzICRVTlpJUCBlbl9VUy56aXAKICAgICAgICAgOmRlbGV0ZSBlbl9VUy56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fVVMub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9VUy5hZmYgZW5fVVMub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGVuX1VTLmFmZiBlbl9VUy5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlbl9VUy5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGVuX1VTLmRpYyBlbl9VUy5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgZW5fVVMuZGljIGVuX1VTLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZW5fVVMuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZW5fVVMuZGlmZgogCiBlbl9BVS5hZmYgZW5fQVUuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGVuX0FVLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGVuX0FVLnppcAorICAgICAgICA6c3lzICRVTlpJUCBlbl9BVS56aXAKICAgICAgICAgOmRlbGV0ZSBlbl9BVS56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fQVUub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9BVS5hZmYgZW5fQVUub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGVuX0FVLmFmZiBlbl9BVS5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlbl9BVS5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGVuX0FVLmRpYyBlbl9BVS5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgZW5fQVUuZGljIGVuX0FVLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZW5fQVUuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZW5fQVUuZGlmZgogCiBlbl9DQS5hZmYgZW5fQ0EuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGVuX0NBLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGVuX0NBLnppcAorICAgICAgICA6c3lzICRVTlpJUCBlbl9DQS56aXAKICAgICAgICAgOmRlbGV0ZSBlbl9DQS56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fQ0Eub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9DQS5hZmYgZW5fQ0Eub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGVuX0NBLmFmZiBlbl9DQS5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlbl9DQS5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGVuX0NBLmRpYyBlbl9DQS5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgZW5fQ0EuZGljIGVuX0NBLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZW5fQ0EuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZW5fQ0EuZGlmZgogCiBlbl9HQi5hZmYgZW5fR0IuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGVuX0dCLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGVuX0dCLnppcAorICAgICAgICA6c3lzICRVTlpJUCBlbl9HQi56aXAKICAgICAgICAgOmRlbGV0ZSBlbl9HQi56aXAKICAgICAgICAgOmRlbGV0ZSBkaWN0aW9uYXJ5LmxzdC5leGFtcGxlCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX0dCLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fR0IuYWZmIGVuX0dCLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBlbl9HQi5hZmYgZW5fR0Iub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fR0Iub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9HQi5kaWMgZW5fR0Iub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGVuX0dCLmRpYyBlbl9HQi5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2VuX0dCLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGVuX0dCLmRpZmYKIAogZW5fTlouYWZmIGVuX05aLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBlbl9OWi56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBlbl9OWi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZW5fTlouemlwCiAgICAgICAgIDpkZWxldGUgZW5fTlouemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX05aLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fTlouYWZmIGVuX05aLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBlbl9OWi5hZmYgZW5fTloub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fTloub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9OWi5kaWMgZW5fTloub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGVuX05aLmRpYyBlbl9OWi5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2VuX05aLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGVuX05aLmRpZmYKIApAQCAtMTQ2LDcgKzE0Niw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9lbl9VUy56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2VuX1VTLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZW5fVVMub3JpZy5hZmYgZW5fVVMuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGVuX1VTLmFmZiAuLi9lbl9VUy5uZXcuYWZmCkBAIC0xNjUsNyArMTY1LDcgQEAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uL2VuX0FVLnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vZW5fQVUuemlwCiAgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9lbl9BVS5vcmlnLmFmZiBlbl9BVS5hZmYgPmQKICAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CiAgICAgICAgICAgICAgICAgOmNvcHkgZW5fQVUuYWZmIC4uL2VuX0FVLm5ldy5hZmYKQEAgLTE4NCw3ICsxODQsNyBAQAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vZW5fQ0EuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9lbl9DQS56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2VuX0NBLm9yaWcuYWZmIGVuX0NBLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBlbl9DQS5hZmYgLi4vZW5fQ0EubmV3LmFmZgpAQCAtMjAzLDcgKzIwMyw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9lbl9HQi56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2VuX0dCLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZW5fR0Iub3JpZy5hZmYgZW5fR0IuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGVuX0dCLmFmZiAuLi9lbl9HQi5uZXcuYWZmCkBAIC0yMjIsNyArMjIyLDcgQEAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uL2VuX05aLnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vZW5fTlouemlwCiAgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9lbl9OWi5vcmlnLmFmZiBlbl9OWi5hZmYgPmQKICAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CiAgICAgICAgICAgICAgICAgOmNvcHkgZW5fTlouYWZmIC4uL2VuX05aLm5ldy5hZmYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCmluZGV4IDQ1ODBjOWMuLjllNTEwMzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcApAQCAtOSwxNSArOSwxNSBAQAogU1BFTExESVIgPSAuLgogRklMRVMgICAgPSBmcl9GUi5hZmYgZnJfRlIuZGljCiAKLWFsbDogJChTUEVMTERJUikvZnIubGF0aW4xLnNwbCAkKFNQRUxMRElSKS9mci51dGYtOC5zcGwgLi4vUkVBRE1FX2ZyLnR4dAorYWxsOiAkU1BFTExESVIvZnIubGF0aW4xLnNwbCAkU1BFTExESVIvZnIudXRmLTguc3BsIC4uL1JFQURNRV9mci50eHQKIAotJChTUEVMTERJUikvZnIubGF0aW4xLnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2ZyLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWZyX0ZSLklTTzg4NTktMQotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZnIgZnJfRlIiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZnIgZnJfRlIiIC1jIHEKIAotJChTUEVMTERJUikvZnIudXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvZnIudXRmLTguc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1mcl9GUi5VVEYtOAotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZnIgZnJfRlIiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZnIgZnJfRlIiIC1jIHEKIAogLi4vUkVBRE1FX2ZyLnR4dCA6IFJFQURNRV9mcl9GUi50eHQKICAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CkBAIC0yNiwxOSArMjYsMTkgQEAKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiBPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkKE9PRElSKS8lZmlsZSV9IGZyX0ZSLnppcAorOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gZnJfRlIuemlwCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiBmcl9GUi5hZmYgZnJfRlIuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGZyX0ZSLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGZyX0ZSLnppcAorICAgICAgICA6c3lzICRVTlpJUCBmcl9GUi56aXAKICAgICAgICAgOmRlbGV0ZSBmcl9GUi56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZnJfRlIub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBmcl9GUi5hZmYgZnJfRlIub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGZyX0ZSLmFmZiBmcl9GUi5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdmcl9GUi5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGZyX0ZSLmRpYyBmcl9GUi5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgZnJfRlIuZGljIGZyX0ZSLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZnJfRlIuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZnJfRlIuZGlmZgogCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9mcl9GUi56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2ZyX0ZSLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZnJfRlIub3JpZy5hZmYgZnJfRlIuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGZyX0ZSLmFmZiAuLi9mcl9GUi5uZXcuYWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2hlL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9oZS9tYWluLmFhcAppbmRleCBhMDAyYmM3Li40ZGI5MzBiIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2hlL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvaGUvbWFpbi5hYXAKQEAgLTksMTUgKzksMTUgQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gaGVfSUwuYWZmIGhlX0lMLmRpYwogCi1hbGw6ICQoU1BFTExESVIpL2hlLnV0Zi04LnNwbCAkKFNQRUxMRElSKS9oZS5pc28tODg1OS04LnNwbCAuLi9SRUFETUVfaGUudHh0CithbGw6ICRTUEVMTERJUi9oZS51dGYtOC5zcGwgJFNQRUxMRElSL2hlLmlzby04ODU5LTguc3BsIC4uL1JFQURNRV9oZS50eHQKIAotJChTUEVMTERJUikvaGUudXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvaGUudXRmLTguc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1oZV9JTC5VVEYtOAotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvaGUgaGVfSUwiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvaGUgaGVfSUwiIC1jIHEKIAotJChTUEVMTERJUikvaGUuaXNvLTg4NTktOC5zcGwgOiAkKFZJTSkgJChGSUxFUykKLSAgICAgICAgOnN5cyAkKFZJTSkgLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS04IgotICAgICAgICAgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2hlIGhlX0lMIiAtYyBxCiskU1BFTExESVIvaGUuaXNvLTg4NTktOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS04IgorICAgICAgICAgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9oZSBoZV9JTCIgLWMgcQogCiAuLi9SRUFETUVfaGUudHh0IDogUkVBRE1FX2hlX0lMLnR4dAogICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKQEAgLTI2LDE5ICsyNiwxOSBAQAogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KICMKIE9PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKLTphdHRyIHtmZXRjaCA9ICQoT09ESVIpLyVmaWxlJX0gaGVfSUwuemlwCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBoZV9JTC56aXAKIAogIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgogIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KIGhlX0lMLmFmZiBoZV9JTC5kaWM6IHtidWlsZGNoZWNrPX0KICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAogICAgICAgICA6ZmV0Y2ggaGVfSUwuemlwCi0gICAgICAgIDpzeXMgJChVTlpJUCkgaGVfSUwuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGhlX0lMLnppcAogICAgICAgICA6ZGVsZXRlIGhlX0lMLnppcAogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdoZV9JTC5vcmlnLmFmZicpOgotICAgICAgICAgICAgICAgIDpjb3B5IGhlX0lMLmFmZiBoZV9JTC5vcmlnLmFmZgorICAgICAgICAgICAgOmNvcHkgaGVfSUwuYWZmIGhlX0lMLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2hlX0lMLm9yaWcuZGljJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgaGVfSUwuZGljIGhlX0lMLm9yaWcuZGljCisgICAgICAgICAgICA6Y29weSBoZV9JTC5kaWMgaGVfSUwub3JpZy5kaWMKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdoZV9JTC5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxoZV9JTC5kaWZmCiAKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uL2hlX0lMLnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vaGVfSUwuemlwCiAgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9oZV9JTC5vcmlnLmFmZiBoZV9JTC5hZmYgPmQKICAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CiAgICAgICAgICAgICAgICAgOmNvcHkgaGVfSUwuYWZmIC4uL2hlX0lMLm5ldy5hZmYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNzJiODcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUG9saXNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gaHJfSFIuYWZmIGhyX0hSLmRpYworCithbGw6ICRTUEVMTERJUi9oci5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvcGwudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL2hyLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3BsLnR4dAorCiskU1BFTExESVIvaHIuaXNvLTg4NTktMi5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWhyX0hSLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ociBocl9IUiIgLWMgcQorCiskU1BFTExESVIvaHIudXRmLTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ocl9IUi5VVEYtOCAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ociBocl9IUiIgLWMgcQorCiskU1BFTExESVIvaHIuY3AxMjUwLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ociBocl9IUiIgLWMgcQorCisuLi9SRUFETUVfaHIudHh0OiBSRUFETUVfaHJfSFIudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gaHJfSFIuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgoraHJfSFIuYWZmIGhyX0hSLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBocl9IUi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgaHJfSFIuemlwCisgICAgICAgIDpkZWxldGUgaHJfSFIuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2hyX0hSLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBocl9IUi5hZmYgaHJfSFIub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaHJfSFIub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGhyX0hSLmRpYyBocl9IUi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2hyX0hSLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGhyX0hSLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaHJfSFIub3JpZy5hZmYgaHJfSFIuYWZmID5ocl9IUi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaHJfSFIub3JpZy5kaWMgaHJfSFIuZGljID4+aHJfSFIuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGhyX0hSLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vaHJfSFIuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9ocl9IUi5vcmlnLmFmZiBocl9IUi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgaHJfSFIuYWZmIC4uL2hyX0hSLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2hyX0hSLm9yaWcuZGljIGhyX0hSLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBocl9IUi5kaWMgLi4vaHJfSFIubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGhyX0hSLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcAppbmRleCAwNGUxMTZmLi5lZjU0MWM0IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAKQEAgLTksMTUgKzksMTUgQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gaXRfSVQuYWZmIGl0X0lULmRpYwogCi1hbGw6ICQoU1BFTExESVIpL2l0LmxhdGluMS5zcGwgJChTUEVMTERJUikvaXQudXRmLTguc3BsIC4uL1JFQURNRV9pdC50eHQKK2FsbDogJFNQRUxMRElSL2l0LmxhdGluMS5zcGwgJFNQRUxMRElSL2l0LnV0Zi04LnNwbCAuLi9SRUFETUVfaXQudHh0CiAKLSQoU1BFTExESVIpL2l0LmxhdGluMS5zcGwgOiAkKFZJTSkgJChGSUxFUykKKyRTUEVMTERJUi9pdC5sYXRpbjEuc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1pdF9JVC5JU084ODU5LTEKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2l0IGl0X0lUIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2l0IGl0X0lUIiAtYyBxCiAKLSQoU1BFTExESVIpL2l0LnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2l0LnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9aXRfSVQuVVRGLTgKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2l0IGl0X0lUIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2l0IGl0X0lUIiAtYyBxCiAKIC4uL1JFQURNRV9pdC50eHQgOiBSRUFETUVfaXRfSVQudHh0CiAgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldApAQCAtMjYsMTQgKzI2LDE0IEBACiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgogIwogT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotOmF0dHIge2ZldGNoID0gJChPT0RJUikvJWZpbGUlfSBpdF9JVC56aXAKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGl0X0lULnppcAogCiAjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCiAjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgogaXRfSVQuYWZmIGl0X0lULmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBpdF9JVC56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBpdF9JVC56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgaXRfSVQuemlwCiAgICAgICAgIDpkZWxldGUgaXRfSVQuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2l0X0lULm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBpdF9JVC5hZmYgaXRfSVQub3JpZy5hZmYKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uL2l0X0lULnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vaXRfSVQuemlwCiAgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9pdF9JVC5vcmlnLmFmZiBpdF9JVC5hZmYgPmQKICAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CiAgICAgICAgICAgICAgICAgOmNvcHkgaXRfSVQuYWZmIC4uL2l0X0lULm5ldy5hZmYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21haW4uYWFwCmluZGV4IDQ0ZDE5OTAuLjY4ODY0YjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9tYWluLmFhcApAQCAtMSw3ICsxLDcgQEAKICMgImFhcCI6IGdlbmVyYXRlIGFsbCB0aGUgLnNwbCBmaWxlcwogIyAiYWFwIGRpZmYiIGNyZWF0ZSBhbGwgdGhlIGRpZmYgZmlsZXMKIAotTEFORyA9IGRlIGVuIGZyIGhlIGl0IG5sIHBsIHlpCitMQU5HID0gYWYgYmcgY2EgY3MgZGEgZGUgZW4gZnIgaGUgaHIgaXQgbmwgbnkgcGwgc2sgeWkKIAogZGlmZjogJCpMQU5HL2RpZmYKICAgICAgICAgOnByaW50IGRvbmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbmwvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL25sL21haW4uYWFwCmluZGV4IGI0MTQxNjEuLjAyYWU0OWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvbmwvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9ubC9tYWluLmFhcApAQCAtOSwxNSArOSwxNSBAQAogU1BFTExESVIgPSAuLgogRklMRVMgICAgPSBubF9OTC5hZmYgbmxfTkwuZGljCiAKLWFsbDogJChTUEVMTERJUikvbmwubGF0aW4xLnNwbCAkKFNQRUxMRElSKS9ubC51dGYtOC5zcGwgLi4vUkVBRE1FX25sLnR4dAorYWxsOiAkU1BFTExESVIvbmwubGF0aW4xLnNwbCAkU1BFTExESVIvbmwudXRmLTguc3BsIC4uL1JFQURNRV9ubC50eHQKIAotJChTUEVMTERJUikvbmwubGF0aW4xLnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL25sLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLklTTzg4NTktMQotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvbmwgbmxfTkwiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbmwgbmxfTkwiIC1jIHEKIAotJChTUEVMTERJUikvbmwudXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvbmwudXRmLTguc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvbmwgbmxfTkwiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbmwgbmxfTkwiIC1jIHEKIAogLi4vUkVBRE1FX25sLnR4dCA6IFJFQURNRV9ubF9OTC50eHQKICAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CkBAIC0yNiwxOSArMjYsMTkgQEAKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiBPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkKE9PRElSKS8lZmlsZSV9IG5sX05MLnppcAorOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbmxfTkwuemlwCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiBubF9OTC5hZmYgbmxfTkwuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIG5sX05MLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIG5sX05MLnppcAorICAgICAgICA6c3lzICRVTlpJUCBubF9OTC56aXAKICAgICAgICAgOmRlbGV0ZSBubF9OTC56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbmxfTkwub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBubF9OTC5hZmYgbmxfTkwub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IG5sX05MLmFmZiBubF9OTC5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdubF9OTC5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IG5sX05MLmRpYyBubF9OTC5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgbmxfTkwuZGljIG5sX05MLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbmxfTkwuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8bmxfTkwuZGlmZgogCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9ubF9OTC56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL25sX05MLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbmxfTkwub3JpZy5hZmYgbmxfTkwuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IG5sX05MLmFmZiAuLi9ubF9OTC5uZXcuYWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL255L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9ueS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2ZjYmY3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9ueS9tYWluLmFhcApAQCAtMCwwICsxLDgyIEBACisjIEFhcCByZWNpcGUgZm9yIER1dGNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbnlfTVcuYWZmIG55X01XLmRpYworCithbGw6ICRTUEVMTERJUi9ueS5pc28tODg1OS0xNC5zcGwgJFNQRUxMRElSL255LnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9ueS5hc2NpaS5zcGwgLi4vUkVBRE1FX255LnR4dAorCiskU1BFTExESVIvbnkuaXNvLTg4NTktMTQuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9aXNvLTg4NTktMTQiIAorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbnkgbnlfTVciIC1jIHEKKworJFNQRUxMRElSL255LnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbnkgbnlfTVciIC1jIHEKKworJFNQRUxMRElSL255LmFzY2lpLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAtYXNjaWkgJFNQRUxMRElSL255IG55X01XIiAtYyBxCisgCisuLi9SRUFETUVfbnkudHh0IDogUkVBRE1FX255X01XLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IG55X01XLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorbnlfTVcuYWZmIG55X01XLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBueV9NVy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbnlfTVcuemlwCisgICAgICAgIDpkZWxldGUgbnlfTVcuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ255X01XLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBueV9NVy5hZmYgbnlfTVcub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbnlfTVcub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IG55X01XLmRpYyBueV9NVy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ255X01XLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPG55X01XLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbnlfTVcub3JpZy5hZmYgbnlfTVcuYWZmID5ueV9NVy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbnlfTVcub3JpZy5kaWMgbnlfTVcuZGljID4+bnlfTVcuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbnlfTVcuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9ueV9NVy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL255X01XLm9yaWcuYWZmIG55X01XLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBueV9NVy5hZmYgLi4vbnlfTVcubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbnlfTVcub3JpZy5kaWMgbnlfTVcuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG55X01XLmRpYyAuLi9ueV9NVy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbnlfTVcuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcGwvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3BsL21haW4uYWFwCmluZGV4IDY5MTZkZjMuLmUzM2FjZjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvcGwvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9wbC9tYWluLmFhcApAQCAtOSwxNyArOSwxNyBAQAogU1BFTExESVIgPSAuLgogRklMRVMgICAgPSBwbF9QTC5hZmYgcGxfUEwuZGljCiAKLWFsbDogJChTUEVMTERJUikvcGwuaXNvLTg4NTktMi5zcGwgJChTUEVMTERJUikvcGwudXRmLTguc3BsIFwKLSAgICAgICAgJChTUEVMTERJUikvcGwuY3AxMjUwLnNwbCAuLi9SRUFETUVfcGwudHh0CithbGw6ICRTUEVMTERJUi9wbC5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvcGwudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3BsLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3BsLnR4dAogCi0kKFNQRUxMRElSKS9wbC5pc28tODg1OS0yLnNwbCA6ICQoVklNKSAkKEZJTEVTKQotICAgICAgICA6c3lzIGVudiBMQU5HPXBsX1BMLklTTzg4NTktMiAkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvcGwgcGxfUEwiIC1jIHEKKyRTUEVMTERJUi9wbC5pc28tODg1OS0yLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cGxfUEwuSVNPODg1OS0yICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3BsIHBsX1BMIiAtYyBxCiAKLSQoU1BFTExESVIpL3BsLnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQotICAgICAgICA6c3lzIGVudiBMQU5HPXBsX1BMLlVURi04ICQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9wbCBwbF9QTCIgLWMgcQorJFNQRUxMRElSL3BsLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cGxfUEwuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcGwgcGxfUEwiIC1jIHEKIAotJChTUEVMTERJUikvcGwuY3AxMjUwLnNwbCA6ICQoVklNKSAkKEZJTEVTKQotICAgICAgICA6c3lzICQoVklNKSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL3BsIHBsX1BMIiAtYyBxCiskU1BFTExESVIvcGwuY3AxMjUwLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9wbCBwbF9QTCIgLWMgcQogCiAuLi9SRUFETUVfcGwudHh0OiBSRUFETUVfcGxfUEwudHh0CiAgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldApAQCAtMjgsNyArMjgsNyBAQAogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KICMKICNPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi0jOmF0dHIge2ZldGNoID0gJChPT0RJUikvJWZpbGUlfSBwbF9QTC56aXAKKyM6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBwbF9QTC56aXAKIAogIwogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbQpAQCAtNDMsMjQgKzQzLDI0IEBACiAgICAgICAgIEBmcm9tIHRpbWUgaW1wb3J0IHN0cmZ0aW1lLCBnbXRpbWUsIHRpbWUKICAgICAgICAgQGZvciBkYXkgaW4gcmFuZ2UoMjApOgogICAgICAgICAgICAgZGF0ZSA9IGBzdHJmdGltZSgnJVklbSVkJywgZ210aW1lKHRpbWUoKSAtIGRheSAqIDI0ICogNjAgKiA2MCkpYAotICAgICAgICAgICAgYmFzZSA9ICBhbHQtbXlzcGVsbC1wbC0kKGRhdGUpCi0gICAgICAgICAgICBmbmFtZSA9ICQoYmFzZSkudGFyLmJ6MgotICAgICAgICAgICAgOmF0dHIge2ZldGNoID0gJChIVFRQRElSKS8lZmlsZSV9ICQoZm5hbWUpCisgICAgICAgICAgICBiYXNlID0gIGFsdC1teXNwZWxsLXBsLSRkYXRlCisgICAgICAgICAgICBmbmFtZSA9ICRiYXNlLnRhci5iejIKKyAgICAgICAgICAgIDphdHRyIHtmZXRjaCA9ICRIVFRQRElSLyVmaWxlJX0gJGZuYW1lCiAgICAgICAgICAgICBAdHJ5OgotICAgICAgICAgICAgICAgIDpmZXRjaCAkKGZuYW1lKQorICAgICAgICAgICAgICAgIDpmZXRjaCAkZm5hbWUKICAgICAgICAgICAgICAgICBvayA9IDEKICAgICAgICAgICAgIEBleGNlcHQ6CiAgICAgICAgICAgICAgICAgb2sgPSAwCiAgICAgICAgICAgICBAaWYgb2s6CiAgICAgICAgICAgICAgICAgQGJyZWFrCi0gICAgICAgIDpzeXMgYnVuemlwMiAtYyAkKGZuYW1lKSB8IHRhciB4ZiAtCi0gICAgICAgIDptb3ZlICQoYmFzZSkvKiAuCi0gICAgICAgIDpkZWxkaXIgJChiYXNlKQotICAgICAgICA6ZGVsZXRlICQoZm5hbWUpCisgICAgICAgIDpzeXMgYnVuemlwMiAtYyAkZm5hbWUgfCB0YXIgeGYgLQorICAgICAgICA6bW92ZSAkYmFzZS8qIC4KKyAgICAgICAgOmRlbGRpciAkYmFzZQorICAgICAgICA6ZGVsZXRlICRmbmFtZQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwbF9QTC5vcmlnLmFmZicpOgotICAgICAgICAgICAgICAgIDpjb3B5IHBsX1BMLmFmZiBwbF9QTC5vcmlnLmFmZgorICAgICAgICAgICAgOmNvcHkgcGxfUEwuYWZmIHBsX1BMLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3BsX1BMLm9yaWcuZGljJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgcGxfUEwuZGljIHBsX1BMLm9yaWcuZGljCisgICAgICAgICAgICA6Y29weSBwbF9QTC5kaWMgcGxfUEwub3JpZy5kaWMKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdwbF9QTC5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxwbF9QTC5kaWZmCiAKQEAgLTc0LDE3ICs3NCwyOSBAQAogICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHBsX1BMLm9yaWcuZGljIHBsX1BMLmRpYyA+PnBsX1BMLmRpZmYKIAogCi0jIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCiAjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KIAogY2hlY2s6Ci0gICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgotICAgICAgICA6ZmV0Y2ggcGxfUEwuemlwCi0gICAgICAgIDpta2RpciB0bXAKLSAgICAgICAgOmNkIHRtcAorICAgICAgICA6YXNzZXJ0cGtnIHRhciBidW56aXAyIGRpZmYKKyAgICAgICAgQGZyb20gdGltZSBpbXBvcnQgc3RyZnRpbWUsIGdtdGltZSwgdGltZQorICAgICAgICBAZm9yIGRheSBpbiByYW5nZSgyMCk6CisgICAgICAgICAgICBkYXRlID0gYHN0cmZ0aW1lKCclWSVtJWQnLCBnbXRpbWUodGltZSgpIC0gZGF5ICogMjQgKiA2MCAqIDYwKSlgCisgICAgICAgICAgICBiYXNlID0gIGFsdC1teXNwZWxsLXBsLSRkYXRlCisgICAgICAgICAgICBmbmFtZSA9ICRiYXNlLnRhci5iejIKKyAgICAgICAgICAgIDphdHRyIHtmZXRjaCA9ICRIVFRQRElSLyVmaWxlJX0gJGZuYW1lCisgICAgICAgICAgICBAdHJ5OgorICAgICAgICAgICAgICAgIDpmZXRjaCAkZm5hbWUKKyAgICAgICAgICAgICAgICBvayA9IDEKKyAgICAgICAgICAgIEBleGNlcHQ6CisgICAgICAgICAgICAgICAgb2sgPSAwCisgICAgICAgICAgICBAaWYgb2s6CisgICAgICAgICAgICAgICAgQGJyZWFrCisgICAgICAgIDpzeXMgYnVuemlwMiAtYyAkZm5hbWUgfCB0YXIgeGYgLQorICAgICAgICA6Y2QgJGJhc2UKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9wbF9QTC56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3BsX1BMLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcGxfUEwub3JpZy5hZmYgcGxfUEwuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IHBsX1BMLmFmZiAuLi9wbF9QTC5uZXcuYWZmCkBAIC05Myw4ICsxMDUsOCBAQAogICAgICAgICAgICAgICAgIDpjb3B5IHBsX1BMLmRpYyAuLi9wbF9QTC5uZXcuZGljCiAgICAgICAgIEBmaW5hbGx5OgogICAgICAgICAgICAgOmNkIC4uCi0gICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKLSAgICAgICAgICAgIDpkZWxldGUgcGxfUEwuemlwCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSAkYmFzZQorICAgICAgICAgICAgOmRlbGV0ZSAkZm5hbWUKIAogCiAjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zay9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc2svbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE4ZDE5NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc2svbWFpbi5hYXAKQEAgLTAsMCArMSw4MSBAQAorIyBBYXAgcmVjaXBlIGZvciBDemVjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHNrX1NLLmFmZiBza19TSy5kaWMKKworYWxsOiAkU1BFTExESVIvc2suaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL3NrLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9zay5jcDEyNTAuc3BsIC4uL1JFQURNRV9zay50eHQKKworJFNQRUxMRElSL3NrLmlzby04ODU5LTIuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1za19TSy5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc2sgc2tfU0siIC1jIHEKKworJFNQRUxMRElSL3NrLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c2tfU0suVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc2sgc2tfU0siIC1jIHEKKworJFNQRUxMRElSL3NrLmNwMTI1MC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1jcDEyNTAiIC1jICJta3NwZWxsISAkU1BFTExESVIvc2sgc2tfU0siIC1jIHEKKworLi4vUkVBRE1FX3NrLnR4dDogUkVBRE1FX3NrX1NLLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHNrX1NLLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK3NrX1NLLmFmZiBza19TSy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggc2tfU0suemlwCisgICAgICAgIDpzeXMgJFVOWklQIHNrX1NLLnppcAorICAgICAgICA6ZGVsZXRlIHNrX1NLLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdza19TSy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgc2tfU0suYWZmIHNrX1NLLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3NrX1NLLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBza19TSy5kaWMgc2tfU0sub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdza19TSy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxza19TSy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHNrX1NLLm9yaWcuYWZmIHNrX1NLLmFmZiA+c2tfU0suZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHNrX1NLLm9yaWcuZGljIHNrX1NLLmRpYyA+PnNrX1NLLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHNrX1NLLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vc2tfU0suemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9za19TSy5vcmlnLmFmZiBza19TSy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc2tfU0suYWZmIC4uL3NrX1NLLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3NrX1NLLm9yaWcuZGljIHNrX1NLLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBza19TSy5kaWMgLi4vc2tfU0submV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHNrX1NLLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3NrL3NrX1NLLmRpZmYgYi9ydW50aW1lL3NwZWxsL3NrL3NrX1NLLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3OWZkMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc2svc2tfU0suZGlmZgpAQCAtMCwwICsxLDE4IEBACisqKiogc2tfU0sub3JpZy5hZmYJU3VuIEF1ZyAxNCAxNjo0ODoyMSAyMDA1CistLS0gc2tfU0suYWZmCVN1biBBdWcgMTQgMTY6NTA6MDggMjAwNQorKioqKioqKioqKioqKioqCisqKiogNCw1ICoqKioKKy0tLSA0LDkgLS0tLQorICAKKysgRk9MILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisgIFBGWCBOIFkgMQorKioqIHNrX1NLLm9yaWcuZGljCVN1biBBdWcgMTQgMTY6NDg6MjEgMjAwNQorLS0tIHNrX1NLLmRpYwlTdW4gQXVnIDE0IDE2OjUyOjIzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE2NjU2NywxNjY1NjggKioqKgorICC+dmlha2G7L05YCistIDE2NjU2NworLS0tIDE2NjU2NyAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3lpL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC95aS9tYWluLmFhcAppbmRleCA4MTYwZTgzLi4zMWQwNTdlIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL3lpL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwveWkvbWFpbi5hYXAKQEAgLTE0LDcgKzE0LDcgQEAKIAogJFNQRUxMRElSL3lpLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9dXRmLTgiCi0gICAgICAgICAgICAtYyAibWtzcGVsbCEgJChTUEVMTERJUikveWkgeWkiIC1jIHEKKyAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIveWkgeWkiIC1jIHEKIAogLi4vUkVBRE1FX3lpLnR4dCA6IFJFQURNRS50eHQKICAgICA6Y29weSAkc291cmNlICR0YXJnZXQK