ZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L29uYXAuY2VydCBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L29uYXAuY2VydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGY2MjBjCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NlcnQvb25hcC5jZXJ0CkBAIC0wLDAgKzEsMzEgQEAKKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQ0KK01JSUZQakNDQXlhZ0F3SUJBZ0lKQUo2dTdjQ256cldkTUEwR0NTcUdTSWIzRFFFQkN3VUFNQ3d4RGpBTUJnTlYNCitCQXNNQlU5VFFVRkdNUTB3Q3dZRFZRUUtEQVJQVGtGUU1Rc3dDUVlEVlFRR0V3SlZVekFlRncweE9EQTBNRFV4DQorTkRFMU1qaGFGdzB6T0RBek16RXhOREUxTWpoYU1Dd3hEakFNQmdOVkJBc01CVTlUUVVGR01RMHdDd1lEVlFRSw0KK0RBUlBUa0ZRTVFzd0NRWURWUVFHRXdKVlV6Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0MNCitnZ0lCQU1BNXBrZ1JzN05oR0c0ZXc1Sm91aHlZYWtnWVV5RmFHMTIxKy9oOHFiU2R0MGhWUXY1NitFQTQxWXE3DQorWEdpZTdSWURRSzlObUFGRjNncnVFKzZYN3d2SmlDaHArQ3lkN3NGTW5iNjV1V2h4RWR4V1RNMkJKRnJnZnpVbg0KK0g4WkN4Z2FDbzNYSDRQemxLUnkyTFFRSkVKRUN3bC9SWm1SQ1hpak10NWU5aDhYb1pZL2ZLa0tjWlpVc1dOQ00NCitwVG8yNjZ3anZBOU1YTG1kZ1JlUmowK3ZyQ2pyTnF5K2h0d0pEenRvaUhXaVlQcVQ2bzhFdkdjZ2pOcWpsWng3DQorTlVOZjhNZkxEQnlxS0Y2K3dSYkh2MUdLam4zL1ZpamQ0NUZ2OHJpeVJZUk9pRmFudmJWNmpJZkJrdjhQWmJYZw0KKzJWRFdzWXNncDhOQXZNeEsraVY4Y08rQ2szbEJJMkdPUFpiQ0VxcFBWVFliTFV6NnNjekFsQ1h3UW9QekRJWlkNCit3WWEzZVIvZ1lMWTFnUDJpRVZIT1JhZzNiTFBhcDlaWDVFOERaa3pUTlRqb3Z2TGs4S2FDbWZjYVVNSnNCdERkDQorQXBjVWl0ejEwY25SeVpjMXNYM2dFMWYzRHB6UU02dDlDNXNPVnlSaERjU3JLcXF3YjltMFNzMDRYQVM5RnNxTQ0KK1AzVVdZUXlxRFhTeGxVQVlhWDg5MnU4bVYxaHhudDJnamIyMlJsb1hNTTZUb3ZNM3NTckpTMHdIK2wxbnpuZDYNCithRlhmdFMvRzRaVklWWi9MZlQxaXM0U3RveVBXWkN3d3dseTF6OHFKUS96aGlwNU5nWlR4UXc0bWk3d3czNURZDQorUGRBUU9Db2FqZlN2Rmpxc2xRL2NQUmkvTVJDdTA3OWhlVmI1ZlFubnpWdG5wRlFSQWdNQkFBR2pZekJoTUIwRw0KK0ExVWREZ1FXQkJSVFZUUHlTK3ZRVWJIQmVKckJLREY3NytydFNUQWZCZ05WSFNNRUdEQVdnQlJUVlRQeVMrdlENCitVYkhCZUpyQktERjc3K3J0U1RBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUE0R0ExVWREd0VCL3dRRUF3SUJoakFODQorQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBUHgvSWFLOTRuMDJ3UHhwbllUeStMVkxJeHdkcS9rYXdOZDZJYmlNeg0KK0w4N3ptTk1EbUhjR2Jmb1JDajhPa2h1Z2dYOUx4MS9Da2hwWGltdVlzWk9GUWk1YmxyL3UrdjRtSWJzZ2JtaTkNCis3aitjVUhEUDB6THljdlN2eEtIdHk1MUx3bWFYOWE0d2tKbDV6QlU0TzFzZC9IOXRXY0Vtd0ozOWx0S29CS0J4DQorYzk0WmMzaU1tNXl0UldHaiswckt6TERBWEVXcG9aNWJFNVBMSmF1QTZVREN4RExmczNGd2hiUzd1RGdneFl2Zg0KK2p5U0Y1RkNORVQ5NG9KK204czdWZUh2b2E4aVBHS3ZYcklxZGQ3WERIbnFKSmxWS3I3bTlTMGZNYnlFQjhjaTINCitSdE9YRHQ5M2lmWTF1aG9FdEV5a240ZHFCU3A4ZXp2Tk1ud29YZFlQRHZUZDl1Q0FGZVdGTFZyZUJBV3hkMjVoDQorUHNCVGtaQTVocGEvckErbUt2NkFmNFZCVmlZcjhjejRkWkNzRkNodWlvVmViZTlpZ2hyZmpCLy9xS2VwRmpQRg0KK0N5anpLTjF1MEpLbS8yeC9PUnF4a1RPTkc4cDN1RHdvSU95aW1VY1R0VE12NDJiZllEODhSS2FrcVNGWEU5RysNCitaMExsYUtBQnFmaks0OW8vdHNBcCtjNUxvTmxZbGxLaG5ldE8zUUFkcmFId2RtQzM2QmhvZ2h6UjFqcFg3NTFBDQorY1puMlZIM1E0WEt5cDAxY0pOQ0pJcnVhK0ErYng2emgzUnlXNnpJSWtiUkNiRVQrVUQrNG1yOFdJY1NFM210Ug0KK1pWbG5oVURPNHo5Ly9XS01WendTOVJoOC9rdXN6ckdGSTFLUW96WENITHJjZTNZUDZSWVpmT2VkNzlMWGFSd1gNCitkWVk9DQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ0KZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L29yZy5vbmFwLnZpZC5qa3MgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC9vcmcub25hcC52aWQuamtzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYjM0YWUKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC9vcmcub25hcC52aWQuamtzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L29yZy5vbmFwLnZpZC50cnVzdC5qa3MgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC9vcmcub25hcC52aWQudHJ1c3QuamtzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYWY3YmUKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC9vcmcub25hcC52aWQudHJ1c3QuamtzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L3RvbWNhdF9rZXlzdG9yZSBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L3RvbWNhdF9rZXlzdG9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2JhNGU5Ci0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NlcnQvdG9tY2F0X2tleXN0b3JlCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L3RvbWNhdF9vdXQgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC90b21jYXRfb3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZmQ1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY2VydC90b21jYXRfb3V0CkBAIC0wLDAgKzEsMTYyIEBACitLZXlzdG9yZSB0eXBlOiBKS1MNCitLZXlzdG9yZSBwcm92aWRlcjogU1VODQorDQorWW91ciBrZXlzdG9yZSBjb250YWlucyAzIGVudHJpZXMNCisNCitBbGlhcyBuYW1lOiByb290DQorQ3JlYXRpb24gZGF0ZTogTm92IDMwLCAyMDE2DQorRW50cnkgdHlwZTogdHJ1c3RlZENlcnRFbnRyeQ0KKw0KK093bmVyOiBFTUFJTEFERFJFU1M9c2ltcGxlZGVtb0BvcGVuZWNvbXAub3JnLCBDTj1PcGVuRUNPTVAgc2ltcGxlZGVtbyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5LCBPVT1zaW1wbGVkZW1vLCBPPU9wZW5FQ09NUCwgTD1CZWRtaW5zdGVyLCBTVD1OSiwgQz1VUw0KK0lzc3VlcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgT1U9c2ltcGxlZGVtbywgTz1PcGVuRUNPTVAsIEw9QmVkbWluc3RlciwgU1Q9TkosIEM9VVMNCitTZXJpYWwgbnVtYmVyOiBkNGEyZmRiYjE3MTBlMjM5DQorVmFsaWQgZnJvbTogTW9uIE5vdiAyOCAyMToxNDoyNSBVVEMgMjAxNiB1bnRpbDogVGh1IE5vdiAyNiAyMToxNDoyNSBVVEMgMjAyNg0KK0NlcnRpZmljYXRlIGZpbmdlcnByaW50czoNCisJIE1ENTogIEZDOjY0OkFGOjhBOjM5OjBCOjczOjQ4OjI5OkI3OkU3OkZGOjBCOjBEOkY5OjJDDQorCSBTSEExOiBFNTpFODozMTpCMjpDODpFQjo0MDpDOTpGRjowODo2OTpEMjpFRDpERjozOTozMTo2NDo4RTowRjozQw0KKwkgU0hBMjU2OiBDMzozNToxNTo1RjpFQzpBMDo0MjoyRjpDMjpBMDo0Mjo4MDpBNDo1QzpDQjowMDoxNTo2MDoxMjpBRjoxMzpFRTo3Njo1RjoxMTozQzpBMTo5ODo0QTo2RTpBODo3Nw0KK1NpZ25hdHVyZSBhbGdvcml0aG0gbmFtZTogU0hBMjU2d2l0aFJTQQ0KK1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG06IDQwOTYtYml0IFJTQSBrZXkNCitWZXJzaW9uOiAzDQorDQorRXh0ZW5zaW9uczogDQorDQorIzE6IE9iamVjdElkOiAyLjUuMjkuMTkgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0Jhc2ljQ29uc3RyYWludHM6Ww0KKyAgQ0E6dHJ1ZQ0KKyAgUGF0aExlbjoyMTQ3NDgzNjQ3DQorXQ0KKw0KKyMyOiBPYmplY3RJZDogMi41LjI5LjE1IENyaXRpY2FsaXR5PXRydWUNCitLZXlVc2FnZSBbDQorICBLZXlfQ2VydFNpZ24NCisgIENybF9TaWduDQorXQ0KKw0KKyMzOiBPYmplY3RJZDogMi41LjI5LjE0IENyaXRpY2FsaXR5PWZhbHNlDQorU3ViamVjdEtleUlkZW50aWZpZXIgWw0KK0tleUlkZW50aWZpZXIgWw0KKzAwMDA6IDlBIDY0IDA1IDQwIDNEIEU4IDU5IDk1ICAgMEUgNTQgNEYgMzUgNDEgQ0YgNTYgNDkgIC5kLkA9LlkuLlRPNUEuVkkNCiswMDEwOiBGNyAzMiBBQiAwQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuMi4uDQorXQ0KK10NCisNCisNCisNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKw0KKw0KK0FsaWFzIG5hbWU6IHNlcnZlcg0KK0NyZWF0aW9uIGRhdGU6IE5vdiAzMCwgMjAxNg0KK0VudHJ5IHR5cGU6IHRydXN0ZWRDZXJ0RW50cnkNCisNCitPd25lcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gU2VydmVyIENBIFgxLCBPVT1zaW1wbGVkZW1vLCBPPU9wZW5FQ09NUCwgTD1CZWRtaW5zdGVyLCBTVD1OSiwgQz1VUw0KK0lzc3VlcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgT1U9c2ltcGxlZGVtbywgTz1PcGVuRUNPTVAsIEw9QmVkbWluc3RlciwgU1Q9TkosIEM9VVMNCitTZXJpYWwgbnVtYmVyOiA5YWIxZjFkMmE3MDk5NjY4DQorVmFsaWQgZnJvbTogTW9uIE5vdiAyOCAyMToxNDoyNiBVVEMgMjAxNiB1bnRpbDogU2F0IE5vdiAyNyAyMToxNDoyNiBVVEMgMjAyMQ0KK0NlcnRpZmljYXRlIGZpbmdlcnByaW50czoNCisJIE1ENTogIDgzOjQxOkU2OkFDOkRBOjI4OjczOjQ3OjlFOjBCOjU4OjkwOkVGOjQ4Ojk5OjM4DQorCSBTSEExOiAyRDo2MzpEMjo2QzpCNzoxMTowNDo2QzpBODo3Qjo5NzpERjpBOTpEMjoxOTo3Nzo0MTpEMjo0NTpCRg0KKwkgU0hBMjU2OiA5NTozMjoxMjpFNDpGQzowOTpEQTpCNzpERTo1QjpGQToxRDozQTpGODpGNzpEODpEMTo5NjowMTpEMDpBMTo5QjoyNjpGOToxRDo4Mjo4QjoyNzpDQTo0NzpFNzo5Qw0KK1NpZ25hdHVyZSBhbGdvcml0aG0gbmFtZTogU0hBMjU2d2l0aFJTQQ0KK1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG06IDIwNDgtYml0IFJTQSBrZXkNCitWZXJzaW9uOiAzDQorDQorRXh0ZW5zaW9uczogDQorDQorIzE6IE9iamVjdElkOiAyLjUuMjkuMTkgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0Jhc2ljQ29uc3RyYWludHM6Ww0KKyAgQ0E6dHJ1ZQ0KKyAgUGF0aExlbjoyMTQ3NDgzNjQ3DQorXQ0KKw0KKyMyOiBPYmplY3RJZDogMi41LjI5LjMyIENyaXRpY2FsaXR5PWZhbHNlDQorQ2VydGlmaWNhdGVQb2xpY2llcyBbDQorICBbQ2VydGlmaWNhdGVQb2xpY3lJZDogWzIuNS4yOS4zMi4wXQ0KK1tQb2xpY3lRdWFsaWZpZXJJbmZvOiBbDQorICBxdWFsaWZpZXJJRDogMS4zLjYuMS41LjUuNy4yLjINCisgIHF1YWxpZmllcjogMDAwMDogMzAgNEYgMUEgNEQgNDkgNjYgMjAgNzkgICA2RiA3NSAyMCA3NCA3MiA3NSA3MyA3NCAgME8uTUlmIHlvdSB0cnVzdA0KKzAwMTA6IDIwIDc0IDY4IDY5IDczIDIwIDYzIDY1ICAgNzIgNzQgMjAgNzQgNjggNjUgNkUgMjAgICB0aGlzIGNlcnQgdGhlbiANCiswMDIwOiA3NyA2NSAyMCA2OCA2MSA3NiA2NSAyMCAgIDYxIDIwIDYyIDcyIDY5IDY0IDY3IDY1ICB3ZSBoYXZlIGEgYnJpZGdlDQorMDAzMDogMjAgNzQgNjggNjEgNzQgMjAgNzkgNkYgICA3NSAyMCA2RCA2OSA2NyA2OCA3NCAyMCAgIHRoYXQgeW91IG1pZ2h0IA0KKzAwNDA6IDYyIDY1IDIwIDY5IDZFIDc0IDY1IDcyICAgNjUgNzMgNzQgNjUgNjQgMjAgNjkgNkUgIGJlIGludGVyZXN0ZWQgaW4NCiswMDUwOiAyRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuDQorDQorXV0gIF0NCitdDQorDQorIzM6IE9iamVjdElkOiAyLjUuMjkuMTUgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0tleVVzYWdlIFsNCisgIERpZ2l0YWxTaWduYXR1cmUNCisgIEtleV9DZXJ0U2lnbg0KKyAgQ3JsX1NpZ24NCitdDQorDQorIzQ6IE9iamVjdElkOiAyLjUuMjkuMTQgQ3JpdGljYWxpdHk9ZmFsc2UNCitTdWJqZWN0S2V5SWRlbnRpZmllciBbDQorS2V5SWRlbnRpZmllciBbDQorMDAwMDogNEUgQTcgNkMgNjIgMDEgOEQgMUEgRTYgICBERCAyNCA3QSBCRCBCNiBDNiA4OSA4NCAgTi5sYi4uLi4uJHouLi4uLg0KKzAwMTA6IENGIDQ3IDEzIDlDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5HLi4NCitdDQorXQ0KKw0KKw0KKw0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorDQorDQorQWxpYXMgbmFtZTogb25hcGFhZnJvb3QNCitDcmVhdGlvbiBkYXRlOiBBcHIgMjMsIDIwMTgNCitFbnRyeSB0eXBlOiB0cnVzdGVkQ2VydEVudHJ5DQorDQorT3duZXI6IEM9VVMsIE89T05BUCwgT1U9T1NBQUYNCitJc3N1ZXI6IEM9VVMsIE89T05BUCwgT1U9T1NBQUYNCitTZXJpYWwgbnVtYmVyOiA5ZWFlZWRjMGE3Y2ViNTlkDQorVmFsaWQgZnJvbTogVGh1IEFwciAwNSAxNDoxNToyOCBVVEMgMjAxOCB1bnRpbDogV2VkIE1hciAzMSAxNDoxNToyOCBVVEMgMjAzOA0KK0NlcnRpZmljYXRlIGZpbmdlcnByaW50czoNCisJIE1ENTogIDc3OkVCOjVFOjk0OjJFOkI3OkEzOjQ1Ojk3OjZDOjg3OkZFOkE3OkY3OjY0OjBGDQorCSBTSEExOiA5MDoyNTpEMTpEMzo4QjozQzpCRToyQzo3MzpFOTo2QzoxQTo0ODo1QjowNjpBODozOTowRDo1NDozQg0KKwkgU0hBMjU2OiAxRjpDMjpCQjpGNjo3RToxMTo2RjpGMDo0QzpDMzpEOTo2Qzo3MzpFNTo5OTpCNzpDQTo3RDo0RDpFRjpBQTo2Qzo2OTo0NjowRDoyQzo3QjpBOTpFNDoyMzo1RjpFQQ0KK1NpZ25hdHVyZSBhbGdvcml0aG0gbmFtZTogU0hBMjU2d2l0aFJTQQ0KK1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG06IDQwOTYtYml0IFJTQSBrZXkNCitWZXJzaW9uOiAzDQorDQorRXh0ZW5zaW9uczogDQorDQorIzE6IE9iamVjdElkOiAyLjUuMjkuMzUgQ3JpdGljYWxpdHk9ZmFsc2UNCitBdXRob3JpdHlLZXlJZGVudGlmaWVyIFsNCitLZXlJZGVudGlmaWVyIFsNCiswMDAwOiA1MyA1NSAzMyBGMiA0QiBFQiBEMCA1MSAgIEIxIEMxIDc4IDlBIEMxIDI4IDMxIDdCICBTVTMuSy4uUS4ueC4uKDEuDQorMDAxMDogRUYgRUEgRUQgNDkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uSQ0KK10NCitdDQorDQorIzI6IE9iamVjdElkOiAyLjUuMjkuMTkgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0Jhc2ljQ29uc3RyYWludHM6Ww0KKyAgQ0E6dHJ1ZQ0KKyAgUGF0aExlbjoyMTQ3NDgzNjQ3DQorXQ0KKw0KKyMzOiBPYmplY3RJZDogMi41LjI5LjE1IENyaXRpY2FsaXR5PXRydWUNCitLZXlVc2FnZSBbDQorICBEaWdpdGFsU2lnbmF0dXJlDQorICBLZXlfQ2VydFNpZ24NCisgIENybF9TaWduDQorXQ0KKw0KKyM0OiBPYmplY3RJZDogMi41LjI5LjE0IENyaXRpY2FsaXR5PWZhbHNlDQorU3ViamVjdEtleUlkZW50aWZpZXIgWw0KK0tleUlkZW50aWZpZXIgWw0KKzAwMDA6IDUzIDU1IDMzIEYyIDRCIEVCIEQwIDUxICAgQjEgQzEgNzggOUEgQzEgMjggMzEgN0IgIFNVMy5LLi5RLi54Li4oMS4NCiswMDEwOiBFRiBFQSBFRCA0OSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5JDQorXQ0KK10NCisNCisNCisNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKw0KKw0KZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L3RvbWNhdF9vdXQyIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NlcnQvdG9tY2F0X291dDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFiZjEwOQotLS0gL2Rldi9udWxsCisrKyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jZXJ0L3RvbWNhdF9vdXQyCkBAIC0wLDAgKzEsMTA5IEBACitLZXlzdG9yZSB0eXBlOiBKS1MNCitLZXlzdG9yZSBwcm92aWRlcjogU1VODQorDQorWW91ciBrZXlzdG9yZSBjb250YWlucyAyIGVudHJpZXMNCisNCitBbGlhcyBuYW1lOiByb290DQorQ3JlYXRpb24gZGF0ZTogTm92IDMwLCAyMDE2DQorRW50cnkgdHlwZTogdHJ1c3RlZENlcnRFbnRyeQ0KKw0KK093bmVyOiBFTUFJTEFERFJFU1M9c2ltcGxlZGVtb0BvcGVuZWNvbXAub3JnLCBDTj1PcGVuRUNPTVAgc2ltcGxlZGVtbyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5LCBPVT1zaW1wbGVkZW1vLCBPPU9wZW5FQ09NUCwgTD1CZWRtaW5zdGVyLCBTVD1OSiwgQz1VUw0KK0lzc3VlcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgT1U9c2ltcGxlZGVtbywgTz1PcGVuRUNPTVAsIEw9QmVkbWluc3RlciwgU1Q9TkosIEM9VVMNCitTZXJpYWwgbnVtYmVyOiBkNGEyZmRiYjE3MTBlMjM5DQorVmFsaWQgZnJvbTogTW9uIE5vdiAyOCAyMToxNDoyNSBVVEMgMjAxNiB1bnRpbDogVGh1IE5vdiAyNiAyMToxNDoyNSBVVEMgMjAyNg0KK0NlcnRpZmljYXRlIGZpbmdlcnByaW50czoNCisJIE1ENTogIEZDOjY0OkFGOjhBOjM5OjBCOjczOjQ4OjI5OkI3OkU3OkZGOjBCOjBEOkY5OjJDDQorCSBTSEExOiBFNTpFODozMTpCMjpDODpFQjo0MDpDOTpGRjowODo2OTpEMjpFRDpERjozOTozMTo2NDo4RTowRjozQw0KKwkgU0hBMjU2OiBDMzozNToxNTo1RjpFQzpBMDo0MjoyRjpDMjpBMDo0Mjo4MDpBNDo1QzpDQjowMDoxNTo2MDoxMjpBRjoxMzpFRTo3Njo1RjoxMTozQzpBMTo5ODo0QTo2RTpBODo3Nw0KK1NpZ25hdHVyZSBhbGdvcml0aG0gbmFtZTogU0hBMjU2d2l0aFJTQQ0KK1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG06IDQwOTYtYml0IFJTQSBrZXkNCitWZXJzaW9uOiAzDQorDQorRXh0ZW5zaW9uczogDQorDQorIzE6IE9iamVjdElkOiAyLjUuMjkuMTkgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0Jhc2ljQ29uc3RyYWludHM6Ww0KKyAgQ0E6dHJ1ZQ0KKyAgUGF0aExlbjoyMTQ3NDgzNjQ3DQorXQ0KKw0KKyMyOiBPYmplY3RJZDogMi41LjI5LjE1IENyaXRpY2FsaXR5PXRydWUNCitLZXlVc2FnZSBbDQorICBLZXlfQ2VydFNpZ24NCisgIENybF9TaWduDQorXQ0KKw0KKyMzOiBPYmplY3RJZDogMi41LjI5LjE0IENyaXRpY2FsaXR5PWZhbHNlDQorU3ViamVjdEtleUlkZW50aWZpZXIgWw0KK0tleUlkZW50aWZpZXIgWw0KKzAwMDA6IDlBIDY0IDA1IDQwIDNEIEU4IDU5IDk1ICAgMEUgNTQgNEYgMzUgNDEgQ0YgNTYgNDkgIC5kLkA9LlkuLlRPNUEuVkkNCiswMDEwOiBGNyAzMiBBQiAwQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuMi4uDQorXQ0KK10NCisNCisNCisNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKw0KKw0KK0FsaWFzIG5hbWU6IHNlcnZlcg0KK0NyZWF0aW9uIGRhdGU6IE5vdiAzMCwgMjAxNg0KK0VudHJ5IHR5cGU6IHRydXN0ZWRDZXJ0RW50cnkNCisNCitPd25lcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gU2VydmVyIENBIFgxLCBPVT1zaW1wbGVkZW1vLCBPPU9wZW5FQ09NUCwgTD1CZWRtaW5zdGVyLCBTVD1OSiwgQz1VUw0KK0lzc3VlcjogRU1BSUxBRERSRVNTPXNpbXBsZWRlbW9Ab3BlbmVjb21wLm9yZywgQ049T3BlbkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgT1U9c2ltcGxlZGVtbywgTz1PcGVuRUNPTVAsIEw9QmVkbWluc3RlciwgU1Q9TkosIEM9VVMNCitTZXJpYWwgbnVtYmVyOiA5YWIxZjFkMmE3MDk5NjY4DQorVmFsaWQgZnJvbTogTW9uIE5vdiAyOCAyMToxNDoyNiBVVEMgMjAxNiB1bnRpbDogU2F0IE5vdiAyNyAyMToxNDoyNiBVVEMgMjAyMQ0KK0NlcnRpZmljYXRlIGZpbmdlcnByaW50czoNCisJIE1ENTogIDgzOjQxOkU2OkFDOkRBOjI4OjczOjQ3OjlFOjBCOjU4OjkwOkVGOjQ4Ojk5OjM4DQorCSBTSEExOiAyRDo2MzpEMjo2QzpCNzoxMTowNDo2QzpBODo3Qjo5NzpERjpBOTpEMjoxOTo3Nzo0MTpEMjo0NTpCRg0KKwkgU0hBMjU2OiA5NTozMjoxMjpFNDpGQzowOTpEQTpCNzpERTo1QjpGQToxRDozQTpGODpGNzpEODpEMTo5NjowMTpEMDpBMTo5QjoyNjpGOToxRDo4Mjo4QjoyNzpDQTo0NzpFNzo5Qw0KK1NpZ25hdHVyZSBhbGdvcml0aG0gbmFtZTogU0hBMjU2d2l0aFJTQQ0KK1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG06IDIwNDgtYml0IFJTQSBrZXkNCitWZXJzaW9uOiAzDQorDQorRXh0ZW5zaW9uczogDQorDQorIzE6IE9iamVjdElkOiAyLjUuMjkuMTkgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0Jhc2ljQ29uc3RyYWludHM6Ww0KKyAgQ0E6dHJ1ZQ0KKyAgUGF0aExlbjoyMTQ3NDgzNjQ3DQorXQ0KKw0KKyMyOiBPYmplY3RJZDogMi41LjI5LjMyIENyaXRpY2FsaXR5PWZhbHNlDQorQ2VydGlmaWNhdGVQb2xpY2llcyBbDQorICBbQ2VydGlmaWNhdGVQb2xpY3lJZDogWzIuNS4yOS4zMi4wXQ0KK1tQb2xpY3lRdWFsaWZpZXJJbmZvOiBbDQorICBxdWFsaWZpZXJJRDogMS4zLjYuMS41LjUuNy4yLjINCisgIHF1YWxpZmllcjogMDAwMDogMzAgNEYgMUEgNEQgNDkgNjYgMjAgNzkgICA2RiA3NSAyMCA3NCA3MiA3NSA3MyA3NCAgME8uTUlmIHlvdSB0cnVzdA0KKzAwMTA6IDIwIDc0IDY4IDY5IDczIDIwIDYzIDY1ICAgNzIgNzQgMjAgNzQgNjggNjUgNkUgMjAgICB0aGlzIGNlcnQgdGhlbiANCiswMDIwOiA3NyA2NSAyMCA2OCA2MSA3NiA2NSAyMCAgIDYxIDIwIDYyIDcyIDY5IDY0IDY3IDY1ICB3ZSBoYXZlIGEgYnJpZGdlDQorMDAzMDogMjAgNzQgNjggNjEgNzQgMjAgNzkgNkYgICA3NSAyMCA2RCA2OSA2NyA2OCA3NCAyMCAgIHRoYXQgeW91IG1pZ2h0IA0KKzAwNDA6IDYyIDY1IDIwIDY5IDZFIDc0IDY1IDcyICAgNjUgNzMgNzQgNjUgNjQgMjAgNjkgNkUgIGJlIGludGVyZXN0ZWQgaW4NCiswMDUwOiAyRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuDQorDQorXV0gIF0NCitdDQorDQorIzM6IE9iamVjdElkOiAyLjUuMjkuMTUgQ3JpdGljYWxpdHk9dHJ1ZQ0KK0tleVVzYWdlIFsNCisgIERpZ2l0YWxTaWduYXR1cmUNCisgIEtleV9DZXJ0U2lnbg0KKyAgQ3JsX1NpZ24NCitdDQorDQorIzQ6IE9iamVjdElkOiAyLjUuMjkuMTQgQ3JpdGljYWxpdHk9ZmFsc2UNCitTdWJqZWN0S2V5SWRlbnRpZmllciBbDQorS2V5SWRlbnRpZmllciBbDQorMDAwMDogNEUgQTcgNkMgNjIgMDEgOEQgMUEgRTYgICBERCAyNCA3QSBCRCBCNiBDNiA4OSA4NCAgTi5sYi4uLi4uJHouLi4uLg0KKzAwMTA6IENGIDQ3IDEzIDlDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5HLi4NCitdDQorXQ0KKw0KKw0KKw0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorDQorDQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvYXNkYy5wcm9wZXJ0aWVzIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvYXNkYy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0YTNiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9hc2RjLnByb3BlcnRpZXMKQEAgLTAsMCArMSw2IEBACithc2RjLmNsaWVudC50eXBlPVJFU1QNCisNCithc2RjLmNsaWVudC5yZXN0LnByb3RvY29sPWh0dHANCithc2RjLmNsaWVudC5yZXN0Lmhvc3Q9DQorYXNkYy5jbGllbnQucmVzdC5wb3J0PTgwODANCithc2RjLmNsaWVudC5yZXN0LmF1dGg9DQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvYXNkY190ZW1wbGF0ZS5wcm9wZXJ0aWVzIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvYXNkY190ZW1wbGF0ZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwMTVkYTQKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9hc2RjX3RlbXBsYXRlLnByb3BlcnRpZXMKQEAgLTAsMCArMSw2IEBACithc2RjLmNsaWVudC50eXBlPSR7QVNEQ19DTElFTlRfVFlQRX0NCisNCithc2RjLmNsaWVudC5yZXN0LnByb3RvY29sPSR7QVNEQ19DTElFTlRfUkVTVF9QUk9UT0NPTH0NCithc2RjLmNsaWVudC5yZXN0Lmhvc3Q9JHtBU0RDX0NMSUVOVF9SRVNUX0hPU1R9DQorYXNkYy5jbGllbnQucmVzdC5wb3J0PSR7QVNEQ19DTElFTlRfUkVTVF9QT1JUfQ0KK2FzZGMuY2xpZW50LnJlc3QuYXV0aD0ke0FTRENfQ0xJRU5UX1JFU1RfQVVUSH0NCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9xdWFydHoucHJvcGVydGllcyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3F1YXJ0ei5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0OTNiNjMKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9xdWFydHoucHJvcGVydGllcwpAQCAtMCwwICsxLDMwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIFF1YXJ0eiBjb25maWd1cmF0aW9ucyBmb3IgUXVhbnR1bSBXb3JrIEZsb3cJCQkJCQkJCQkjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorb3JnLnF1YXJ0ei5zY2hlZHVsZXIuaW5zdGFuY2VJZCA9IEFVVE8NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIE1haW4gY29uZmlndXJhdGlvbnMNCitvcmcucXVhcnR6LnRocmVhZFBvb2wuY2xhc3MgPSBvcmcucXVhcnR6LnNpbXBsLlNpbXBsZVRocmVhZFBvb2wNCitvcmcucXVhcnR6LnRocmVhZFBvb2wudGhyZWFkQ291bnQgPSAzMA0KKw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIENvbmZpZ3VyZSBKb2JTdG9yZSAgDQorIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCitvcmcucXVhcnR6LmpvYlN0b3JlLm1pc2ZpcmVUaHJlc2hvbGQgPSA2MDAwMA0KKw0KK29yZy5xdWFydHouam9iU3RvcmUuY2xhc3MgPSBvcmcucXVhcnR6LmltcGwuamRiY2pvYnN0b3JlLkpvYlN0b3JlVFgNCitvcmcucXVhcnR6LmpvYlN0b3JlLmRyaXZlckRlbGVnYXRlQ2xhc3MgPSBvcmcucXVhcnR6LmltcGwuamRiY2pvYnN0b3JlLlN0ZEpEQkNEZWxlZ2F0ZQ0KK29yZy5xdWFydHouam9iU3RvcmUudXNlUHJvcGVydGllcyA9IGZhbHNlDQorI29yZy5xdWFydHouam9iU3RvcmUuZGF0YVNvdXJjZSA9IG15RFMNCitvcmcucXVhcnR6LmpvYlN0b3JlLnRhYmxlUHJlZml4ID0gRk5fUVpfDQorDQorb3JnLnF1YXJ0ei5qb2JTdG9yZS5pc0NsdXN0ZXJlZCA9IHRydWUNCitvcmcucXVhcnR6LmpvYlN0b3JlLmNsdXN0ZXJDaGVja2luSW50ZXJ2YWwgPSAyMDAwMA0KKw0KKyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBDb25maWd1cmUgRGF0YXNvdXJjZXMgIA0KKyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcXVhcnR6X3RlbXBsYXRlLnByb3BlcnRpZXMgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9xdWFydHpfdGVtcGxhdGUucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzMyYTFjCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcXVhcnR6X3RlbXBsYXRlLnByb3BlcnRpZXMKQEAgLTAsMCArMSwzNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBRdWFydHogY29uZmlndXJhdGlvbnMgZm9yIFF1YW50dW0gV29yayBGbG93CQkJCQkJCQkJIw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK29yZy5xdWFydHouc2NoZWR1bGVyLmluc3RhbmNlSWQgPSBBVVRPDQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBNYWluIGNvbmZpZ3VyYXRpb25zDQorb3JnLnF1YXJ0ei50aHJlYWRQb29sLmNsYXNzID0gb3JnLnF1YXJ0ei5zaW1wbC5TaW1wbGVUaHJlYWRQb29sDQorb3JnLnF1YXJ0ei50aHJlYWRQb29sLnRocmVhZENvdW50ID0gMzANCisNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBDb25maWd1cmUgSm9iU3RvcmUgIA0KKyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorb3JnLnF1YXJ0ei5qb2JTdG9yZS5taXNmaXJlVGhyZXNob2xkID0gNjAwMDANCisNCitvcmcucXVhcnR6LmpvYlN0b3JlLmNsYXNzID0gb3JnLnF1YXJ0ei5pbXBsLmpkYmNqb2JzdG9yZS5Kb2JTdG9yZVRYDQorb3JnLnF1YXJ0ei5qb2JTdG9yZS5kcml2ZXJEZWxlZ2F0ZUNsYXNzID0gb3JnLnF1YXJ0ei5pbXBsLmpkYmNqb2JzdG9yZS5TdGRKREJDRGVsZWdhdGUNCitvcmcucXVhcnR6LmpvYlN0b3JlLnVzZVByb3BlcnRpZXMgPSBmYWxzZQ0KKyNvcmcucXVhcnR6LmpvYlN0b3JlLmRhdGFTb3VyY2UgPSBteURTDQorb3JnLnF1YXJ0ei5qb2JTdG9yZS50YWJsZVByZWZpeCA9IEZOX1FaXw0KKw0KK29yZy5xdWFydHouam9iU3RvcmUuaXNDbHVzdGVyZWQgPSB0cnVlDQorb3JnLnF1YXJ0ei5qb2JTdG9yZS5jbHVzdGVyQ2hlY2tpbkludGVydmFsID0gMjAwMDANCisNCisjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgQ29uZmlndXJlIERhdGFzb3VyY2VzICANCisjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KK29yZy5xdWFydHouZGF0YVNvdXJjZS5teURTLmRyaXZlciA9IG9yZy5tYXJpYWRiLmpkYmMuRHJpdmVyDQorb3JnLnF1YXJ0ei5kYXRhU291cmNlLm15RFMuVVJMID0gamRiYzptYXJpYWRiOi8vJHtWSURfTVlTUUxfSE9TVH06JHtWSURfTVlTUUxfUE9SVH0vJHtWSURfTVlTUUxfREJOQU1FfQ0KK29yZy5xdWFydHouZGF0YVNvdXJjZS5teURTLnVzZXIgPSAke1ZJRF9NWVNRTF9VU0VSfQ0KK29yZy5xdWFydHouZGF0YVNvdXJjZS5teURTLnBhc3N3b3JkID0gJHtWSURfTVlTUUxfUEFTU30NCitvcmcucXVhcnR6LmRhdGFTb3VyY2UubXlEUy5tYXhDb25uZWN0aW9ucyA9ICR7VklEX01ZU1FMX01BWENPTk5FQ1RJT05TfQ0KK29yZy5xdWFydHouZGF0YVNvdXJjZS5teURTLnZhbGlkYXRpb25RdWVyeT1zZWxlY3QgMCBmcm9tIGR1YWwNCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9yYXB0b3IucHJvcGVydGllcyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3JhcHRvci5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MzMwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9yYXB0b3IucHJvcGVydGllcwpAQCAtMCwwICsxLDE4NyBAQAorIyMjDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgZUNPTVAgUG9ydGFsIFNESw0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIENvcHlyaWdodCAoQykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eQ0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorIyANCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorIyANCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIyMNCisjI0MjIyBNZW50aW9uIHRoZSBuYW1lIG9mIHRoZSBmcmFtZXdvcmsuIEF0IHByZXNlbnQgUkFQVE9SIHN1cHBvcnRzIEZVU0lPTg0KK3N5c3RlbT1mdXNpb24NCisjI0MjIyBEZXRlcm1pbmVzIHRoZSBwcmlvcml0eSBmb3IgdGhlIGRlYnVnIG1lc3NhZ2UuDQorZGVidWdfbGV2ZWw9NQ0KKyMjQyMjIERldGVybWluZXMgdGhlIG51bWJlciBvZiByZWNvcmRzIGNhbiBiZSBkb3dubG9hZGVkIGluIGV4Y2VsIHdoZW4geW91IHNlbGVjdCAiZG93bmxvYWQgYWxsIiBvcHRpb24uDQorZG93bmxvYWRfbGltaXQ9NjUwMDANCitjc3ZfZG93bmxvYWRfbGltaXQ9MTANCisjI0MjIyBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0byBiZSBkaXNwbGF5ZWQgaW4gYSBzaW5nbGUgcGFnZS4NCitkZWZhdWx0X3BhZ2Vfc2l6ZT01MA0KKyMjQyMjIERldGVybWluZXMgdGhlIGxpc3Qgc2l6ZSBpbiB0aGUgZm9ybSBmaWVsZC4NCitmb3JtX2ZpZWxkc19saXN0X3NpemU9OTkwMDANCisjI0MjIyBEZXRlcm1pbmVzIHRoZSBzY2hlZHVsZXIgaW50ZXJ2YWwNCisjc2NoZWR1bGVyX2ludGVydmFsPTAgPT4gZGlzYWJsZWQNCitzY2hlZHVsZXJfaW50ZXJ2YWw9MA0KKyMjQyMjIFN5c3RlbSBOYW1lDQorc3lzdGVtX25hbWU9UkFQVE9SDQorIyNDIyMgVGhpcyBpcyB1c2VkIGZvciBCcmVhZCBjcnVtYnMuDQorYmFzZV90aXRsZT1BTkFMWVNJUw0KKyMjQyMjIHdoZXRoZXIgdG8gYWxsb3cgU1FMLWJhc2VkIHJlcG9ydCBkZWZpbml0aW9uIChzZWN1cml0eSByaXNrKTsgc3VwZXIgdXNlcnMgYXJlIGFsd2F5cyBhbGxvd2VkIHRvIGNyZWF0ZSBTUUwtYmFzZWQgcmVwb3J0cw0KK2FsbG93X3NxbF9iYXNlZF9yZXBvcnRzPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRlIGRpc2NsYWltZXIgcGFnZSBhdCB0aGUgYm90dG9tIG9mIGVhY2ggc2NyZWVuDQorc2hvd19kaXNjbGFpbWVyPXllcw0KK2Rpc2NsYWltZXJfcG9zaXRpb25lZF90b3BfaW5fY3N2ZXhjZWw9eWVzDQorIyNDIyMgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGRpc3BsYXkgdGhlIGZvcm0gcGFnZSBhcyBhIHNlcGFyYXRlIHBhZ2UgYmVmb3JlIHJ1bm5pbmcgdGhlIHJlcG9ydA0KK2Rpc3BsYXlfZm9ybV9iZWZvcmVfcnVuPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRlIHRoZSBmb3JtIHBhZ2Ugb24gdGhlIHJlcG9ydCBkYXRhIHBhZ2UNCitpbmNsdWRlX2Zvcm1fd2l0aF9kYXRhPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBjYWNoZSBjaGFydCBkYXRhIGluIHRoZSBzZXNzaW9uID0+IGZhc3RlciByZS1kaXNwbGF5IGlmIHRoZSBkYXRhIHZvbHVtZSBkb2VzIG5vdCBnZXQgdG9vIGxhcmdlDQorY2FjaGVfY2hhcnRfZGF0YT15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gY2FjaGUgcmVwb3J0IGRhdGEgZm9yIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHBhZ2UgaW4gdGhlIHNlc3Npb24gPT4gZmFzdGVyIHJlLWRpc3BsYXkNCisJIyNDIyMgaWYgdGhlIGRhdGEgdm9sdW1lIGRvZXMgbm90IGdldCB0b28gbGFyZ2UNCitjYWNoZV9jdXJfcGFnZV9kYXRhPXllcw0KKyMjQyMjIERldGVybWluZXMgQ2hhcnQgd2lkdGgNCitkZWZhdWx0X2NoYXJ0X3dpZHRoPTcwMA0KKyMjQyMjIERldGVybWluZXMgQ2hhcnQgaGVpZ2h0DQorZGVmYXVsdF9jaGFydF9oZWlnaHQ9NDIwDQorIyNDIyMgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHBlcm1pdCByZXBvcnQgZGVsZXRpb24gb25seSBieSByZXBvcnQgb3duZXIgb3IgYnkgZXZlcnlvbmUgd2l0aCAid3JpdGUiIGFjY2Vzcw0KK2RlbGV0ZV9vbmx5X2J5X293bmVyPW5vDQorIyNDIyMgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGxvZyBlYWNoIHJlcG9ydCBleGVjdXRpb24gYW5kIHVwZGF0ZSB0aW1lIGFuZCB1c2VyIElEDQorZW5hYmxlX3JlcG9ydF9sb2c9eWVzDQorIyNDIyMgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGNhY2hlIHVzZXIgcm9sZXMgaW5mbyBpbiBtZW1vcnkgKHNhdmVzIG1hbnkgREIgcmVhZHMsIGJ1dCBkb2VzIG5vdCBhY2NvdW50IGZvciByb2xlcw0KKwkjI0MjIyBhc3NpZ25lZCBhZnRlciB0aGUgY2FjaGUgd2FzIGxvYWRlZCkNCitjYWNoZV91c2VyX3JvbGVzPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBjb252ZXJ0IG1vbnRoIGZvcm1hdHMgKGUuZy4gTU0vWVlZWSkgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aCAodHJ1ZSkgb3INCisgICAgICAgICMjQyMjIGZpcnN0IGRheSAoZmFsc2UpIC0gbGlrZSAxMi8yMDAzIGlzIGNvbnZlcnRlZCB0byBlaXRoZXIgMTIvMzEvMjAwMyBvciAxMi8wMS8yMDAzDQorbW9udGhfZm9ybWF0X3VzZV9sYXN0X2RheT1ubw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBwcmludCB0aGUgcmVwb3J0IHRpdGxlIGluIHRoZSBkb3dubG9hZCBmaWxlcw0KK3ByaW50X3RpdGxlX2luX2Rvd25sb2FkPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBzaG93IHJlcG9ydCBkZXNjcmlwdGlvbiB3aGVuIHRoZSByZXBvcnQgaXMgcnVuIGFuZCBpbiB0aGUgcXVpY2sgbGlua3MNCitzaG93X2Rlc2NyX2F0X3J1bnRpbWU9bm8NCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2tpcCBsYWJlbHMgb24gdGhlIExpbmUgY2hhcnQgYXhpcyB3aGVuIHRoZXkgb3ZlcmxhcA0KKyNERVBSRUNBVEVEIHNraXBfY2hhcnRfbGFiZWxzX3RvX2ZpdD1ubw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBzaG93IGNoYXJ0IHR5cGVzIHRoYXQgYXJlIHB1cnBvc2UgYW5kL29yIGRhdGEgc3BlY2lmaWMNCitzaG93X25vbnN0YW5kYXJkX2NoYXJ0cz15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYWxsb3cgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZSBjaGFydCB0eXBlIGF0IHJ1bnRpbWUNCithbGxvd19ydW50aW1lX2NoYXJ0X3NlbD15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgcmVwb3J0IHRpdGxlIGFzIGNoYXJ0IHRpdGxlIGFzIHdlbGwNCitkaXNwbGF5X2NoYXJ0X3RpdGxlPXllcw0KKyMjQyMjIERldGVybWluZXMgd2hldGhlciB0byBtZXJnZS9ibGFuayBtdWx0aS1sZXZlbCByb3cgaGVhZGluZ3MgaW4gY3Jvc3MtdGFiIHJlcG9ydA0KK21lcmdlX2Nyb3NzdGFiX3Jvd19oZWFkaW5ncz15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZGlzcGxheSBjaGFydCB3aGVuIGRpc3BsYXlpbmcgdGhlIHJlcG9ydCBhdCBmaXJzdCBvciBqdXN0IGEgIlNob3cgQ2hhcnQiIGJ1dHRvbg0KK2Rpc3BsYXlfY2hhcnRfYnlfZGVmYXVsdD15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gcHJpbnQgdGhlIGZvcm0gZmllbGQgdmFsdWVzIGluIHRoZSBkb3dubG9hZCBmaWxlcw0KK3ByaW50X3BhcmFtc19pbl9kb3dubG9hZD15ZXMNCisjI0MjIyBEZXRlcm1pbmVzIHRoZSBsaW1pdGF0aW9uIHRvIHRoZSBjaGFyYWN0ZXJzIGluIGNoYXJ0IGxhYmVsLg0KK3NraXBfY2hhcnRfbGFiZWxzX2xpbWl0PTMwDQorIyNDIyMgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZXJzIHdpdGggcmVhZC1vbmx5IHJpZ2h0cyBmb3IgYSByZXBvcnQgY2FuIGNvcHkgaXQNCitjYW5fY29weV9vbl9yZWFkX29ubHk9eWVzDQorIyNDIyMgRGV0ZXJtaW5lcyB0aGUgbm8gb2YgZGVjaW1hbHMgdG8gYmUgZGlzcGxheWVkIGluIFRvdGFscyBjb2x1bW4NCisjbWF4X2RlY2ltYWxzX29uX3RvdGFscz0tMSA9PiBkb24ndCB0cnVuY2F0ZSwgZGlzcGxheSBhbGwgZGVjaW1hbCBkaWdpdHMNCittYXhfZGVjaW1hbHNfb25fdG90YWxzPTINCisjI0MjIyBEZXRlcm1pbmVzIHdoaWNoIEpGcmVlQ2hhcnQgdG8gdXNlLg0KK2pmcmVlX3ZlcnNpb249bGF0ZXN0DQorI2pmcmVlX3ZlcnNpb249MC45LjExDQorIyBBZGRlZCB0aGlzIHJlc3RyaWN0aW9uIHNvIHRoYXQgaGVhdmlseSB1c2VkIHN5c3RlbSB3aGljaCBjb250YWluDQorIyBtb3JlIHRoYW4gMTAwMCB1c2VycyBjYW4gZW5hYmxlIHRoaXMgZmVhdHVyZSBub3QgdG8gZGlzcGxheSB3aG9sZQ0KKyMgdXNlcnMgaW4gdGhlIGRyb3AgZG93biBtZW51DQorZGlzcGxheV9hbGxfdXNlcnM9eWVzDQorIyNTaGVldCBuYW1lDQorc2hlZXRfbmFtZT1yYXB0b3INCisjc2hlbGxfc2NyaXB0X25hbWU9L2hvbWUvc3VuZGFyL3Rlc3Quc2gNCisjZG93bmxvYWRfcXVlcnlfZm9sZGVyPS90aXRhbi9QUk9KRUNUMy9SQVBUT1IvcmFwdG9yL2R3bmxkL3F1ZXJ5Lw0KKyMjIHRoaXMgZGlyZWN0b3J5IGlzIG1lbnRpb25lZCBpZiB0aGUgZmxhdCBmaWxlIGlzIGRvd25sb2FkZWQgdXNpbmcgc2hlbGwgc2NyaXB0DQorc2hlbGxfc2NyaXB0X2Rpcj0vdGl0YW4vUFJPSkVDVDMvUkFQVE9SL3JhcHRvci9kd25sZC8NCitmbGF0X2ZpbGVfbG93ZXJfbGltaXQ9MQ0KK2ZsYXRfZmlsZV91cHBlcl9saW1pdD0yMDAwMDANCisjIyB3aGF0ZXZlciByZXF1ZXN0IG1lbnRpb25lZCBoZXJlIHdvdWxkIGJlIHBhcnNlZCBpbiBzcWwgYW5kIHJlcXVlc3QgcGFyYW1ldGVyIHdvdWxkIGJlIGZpbGxlZA0KK3JlcXVlc3RfZ2V0X3BhcmFtcz1pc0VtYmVkZGVkDQorcHJpbnRfZm9vdGVyX2luX2Rvd25sb2FkPXllcw0KKyMjIGZvb3RlciBtZW50aW9uZWQgaGVyZSBhcHBlYXJzIGluIGRvd25sb2FkZWQgZXhjZWwNCitmb290ZXJfZmlyc3RfbGluZT1UT0RPIGZvb3RlciBmaXJzdCBsaW5lDQorZm9vdGVyX3NlY29uZF9saW5lPVVzZSBQdXJzdWFudCB0byBDb21wYW55IEluc3RydWN0aW9ucw0KKyMjIHRvIHJ1biByZXBvcnQgaW4gcG9wdXAgd2luZG93DQorcmVwb3J0X2luX3BvcHVwX3dpbmRvdz15ZXMNCisjIyB0byBydW4gZWFjaCByZXBvcnQgaW4gbmV3IHBvcHVwIHdpbmRvdyBpZiB0aGUgYWJvdmUgaXMgc2VsZWN0ZWQNCitwb3B1cF9pbl9uZXdfd2luZG93PXllcw0KKyMjICJZZXMiIGFsbG93cyB0aGUgcmVxdWVzdCBwYXJhbSB0byBiZSBwYXNzZWQgdG8gdGhlIGRyaWxsIGRvd24gcmVwb3J0DQorcGFzc19yZXF1ZXN0X3BhcmFtX2luX2RyaWxsZG93bj15ZXMNCisjIyBTaG93IFBERiBkb3dubG9hZCBpY29uDQorc2hvd19wZGZfZG93bmxvYWQ9eWVzDQorIyBTaG93IEZvbGRlciBUcmVlDQorc2hvd19mb2xkZXJfdHJlZT1ubw0KKyNTaG93IGZvbGRlciB0cmVlIG9ubHkgZm9yIEFkbWluIFVzZXJzDQorc2hvd19mb2xkZXJfdHJlZV9vbmx5X3RvX2FkbWluX3VzZXJzPW5vDQorI2ZvbGRlciB0cmVlIHNob3VsZCBiZSBtaW5pbWl6ZWQNCitmb2xkZXJfdHJlZV9taW5pbWl6ZWQ9eWVzDQorIyMgd2hhdGV2ZXIgc2Vzc2lvbiBtZW50aW9uZWQgaGVyZSB3b3VsZCBiZSBwYXJzZWQgaW4gc3FsIGFuZCBzZXNzaW9uIHBhcmFtZXRlciB3b3VsZCBiZSBmaWxsZWQNCitzZXNzaW9uX3BhcmFtcz1sb2dpbl9pZA0KK2Rpc3BsYXlfZm9ybWZpZWxkX2luZm89eWVzDQorY3VzdG9taXplX2Zvcm1maWVsZF9pbmZvPXllcw0KKyNzY2hlZHVsZSBsaW1pdCBmb3IgZW5kIHVzZXJzDQorc2NoZWR1bGVfbGltaXQ9MTANCisjIGN1c3RvbWl6ZWQgcXVlcnkgaWYgeW91IG5lZWQgYW55IHJlc3RyaWN0aW9ucyBmb3Igc2NoZWR1bGUgYW5kIHNlY3VyaXR5IHRhYiBmb3IgZnVzaW9uDQorI3NjaGVkdWxlX2N1c3RvbV9xdWVyeV9mb3JfdXNlcnM9Z2V0QWxsVXNlcnNCeUN1c3RvbWVyDQorI3NjaGVkdWxlX2N1c3RvbV9xdWVyeV9mb3Jfcm9sZXM9Z2V0QWxsUm9sZXNCeUN1c3RvbWVyDQorIyBjdXN0b21pemVkIHF1ZXJ5IGlmIHlvdSBuZWVkIGFueSByZXN0cmljdGlvbnMgZm9yIHNjaGVkdWxlIGFuZCBzZWN1cml0eSB0YWIgZm9yIHByaXNtcyBleGFtcGxlDQorI3NjaGVkdWxlX2N1c3RvbV9xdWVyeV9mb3JfdXNlcnM9U0VMRUNUIGF1LnVzZXJfaWQsIGF1LmZpcnN0X25hbWV8fCcgJ3x8YXUubGFzdF9uYW1lIHVzZXJfbmFtZSBGUk9NIGFwcF91c2VyIGF1IG9yZGVyIGJ5IDINCitzY2hlZHVsZV9jdXN0b21fcXVlcnlfZm9yX3VzZXJzPVNFTEVDVCBhdS51c2VyX2lkIGlkLCBhdS5maXJzdF9uYW1lfHwnICd8fGF1Lmxhc3RfbmFtZSBuYW1lIEZST00gYXBwX3VzZXIgYXUgd2hlcmUgdXNlcl9pZCA9IDEgb3JkZXIgYnkgMg0KKyNzY2hlZHVsZV9jdXN0b21fcXVlcnlfZm9yX3JvbGVzPVNFTEVDVCBhci5yb2xlX2lkLCBhci5kZXNjciByb2xlX25hbWUgRlJPTSBhcHBfcm9sZSBhciBvcmRlciBieSAyDQorc2NoZWR1bGVfZGF0ZV9wYXR0ZXJuPU1NL2RkL3l5eXkgaGg6bW06c3MgYQ0KKyMjIFRoaXMgaXMgdXNlZCB0byBkaXNwbGF5IGluIHJpZ2h0IGZvcm1hdCBpbiBjaGFydCB0aW1lc3RhbXAgYXhpcyBhcyB3ZSBnaXZlIGluIHRoZSBzcWwNCisjY2hhcnRfeWVhcmx5X2Zvcm1hdD15eXl5DQorI2NoYXJ0X21vbnRobHlfZm9ybWF0PU1NTS15eXl5DQorI2NoYXJ0X2RhaWx5X2Zvcm1hdD1NTS1kZC15eXl5DQorY2hhcnRfaG91cmx5X2Zvcm1hdD1NTS9kZCBISA0KKyNjaGFydF9taW51dGVfZm9ybWF0PUhIOm1tDQorY2hhcnRfbWludXRlX2Zvcm1hdD1NTS1kZC15eXl5LUhIOm1tDQorI2NoYXJ0X3NlY29uZF9mb3JtYXQ9SEg6bW06c3MNCitjaGFydF9zZWNvbmRfZm9ybWF0PU1NLWRkLXl5eXkNCisjY2hhcnRfbWlsbGlzZWNvbmRfZm9ybWF0PUhIOm1tOnNzLlMNCitzY2hlZHVsZV9oZWxwX3RleHQ9VGhpcyBmb3JtIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSBzcGVjaWZpYyBSZXBvcnRpbmcgUGxhdGZvcm0gcmVwb3J0IHRvIGJlIGRlbGl2ZXJlZCB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHlvdXIgQ29tcGFueSdzIEJ1c2luZXNzIERpcmVjdCB1c2VyIGxvZ2lucy4gIE5vdGUgdGhhdCByZXBvcnQgb3V0cHV0IGRlbGl2ZXJlZCB2aWEgZW1haWwgZG9lcyBub3QgaW5jbHVkZSB0aGUgY2FwYWJpbGl0eSB0byBkcmlsbCBkb3duL2JhY2sgdXAgdG8gYWRkaXRpb25hbCBkYXRhIGxldmVscy4gIFNvLCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGRhdGEgbGV2ZWwgcmVwb3J0IGZvciB0aGUgc2NoZWR1bGVkIHJlcG9ydC4gIFZpZXcgdGhlIHN0YXR1cyBvZiBzY2hlZHVsZWQgcmVwb3J0IHJlcXVlc3RzIGluIHRoZSBNeSBTY2hlZHVsZXMgbWVudSBpdGVtLg0KK3VzZV9sb2dpbmlkX2luX3NjaGVkWU49WQ0KK3Nlc3Npb25fcGFyYW1zX2Zvcl9zY2hlZHVsaW5nPWxvZ2luX2lkDQorc2Vzc2lvbl9kYXRlX2Zvcm1maWVsZF9hdXRvX2luY3I9eWVzDQorZGlzcGxheV9zZXNzaW9uX3BhcmFtX3BkZmV4Y2VsPWxvZ2luX2lkO0xvZ2luIElkDQorc2Vzc2lvbl9wYXJhbXNfZm9yX2Rpc3BsYXlpbmdfaW5fc2NoZWR1bGluZz1sb2dpbl9pZDtMb2dpbiBJZA0KK2FwcGxpY2F0aW9uX3NlcnZlcj10b21jYXQNCisjZ21hcCBwcm9wZXJ0aWVzDQorZ21hcF9rZXk9QUJRSUFBQUFUb0pTU2V0S0JNakJKeDhNaVJ3NGdoUWlVMFNiYktubThDNWV1MjVjcHlMd2drTHp5UlNoclFUYmdadHFuS0FxWlU5SndjU3ExYkt3aUENCitQUk9KRUNULUZPTERFUj0vVXNlcnMvc3VuZGFyL2dpdC9zdF9xdWFudHVtL3F1YW50dW0vdGFyZ2V0L3F1YW50dW0tMS4wDQorIyANCitNQVJLRVQtU0hBUEVGSUxFLUZPTERFUj1yZXNvdXJjZXMvZmlsZXMNCisjIG91dHB1dCBmb2xkZXIgZm9yIGZpbGVzIGdlbmVyYXRlZCBvbiBzZXJ2ZXIgc2lkZQ0KK09VVFBVVC1GT0xERVI9cmVzb3VyY2VzL3RlbXANCisjIHRpbGUgc2l6ZSBpbiBwaXhlbA0KK1RJTEUtU0laRT0yNTYNCisjY2hlY2sgaWYgbWFwIGlzIGRpc2FibGVkIG9yIG5vdA0KK21hcF9hbGxvd2VkPVkNCittYXhfZHJpbGxkb3duX2xldmVsPTINCithZG1pbl9yb2xlX2VxdWl2X3RvX3N1cGVyX3JvbGU9Tg0KK3Nob3dfbG9hZGluZ19kdXJpbmdfZm9ybWZpZWxkX2NoYWluPVkNCitzaG93X3ByaW50X2ljb249Tg0KK2dsb2JhbGx5X25vd3JhcD1ODQorY2FsZW5kYXJfb3V0cHV0X2RhdGVfZm9ybWF0PU1NL2RkL3l5eXkNCittZW1vcnlfdGhyZXNob2xkX3BlcmNlbnRhZ2U9OTkNCitwcmludF9wYXJhbXNfaW5fY3N2X2Rvd25sb2FkPXllcw0KK25vdGl0bGVfaW5fZGFzaGJvYXJkPXllcw0KK2dlbmVyYXRlX3N0b3JlX3NjaGVkX3JlcG9ydHM9eWVzDQorc2hvd19leGNlbF8yMDA3X2Rvd25sb2FkPXllcw0KK3ByaW50X2V4Y2VsX2luX2xhbmRzY2FwZT15ZXMNCitzaG93X2FuaW1hdGVkX2NoYXJ0X29wdGlvbj15ZXMNCitzaG93X2FuaW1hdGVkX2NoYXJ0X29ubHk9bm8NCithZGp1c3RfY29udGVudF9iYXNlZF9vbl9oZWlnaHQ9eWVzDQorY3VzdG9tX3N1Ym1pdF9idXR0b25fdGV4dD1SdW4gQnV0dG9uDQorY3VzdG9taXplX2Zvcm1maWVsZF9sYXlvdXQ9eWVzDQorI2RiX3R5cGU9cG9zdGdyZXNxbA0KKyNkYl90eXBlPW9yYWNsZQ0KK2RiX3R5cGU9bXlzcWwNCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9yYXB0b3JfYXBwX2Z1c2lvbi5wcm9wZXJ0aWVzIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcmFwdG9yX2FwcF9mdXNpb24ucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGE4MTgwCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcmFwdG9yX2FwcF9mdXNpb24ucHJvcGVydGllcwpAQCAtMCwwICsxLDM5IEBACisjIyMNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBlQ09NUCBQb3J0YWwgU0RLDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5DQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisjIA0KKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisjIA0KKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMjIw0KK3RlbXBfZm9sZGVyX3BhdGg9L2RlbWV0ZXIvV2ViQXBwcy9kZXYvRUNPTVBfUE9SVEFML3RlbXAvDQordXBsb2FkX2ZvbGRlcl9wYXRoPS9kZW1ldGVyL1dlYkFwcHMvZGV2L0VDT01QX1BPUlRBTC9maWxlcy8NCitleGNlbF90ZW1wbGF0ZV9wYXRoPS9kZW1ldGVyL1dlYkFwcHMvZGV2L0VDT01QX1BPUlRBTC9maWxlcy9yYXB0b3JfdGVtcGxhdGUvDQordGVtcF9mb2xkZXJfdXJsPXRlbXAvDQordXBsb2FkX2ZvbGRlcl91cmw9dXBsb2FkLw0KK3NtdHBfc2VydmVyPXRvZG8uc210cC5jb20NCitkZWZhdWx0X2VtYWlsX3NlbmRlcj1lbWFpbC1uYW1lQGVtYWlsLmNvbQ0KK2Vycm9yX3BhZ2U9ZXJyb3JfcGFnZS5qc3ANCitqc3BfY29udGV4dF9wYXRoPXJhcHRvci8NCitpbWdfZm9sZGVyX3VybD1zdGF0aWMvZnVzaW9uL3JhcHRvci9pbWFnZXMvDQorYmFzZV9mb2xkZXJfdXJsPXN0YXRpYy9mdXNpb24vcmFwdG9yLw0KK2RpcmVjdF9hY2Nlc3NfdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9xdWFudHVtL3JhcHRvcl9lbWFpbF9hdHRhY2htZW50Lmh0bT9hY3Rpb249cmFwdG9yJnNvdXJjZV9wYWdlPXJlcG9ydF9ydW4mZGlzcGxheV9jb250ZW50PXkNCisjYmFzZV9hY3Rpb25fdXJsPXJlcG9ydC5odG0jL3JlcG9ydF9ydW4vDQorZHJpbGxfYWN0aW9uX3VybD1yZXBvcnQuaHRtIy9yZXBvcnRfcnVuL2NfbWFzdGVyPQ0KK2Jhc2VfYWN0aW9uX3VybD1yZXBvcnRfd2l6YXJkLmh0bT9hY3Rpb249DQorYmFzZV9hY3Rpb25fdXJsX25nPXJlcG9ydCMvDQorYmFzZV9hY3Rpb25fcGFyYW09Y19tYXN0ZXI9DQorc3VwZXJfcm9sZV9pZD0xDQorYWRtaW5fcm9sZV9pZHM9MQ0KK3F1aWNrX2xpbmtzX21lbnVfaWRzPUhPTUUsQ1VTVE9NRVIsUkVQT1JUUw0KZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3JhcHRvcl9kYl9mdXNpb24ucHJvcGVydGllcyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3JhcHRvcl9kYl9mdXNpb24ucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODNmNWJiCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcmFwdG9yX2RiX2Z1c2lvbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTkgQEAKKyMjIw0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIGVDT01QIFBvcnRhbCBTREsNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyMgDQorIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyMgDQorIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyMjDQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcmFwdG9yX3BkZi5wcm9wZXJ0aWVzIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvcmFwdG9yX3BkZi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNGYwODIKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9yYXB0b3JfcGRmLnByb3BlcnRpZXMKQEAgLTAsMCArMSw0OSBAQAorIyMjDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgZUNPTVAgUG9ydGFsIFNESw0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIENvcHlyaWdodCAoQykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eQ0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorIyANCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorIyANCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIyMNCisjIyBwZGYgZmlsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzDQorcGRmX2RhdGFfZm9udF9zaXplPTkNCitwZGZfZGF0YV9mb250X2ZhbWlseT1BcmlhbA0KKyNyZWR1Y2UgdGhlIGZvbnQgc2l6ZSBmcm9tIGh0bWwgY29uZmlnDQorcGRmX2RhdGFfZm9udF9zaXplX29mZnNldD0yDQorcGRmX2RhdGFfYWx0ZXJuYXRlX2NvbG9yPXRydWUNCisjZGF0YSByb3cgYmFja2dyb3VuZCh3aGl0ZSksIGFsdGVybmF0ZShsaWdodCBsaWdodCBibHVlL2dyYXkpDQorcGRmX2RhdGFfYmFja2dyb3VuZF9hbHRlcm5hdGVfaGV4X2NvZGU9I0VERURFRA0KK3BkZl9kYXRhX2RlZmF1bHRfYmFja2dyb3VuZF9oZXhfY29kZT0jRkZGRkZGDQorI2hlYWRlciBmb250ICh3aGl0ZSkgIGJhY2tncm91bmQgKGdyYXkpDQorcGRmX2RhdGFfdGFibGVfaGVhZGVyX2ZvbnRfaGV4X2NvZGU9I0ZGRkZGRg0KK3BkZl9kYXRhX3RhYmxlX2hlYWRlcl9iYWNrZ3JvdW5kX2hleF9jb2RlPSM4QTlCQjMNCisjZm9vdGVyIGhlYWRlcg0KK3BkZl9mb290ZXJfZm9udF9zaXplPTkNCitwZGZfZm9vdGVyX2ZvbnRfZmFtaWx5PUFyaWFsDQorcGRmX2F0dF9wcm9wcmlldGFyeT1Qcm9wcmlldGFyeVxuVXNlIFB1cnN1YW50IHRvIENvbXBhbnkgSW5zdHJ1Y3Rpb25zDQorcGRmX2F0dF9wcm9wcmllcmFyeV9mb250X3NpemU9Nw0KK3BkZl9kYXRlX3RpbWV6b25lPUdNVA0KK3BkZl9kYXRlX3BhdHRlcm49TU0vZGQveXl5eSBoaDptbTpzcyBhDQorIyNwYWdlIG51bWJlciBwb3NpdGlvbiBhdCAxIC0gZm9vdGVyIG1pZGRsZSwgMCAtLSBoZWFkZXIgcmlnaHQsIDIgLSBib3RoDQorcGRmX3BhZ2VfbnVtYmVyX3Bvc2l0aW9uPTENCitwZGZfd29yZF9iZWZvcmVfcGFnZV9udW1iZXI9UGFnZQ0KK3BkZl93b3JkX2FmdGVyX3BhZ2VfbnVtYmVyPQ0KK3BkZl9jb3ZlcnBhZ2VfZmlyc3Rjb2x1bW5fc2l6ZT0wLjMNCitwZGZfaW1hZ2VfYXV0b19yb3RhdGU9ZmFsc2UNCitkaXNwbGF5X2NyZWF0ZV9vd25lcl9pbmZvPXRydWUNCisjc2Vzc2lvbl9pbmZvPWN1c3RvbWVyLGN1c3RvbWVySWQNCitkaXNwbGF5X2xvZ2luaWRfZm9yX2Rvd25sb2FkZWRfYnk9ZmFsc2UNCisjIHBsZWFzZSB1c2UgZmFsc2UgaWYgeW91IHdhbnQgbGFuZHNjYXBlIHRvIGJlIGRlZmF1bHQuDQoraXNfZGVmYXVsdF9vcmllbnRhdGlvbl9wb3J0cmFpdD10cnVlDQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvc3FsLnByb3BlcnRpZXMgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9zcWwucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWUxNmNkCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvc3FsLnByb3BlcnRpZXMKQEAgLTAsMCArMSwzMjIgQEAKKyMjIw0KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIGVDT01QIFBvcnRhbCBTREsNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyMgDQorIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyMgDQorIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyMjDQorI1NRTCBTdGF0ZW1lbnRzIGZvciBQb3N0Z3JlU1FMDQorDQorI1JlcG9ydExvYWRlci5qYXZhDQorDQorbG9hZC5jdXN0b20ucmVwb3J0LnhtbCA9IFNFTEVDVCBjci5yZXBvcnRfeG1sIEZST00gY3JfcmVwb3J0IGNyIFdIRVJFIHJlcF9pZD0/DQorDQorIyBuZWVkIHRvIGNvcHkgdG8gb3JhY2xlDQorbG9hZC5yZW1vdGVEQi5zY2hlbWEgPSBTRUxFQ1QgJ2xvY2FsJyBTQ0hFTUFfSUQsICdsb2NhbCcgU0NIRU1BX0RFU0MsIG51bGwgREFUQVNPVVJDRV9UWVBFICBGUk9NIGR1YWwgdW5pb24gU0VMRUNUIGEuU0NIRU1BX0lELCBhLlNDSEVNQV9ERVNDLCBEQVRBU09VUkNFX1RZUEUgIEZST00gU0NIRU1BX0lORk8gYSAgd2hlcmUgc2NoZW1hX2lkIDw+ICdsb2NhbCcgb3JkZXIgYnkgc2NoZW1hX2lkDQorbG9hZC5yZW1vdGVEQi5zY2hlbWEud2hlcmUgPSBTRUxFQ1QgYS5TQ0hFTUFfSUQsIGEuU0NIRU1BX0RFU0MsIERBVEFTT1VSQ0VfVFlQRSAgRlJPTSBTQ0hFTUFfSU5GTyBhIHdoZXJlIHNjaGVtYV9pZCA9ICdbc2NoZW1hX2lkXScNCisjZm9ybWZpZWxkIHJlbmRlcmluZw0KKw0KK2Zvcm1maWVsZC5pZC5uYW1lLnNxbC5wcmVmaXg9U0VMRUNUIGlkLCBuYW1lIEZST00gKA0KK2Zvcm1maWVsZC5pZC5uYW1lLnNxbD1TRUxFQ1QgaWQsIG5hbWUNCisNCitmb3JtZmllbGQuaWQubmFtZS5zcWwuc3VmZml4PQ0KKw0KK3JlcG9ydC5zZWN1cml0eS5jcmVhdGU9IFNFTEVDVCBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSBBUyBvd25lcl9pZCwgY3IuY3JlYXRlX2lkLCAgREFURV9GT1JNQVQoY3IuY3JlYXRlX2RhdGUsICclbS8lZC8lWScpIGNyZWF0ZV9kYXRlLCBtYWludF9pZCwgIERBVEVfRk9STUFUKGNyLm1haW50X2RhdGUsICclbS8lZC8lWScpICB1cGRhdGVfZGF0ZSwgY3IucHVibGljX3luIEZST00gY3JfcmVwb3J0IGNyIFdIRVJFIGNyLnJlcF9pZCA9IFtydy5nZXRSZXBvcnRJRCgpXQ0KKw0KK2RiLnVwZGF0ZS5yZXBvcnQueG1sID0gU0VMRUNUIGNyLnJlcF9pZCwgY3IucmVwb3J0X3htbCBGUk9NIGNyX3JlcG9ydCBjciBXSEVSRSByZXBfaWQ9PyBGT1IgVVBEQVRFDQorDQordXBkYXRlLmN1c3RvbS5yZXBvcnQucmVjID0gVVBEQVRFIGNyX3JlcG9ydCBTRVQgdGl0bGU9J1tVdGlscy5vcmFjbGVTYWZlKHJ3LmdldFJlcG9ydE5hbWUoKSldJywgZGVzY3I9J1tVdGlscy5vcmFjbGVTYWZlKHJ3LmdldFJlcG9ydERlc2NyKCkpXScsIHB1YmxpY195bj0nWyhydy5pc1B1YmxpYygpXScsIG1lbnVfaWQ9J1tydy5nZXRNZW51SUQoKV0nLCBtZW51X2FwcHJvdmVkX3luPSdbKHJ3LmlzTWVudUFwcHJvdmVkKCldJywgb3duZXJfaWQ9W3J3LmdldE93bmVySUQoKV0sIG1haW50X2lkPVtydy5nZXRVcGRhdGVJRCgpXSwgbWFpbnRfZGF0ZT1TVFJfVE9fREFURSgnW3J3LmdldFVwZGF0ZURhdGUoKV0nLCAnW0dsb2JhbHMuZ2V0T3JhY2xlVGltZUZvcm1hdCgpXScpLCBkYXNoYm9hcmRfdHlwZV95bj0nWyhydy5pc0Rhc2hib2FyZFR5cGUoKV0nLCBkYXNoYm9hcmRfeW49ICdbKHJ3LmdldFJlcG9ydFR5cGUoKS5lcXVhbHMoQXBwQ29uc3RhbnRzLlJUX0RBU0hCT0FSRCldJyBXSEVSRSByZXBfaWQgPSBbcncuZ2V0UmVwb3J0SUQoKV0NCisNCitpcy5yZXBvcnQuYWxyZWFkeS5zY2hlZHVsZWQgPSBzZWxlY3QgcmVwX2lkIGZyb20gY3JfcmVwb3J0X3NjaGVkdWxlIHdoZXJlIHJlcF9pZCA9ID8NCisNCitjcmVhdGUuY3VzdG9tLnJlcG9ydC5yZWMgPSBJTlNFUlQgSU5UTyBjcl9yZXBvcnQocmVwX2lkLCB0aXRsZSwgZGVzY3IsIHB1YmxpY195biwgbWVudV9pZCwgbWVudV9hcHByb3ZlZF95biwgcmVwb3J0X3htbCwgb3duZXJfaWQsIGNyZWF0ZV9pZCwgY3JlYXRlX2RhdGUsIG1haW50X2lkLCBtYWludF9kYXRlLCBkYXNoYm9hcmRfdHlwZV95biwgZGFzaGJvYXJkX3luLCBmb2xkZXJfaWQpIFZBTFVFUyhbcncuZ2V0UmVwb3J0SUQoKV0sICdbVXRpbHMub3JhY2xlU2FmZShydy5nZXRSZXBvcnROYW1lKCkpXScsICdbVXRpbHMub3JhY2xlU2FmZShydy5nZXRSZXBvcnREZXNjcigpKV0nLCAnW3J3LmlzUHVibGljKCldJywgJ1tydy5nZXRNZW51SUQoKV0nLCAnW3J3LmlzTWVudUFwcHJvdmVkKCldJywgJzw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCIgc3RhbmRhbG9uZT1cInllc1wiPz4nLCBbcncuZ2V0T3duZXJJRCgpXSwgW3J3LmdldENyZWF0ZUlEKCldLCBTVFJfVE9fREFURSgnW3J3LmdldENyZWF0ZURhdGUoKV0nLCAnW0dsb2JhbHMuZ2V0T3JhY2xlVGltZUZvcm1hdCgpXScpLCBbcncuZ2V0VXBkYXRlSUQoKV0sIFNUUl9UT19EQVRFKCdbcncuZ2V0VXBkYXRlRGF0ZSgpXScsICdbR2xvYmFscy5nZXRPcmFjbGVUaW1lRm9ybWF0KCldJyksICdbcncuaXNEYXNoYm9hcmRUeXBlKCldJywgJ1tydy5nZXRSZXBvcnRUeXBlKCkuZXF1YWxzKEFwcENvbnN0YW50cy5SVF9EQVNIQk9BUkQpXScsW3J3LmdldEZvbGRlcklkKCldKSANCisNCitnZXQudXNlci5yZXBvcnQubmFtZXMgPSBTRUxFQ1QgY3IucmVwX2lkLCBjci50aXRsZSBGUk9NIGNyX3JlcG9ydCBjciBXSEVSRSBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdCQkJCQkJCQ0KKwkJCQkJCQkJDQorZ2V0LnJlcG9ydC5vd25lci5pZCA9IFNFTEVDVCBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSBBUyBvd25lciBGUk9NIGNyX3JlcG9ydCBjciBXSEVSRSByZXBfaWQgPSA/CQkJCQkJDQorDQorZGVsZXRlLnJlcG9ydC5yZWNvcmQubG9nID0gREVMRVRFIEZST00gY3JfcmVwb3J0X2xvZyBXSEVSRSByZXBfaWQgPSBbcmVwb3J0SURdDQorDQorZGVsZXRlLnJlcG9ydC5yZWNvcmQudXNlcnMgPSBERUxFVEUgRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGVfdXNlcnMgV0hFUkUgcmVwX2lkID0gW3JlcG9ydElEXQ0KKw0KK2RlbGV0ZS5yZXBvcnQucmVjb3JkLnNjaGVkdWxlID0gREVMRVRFIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlIFdIRVJFIHJlcF9pZCA9IFtyZXBvcnRJRF0NCisNCitkZWxldGUucmVwb3J0LnJlY29yZC5hY2Nlc3MgPSBERUxFVEUgRlJPTSBjcl9yZXBvcnRfYWNjZXNzIFdIRVJFIHJlcF9pZCA9IFtyZXBvcnRJRF0NCisNCitkZWxldGUucmVwb3J0LnJlY29yZC5lbWFpbCA9IERFTEVURSBGUk9NIGNyX3JlcG9ydF9lbWFpbF9zZW50X2xvZyBXSEVSRSByZXBfaWQgPSBbcmVwb3J0SURdDQorDQorZGVsZXRlLnJlcG9ydC5yZWNvcmQuZmF2b3JpdGUgPSBERUxFVEUgRlJPTSBjcl9mYXZvcml0ZV9yZXBvcnRzIFdIRVJFIHJlcF9pZCA9IFtyZXBvcnRJRF0NCisNCitkZWxldGUucmVwb3J0LnJlY29yZC5yZXBvcnQgPSBERUxFVEUgRlJPTSBjcl9yZXBvcnQgV0hFUkUgcmVwX2lkID0gW3JlcG9ydElEXQ0KKwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCitsb2FkLnF1aWNrLmxpbmtzID0gIHNlbGVjdCBmaW5hbGNyLnJlcF9pZCwgZmluYWxjci50aXRsZSwgZmluYWxjci5kZXNjciBmcm9tIChTRUxFQ1QgY3IucmVwX2lkLCBjci50aXRsZSwgY3IuZGVzY3IgRlJPTSAoU0VMRUNUIHJlcF9pZCwgTUlOKHJlYWRfb25seV95bikgcmVhZF9vbmx5X3luIEZST00gKChTRUxFQ1QgdWEucmVwX2lkLCB1YS5yZWFkX29ubHlfeW4gRlJPTSBjcl9yZXBvcnRfYWNjZXNzIHVhIFdIRVJFIHVhLnVzZXJfaWQgPSBbdXNlcklEXSkgVU5JT04gQUxMIChTRUxFQ1QgcmEucmVwX2lkLCByYS5yZWFkX29ubHlfeW4gRlJPTSBjcl9yZXBvcnRfYWNjZXNzIHJhIFdIRVJFIHJhLnJvbGVfaWQgSU4gKFtyb2xlTGlzdC50b1N0cmluZygpXSkpKSByZXBvcnRfYWNjZXNzIEdST1VQIEJZIHJlcF9pZCkgcmEgTEVGVCBKT0lOIGNyX3JlcG9ydCBjciBPTiBjci5yZXBfaWQgPSByYS5yZXBfaWQgV0hFUkUgY3IubWVudV9pZCBMSUtFICclW252bHMobWVudUlkKV0lJyBBTkQgY3IubWVudV9hcHByb3ZlZF95biA9ICdZJyBBTkQgKGNvYWxlc2NlKGNyLm93bmVyX2lkLCBjci5jcmVhdGVfaWQpID0gW3VzZXJJRF0gT1IgY3IucHVibGljX3luID0gJ1knIE9SIHJhLnJlYWRfb25seV95biBJUyBOT1QgTlVMTCkgVU5JT04gU0VMRUNUIGNyLnJlcF9pZCwgY3IudGl0bGUsIGNyLmRlc2NyIEZST00gY3JfcmVwb3J0IGNyIFdIRVJFIGNyLm1lbnVfaWQgTElLRSAnJVtudmxzKG1lbnVJZCldJScgQU5EIChjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdIE9SIGNyLnB1YmxpY195biA9ICdZJyBvciBFWElTVFMgKHNlbGVjdCAqIGZyb20gZm5fdXNlcl9yb2xlIHdoZXJlIHVzZXJfaWQ9W3VzZXJJRF0gYW5kIHJvbGVfaWQgaW4gKDEpKSkpIGZpbmFsY3IgT1JERVIgQlkgZmluYWxjci50aXRsZQ0KKw0KK2xvYWQuZm9sZGVyLnJlcG9ydHMgPSBTRUxFQ1QgY3IucmVwX2lkLCBjci5yZXBfaWQgcmVwb3J0X2lkLCBjb25jYXQoW3JlcF90aXRsZV9zcWxdICwgKENBU0UgV0hFTiBjci5wdWJsaWNfeW4gPSAnWScgVEhFTiAnJyBFTFNFICdbUFJJVkFURV9JQ09OXScgRU5EKSxjci50aXRsZSwnPC9hPicpIHRpdGxlLCBjci5kZXNjciwgY29uY2F0KGF1LmZpcnN0X25hbWUsJyAnLGF1Lmxhc3RfbmFtZSkgb3duZXJfbmFtZSwgREFURV9GT1JNQVQoY3IuY3JlYXRlX2RhdGUsICclbS8lZC8lWScpIGNyZWF0ZV9kYXRlLCBDQVNFIFdIRU4gY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgPSBbdXNlcklEXSBUSEVOICdOJyBFTFNFIGNvYWxlc2NlKHJhLnJlYWRfb25seV95biwgJ1knKSBFTkQgcmVhZF9vbmx5X3luLCBDQVNFIFdIRU4gY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgPSBbdXNlcklEXSBUSEVOICdZJyBFTFNFICdOJyBFTkQgdXNlcl9pc19vd25lcl95biBGUk9NIGNyX3JlcG9ydCBjciBKT0lOIGFwcF91c2VyIGF1IE9OIGNvYWxlc2NlKGNyLm93bmVyX2lkLCBjci5jcmVhdGVfaWQpID0gYXUudXNlcl9pZCBBTkQgY3IuZm9sZGVyX2lkPSAnW2ZvbGRlcklkXScgTEVGVCBKT0lOIChTRUxFQ1QgcmVwX2lkLCBNSU4ocmVhZF9vbmx5X3luKSByZWFkX29ubHlfeW4gRlJPTSAoKFNFTEVDVCB1YS5yZXBfaWQsIHVhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgdWEgV0hFUkUgdWEudXNlcl9pZCA9IFt1c2VySURdKSBVTklPTiBBTEwoU0VMRUNUIHJhLnJlcF9pZCwgcmEucmVhZF9vbmx5X3luIEZST00gY3JfcmVwb3J0X2FjY2VzcyByYSBXSEVSRSByYS5yb2xlX2lkIElOIChbcm9sZUxpc3QudG9TdHJpbmcoKV0pKSkgcmVwb3J0X2FjY2VzcyBHUk9VUCBCWSByZXBfaWQpIHJhIE9OIGNyLnJlcF9pZCA9IHJhLnJlcF9pZA0KKyNJZiByb2xlTGlzdC50b1N0cmluZygpIGlzICcnIFBvc3RncmVTUUwgcmV0dXJucyBhbiBlcnJvciAtIG5lZWRzIHRvIGJlIG51bGwgaW5zdGVhZCBvZiBlbXB0eQ0KKw0KK2xvYWQuZm9sZGVyLnJlcG9ydHMudXNlciA9IEFORCBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdCQ0KKw0KK2xvYWQuZm9sZGVyLnJlcG9ydHMucHVibGljc3FsID0gQU5EIChjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdIE9SIGNyLnB1YmxpY195biA9ICdZJyBPUiByYS5yZWFkX29ubHlfeW4gSVMgTk9UIE5VTEwpDQorDQorbG9hZC5xdWljay5kb3dubG9hZC5saW5rcyA9IFNFTEVDVCBhLmZpbGVfbmFtZSwgYi50aXRsZSxEQVRFX0ZPUk1BVChhLmR3bmxkX3N0YXJ0X3RpbWUsICclVyAlZC0lbS0lWSAlSDolaTolcycpIGFzIHRpbWUsIGEuZHdubGRfc3RhcnRfdGltZSBGUk9NIGNyX3JlcG9ydF9kd25sZF9sb2cgYSwgY3JfcmVwb3J0IGIgd2hlcmUgYS51c2VyX2lkID0gW3VzZXJJRF0gYW5kIGEucmVwX2lkID0gYi5yZXBfaWQgYW5kIChhLmR3bmxkX3N0YXJ0X3RpbWUpID49IFNUUl9UT19EQVRFKERBVEVfRk9STUFUKG5vdygpIC0gIElOVEVSVkFMIDEgREFZLCAnJW0vJWQvJVknKSwgJyVtLyVkLyVZJykgYW5kIGEucmVjb3JkX3JlYWR5X3RpbWUgaXMgbm90IG51bGwgb3JkZXIgYnkgYS5kd25sZF9zdGFydF90aW1lDQorDQorbG9hZC5yZXBvcnRzLnRvLnNjaGVkdWxlID0gU0VMRUNUIGNyLnJlcF9pZCwgSW5pdGNhcChjci50aXRsZSksIGNyLmRlc2NyIEZST00gY3JfcmVwb3J0IGNyIExFRlQgT1VURVIgSk9JTiAoU0VMRUNUIHJlcF9pZCwgTUlOKHJlYWRfb25seV95bikgcmVhZF9vbmx5X3luIEZST00gKChTRUxFQ1QgdWEucmVwX2lkLCB1YS5yZWFkX29ubHlfeW4gRlJPTSBjcl9yZXBvcnRfYWNjZXNzIHVhIFdIRVJFIHVhLnVzZXJfaWQgPSBbdXNlcklEXSkgVU5JT04gQUxMIChTRUxFQ1QgcmEucmVwX2lkLCByYS5yZWFkX29ubHlfeW4gRlJPTSBjcl9yZXBvcnRfYWNjZXNzIHJhIFdIRVJFIHJhLnJvbGVfaWQgSU4gKFtyb2xlTGlzdC50b1N0cmluZygpXSkpKSByZXBvcnRfYWNjZXNzIEdST1VQIEJZIHJlcF9pZCkgcmEgT04gY3IucmVwX2lkID0gcmEucmVwX2lkIEFORCAoY3IucHVibGljX3luID0gJ1knIE9SIHJhLnJlYWRfb25seV95biBJUyBOT1QgTlVMTCBvciBjci5vd25lcl9pZCA9IFt1c2VySURdIClPUkRFUiBCWSBJbml0Y2FwKGNyLnRpdGxlKQ0KKwkJDQorbG9hZC5yZXBvcnRzLnRvLmFkZC5pbi5kYXNoYm9hcmQgPSBTRUxFQ1QgY3IucmVwX2lkLCBjci50aXRsZSwgY3IuZGVzY3IgRlJPTSBjcl9yZXBvcnQgY3IgTEVGVCBPVVRFUiBKT0lOIChTRUxFQ1QgcmVwX2lkLCBNSU4ocmVhZF9vbmx5X3luKSByZWFkX29ubHlfeW4gRlJPTSAoKFNFTEVDVCB1YS5yZXBfaWQsIHVhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgdWEgV0hFUkUgdWEudXNlcl9pZCA9IFt1c2VySURdKSBVTklPTiBBTEwgKFNFTEVDVCByYS5yZXBfaWQsIHJhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgcmEgV0hFUkUgcmEucm9sZV9pZCBJTiAoW3JvbGVMaXN0LnRvU3RyaW5nKCldKSkpIHJlcG9ydF9hY2Nlc3MgR1JPVVAgQlkgcmVwX2lkKSByYSBPTiBjci5yZXBfaWQgPSByYS5yZXBfaWQgQU5EIChjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdIE9SIGNyLnB1YmxpY195biA9ICdZJyBPUiByYS5yZWFkX29ubHlfeW4gSVMgTk9UIE5VTEwpIEFORCAoY3IuZGFzaGJvYXJkX3luID0gJ04nIG9yIGNyLmRhc2hib2FyZF95biBpcyBudWxsKSBPUkRFUiBCWSBjci50aXRsZQ0KKw0KK2xvYWQubXkucmVjZW50LmxpbmtzID0gc2VsZWN0IHJlcF9pZCwgdGl0bGUsIGRlc2NyLCBmb3JtX2ZpZWxkcyBmcm9tICggc2VsZWN0IHJlcF9pZCwgdGl0bGUsIGRlc2NyLCBmb3JtX2ZpZWxkcyBmcm9tICAoc2VsZWN0IGNyLnJlcF9pZCwgY3IudGl0bGUsIGEuZm9ybV9maWVsZHMsICBjci5kZXNjciwgYS5sb2dfdGltZSwgYS51c2VyX2lkLCBhLmFjdGlvbiwgYS5hY3Rpb25fdmFsdWUgZnJvbSBjcl9yZXBvcnRfbG9nIGEsIGNyX3JlcG9ydCBjciB3aGVyZSB1c2VyX2lkID0gW3VzZXJJRF0gQU5EIGFjdGlvbiA9ICdSZXBvcnQgRXhlY3V0aW9uIFRpbWUnIGFuZCBhLnJlcF9pZCA9IGNyLnJlcF9pZCBvcmRlciBieSBsb2dfdGltZSBkZXNjKSBBUyB4KSBBUyB5IHdoZXJlIExJTUlUIDEsIDYNCisNCitjcmVhdGUucmVwb3J0LmxvZy5lbnRyeSA9IElOU0VSVCBJTlRPIGNyX3JlcG9ydF9sb2cgKHJlcF9pZCwgbG9nX3RpbWUsIHVzZXJfaWQsIGFjdGlvbiwgYWN0aW9uX3ZhbHVlLCBmb3JtX2ZpZWxkcykgVkFMVUVTKFtyZXBvcnRJRF0sIG5vdygpLCBbdXNlcklEXSwgJ1thY3Rpb25dJyAsICdbZXhlY3V0aW9uVGltZV0nLCAnW2Zvcm1fZmllbGRzXScpDQorDQorY3JlYXRlLnJlcG9ydC5sb2cuZW50cnkuZXhlYy50aW1lID0gSU5TRVJUIElOVE8gY3JfcmVwb3J0X2xvZyAocmVwX2lkLCBsb2dfdGltZSwgdXNlcl9pZCwgYWN0aW9uLCBhY3Rpb25fdmFsdWUsIGZvcm1fZmllbGRzKSBWQUxVRVMoW3JlcG9ydElEXSwgTk9XKCkgKyBJTlRFUlZBTCAxIFNFQ09ORCwgW3VzZXJJRF0sICdbYWN0aW9uXScgLCAnW2V4ZWN1dGlvblRpbWVdJywgJ1tmb3JtRmllbGRzXScpDQorDQorY2xlYXIucmVwb3J0LmxvZy5lbnRyaWVzID0gREVMRVRFIEZST00gY3JfcmVwb3J0X2xvZyBXSEVSRSByZXBfaWQgPSA/IGFuZCB1c2VyX2lkID0gPw0KKw0KK2xvYWQucmVwb3J0LmxvZy5lbnRyaWVzID0gU0VMRUNUIHgubG9nX3RpbWUsIHgudXNlcl9pZCwgKENBU0UgV0hFTiB4LmFjdGlvbiA9ICdSZXBvcnQgRXhlY3V0aW9uIFRpbWUnIFRIRU4gIGNvbmNhdCgnPGEgaHJlZj1cIltBcHBVdGlscy5nZXRSYXB0b3JBY3Rpb25VUkwoKV1yZXBvcnQucnVuLmNvbnRhaW5lciZjX21hc3Rlcj0nLHgucmVwX2lkLCcmJyx4LmZvcm1fZmllbGRzLCcmZnJvbVJlcG9ydExvZz1ZJmRpc3BsYXlfY29udGVudD1ZJm5vRm9ybUZpZWxkcz1ZJnJlZnJlc2g9WVwiPicseC5hY3Rpb24sJzwvYT4nKSBFTFNFIHguYWN0aW9uIEVORCkgYWN0aW9uLCAoQ0FTRSBXSEVOIHguYWN0aW9uID0gJ1JlcG9ydCBFeGVjdXRpb24gVGltZScgVEhFTiAgYWN0aW9uX3ZhbHVlICBFTFNFICdOL0EnIEVORCkgdGltZV90YWtlbiwgKENBU0UgV0hFTiB4LmFjdGlvbiA9ICdSZXBvcnQgRXhlY3V0aW9uIFRpbWUnIFRIRU4gY29uY2F0KCc8YSBocmVmPVwiW0FwcFV0aWxzLmdldFJhcHRvckFjdGlvblVSTCgpXXJlcG9ydC5ydW4uY29udGFpbmVyJmNfbWFzdGVyPScseC5yZXBfaWQsJyYnLHguZm9ybV9maWVsZHMsJyZmcm9tUmVwb3J0TG9nPVkmZGlzcGxheV9jb250ZW50PVkmbm9Gb3JtRmllbGRzPVkmcmVmcmVzaD1ZXCI+PGltZyBzcmM9XCJbQXBwVXRpbHMuZ2V0SW1nRm9sZGVyVVJMKClddGVzdF9ydW4uZ2lmIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBib3JkZXI9MCBhbHQ9XCJSdW4gcmVwb3J0XCIvPjwvYT4nKSBFTFNFICdOL0EnIEVORCkgcnVuX2ltYWdlLCB4Lm5hbWUgRlJPTSAgKFNFTEVDVCBybC5yZXBfaWQsIERBVEVfRk9STUFUKHJsLmxvZ190aW1lLCAnJW0vJWQvJVkgJWg6JWk6JXMgJXAnKSBsb2dfdGltZSwgcmwuYWN0aW9uX3ZhbHVlLCBjb25jYXQoZnVzZXIubGFzdF9uYW1lICwnLCAnLGZ1c2VyLmZpcnN0X25hbWUpIG5hbWUsIHJsLnVzZXJfaWQsIHJsLmFjdGlvbiwgcmwuZm9ybV9maWVsZHMgRlJPTSBjcl9yZXBvcnRfbG9nIHJsLCBmbl91c2VyIGZ1c2VyIFdIRVJFIHJsLnJlcF9pZCA9IFtudmxzKHJlcG9ydElkKV0gYW5kIHJsLmFjdGlvbiAhPSAnUmVwb3J0IFJ1bicgYW5kIGZ1c2VyLnVzZXJfaWQgPSBybC51c2VyX2lkIE9SREVSIEJZIHJsLmxvZ190aW1lIERFU0MpIHggIExJTUlUIDEwMA0KKw0KK2RvZXMudXNlci5jYW4uc2NoZWR1bGUucmVwb3J0ID0gc2VsZWN0IGNycy5zY2hlZF91c2VyX2lkLCBjb3VudCgqKSBmcm9tIGNyX3JlcG9ydF9zY2hlZHVsZSBjcnMgd2hlcmUgc2NoZWRfdXNlcl9pZCA9IFt1c2VySWRdIGdyb3VwIGJ5IGNycy5zY2hlZF91c2VyX2lkIGhhdmluZyBjb3VudCgqKSA+PSBbR2xvYmFscy5nZXRTY2hlZHVsZUxpbWl0KCldDQorDQorZG9lcy51c2VyLmNhbi5zY2hlZHVsZSA9IHNlbGVjdCBjcnMuc2NoZWR1bGVfaWQgZnJvbSBjcl9yZXBvcnRfc2NoZWR1bGUgY3JzIHdoZXJlIHNjaGVkdWxlX2lkID0gW3NjaGVkdWxlSWRdDQorDQorZ2V0LnN5c3RlbS5kYXRlLnRpbWUgPSBzZWxlY3QgREFURV9GT1JNQVQobm93KCksJyVtLyVkLyVZICVIOiVpOiVzJykNCisNCitnZXQubmV4dC5kYXkuZGF0ZS50aW1lID0gc2VsZWN0IERBVEVfRk9STUFUKE5PVygpICsgSU5URVJWQUwgMSBEQVksJyVtLyVkLyVZICVIOiVpOiVzJykNCisNCitnZXQubmV4dC5maWZ0ZWVuLm1pbnV0ZXMuZGF0ZS50aW1lID0gc2VsZWN0IERBVEVfRk9STUFUKE5PVygpICsgSU5URVJWQUwgMTUgTUlOVVRFUywnJW0vJWQvJVkgJUg6JWk6JXMnKQ0KKw0KK2dldC5uZXh0LnRoaXJ0eS5taW51dGVzLmRhdGUudGltZSA9IHNlbGVjdCBEQVRFX0ZPUk1BVChOT1coKSArIElOVEVSVkFMIDMwIE1JTlVURVMsJyVtLyVkLyVZICVIOiVpOiVzJykNCisNCitnZXQudGVtcGxhdGUuZmlsZSA9IHNlbGVjdCB0ZW1wbGF0ZV9maWxlIGZyb20gY3JfcmVwb3J0X3RlbXBsYXRlX21hcCB3aGVyZSByZXBvcnRfaWQgPSBbcmVwb3J0SWRdDQorDQorbG9hZC5wZGYuaW1nLmxvb2t1cCA9IHNlbGVjdCBpbWFnZV9pZCwgaW1hZ2VfbG9jIGZyb20gY3JfcmFwdG9yX3BkZl9pbWcNCisNCitsb2FkLmFjdGlvbi5pbWcubG9va3VwID0gc2VsZWN0IGltYWdlX2lkLCBpbWFnZV9sb2MgZnJvbSBjcl9yYXB0b3JfYWN0aW9uX2ltZw0KKw0KKw0KKyNBY3Rpb25IYW5kbGVyLmphdmENCisNCityZXBvcnQudmFsdWVzLm1hcC5kZWYuYSA9IFNFTEVDVCB4IEZST00gKFNFTEVDVCBESVNUSU5DVCANCisNCityZXBvcnQudmFsdWVzLm1hcC5kZWYuYiA9IFRPX0NIQVIoW2NvbE5hbWVdLCAnW252bChkaXNwbGF5Rm9ybWF0LCBBcHBDb25zdGFudHMuREVGQVVMVF9EQVRFX0ZPUk1BVCldJykNCisNCityZXBvcnQudmFsdWVzLm1hcC5kZWYuYyA9IFtjb2xOYW1lXSANCisNCityZXBvcnQudmFsdWVzLm1hcC5kZWYuZCA9ICB4IEZST00gW3JkZWYuZ2V0VGFibGVCeUlkKHRhYmxlSWQpLmdldFRhYmxlTmFtZSgpXSBXSEVSRSBbY29sTmFtZV0gSVMgTk9UIE5VTEwgT1JERVIgQlkgMSkgeHggTElNSVQgPD0gW0dsb2JhbHMuZ2V0RGVmYXVsdFBhZ2VTaXplKCldDQorDQordGVzdC5zY2hlZC5jb25kLnBvcHVwID0gU0VMRUNUIDEgV0hFUkUgRVhJU1RTIChbc3FsXSkNCisNCitkb3dubG9hZC5hbGwuZW1haWwuc2VudCA9IFNlbGVjdCB1c2VyX2lkLCByZXBfaWQgZnJvbSBDUl9SRVBPUlRfRU1BSUxfU0VOVF9MT0cgd2hlcmUgZ2VuX2tleT0nW3BkZkF0dGFjaG1lbnRLZXkudHJpbSgpXScgYW5kIGxvZ19pZCA9W3JlcG9ydF9lbWFpbF9zZW50X2xvZ19pZC50cmltKCldIGFuZCAobm93KCkgLSBzZW50X2RhdGUpIDwgJzEgZGF5JyBsaW1pdCAxDQorDQorZG93bmxvYWQuYWxsLmdlbi5rZXkgPSBzZWxlY3Qgc2NoZWR1bGVfaWQgZnJvbSBjcl9yZXBvcnRfZW1haWxfc2VudF9sb2cgdSB3aGVyZSBVLkdFTl9LRVkgPSAnW3BkZkF0dGFjaG1lbnRLZXldJw0KKw0KK2Rvd25sb2FkLmFsbC5yZXRyaWV2ZSA9IFNFTEVDVCBhdS51c2VyX2lkIEZST00gKFNFTEVDVCBycy5zY2hlZHVsZV9pZCwgcnMucmVwX2lkIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlIHJzIFdIRVJFIHJzLmVuYWJsZWRfeW49J1knIEFORCBycy5ydW5fZGF0ZSBJUyBOT1QgTlVMTCAgQU5EIHJzLnNjaGVkdWxlX2lkID0gW3NjaGVkdWxlSWRdKSB4LCBjcl9yZXBvcnQgciwgYXBwX3VzZXIgYXUgV0hFUkUgeC5yZXBfaWQgPSByLnJlcF9pZCAgQU5EIGF1LnVzZXJfaWQgSU4gKFNFTEVDVCByc3UudXNlcl9pZCBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZV91c2VycyByc3UgV0hFUkUgcnN1LnNjaGVkdWxlX2lkID0geC5zY2hlZHVsZV9pZCBhbmQgcnN1LnNjaGVkdWxlX2lkID0gW3NjaGVkdWxlSWRdICBVTklPTiBTRUxFQ1QgdXIudXNlcl9pZCBGUk9NIGZuX3VzZXJfcm9sZSB1ciBXSEVSRSB1ci5yb2xlX2lkIElOIChTRUxFQ1QgcnN1Mi5yb2xlX2lkIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlX3VzZXJzIHJzdTIgV0hFUkUgcnN1Mi5zY2hlZHVsZV9pZCA9IHguc2NoZWR1bGVfaWQgYW5kICByc3UyLnNjaGVkdWxlX2lkID0gW3NjaGVkdWxlSWRdKSkNCisNCitkb3dubG9hZC5hbGwuaW5zZXJ0ID0gaW5zZXJ0IGludG8gY3JfcmVwb3J0X2R3bmxkX2xvZyAodXNlcl9pZCxyZXBfaWQsZmlsZV9uYW1lLGR3bmxkX3N0YXJ0X3RpbWUsZmlsdGVyX3BhcmFtcykgdmFsdWVzICg/LD8sPyw/LD8pDQorDQorI1JlcG9ydFdyYXBwZXIuamF2YQ0KKw0KK3JlcG9ydC53cmFwcGVyLmZvcm1hdCA9IFNFTEVDVCBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSBvd25lcl9pZCwgY3IuY3JlYXRlX2lkLCBEQVRFX0ZPUk1BVChjci5jcmVhdGVfZGF0ZSwgJ1tHbG9iYWxzLmdldE9yYWNsZVRpbWVGb3JtYXQoKV0nKSBjcmVhdGVfZGF0ZSwgbWFpbnRfaWQsIERBVEVfRk9STUFUKGNyLm1haW50X2RhdGUsICdbR2xvYmFscy5nZXRPcmFjbGVUaW1lRm9ybWF0KCldJykgdXBkYXRlX2RhdGUsIGNyLm1lbnVfaWQsIGNyLm1lbnVfYXBwcm92ZWRfeW4gRlJPTSBjcl9yZXBvcnQgY3IgV0hFUkUgY3IucmVwX2lkPSBbcmVwb3J0SURdDQorDQorZ2VuZXJhdGUuc3Vic2V0LnNxbCA9IFNFTEVDVCBbY29sTmFtZXMudG9TdHJpbmcoKV0gRlJPTSAoU0VMRUNUICBbY29sTmFtZXMudG9TdHJpbmcoKV0gRlJPTSAoW3JlcG9ydFNRTF0pIEFTIHggKSBBUyB5IA0KKw0KK3JlcG9ydC5zcWwub25seS5maXJzdC5wYXJ0ID0gU0VMRUNUIFtjb2xOYW1lcy50b1N0cmluZygpXSBGUk9NIChTRUxFQ1QgW2NvbE5hbWVzLnRvU3RyaW5nKCldIEZST00gKA0KKw0KK3JlcG9ydC5zcWwub25seS5zZWNvbmQucGFydC5hID0gW3N0YXJ0Um93XSANCisNCityZXBvcnQuc3FsLm9ubHkuc2Vjb25kLnBhcnQuYiA9IFtwYWdlU2l6ZV0NCisjTVlTUUw6IExJTUlUIFtzdGFydFJvd10sIFtwYWdlU2l6ZV0NCisjT1JhY2xlOiByb3dudW0gPj0gW3N0YXJ0Um93XSBhbmQgcm93bnVtIDw9IChbc3RhcnRSb3ddK1twYWdlU2l6ZV0pDQorI1Bvc3RncmU6IGxpbWl0IFtwYWdlU2l6ZV0gb2Zmc2V0IFtzdGFydFJvd10gDQorDQorcmVwb3J0LnNxbC5vbmx5LnNlY29uZC5wYXJ0LmIubm9vcmRlcmJ5ID0gIExJTUlUIFtzdGFydFJvd10NCisNCitnZW5lcmF0ZS5zcWwudmlzdWFsLnNlbGVjdCA9IFNFTEVDVA0KKw0KK2dlbmVyYXRlLnNxbC52aXN1YWwuY291bnQgPSBDT1VOVCgqKSBjbnQNCisNCitnZW5lcmF0ZS5zcWwudmlzdWFsLmR1YWwgPSANCisjTm8gRFVBTCB0YWJsZSBpbiBQb3N0Z3JlU1FMIHNvIHRoaXMgaXMgYmxhbmsNCisNCisjUmVwb3J0UnVudGltZS5qYXZhDQorDQorbG9hZC5jcm9zc3RhYi5yZXBvcnQuZGF0YSA9IFNFTEVDVCAgW2NvbE5hbWVzLnRvU3RyaW5nKCldIEZST00gKCBbcmVwb3J0U1FMXSANCisNCisjUmFwdG9yUnVuSGFuZGxlci5qYXZhDQorDQorZ2VuZXJhdGUuc3FsLmhhbmRsZXIgPSBTRUxFQ1QgIHguKiBmcm9tIChbc3FsXSkgQVMgeCBMSU1JVCAyDQorDQorZ2VuZXJhdGUuc3FsLnNlbGVjdCA9IFNFTEVDVCBbY29sTmFtZXMudG9TdHJpbmcoKV0gRlJPTSAoU0VMRUNUICBbY29sTmFtZXMudG9TdHJpbmcoKV0gRlJPTSAoW3NxbF0pIEFTIHkpIEFTIHggDQorCQkJDQorI1JlcG9ydFNjaGVkdWxlLmphdmENCisNCitsb2FkLnNjaGVkdWxlLmRhdGEgPSBTRUxFQ1QgcnMuZW5hYmxlZF95biwgREFURV9GT1JNQVQocnMuc3RhcnRfZGF0ZSwgJyVtLyVkLyVZJykgc3RhcnRfZGF0ZSwgREFURV9GT1JNQVQocnMuZW5kX2RhdGUsICclbS8lZC8lWScpIGVuZF9kYXRlLCBEQVRFX0ZPUk1BVChycy5ydW5fZGF0ZSwgJyVtLyVkLyVZJykgcnVuX2RhdGUsIGNvYWxlc2NlKERBVEVfRk9STUFUKHJzLnJ1bl9kYXRlLCAnJWgnKSwgJzEyJykgcnVuX2hvdXIsIGNvYWxlc2NlKERBVEVfRk9STUFUKHJzLnJ1bl9kYXRlLCAnJWknKSwgJzAwJykgcnVuX21pbiwgY29hbGVzY2UoREFURV9GT1JNQVQocnMucnVuX2RhdGUsICclcCcpLCAnQU0nKSBydW5fYW1wbSwgcnMucmVjdXJyZW5jZSwgcnMuY29uZGl0aW9uYWxfeW4sIHJzLm5vdGlmeV90eXBlLCBycy5tYXhfcm93LCBycy5pbml0aWFsX2Zvcm1maWVsZHMsIHJzLnNjaGVkdWxlX2lkLCBjb2FsZXNjZShEQVRFX0ZPUk1BVChycy5lbmRfZGF0ZSwgJyVoJyksICcxMScpIGVuZF9ob3VyLCBjb2FsZXNjZShEQVRFX0ZPUk1BVChycy5lbmRfZGF0ZSwgJyVpJyksICc0NScpIGVuZF9taW4sIGNvYWxlc2NlKERBVEVfRk9STUFUKHJzLmVuZF9kYXRlLCAnJXAnKSwgJ1BNJykgZW5kX2FtcG0sIGVuY3J5cHRfeW4sIGF0dGFjaG1lbnRfeW4gRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGUgcnMgV0hFUkUgcnMucmVwX2lkID0gW3JlcG9ydElEXQ0KKw0KK2xvYWQuc2NoZWR1bGUuZ2V0aWQgPSBTRUxFQ1QgcnN1LnVzZXJfaWQsIGNvbmNhdChmdXNlci5sYXN0X25hbWUsJywgJyxmdXNlci5maXJzdF9uYW1lKSwgZnVzZXIubG9naW5faWQgRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGVfdXNlcnMgcnN1LCBmbl91c2VyIGZ1c2VyIFdIRVJFIHJzdS5yZXBfaWQgPSBbcmVwb3J0SURdICBBTkQgcnN1LnNjaGVkdWxlX2lkID0gW2dldFNjaGVkdWxlSUQoKV0gYW5kIHJzdS51c2VyX2lkIElTIE5PVCBOVUxMIGFuZCByc3UudXNlcl9pZCA9IGZ1c2VyLnVzZXJfaWQNCisNCitsb2FkLnNjaGVkdWxlLnVzZXJzID0gU0VMRUNUIHJzdS5yb2xlX2lkIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlX3VzZXJzIHJzdSBXSEVSRSByc3UucmVwX2lkID0gW3JlcG9ydElEXSBBTkQgcnN1LnNjaGVkdWxlX2lkID0gW2dldFNjaGVkdWxlSUQoKV0gQU5EIHJzdS5yb2xlX2lkIElTIE5PVCBOVUxMDQorDQorbmV3LnNjaGVkdWxlLmRhdGEgPSBzZWxlY3QgY29hbGVzY2UobWF4KHNjaGVkdWxlX2lkKSwwKSsxICBBUyBzZXF1ZW5jZSBmcm9tIGNyX3JlcG9ydF9zY2hlZHVsZQ0KKw0KK25ldy5yZXBvcnQuZGF0YSA9IHNlbGVjdCBjb2FsZXNjZShtYXgocmVwX2lkKSwwKSsxICBBUyByZXBfaWQgZnJvbSBjcl9yZXBvcnQNCisNCitleGVjdXRlLnVwZGF0ZSA9IERFTEVURSBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZV91c2VycyBXSEVSRSByZXBfaWQgPSBbcmVwb3J0SURdIGFuZCBzY2hlZHVsZV9pZCA9IFtnZXRTY2hlZHVsZUlEKCldDQorDQorZXhlY3V0ZS51cGRhdGUudXNlcnMgPSBJTlNFUlQgSU5UTyBjcl9yZXBvcnRfc2NoZWR1bGVfdXNlcnMgKHNjaGVkdWxlX2lkLCByZXBfaWQsIHVzZXJfaWQsIHJvbGVfaWQsIG9yZGVyX25vKSBWQUxVRVMoW2dldFNjaGVkdWxlSUQoKV0sIFtyZXBvcnRJRF0sIFtlbWFpbFRvVXNlcnMuZ2V0KGkpKS5nZXRJZCgpXSwgTlVMTCwgWyhpICsgMSldKQ0KKw0KK2V4ZWN1dGUudXBkYXRlLnJvbGVzID0gSU5TRVJUIElOVE8gY3JfcmVwb3J0X3NjaGVkdWxlX3VzZXJzIChzY2hlZHVsZV9pZCwgcmVwX2lkLCB1c2VyX2lkLCByb2xlX2lkLCBvcmRlcl9ubykgVkFMVUVTKFtnZXRTY2hlZHVsZUlEKCldLCBbcmVwb3J0SURdLCBOVUxMLCBbZW1haWxUb1JvbGVzLmdldChpKSkuZ2V0SWQoKV0sIFsoKGVtYWlsVG9Vc2Vycy5zaXplKCkgKyBpICsgMSldKQ0KKw0KK2V4ZWN1dGUudXBkYXRlLmFjdGl2aXR5ID0gSU5TRVJUIGludG8gY3Jfc2NoZWR1bGVfYWN0aXZpdHlfbG9nIChzY2hlZHVsZV9pZCwgbm90ZXMsIHJ1bl90aW1lKSB2YWx1ZXMgKFtnZXRTY2hlZHVsZUlEKCldLCdTdWJtaXR0ZWQ6U2NoZWR1bGUnLFRPX0RBVEUoJ1tnZXRSdW5EYXRlKCldIFtnZXRSdW5Ib3VyKCldOltnZXRSdW5NaW4oKV0gW2dldFJ1bkFNUE0oKV0nLCAnTU0vREQvWVlZWSBISDpNSSBBTScpKQ0KKyANCitkZWxldGUuc2NoZWR1bGUuZGF0YSA9IFNFTEVDVCAxIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlIFdIRVJFIHJlcF9pZCA9IFtyZXBvcnRJRF0gYW5kIHNjaGVkX3VzZXJfaWQgPSBbZ2V0U2NoZWR1bGVVc2VySUQoKV0gYW5kIHNjaGVkdWxlX2lkID0gW2dldFNjaGVkdWxlSUQoKV0NCisgDQorZGVsZXRlLnNjaGVkdWxlLmRhdGEudXNlcnMgPSBERUxFVEUgRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGVfdXNlcnMgV0hFUkUgcmVwX2lkID0gW3JlcG9ydElEXSAgYW5kIHNjaGVkdWxlX2lkID0gW2dldFNjaGVkdWxlSUQoKV0NCisgDQorZGVsZXRlLnNjaGVkdWxlLmRhdGEuaWQgPSBERUxFVEUgRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGUgd2hlcmUgcmVwX2lkID0gW3JlcG9ydElEXSBhbmQgc2NoZWRfdXNlcl9pZCA9IFtnZXRTY2hlZHVsZVVzZXJJRCgpXSBhbmQgc2NoZWR1bGVfaWQgPSBbZ2V0U2NoZWR1bGVJRCgpXQ0KKw0KK2xvYWQuY29uZC5zcWwgPSBTRUxFQ1QgY29uZGl0aW9uX2xhcmdlX3NxbCBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZSBXSEVSRSBzY2hlZHVsZV9pZD0/DQorDQorbG9hZC5jb25kLnNxbC5zZWxlY3QgPSBTRUxFQ1QgY29uZGl0aW9uX3NxbCBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZSBXSEVSRSBzY2hlZHVsZV9pZCA9IFtzY2hlZHVsZUlkXQ0KKw0KK3BlcnNpc3QuY29uZC5zcWwudXBkYXRlID0gdXBkYXRlIGNyX3JlcG9ydF9zY2hlZHVsZSBzZXQgY29uZGl0aW9uX2xhcmdlX3NxbCA9ICcnIHdoZXJlICBzY2hlZHVsZV9pZCA9IFtzY2hlZHVsZUlkXQ0KKyNFTVBUWSBDTE9CKCkgY2hhbmdlZCB0byAnJw0KKw0KK3BlcnNpc3QuY29uZC5zcWwubGFyZ2UgPSBTRUxFQ1QgY29uZGl0aW9uX2xhcmdlX3NxbCBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZSBjciBXSEVSRSBzY2hlZHVsZV9pZD0/IEZPUiBVUERBVEUNCisNCitwZXJzaXN0LmNvbmQuc3FsLnNldCA9IHVwZGF0ZSBjcl9yZXBvcnRfc2NoZWR1bGUgc2V0IGNvbmRpdGlvbl9zcWwgPSA/IHdoZXJlIHNjaGVkdWxlX2lkID0gW3NjaGVkdWxlSWRdDQorDQorI0RhdGFDYWNoZS5qYXZhDQorDQorZ2V0LmRhdGEudmlldy5hY3Rpb25zID0gU0VMRUNUIHRzLndlYl92aWV3X2FjdGlvbiBGUk9NIGNyX3RhYmxlX3NvdXJjZSB0cyBXSEVSRSB0cy53ZWJfdmlld19hY3Rpb24gSVMgTk9UIE5VTEwNCisNCitnZXQucHVibGljLnJlcG9ydC5pZC5uYW1lcyA9IFNFTEVDVCByZXBfaWQsIHRpdGxlIEZST00gY3JfcmVwb3J0IFdIRVJFIHB1YmxpY195biA9ICdZJyBPUkRFUiBCWSB0aXRsZQ0KKw0KK2dldC5wcml2YXRlLmFjY2Vzc2libGUubmFtZXMuYSA9IFNFTEVDVCBjci5yZXBfaWQsIGNyLnRpdGxlIEZST00gY3JfcmVwb3J0IGNyIFdIRVJFIGNyLnJlcF9pZCBub3QgaW4gKHNlbGVjdCByZXBfaWQgZnJvbSBjcl9yZXBvcnRfYWNjZXNzIGNyYSB3aGVyZSB1c2VyX2lkID0gICdbdXNlcl9pZF0nIA0KKw0KK2dldC5wcml2YXRlLmFjY2Vzc2libGUubmFtZXMuaWYgPSAgT1Igcm9sZV9pZCBpbiAoDQorDQorZ2V0LnByaXZhdGUuYWNjZXNzaWJsZS5uYW1lcy5iID0gICkgQU5EIHB1YmxpY195biA9ICdOJyBhbmQgY3Iub3duZXJfaWQgPSAnW3VzZXJfaWRdJyBvcmRlciBieSAyIA0KKw0KK2dldC5ncm91cC5hY2Nlc3NpYmxlLm5hbWVzLmEgPSBTRUxFQ1QgY3IucmVwX2lkLCBjci50aXRsZSBGUk9NIGNyX3JlcG9ydCBjciAgV0hFUkUgY3IucmVwX2lkICBpbiAoc2VsZWN0IHJlcF9pZCBmcm9tIGNyX3JlcG9ydF9hY2Nlc3MgY3JhIHdoZXJlIHVzZXJfaWQgPSAgJ1t1c2VyX2lkXScNCisNCitnZXQuZ3JvdXAuYWNjZXNzaWJsZS5uYW1lcy5iID0gICkgIEFORCBwdWJsaWNfeW4gPSAnTicgb3JkZXIgYnkgMiANCisNCitnZXQucmVwb3J0LnRhYmxlLnNvdXJjZXMuYSA9IFNFTEVDVCB0YWJsZV9uYW1lLCBkaXNwbGF5X25hbWUsIHBrX2ZpZWxkcywgd2ViX3ZpZXdfYWN0aW9uLCBsYXJnZV9kYXRhX3NvdXJjZV95biwgZmlsdGVyX3NxbCBGUk9NIGNyX3RhYmxlX3NvdXJjZSANCisNCitnZXQucmVwb3J0LnRhYmxlLnNvdXJjZXMud2hlcmUgPSAgd2hlcmUgU09VUkNFX0RCPSAnW2RCSW5mb10nDQorDQorZ2V0LnJlcG9ydC50YWJsZS5zb3VyY2VzLmlmID0gIHdoZXJlIFNPVVJDRV9EQiBpcyBudWxsIG9yIFNPVVJDRV9EQiA9ICdbQXBwQ29uc3RhbnRzLkRCX0xPQ0FMXScNCisNCitnZXQucmVwb3J0LnRhYmxlLnNvdXJjZXMuZWxzZSA9ICBPUkRFUiBCWSB0YWJsZV9uYW1lDQorDQorZ3JhYi5yZXBvcnQudGFibGUuYSA9IFNFTEVDVCB0cy50YWJsZV9uYW1lLCB0cy5kaXNwbGF5X25hbWUsIHRzLnBrX2ZpZWxkcywgdHMud2ViX3ZpZXdfYWN0aW9uLCB0cy5sYXJnZV9kYXRhX3NvdXJjZV95biwgdHMuZmlsdGVyX3NxbCBGUk9NIGNyX3RhYmxlX3NvdXJjZSB0cyAgV0hFUkUgDQorDQorZ3JhYi5yZXBvcnQudGFibGUuaWYgPSB0cy5TT1VSQ0VfREI9ICdbZEJJbmZvXScNCisNCitncmFiLnJlcG9ydC50YWJsZS5lbHNlID0gKHRzLlNPVVJDRV9EQiBpcyBudWxsIG9yIHRzLlNPVVJDRV9EQiA9ICdbQXBwQ29uc3RhbnRzLkRCX0xPQ0FMXScpDQorDQorZ3JhYi5yZXBvcnQudGFibGUuYiA9ICBleGNlcHQgU0VMRUNUIHRzLnRhYmxlX25hbWUsIHRzLmRpc3BsYXlfbmFtZSwgdHMucGtfZmllbGRzLCAgdHMud2ViX3ZpZXdfYWN0aW9uLCAgdHMubGFyZ2VfZGF0YV9zb3VyY2VfeW4sIHRzLmZpbHRlcl9zcWwgZnJvbSBjcl90YWJsZV9zb3VyY2UgdHMgd2hlcmUgdGFibGVfbmFtZSBpbiAoc2VsZWN0IHRhYmxlX25hbWUgZnJvbSAgY3JfdGFibGVfcm9sZSB3aGVyZSByb2xlX2lkIG5vdCBJTiBbc2IudG9TdHJpbmcoKV0pIGFuZCANCisNCitncmFiLnJlcG9ydC50YWJsZS5jID0gIE9SREVSIEJZIDEgDQorDQorZ2V0LnJlcG9ydC50YWJsZS5jcmpvaW4gPSBTRUxFQ1Qgc3JjX3RhYmxlX25hbWUsIGRlc3RfdGFibGVfbmFtZSwgam9pbl9leHByIEZST00gY3JfdGFibGVfam9pbg0KKw0KK2dldC5yZXBvcnQudGFibGUuam9pbnMgPSBTRUxFQ1QgdGouc3JjX3RhYmxlX25hbWUsIHRqLmRlc3RfdGFibGVfbmFtZSwgdGouam9pbl9leHByIEZST00gY3JfdGFibGVfam9pbiB0aiBXSEVSRSAoKEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBjcl90YWJsZV9yb2xlIHRycyBXSEVSRSB0cnMudGFibGVfbmFtZT10ai5zcmNfdGFibGVfbmFtZSBBTkQgdHJzLnJvbGVfaWQgSU4gW3NiLnRvU3RyaW5nKCldKSkgT1IgKE5PVCBFWElTVFMgKFNFTEVDVCAxIEZST00gY3JfdGFibGVfcm9sZSB0cnMgV0hFUkUgdHJzLnRhYmxlX25hbWU9dGouc3JjX3RhYmxlX25hbWUpKSkgQU5EICgoRVhJU1RTIChTRUxFQ1QgMSBGUk9NIGNyX3RhYmxlX3JvbGUgdHJkIFdIRVJFIHRyZC50YWJsZV9uYW1lPXRqLmRlc3RfdGFibGVfbmFtZSBBTkQgdHJkLnJvbGVfaWQgSU4gW3NiLnRvU3RyaW5nKCldKSkgT1IgKE5PVCBFWElTVFMgKFNFTEVDVCAxIEZST00gY3JfdGFibGVfcm9sZSB0cmQgV0hFUkUgdHJkLnRhYmxlX25hbWU9dGouZGVzdF90YWJsZV9uYW1lKSkpDQorDQorZ2VuZXJhdGUucmVwb3J0LnRhYmxlLmNvbCA9IFNFTEVDVCBhLnRhYmxlX25hbWUsIGEuY29sdW1uX25hbWUsIGEuZGF0YV90eXBlLCBhLmxhYmVsIEZST00gdXNlcl9jb2x1bW5fZGVmIGEgV0hFUkUgYS50YWJsZV9uYW1lID0gJ1t0YWJsZU5hbWUudG9VcHBlckNhc2UoKV0nIE9SREVSIEJZIGEuY29sdW1uX2lkDQorDQorZ2VuZXJhdGUuZGIudXNlci5zcWwuYSA9IFNFTEVDVCB1dGMudGFibGVfbmFtZSwgdXRjLmNvbHVtbl9uYW1lLCB1dGMuZGF0YV90eXBlLCANCisNCitnZW5lcmF0ZS5kYi51c2VyLnNxbC5pZiA9IHV0Yy5jb2x1bW5fbmFtZSBGUk9NIHVzZXJfdGFiX2NvbHVtbnMgdXRjIA0KKw0KK2dlbmVyYXRlLmRiLnVzZXIuc3FsLmVsc2UgPSBjb2FsZXNjZSh4LmxhYmVsLCB1dGMuY29sdW1uX25hbWUpIEZST00gdXNlcl90YWJfY29sdW1ucyB1dGMgDQorDQorZ2VuZXJhdGUuZGIudXNlci5zcWwuYiA9IFdIRVJFIHV0Yy50YWJsZV9uYW1lID0gJ1t0YWJsZU5hbWUudG9VcHBlckNhc2UoKV0nIA0KKw0KK2dlbmVyYXRlLmRiLnVzZXIuc3FsLmMgPSBBTkQgdXRjLnRhYmxlX25hbWUgPSB4LnRhYmxlX25hbWUgQU5EIHV0Yy5jb2x1bW5fbmFtZSA9IHguY29sdW1uX25hbWUgDQorDQorZ2VuZXJhdGUuZGIudXNlci5zcWwuZCA9IE9SREVSIEJZIHV0Yy5jb2x1bW5faWQgDQorDQorI1NlYXJjaEhhbmRsZXIuamF2YQ0KKw0KK2xvYWQucmVwb3J0LnNlYXJjaC5yZXN1bHQgPSBTRUxFQ1QgY3IucmVwX2lkLCBjci5yZXBfaWQgcmVwb3J0X2lkLCBbcmVwX3RpdGxlX3NxbF0gdGl0bGUsIGNyLmRlc2NyLCBjb25jYXQoYXUuZmlyc3RfbmFtZSwnICcsYXUubGFzdF9uYW1lKSBvd25lcl9uYW1lLCBEQVRFX0ZPUk1BVChjci5jcmVhdGVfZGF0ZSwgJyVtLyVkLyVZJykgY3JlYXRlX2RhdGUsIENBU0UgV0hFTiBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdIFRIRU4gJ04nIEVMU0UgY29hbGVzY2UocmEucmVhZF9vbmx5X3luLCAnWScpIEVORCByZWFkX29ubHlfeW4sIENBU0UgV0hFTiBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSA9IFt1c2VySURdIFRIRU4gJ1knIEVMU0UgJ04nIEVORCB1c2VyX2lzX293bmVyX3luLCBjYXNlIHdoZW4gcmVwb3J0X3htbCBsaWtlICclPGFsbG93U2NoZWR1bGU+TjwvYWxsb3dTY2hlZHVsZT4lJyB0aGVuICdOJyB3aGVuIHJlcG9ydF94bWwgbGlrZSAnJTxhbGxvd1NjaGVkdWxlPlk8L2FsbG93U2NoZWR1bGU+JScgb3IgMSA9IChzZWxlY3QgZGlzdGluY3QgMSBmcm9tIGNyX3JlcG9ydF9zY2hlZHVsZSB3aGVyZSByZXBfaWQgPSBjci5yZXBfaWQpIHRoZW4gJ1knIGVsc2UgJ04nIGVuZCBGUk9NIGNyX3JlcG9ydCBjciBKT0lOIGZuX3VzZXIgYXUgT04gY29hbGVzY2UgKGNyLm93bmVyX2lkLCBjci5jcmVhdGVfaWQpID0gYXUudXNlcl9pZCBbZlJlcG9ydElEXSBbZlJlcG9ydE5hbWVdIExFRlQgSk9JTihTRUxFQ1QgcmVwX2lkLCBNSU4ocmVhZF9vbmx5X3luKSByZWFkX29ubHlfeW4gRlJPTSAoKFNFTEVDVCB1YS5yZXBfaWQsIHVhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgdWEgV0hFUkUgdWEudXNlcl9pZCA9IFt1c2VySURdKSBVTklPTiBBTEwgKFNFTEVDVCByYS5yZXBfaWQsIHJhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgcmEgV0hFUkUgcmEucm9sZV9pZCBJTiAoW3JvbGVMaXN0LnRvU3RyaW5nKCldKSkpIHJlcG9ydF9hY2Nlc3MgR1JPVVAgQlkgcmVwX2lkKSByYSBPTiByYS5yZXBfaWQgPSBjci5yZXBfaWQNCisNCitsb2FkLnJlcG9ydC5zZWFyY2guaW5zdHIgPSBXSEVSRSBjci5tZW51X2lkIExJS0UgJyVbbWVudUlkXSUnDQorDQorbG9hZC5yZXBvcnQuc2VhcmNoLnJlc3VsdC51c2VyID0gV0hFUkUgY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgPSBbdXNlcklEXQ0KKw0KK2xvYWQucmVwb3J0LnNlYXJjaC5yZXN1bHQucHVibGljID0gV0hFUkUgKGNvYWxlc2NlKGNyLm93bmVyX2lkLCBjci5jcmVhdGVfaWQpID0gW3VzZXJJRF0gT1IgY3IucHVibGljX3luID0gJ1knIE9SIHJhLnJlYWRfb25seV95biBJUyBOT1QgTlVMTCkNCisNCitsb2FkLnJlcG9ydC5zZWFyY2gucmVzdWx0LmZhdiA9ICBXSEVSRSBjci5yZXBfaWQgaW4gKHNlbGVjdCByZXBfaWQgZnJvbSBjcl9mYXZvcml0ZV9yZXBvcnRzIHdoZXJlIHVzZXJfaWQgPSBbdXNlcklEXQ0KKw0KK2xvYWQucmVwb3J0LnNlYXJjaC5yZXN1bHQuc29ydCA9IE9SREVSIEJZIENBU0UgY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgV0hFTiBbdXNlcklEXSBUSEVOICcgJyBXSEVOICd1cHBlcihjb25jYXQoYXUuZmlyc3RfbmFtZSwnICcsYXUubGFzdF9uYW1lKSknIEVMU0UgJ3VwcGVyKGNyLnRpdGxlKScgRU5EDQorDQorbG9hZC5mb2xkZXIucmVwb3J0LnJlc3VsdCA9IFNFTEVDVCBjci5yZXBfaWQsIGNyLnJlcF9pZCByZXBvcnRfaWQsIGNvbmNhdChbcmVwX3RpdGxlX3NxbF0gLCAoQ0FTRSBXSEVOIGNyLnB1YmxpY195biA9ICdZJyBUSEVOICcnIEVMU0UgJ1tQUklWQVRFX0lDT05dJyBFTkQpLGNyLnRpdGxlLCc8L2E+JykgdGl0bGUsIGNyLmRlc2NyLCBjb25jYXQoYXUuZmlyc3RfbmFtZSwnICcsYXUubGFzdF9uYW1lKSBvd25lcl9uYW1lLCBUT19DSEFSKGNyLmNyZWF0ZV9kYXRlLCAnTU0vREQvWVlZWScpIGNyZWF0ZV9kYXRlLCBDQVNFIFdIRU4gY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgPSBbdXNlcklEXSBUSEVOICdOJyBFTFNFIGNvYWxlc2NlKHJhLnJlYWRfb25seV95biwgJ1knKSBFTkQgcmVhZF9vbmx5X3luLCBDQVNFIFdIRU4gY29hbGVzY2UoY3Iub3duZXJfaWQsIGNyLmNyZWF0ZV9pZCkgPSBbdXNlcklEXSBUSEVOICdZJyBFTFNFICdOJyBFTkQgdXNlcl9pc19vd25lcl95biBGUk9NIGNyX3JlcG9ydCBjciBKT0lOIGZuX3VzZXIgYXUgT04gY29hbGVzY2UgKGNyLm93bmVyX2lkLCBjci5jcmVhdGVfaWQpID0gYXUudXNlcl9pZCBBTkQgVE9fQ0hBUihjci5yZXBfaWQsICdGTTk5OTk5OTk5JykgbGlrZSBjb2FsZXNjZSgnJVtmUmVwb3J0SURdJScsIFRPX0NIQVIoY3IucmVwX2lkLCAnRk05OTk5OTk5OScpKSBBTkQgVVBQRVIoY3IudGl0bGUpIExJS0UgVVBQRVIoJyVbZlJlcG9ydE5hbWVdJScpIExFRlQgSk9JTihTRUxFQ1QgcmVwX2lkLCBNSU4ocmVhZF9vbmx5X3luKSByZWFkX29ubHlfeW4gRlJPTSAoKFNFTEVDVCB1YS5yZXBfaWQsIHVhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgdWEgV0hFUkUgdWEudXNlcl9pZCA9IFt1c2VySURdKSBVTklPTiBBTEwgKFNFTEVDVCByYS5yZXBfaWQsIHJhLnJlYWRfb25seV95biBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgcmEgV0hFUkUgcmEucm9sZV9pZCBJTiAoW3JvbGVMaXN0LnRvU3RyaW5nKCldKSkpIHJlcG9ydF9hY2Nlc3MgR1JPVVAgQlkgcmVwX2lkKSByYSBPTiByYS5yZXBfaWQgPSBjci5yZXBfaWQNCisNCitsb2FkLmZvbGRlci5yZXBvcnQucmVzdWx0LnNvcnQgPSAgT1JERVIgQlkgQ0FTRSBjb2FsZXNjZShjci5vd25lcl9pZCwgY3IuY3JlYXRlX2lkKSBXSEVOIFt1c2VySURdIFRIRU4gJyAnIFdIRU4gJyhjb25jYXQoYXUuZmlyc3RfbmFtZSwnICcsYXUubGFzdF9uYW1lKSknIEVMU0UgJ2NyLnRpdGxlJyBFTkQNCisNCisjV2l6YXJkUHJvY2Vzc29yLmphdmENCisNCitwcm9jZXNzLmZpbHRlci5hZGQuZWRpdCA9ICdbYXJnVmFsdWVdJw0KKw0KKyNSZXBvcnREZWZpbml0aW9uLmphdmENCisNCitwZXJzaXN0LnJlcG9ydC5hZGhvYyA9IFNFTEVDVCBuZXh0dmFsKCdbR2xvYmFscy5nZXRBZGhvY1JlcG9ydFNlcXVlbmNlKCldJykgQVMgc2VxdWVuY2UNCisNCisjR2xvYmFscy5qYXZhDQorDQoraW5pdGlhbGl6ZS5yb2xlcyA9IFNFTEVDVCAxIFdIRVJFIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBjcl90YWJsZV9yb2xlKQ0KKw0KK2luaXRpYWxpemUudmVyc2lvbiA9IFNFTEVDVCBjcl9yYXB0b3IuZ2V0X3ZlcnNpb24NCisNCisjIHNjaGVkdWxlcg0KKw0KKw0KK3NjaGVkdWxlci5hdmFpbGFibGUuc2NoZWR1bGVzID0gU0VMRUNUIHgucmVwX2lkLCB4LnNjaGVkdWxlX2lkLCB4LmNvbmRpdGlvbmFsX3luLCB4LmNvbmRpdGlvbl9sYXJnZV9zcWwsIHgubm90aWZ5X3R5cGUsIHgubWF4X3JvdywgeC5pbml0aWFsX2Zvcm1maWVsZHMsIHgucHJvY2Vzc2VkX2Zvcm1maWVsZHMsIHIudGl0bGUsIHgudXNlcl9pZCBGUk9NICggU0VMRUNUIHJzLnJlcF9pZCwgcnMuc2NoZWR1bGVfaWQsIHJzLnNjaGVkX3VzZXJfaWQgdXNlcl9pZCwgcnMuY29uZGl0aW9uYWxfeW4sIHJzLmNvbmRpdGlvbl9sYXJnZV9zcWwsIHJzLm5vdGlmeV90eXBlLCBycy5tYXhfcm93LCBycy5pbml0aWFsX2Zvcm1maWVsZHMsIHJzLnByb2Nlc3NlZF9mb3JtZmllbGRzICBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZSBycyAgV0hFUkUgcnMuZW5hYmxlZF95bj0nWScgIEFORCBycy5zdGFydF9kYXRlIDw9IFtjdXJyZW50RGF0ZV0gIEFORCAgKHJzLmVuZF9kYXRlID49IFtjdXJyZW50RGF0ZV0gb3IgcnMuZW5kX2RhdGUgaXMgbnVsbCApICBBTkQgcnMucnVuX2RhdGUgSVMgTk9UIE5VTEwgICkgeCwgY3JfcmVwb3J0IHIgIFdIRVJFIHgucmVwX2lkID0gci5yZXBfaWQNCisNCityYW5kb20uc3RyaW5nID0gc2VsZWN0ICggY29uY2F0KCdaJyAsIHJvdW5kKHJhbmRvbSgpICogMTAwMDAwMDAwMDAwMCkgKSApDQorDQorDQorc2NoZWR1bGVyLnVzZXIuZW1haWxzID0gU0VMRUNUIGF1LnVzZXJfaWQgRlJPTSAoU0VMRUNUIHJzLnNjaGVkdWxlX2lkLCBycy5yZXBfaWQgRlJPTSBjcl9yZXBvcnRfc2NoZWR1bGUgcnMgV0hFUkUgcnMuZW5hYmxlZF95bj0nWScgQU5EIHJzLnN0YXJ0X2RhdGUgPD0gbm93KCkgQU5EIHJzLmVuZF9kYXRlICA+PSBub3coKSBBTkQgcnMucnVuX2RhdGUgSVMgTk9UIE5VTEwgQU5EIHJzLnNjaGVkdWxlX2lkID0gW3Bfc2NoZWR1bGVfaWRdICkgeCwgY3JfcmVwb3J0IHIsIGZuX3VzZXIgYXUgV0hFUkUgeC5yZXBfaWQgPSByLnJlcF9pZCBBTkQgYXUudXNlcl9pZCBJTiAoU0VMRUNUIHJzdS51c2VyX2lkIEZST00gY3JfcmVwb3J0X3NjaGVkdWxlX3VzZXJzIHJzdSBXSEVSRSByc3Uuc2NoZWR1bGVfaWQgPSB4LnNjaGVkdWxlX2lkIGFuZCByc3Uuc2NoZWR1bGVfaWQgPSBbcF9zY2hlZHVsZV9pZF0gVU5JT04gU0VMRUNUIHVyLnVzZXJfaWQgRlJPTSBmbl91c2VyX3JvbGUgdXIgV0hFUkUgdXIucm9sZV9pZCBJTiAoU0VMRUNUIHJzdTIucm9sZV9pZCBGUk9NIGNyX3JlcG9ydF9zY2hlZHVsZV91c2VycyByc3UyIFdIRVJFIHJzdTIuc2NoZWR1bGVfaWQgPSB4LnNjaGVkdWxlX2lkIGFuZCByc3UyLnNjaGVkdWxlX2lkID0gW3Bfc2NoZWR1bGVfaWRdKSkgIA0KKw0KKw0KKyMgbXkgbG9naW5zDQorDQorYXBwLnF1ZXJ5ID0gU0VMRUNUIEFQUF9JRCwgTUxfQVBQX05BTUUsIE1PVFNfSUQgZnJvbSBmbl9hcHANCisNCit1c2VyLmxvZy5xdWVyeSA9IFNFTEVDVCBESVNUSU5DVCAgSUZOVUxMKFNCQ0lELCAnJykgQ1VJRCwgJycgQVdJRCwgQ09OQ0FUKCciJyxJRk5VTEwoU0JDSUQsICcnKSwnIicpIEFQUExJQ0FUSU9OVVNFUklELCAgQ09OQ0FUKCciJyxJRk5VTEwoRklSU1RfTkFNRSwgJycpLCciJykgRklSU1RfTkFNRSwgQ09OQ0FUKCciJyxzdWJzdHIoSUZOVUxMKE1JRERMRV9OQU1FLCAnJyksIDAsIDEpLCciJykgTUlERExFX0lOSVRJQUwsIENPTkNBVCgnIicsSUZOVUxMKExBU1RfTkFNRSwgJycpLCciJykgTEFTVF9OQU1FLCBJRk5VTEwoREFURV9GT1JNQVQoTEFTVF9MT0dJTl9EQVRFLCAnJVkvJW0vJWQnKSwgJycpIExBU1RfTE9HT05fREFURSwgREFURV9GT1JNQVQoQ1JFQVRFRF9EQVRFLCAnJVkvJW0vJWQnKSBBQ0NPVU5UX0FDVElWQVRJT05fREFURSwgSUZOVUxMKERBVEVfRk9STUFUKE1PRElGSUVEX0RBVEUsICclWS8lbS8lZCcpLCAnJykgTEFTVF9EQVRFX0FDQ09VTlRfTU9ESUZJRUQsICAnJyBMQVNUX1BBU1NXT1JEX0NIQU5HRV9EQVRFLCBDT05DQVQoJyInLElGTlVMTChGSVJTVF9OQU1FLCAnJyksJyAnLElGTlVMTChNSURETEVfTkFNRSwgJycpLCcgJyxJRk5VTEwoTEFTVF9OQU1FLCAnJyksJyInKSAgRlVMTF9VU0VSX05BTUUsICcnIE5UX0lELCBJRk5VTEwoRU1BSUwsICcnKSBFTUFJTCAgIEZST00gRk5fVVNFUiBGVSwgRk5fVVNFUl9ST0xFIEZVUiBXSEVSRSBGVS5VU0VSX0lEIFw9IEZVUi5VU0VSX0lEIGFuZCBGVVIuYXBwX2lkIFw9ID8gYW5kIEFDVElWRV9ZTiBcPSAnWScgYW5kIHNiY2lkIGlzIG5vdCBudWxsIG9yZGVyIGJ5IDENCisNCitwcm9maWxlLmxvZy5xdWVyeSA9IFNFTEVDVCBESVNUSU5DVCBDT05DQVQoJyInICwgUk9MRV9OQU1FICwgJyInKSBQUk9GSUxFX05BTUUsICciIicgU0VDVVJJVFlfU0VUVElOR1MgRlJPTSBGTl9ST0xFIEZSLCBGTl9VU0VSX1JPTEUgRlVSIFdIRVJFIEZVUi5ST0xFX0lEIFw9IEZSLlJPTEVfSUQgYW5kIEZSLkFDVElWRV9ZTiBcPSAnWScgYW5kICgoRlVSLkFQUF9JRCBcPSAxIGFuZCBGUi5ST0xFX05BTUUgPD4gJ1N0YW5kYXJkIFVzZXInKSBvciAoRlVSLkFQUF9JRCBcPSA/IGFuZCBGVVIuQVBQX0lEIDw+IDEpKSAgT1JERVIgQlkgMQ0KKw0KK3VzZXIucHJvZmlsZS5sb2cucXVlcnkgPSBTRUxFQ1QgRElTVElOQ1QgSUZOVUxMKFNCQ0lELCAnJykgQ1VJRCwgJycgQVdJRCwgQ09OQ0FUKCciJyAsIElGTlVMTChTQkNJRCwgJycpICwgJyInKSBBUFBMSUNBVElPTlVTRVJJRCAsIENPTkNBVCgnIicgLCBST0xFX05BTUUgLCAnIicpICBQUk9GSUxFX05BTUUgIEZST00gRk5fVVNFUiBBLCBGTl9VU0VSX1JPTEUgQiwgRk5fUk9MRSBDIFdIRVJFIEEuVVNFUl9JRCBcPSBCLlVTRVJfSUQgQU5EIEIuUk9MRV9JRCBcPSBDLlJPTEVfSUQgQU5EIEEuQUNUSVZFX1lOIFw9ICdZJyBBTkQgQy5BQ1RJVkVfWU4gXD0gJ1knIEFORCBhLnNiY2lkIGlzIG5vdCBudWxsICBBTkQgKChCLkFQUF9JRCBcPSAxIGFuZCBDLlJPTEVfTkFNRSA8PiAnU3RhbmRhcmQgVXNlcicpIG9yIChCLkFQUF9JRCBcPSA/IGFuZCBCLkFQUF9JRCA8PiAxKSkgT1JERVIgQlkgMQ0KKw0KK2FsbC5hY2NvdW50cy5sb2cucXVlcnkgPSBTRUxFQ1QgRElTVElOQ1QgSUZOVUxMKFNCQ0lELCAnJykgQ1VJRCwgKGNhc2Ugd2hlbiBBLkFDVElWRV9ZTlw9J1knIHRoZW4gJ0FDVElWRScgZWxzZSAnSU5BQ1RJVkUnIGVuZCkgQUNUSVZFX1lOLCBDT05DQVQoJyInICwgSUZOVUxMKFNCQ0lELCAnJykgLCAnIicpIEFQUExJQ0FUSU9OVVNFUklEICwgSUZOVUxMKERBVEVfRk9STUFUKExBU1RfTE9HSU5fREFURSwgJyVZLyVtLyVkJyksICcnKSBMQVNUX0xPR09OX0RBVEUsICcnIExBU1RfUEFTU1dPUkRfQ0hBTkdFX0RBVEUsIENPTkNBVCgnIicgLCBST0xFX05BTUUgLCAnIicpICBQUk9GSUxFX05BTUUgIEZST00gRk5fVVNFUiBBLCBGTl9VU0VSX1JPTEUgQiwgRk5fUk9MRSBDIFdIRVJFIEEuVVNFUl9JRCBcPSBCLlVTRVJfSUQgQU5EIEIuUk9MRV9JRCBcPSBDLlJPTEVfSUQgQU5EIGEuc2JjaWQgaXMgbm90IG51bGwgIEFORCAoKEIuQVBQX0lEIFw9IDEgYW5kIEMuUk9MRV9OQU1FIDw+ICdTdGFuZGFyZCBVc2VyJykgb3IgKEIuQVBQX0lEIFw9ID8gYW5kIEIuQVBQX0lEIDw+IDEpKSBPUkRFUiBCWSAxDQorDQorIyBiYXNpYyBzcWwNCisNCitzZXEubmV4dC52YWwgPSBTRUxFQ1QgbmV4dHZhbCgnW3NlcXVlbmNlTmFtZV0nKSBBUyBpZA0KKw0KK2N1cnJlbnQuZGF0ZSA9IG5vdygpDQorDQorbnZsID0gSUZOVUxMDQorDQorIyByZXBvcnQgc2VjdXJpdHkNCityZXBvcnQudXNlci5hY2Nlc3MgPSBTRUxFQ1QgcmEucm9sZV9pZCwgcmEudXNlcl9pZCwgcmEucmVhZF9vbmx5X3luIEZST00gY3JfcmVwb3J0X2FjY2VzcyByYSBXSEVSRSByYS5yZXBfaWQgPSBbcmVwb3J0SURdDQorYWRkLnVzZXIuYWNjZXNzID0gSU5TRVJUIElOVE8gY3JfcmVwb3J0X2FjY2VzcyAocmVwX2lkLCBvcmRlcl9ubywgcm9sZV9pZCwgdXNlcl9pZCwgcmVhZF9vbmx5X3luKSBWQUxVRVMoW3JlcG9ydElEXSwgSUZOVUxMKChzZWxlY3Qgb3JkZXJfbm8gZnJvbSAoU0VMRUNUIE1BWChvcmRlcl9ubykgQVMgb3JkZXJfbm8gRlJPTSBjcl9yZXBvcnRfYWNjZXNzIFdIRVJFIHJlcF9pZD1bcmVwb3J0SURdKSBBUyB0ZW1wKSwgMCkrMSwgTlVMTCwgW3VzZXJJRF0sICdbcmVhZE9ubHlBY2Nlc3NdJykNCit1cGRhdGUudXNlci5hY2Nlc3MgPSBVUERBVEUgY3JfcmVwb3J0X2FjY2VzcyBTRVQgcmVhZF9vbmx5X3luPSdbcmVhZE9ubHlBY2Nlc3NdJyBXSEVSRSByZXBfaWQ9W3JlcG9ydElEXSBBTkQgdXNlcl9pZD1bdXNlcklEXQ0KK3JlbW92ZS51c2VyLmFjY2VzcyA9IERFTEVURSBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgV0hFUkUgcmVwX2lkPVtyZXBvcnRJRF0gQU5EIHVzZXJfaWQ9W3VzZXJJRF0NCithZGQucm9sZS5hY2Nlc3MgPSBJTlNFUlQgSU5UTyBjcl9yZXBvcnRfYWNjZXNzIChyZXBfaWQsIG9yZGVyX25vLCByb2xlX2lkLCB1c2VyX2lkLCByZWFkX29ubHlfeW4pIFZBTFVFUyhbcmVwb3J0SURdLCBJRk5VTEwoKHNlbGVjdCBvcmRlcl9ubyBmcm9tIChTRUxFQ1QgTUFYKG9yZGVyX25vKSBBUyBvcmRlcl9ubyBGUk9NIGNyX3JlcG9ydF9hY2Nlc3MgV0hFUkUgcmVwX2lkPVtyZXBvcnRJRF0pIEFTIHRlbXApLCAwKSsxLCBbcm9sZUlEXSwgTlVMTCwgJ1tyZWFkT25seUFjY2Vzc10nKQ0KK3VwZGF0ZS5yb2xlLmFjY2VzcyA9IFVQREFURSBjcl9yZXBvcnRfYWNjZXNzIFNFVCByZWFkX29ubHlfeW49J1tyZWFkT25seUFjY2Vzc10nIFdIRVJFIHJlcF9pZD1bcmVwb3J0SURdIEFORCByb2xlX2lkPVtyb2xlSURdDQorcmVtb3ZlLnJvbGUuYWNjZXNzID0gREVMRVRFIEZST00gY3JfcmVwb3J0X2FjY2VzcyBXSEVSRSByZXBfaWQ9W3JlcG9ydElEXSBBTkQgcm9sZV9pZD1bcm9sZUlEXQ0KKw0KZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3N5c3RlbS5wcm9wZXJ0aWVzIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2NvbmYvc3lzdGVtLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMwM2ZmYQotLS0gL2Rldi9udWxsCisrKyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3N5c3RlbS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMjEwIEBACisjIyMNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIyBlQ09NUCBQb3J0YWwgU0RLDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5DQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisjIA0KKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisjIA0KKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMjIw0KKyMgUHJvcGVydGllcyByZWFkIGJ5IEVDT01QIENvcmUgbGlicmFyeSwgZWNvbXBTREstY29yZS5qYXINCisjIHRlc3RpbmcgLSBwcm9wcyAxLjANCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHNob3VsZCBOT1QgYmUgY2hhbmdlZCBieSBwYXJ0bmVyIGFwcGxpY2F0aW9ucy4NCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK2FwcGxpY2F0aW9uX3VzZXJfaWQgICAgICAgICAgID0gMzAwMDANCitwb3N0X2RlZmF1bHRfcm9sZV9pZCAgICAgICAgICA9IDE2DQorY2x1c3RlcmVkICAgICAgICAgICAgICAgICAgICAgPSB0cnVlDQorDQorI0VuYWJsZSBGdXNpb24gTW9iaWxlIGNhcGFiaWxpdGllcyBmb3IgdGhlIGFwcGxpY2F0aW9uDQorbW9iaWxlX2VuYWJsZQkJCSAgCSAgPSBmYWxzZQ0KKw0KKyMgQ2FjaGUgY29uZmlnIGZpbGUgaXMgbmVlZGVkIG9uIHRoZSBjbGFzc3BhdGgNCitjYWNoZV9jb25maWdfZmlsZV9wYXRoICAgICAgICA9IC9XRUItSU5GL2NsYXNzZXMvY2FjaGUuY2NmDQorY2FjaGVfc3dpdGNoICAgICAgICAgICAgICAgICAgPSAxOTkNCitjYWNoZV9sb2FkX29uX3N0YXJ0dXAgICAgICAgICA9IGZhbHNlDQorDQordXNlcl9uYW1lCQkJCQkgID0gZnVsbE5hbWUNCitkZWNyeXB0aW9uX2tleQkJCQkgID0gQUdMRGRHNEQwNEJLbTJJeElXRXI4bz09DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBNQVkgcmVxdWlyZSBjaGFuZ2VzIGJ5IHBhcnRuZXIgYXBwbGljYXRpb25zLg0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorI09yYWNsZQ0KKyNkYi51c2VyTmFtZT1xdWFudHVtYmQNCisjZGIucGFzc3dvcmQ9YzFzeW4yeWhtcg0KKyNkYi5jb25uZWN0aW9uVVJMPWpkYmM6b3JhY2xlOnRoaW46dG9kby5saW5rDQorI2RiLmhpYi5kaWFsZWN0PW9yZy5oaWJlcm5hdGUuZGlhbGVjdC5PcmFjbGUxMGdEaWFsZWN0DQorI2RiLmRyaXZlcj1vcmFjbGUuamRiYy5kcml2ZXIuT3JhY2xlRHJpdmVyDQorI0hpYmVybmF0ZSANCisjaGIuZGlhbGVjdD1vcmcuaGliZXJuYXRlLmRpYWxlY3QuT3JhY2xlMTBnRGlhbGVjdA0KKyNoYi5zaG93X3NxbD10cnVlDQorDQorI1Bvc3RncmUNCisjZGIudXNlck5hbWU9WFhYWA0KKyNkYi5wYXNzd29yZD1YWFhYDQorI2RiLmNvbm5lY3Rpb25VUkw9amRiYzpwb3N0Z3Jlc3FsOi8vWFhYWC9YWA0KKyNkYi5oaWIuZGlhbGVjdD1vcmcuaGliZXJuYXRlLmRpYWxlY3QuUG9zdGdyZVNRTERpYWxlY3QNCisjZGIuZHJpdmVyPW9yZy5wb3N0Z3Jlc3FsLkRyaXZlcg0KKyNoYi5kaWFsZWN0PW9yZy5oaWJlcm5hdGUuZGlhbGVjdC5Qb3N0Z3JlU1FMRGlhbGVjdA0KKyNoYi5zaG93X3NxbD10cnVlDQorDQorY29va2llX2RvbWFpbiA9IG9uYXAub3JnDQorI015c3FsDQorZGIuZHJpdmVyID0gb3JnLm1hcmlhZGIuamRiYy5Ecml2ZXINCitkYi5jb25uZWN0aW9uVVJMID0gamRiYzptYXJpYWRiOi8vbG9jYWxob3N0OjMzMDYvb3NhbV9jb3JlDQorZGIudXNlck5hbWUgPSBldXNlcg0KK2RiLnBhc3N3b3JkID0gZXVzZXINCisjZGIuaGliLmRpYWxlY3QgPSBvcmcuaGliZXJuYXRlLmRpYWxlY3QuTXlTUUxEaWFsZWN0DQorZGIubWluX3Bvb2xfc2l6ZSA9IDUNCitkYi5tYXhfcG9vbF9zaXplID0gMTANCitoYi5kaWFsZWN0ID0gb3JnLmhpYmVybmF0ZS5kaWFsZWN0Lk15U1FMRGlhbGVjdA0KK2hiLnNob3dfc3FsID0gdHJ1ZQ0KK2hiLmlkbGVfY29ubmVjdGlvbl90ZXN0X3BlcmlvZCA9IDM2MDANCithcHBfZGlzcGxheV9uYW1lCQkJCQkgID0gVklEDQorZmlsZXNfcGF0aCA9IC90bXANCisNCisjIG1lbnUgc2V0dGluZ3MNCisjbWVudV9xdWVyeV9uYW1lICAgICAgICAgICAgICAgICAgICAgID0gbWVudURhdGENCisjbWVudV9wcm9wZXJ0aWVzX2ZpbGVfbG9jYXRpb24gICAgICAgID0gL1dFQi1JTkYvZnVzaW9uL21lbnUvDQorI2FwcGxpY2F0aW9uX21lbnVfc2V0X25hbWUgICAgICAgICAgICA9IEFQUA0KKyNhcHBsaWNhdGlvbl9tZW51X2F0dHJpYnV0ZV9uYW1lICAgICAgPSBhcHBsaWNhdGlvbk1lbnVEYXRhDQorI2FwcGxpY2F0aW9uX21lbnVfcHJvcGVydGllc19uYW1lICAgICA9IG1lbnUucHJvcGVydGllcw0KKyNidXNpbmVzc19kaXJlY3RfbWVudV9zZXRfbmFtZSAgICAgICAgPSBCRA0KKyNidXNpbmVzc19kaXJlY3RfbWVudV9wcm9wZXJ0aWVzX25hbWUgPSBiZC5tZW51LnByb3BlcnRpZXMNCisjYnVzaW5lc3NfZGlyZWN0X21lbnVfYXR0cmlidXRlX25hbWUgID0gYnVzaW5lc3NEaXJlY3RNZW51RGF0YQ0KKw0KK2FwcGxpY2F0aW9uX25hbWUgICAgICAgICAgICAgID0gVmlydHVhbCBJbmZyYXN0cnVjdHVyZSBEZXBsb3ltZW50DQorYXBwbGljYXRpb25fdXNlcl9pZCAgICAgICAgICAgPSAzMDAwMA0KK3Bvc3RfZGVmYXVsdF9yb2xlX2lkICAgICAgICAgID0gMTYNCitjbHVzdGVyZWQgICAgICAgICAgICAgICAgICAgICA9IHRydWUNCisNCisjRW5hYmxlIEZ1c2lvbiBNb2JpbGUgY2FwYWJpbGl0aWVzIGZvciB0aGUgYXBwbGljYXRpb24NCittb2JpbGVfZW5hYmxlCQkJICAJICA9IGZhbHNlDQorDQorIyBDYWNoZSBjb25maWcgZmlsZSBpcyBuZWVkZWQgb24gdGhlIGNsYXNzcGF0aA0KK2NhY2hlX2NvbmZpZ19maWxlX3BhdGggICAgICAgID0gL1dFQi1JTkYvY2xhc3Nlcy9jYWNoZS5jY2YNCitjYWNoZV9zd2l0Y2ggICAgICAgICAgICAgICAgICA9IDE5OQ0KK2NhY2hlX2xvYWRfb25fc3RhcnR1cCAgICAgICAgID0gZmFsc2UNCisNCit1c2VyX25hbWUJCQkJCSAgPSBmdWxsTmFtZQ0KK2RlY3J5cHRpb25fa2V5CQkJCSAgPSBBR0xEZEc0RDA0QkttMkl4SVdFcjhvPT0NCisNCisjZWxlbWVudCBtYXAgZmlsZXMNCitlbGVtZW50X21hcF9maWxlX3BhdGggPSBhcHAvZnVzaW9uYXBwL2ZpbGVzLw0KK2VsZW1lbnRfbWFwX2ljb25fcGF0aCA9IGFwcC9mdXNpb25hcHAvaWNvbnMvDQorDQorI2FhaSByZWxhdGVkIHByb3BlcnRpZXMNCisjYWFpLnNlcnZlci51cmwuYmFzZT1odHRwczovL2FhaS5hcGkub3BlbmVjb21wLm9yZzo4NDQzL2FhaS8NCisjYWFpLnNlcnZlci51cmw9aHR0cHM6Ly9hYWkuYXBpLm9wZW5lY29tcC5vcmc6ODQ0My9hYWkvdjgvDQorI2FhaS5vbGRzZXJ2ZXIudXJsLmJhc2U9aHR0cHM6Ly9hYWkuYXBpLm9wZW5lY29tcC5vcmc6ODQ0My9hYWkvc2VydmVycy8NCisjYWFpLm9sZHNlcnZlci51cmw9aHR0cHM6Ly9hYWkuYXBpLm9wZW5lY29tcC5vcmc6ODQ0My9hYWkvc2VydmVycy92My8NCisjYWFpLnNlcnZlci51cmwuYmFzZT1odHRwczovLzEwNC4yMzkuMjQ5LjE4Mzo4NDQzL2FhaS8NCisjYWFpLnNlcnZlci51cmw9aHR0cHM6Ly8xMDQuMjM5LjI0OS4xODM6ODQ0My9hYWkvdjEzLw0KK2FhaS5zZXJ2ZXIudXJsLmJhc2U9aHR0cDovL2xvY2FsaG9zdDoxMDgwL2FhaS8NCithYWkuc2VydmVyLnVybD1odHRwOi8vbG9jYWxob3N0OjEwODAvYWFpL3YxMi8NCisNCithYWkub2xkc2VydmVyLnVybC5iYXNlPWh0dHBzOi8vMTA0LjIzOS4yNDkuMTgzOjg0NDMvYWFpL3NlcnZlcnMvDQorYWFpLm9sZHNlcnZlci51cmw9aHR0cHM6Ly8xMDQuMjM5LjI0OS4xODM6ODQ0My9hYWkvc2VydmVycy92My8NCithYWkudHJ1c3RzdG9yZS5maWxlbmFtZT10b21jYXRfa2V5c3RvcmUNCithYWkudHJ1c3RzdG9yZS5wYXNzd2QueD1PQkY6MWtzNTFsOGQxbzNpMXBjYzFyMnIxZTIxMXIzOTFrbHMxcHlqMXo3dTFuamYxbHg1MWdvMjFobmoxeTBrMW1saTFzb3AxazhvMWo2NTF2dTkxbXh3MXZ1bjFtemUxdnYxMWo4eDFrNWkxc3AxMW1qYzF5MTYxaGxyMWdtNDFtMTExbmtqMXo3ODFwdzMxa2t1MXI0cDFlMzkxcjU3MXBibTFvNzQxbDR4MWtzcA0KK2FhaS5rZXlzdG9yZS5maWxlbmFtZT10b21jYXRfa2V5c3RvcmUNCithYWkua2V5c3RvcmUucGFzc3dkLng9T0JGOjFrczUxbDhkMW8zaTFwY2MxcjJyMWUyMTFyMzkxa2xzMXB5ajF6N3UxbmpmMWx4NTFnbzIxaG5qMXkwazFtbGkxc29wMWs4bzFqNjUxdnU5MW14dzF2dW4xbXplMXZ2MTFqOHgxazVpMXNwMTFtamMxeTE2MWhscjFnbTQxbTExMW5rajF6NzgxcHczMWtrdTFyNHAxZTM5MXI1NzFwYm0xbzc0MWw0eDFrc3ANCisNCithYWkudmlkLnVzZXJuYW1lPVZJRA0KK2FhaS52aWQucGFzc3dkLng9T0JGOjFqbTkxaTB2MWpsOQ0KKw0KK2FhaS51c2UuY2xpZW50LmNlcnQ9ZmFsc2UNCithYWkudm5mLnByb3ZzdGF0dXM9UFJFUFJPVixOVlRQUk9WLFBST1YsQ0FQUEVEDQorI0Nyb24gU2NoZWR1bGVzDQorbG9nX2Nyb24gICAgICAgICAgICAgICAgICAgICAgPSAwIDAvMSAqICogKiA/Ow0KK215bG9naW5zX2ZlZWRfY3JvbiAgICAgICAgICAgID0gMCAwLzYwICogKiAqID87DQorI3Nlc3Npb250aW1lb3V0X2ZlZWRfY3JvbgkgID0gMCAqICogKiAqID8gKg0KK215X2xvZ2luX2ZlZWRfb3V0cHV0X2RpciAgICAgID0gL3RtcC9NeUxvZ2lucw0KKw0KKyMgRUNPTVAgUG9ydGFsIFNoYXJlZCBDb250ZXh0IFJFU1QgQVBJIFVSTA0KK2Vjb21wX3NoYXJlZF9jb250ZXh0X3Jlc3RfdXJsPSBodHRwczovL3d3dy5vcGVuZWNvbXAub3JnOjgwODAvZWNvbXBwb3J0YWwvY29udGV4dA0KKw0KKyMgTGluayBzaG93biBpbiBIZWxwIG1lbnUNCitjb250YWN0X3VzX2xpbmsgPSBodHRwczovL3d3dy5vcGVuZWNvbXAub3JnL0Vjb21wUG9ydGFsL0VDT01QK1BvcnRhbCtIb21lDQorDQorIyBBbiBVbmlxdWUgMTI4LWJpdCB2YWx1ZSBkZWZpbmVkIHRvIGlkZW50aWZ5IGEgc3BlY2lmaWMgdmVyc2lvbg0KKyMgb2YgYW4gYXBwbGljYXRpb24gZGVwbG95ZWQgb24gYSBzcGVjaWZpYyB2aXJ0dWFsIG1hY2hpbmUuDQorIyBUaGlzIHZhbHVlIG11c3QgYmUgZ2VuZXJhdGVkIGFuZCB1cGRhdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiANCisjIHdoaWNoIGlzIHVzaW5nIHRoZSBFQ09NUCBTREsgYXQgdGhlIHRpbWUgb2YgaXRzIGRlcGxveW1lbnQuDQorIyBPbmxpbmUgVW5pcXVlIFVVSUQgZ2VuZXJhdG9yIC0gaHR0cHM6Ly93d3cudXVpZGdlbmVyYXRvci5uZXQvDQoraW5zdGFuY2VfdXVpZD0yOTJiNDYxYS0yOTU0LTRiNjMtYTNmOS1mOTE2YzdhZDNiYzANCisNCisNCisNCisjYXV0aGVudGljYXRlIHVzZXIgc2VydmVyDQorYXV0aGVudGljYXRlX3VzZXJfc2VydmVyPWh0dHA6Ly90b2RvX2VudGVyX2F1dGhfc2VydmVyX2hvc3RuYW1lOjgzODMvb3BlbmlkLWNvbm5lY3Qtc2VydmVyLXdlYmFwcC9hbGxVc2Vycw0KKw0KKyNNU08gcmVsYXRlZCBwcm9wZXJ0aWVzDQorI3NpbXVsYXRvcg0KKyNtc28uc2VydmVyLnVybD1odHRwOi8vbG9jYWxob3N0OjgwODkNCisjZGV2MmRldg0KKyNnb29kDQorbXNvLnNlcnZlci51cmw9aHR0cHM6Ly9tc28uYXBpLnNpbXBsZWRlbW8ub25hcC5vcmc6ODQ0My9vbmFwL3NvL2luZnJhDQorbXNvLnBvbGxpbmcuaW50ZXJ2YWwubXNlY3M9MjAwMA0KK21zby5tYXgucG9sbHM9Mw0KK21zby51c2VyLm5hbWU9aW5mcmFwb3J0YWwNCittc28ucGFzc3dvcmQueD1PQkY6MWdoejFrZngxajF3MW03dzFpMjcxZThxMWVhczFoemoxbTRpMWl5eTFrY2gxZ2R6DQorI0UyRSBpcyB2Mw0KK21zby5yZXN0YXBpLnN2Yy5lMmVpbnN0YW5jZT0vZTJlU2VydmljZUluc3RhbmNlcy92Mw0KK21zby5yZXN0YXBpLnN2Yy5pbnN0YW5jZT0vc2VydmljZUluc3RhbnRpYXRpb24vdjcvc2VydmljZUluc3RhbmNlcw0KK21zby5yZXN0YXBpLnN2Yy5pbnN0YW5jZS5kZWxldGVBbmRVbmFzc2lnbj0vc2VydmljZUluc3RhbnRpYXRpb24vdjcvc2VydmljZUluc3RhbmNlcw0KK21zby5yZXN0YXBpLnZuZi5pbnN0YW5jZT0vc2VydmljZUluc3RhbmNlcy92Ni88c2VydmljZV9pbnN0YW5jZV9pZD4vdm5mcw0KK21zby5yZXN0YXBpLnZuZi5jaGFuZ2VtYW5hZ2VtZW50Lmluc3RhbmNlPS9zZXJ2aWNlSW5zdGFuY2VzL3Y2LzxzZXJ2aWNlX2luc3RhbmNlX2lkPi92bmZzLzx2bmZfaW5zdGFuY2VfaWQ+LzxyZXF1ZXN0X3R5cGU+DQorbXNvLnJlc3RhcGkubmV0d29yay5pbnN0YW5jZT0vc2VydmljZUluc3RhbmNlcy92Ni88c2VydmljZV9pbnN0YW5jZV9pZD4vbmV0d29ya3MNCittc28ucmVzdGFwaS52Zi5tb2R1bGUuaW5zdGFuY2U9L3NlcnZpY2VJbnN0YW5jZXMvdjYvPHNlcnZpY2VfaW5zdGFuY2VfaWQ+L3ZuZnMvPHZuZl9pbnN0YW5jZV9pZD4vdmZNb2R1bGVzDQorbXNvLnJlc3RhcGkudmYubW9kdWxlLnNjYWxlb3V0PS9zZXJ2aWNlSW5zdGFudGlhdGlvbi92Ny9zZXJ2aWNlSW5zdGFuY2VzLzxzZXJ2aWNlX2luc3RhbmNlX2lkPi92bmZzLzx2bmZfaW5zdGFuY2VfaWQ+L3ZmTW9kdWxlcy9zY2FsZU91dA0KK21zby5yZXN0YXBpLnZvbHVtZS5ncm91cC5pbnN0YW5jZT0vc2VydmljZUluc3RhbmNlcy92Ni88c2VydmljZV9pbnN0YW5jZV9pZD4vdm5mcy88dm5mX2luc3RhbmNlX2lkPi92b2x1bWVHcm91cHMNCittc28ucmVzdGFwaS5nZXQub3JjLnJlcT0vb3JjaGVzdHJhdGlvblJlcXVlc3RzL3Y2DQorbXNvLnJlc3RhcGkuZ2V0Lm9yYy5yZXFzPS9vcmNoZXN0cmF0aW9uUmVxdWVzdHMvdjY/DQorbXNvLnJlc3RhcGkuZ2V0Lm1hbi50YXNrcz0vdGFza3MvdjENCittc28ucmVzdGFwaS5jb25maWd1cmF0aW9ucz0vc2VydmljZUluc3RhbmNlcy92Ni88c2VydmljZV9pbnN0YW5jZV9pZD4vY29uZmlndXJhdGlvbnMNCittc28ucmVzdGFwaS5jb25maWd1cmF0aW9uLmluc3RhbmNlPSR7bXNvLnJlc3RhcGkuY29uZmlndXJhdGlvbnN9Lzxjb25maWd1cmF0aW9uX2lkPg0KKw0KK21zby5yZXN0YXBpLnNlcnZpY2VJbnN0YW50aWF0aW9uQXBpUm9vdD0vc2VydmljZUluc3RhbnRpYXRpb24vdjcNCittc28ucmVzdGFwaS5zZXJ2aWNlSW5zdGFuY2VDcmVhdGU9JHttc28ucmVzdGFwaS5zZXJ2aWNlSW5zdGFudGlhdGlvbkFwaVJvb3R9L3NlcnZpY2VJbnN0YW5jZXMNCittc28ucmVzdGFwaS5zZXJ2aWNlSW5zdGFuY2VBc3NpZ249JHttc28ucmVzdGFwaS5zZXJ2aWNlSW5zdGFudGlhdGlvbkFwaVJvb3R9L3NlcnZpY2VJbnN0YW5jZXMvYXNzaWduDQorDQorbXNvLnJlc3RhcGkuY2xvdWRSZXNvdXJjZXNBcGlSb290PS9jbG91ZFJlc291cmNlcy92MQ0KK21zby5yZXN0YXBpLm9wZXJhdGlvbmFsRW52aXJvbm1lbnQ9JHttc28ucmVzdGFwaS5jbG91ZFJlc291cmNlc0FwaVJvb3R9L29wZXJhdGlvbmFsRW52aXJvbm1lbnRzLzxvcGVyYXRpb25hbF9lbnZpcm9ubWVudF9pZD4NCisNCittc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50LmFjdGl2YXRlPSR7bXNvLnJlc3RhcGkub3BlcmF0aW9uYWxFbnZpcm9ubWVudH0vYWN0aXZhdGUNCittc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50LmRlYWN0aXZhdGU9JHttc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50fS9kZWFjdGl2YXRlDQorbXNvLnJlc3RhcGkub3BlcmF0aW9uYWxFbnZpcm9ubWVudC5jcmVhdGU9JHttc28ucmVzdGFwaS5jbG91ZFJlc291cmNlc0FwaVJvb3R9L29wZXJhdGlvbmFsRW52aXJvbm1lbnRzDQorDQorbXNvLnJlc3RhcGkuY2xvdWRSZXNvdXJjZXNSZXF1ZXN0c0FwaVJvb3Q9L2Nsb3VkUmVzb3VyY2VzUmVxdWVzdHMvdjENCittc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50LmNsb3VkUmVzb3VyY2VzUmVxdWVzdHMuc3RhdHVzPSR7bXNvLnJlc3RhcGkuY2xvdWRSZXNvdXJjZXNSZXF1ZXN0c0FwaVJvb3R9P3JlcXVlc3RJZD08cmVxdWVzdF9pZD4NCisNCittc28uZGlzcGxheVRlc3RBUElPblNjcmVlbj10cnVlDQorbXNvLmRlZmF1bHRUZXN0QVBJPUdSX0FQSQ0KK21zby5tYXhPcGVuZWRJbnN0YW50aWF0aW9uUmVxdWVzdHM9MjANCittc28uYXN5bmNQb2xsaW5nSW50ZXJ2YWxTZWNvbmRzPTENCityZWZyZXNoVGltZUluc3RhbnRpYXRpb25EYXNoYm9hcmQ9MTANCisNCit2aWQudHJ1c3RzdG9yZS5maWxlbmFtZT0vb3B0L2FwcC92aWQvZXRjL29yZy5vbmFwLnZpZC50cnVzdC5qa3MNCit2aWQudHJ1c3RzdG9yZS5wYXNzd2QueD1PQkY6MWR4MDFqMGUxaHMwMXQ5ODFtaXMxZHdzMTU2czFvamMxcWpjMXpzeDFwdzMxcW9iMXFyNzFweWoxenN0MXFoeTFvanExNTZpMWR1YTFtbTIxdGI2MWh2aTFqMGcxZHUyDQorbXNvLmRtZTIuY2xpZW50LnRpbWVvdXQ9MzAwMDANCittc28uZG1lMi5jbGllbnQucmVhZC50aW1lb3V0PTEyMDAwMA0KK3NjaGVkdWxlci5jcmVhdGUubmV3LnZuZi5jaGFuZ2UuaW5zdGFuY2U9L3YxL0NoYW5nZU1hbmFnZW1lbnQvc2NoZWR1bGVzLw0KK3NjaGVkdWxlci5nZXQudGltZS5zbG90cz0vdjEvQ2hhbmdlTWFuYWdlbWVudC9zY2hlZHVsZXMvDQorc2NoZWR1bGVyLnNlcnZlci51cmw9aHR0cDovL0JZTy5zY2hlZHVsZXI6ODk4OS9zY2hlZHVsZXINCisNCitzY2hlZHVsZXIuc3VibWl0Lm5ldy52bmYuY2hhbmdlPS92MS9DaGFuZ2VNYW5hZ2VtZW50L3NjaGVkdWxlcy97c2NoZWR1bGVJZH0vYXBwcm92YWxzDQorc2NoZWR1bGVyLmdldC5zY2hlZHVsZXM9L3YxL0NoYW5nZU1hbmFnZW1lbnQvc2NoZWR1bGVzL3NjaGVkdWxlRGV0YWlscy8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9zeXN0ZW1fdGVtcGxhdGUucHJvcGVydGllcyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9jb25mL3N5c3RlbV90ZW1wbGF0ZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YTJlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvY29uZi9zeXN0ZW1fdGVtcGxhdGUucHJvcGVydGllcwpAQCAtMCwwICsxLDE0NyBAQAorI0RCIEluZm8NCisjZGIudXNlck5hbWU9WFhYWA0KKyNkYi5wYXNzd29yZD1YWFhYDQorI2RiLmNvbm5lY3Rpb25VUkw9amRiYzpvcmFjbGU6dGhpbjpAWFhYWC9YWA0KKyNkYi5oaWIuZGlhbGVjdD1vcmcuaGliZXJuYXRlLmRpYWxlY3QuT3JhY2xlMTBnRGlhbGVjdA0KKyNkYi5kcml2ZXI9b3JhY2xlLmpkYmMuZHJpdmVyLk9yYWNsZURyaXZlcg0KKyNIaWJlcm5hdGUgDQorI2hiLmRpYWxlY3Q9b3JnLmhpYmVybmF0ZS5kaWFsZWN0Lk9yYWNsZTEwZ0RpYWxlY3QNCisjaGIuc2hvd19zcWw9dHJ1ZQ0KKw0KKyNQb3N0Z3JlDQorI2RiLnVzZXJOYW1lPVhYWFgNCisjZGIucGFzc3dvcmQ9WFhYWA0KKyNkYi5jb25uZWN0aW9uVVJMPWpkYmM6cG9zdGdyZXNxbDovL1hYWFgvWFgNCisjZGIuaGliLmRpYWxlY3Q9b3JnLmhpYmVybmF0ZS5kaWFsZWN0LlBvc3RncmVTUUxEaWFsZWN0DQorI2RiLmRyaXZlcj1vcmcucG9zdGdyZXNxbC5Ecml2ZXINCisjaGIuZGlhbGVjdD1vcmcuaGliZXJuYXRlLmRpYWxlY3QuUG9zdGdyZVNRTERpYWxlY3QNCisjaGIuc2hvd19zcWw9dHJ1ZQ0KKw0KK2Nvb2tpZV9kb21haW4gPSBvbmFwLm9yZw0KKyNteXNxbA0KK2RiLmRyaXZlciA9IG9yZy5tYXJpYWRiLmpkYmMuRHJpdmVyDQorZGIuY29ubmVjdGlvblVSTCA9IGpkYmM6bWFyaWFkYjovLyR7VklEX01ZU1FMX0hPU1R9OiR7VklEX01ZU1FMX1BPUlR9LyR7VklEX01ZU1FMX0RCTkFNRX0NCitkYi51c2VyTmFtZSA9ICR7VklEX01ZU1FMX1VTRVJ9DQorZGIucGFzc3dvcmQgPSAke1ZJRF9NWVNRTF9QQVNTfQ0KK2RiLmhpYi5kaWFsZWN0ID0gb3JnLmhpYmVybmF0ZS5kaWFsZWN0Lk15U1FMRGlhbGVjdA0KK2RiLm1pbl9wb29sX3NpemUgPSA1DQorZGIubWF4X3Bvb2xfc2l6ZSA9IDEwDQoraGIuZGlhbGVjdCA9IG9yZy5oaWJlcm5hdGUuZGlhbGVjdC5NeVNRTERpYWxlY3QNCitoYi5zaG93X3NxbCA9IHRydWUNCitoYi5pZGxlX2Nvbm5lY3Rpb25fdGVzdF9wZXJpb2QgPSAzNjAwDQorYXBwX2Rpc3BsYXlfbmFtZSA9ICR7VklEX0FQUF9ESVNQTEFZX05BTUV9DQorZmlsZXNfcGF0aCA9IC90bXANCisNCisjIG1lbnUgc2V0dGluZ3MNCisjbWVudV9xdWVyeV9uYW1lICAgICAgICAgICAgICAgICAgICAgID0gbWVudURhdGENCisjbWVudV9wcm9wZXJ0aWVzX2ZpbGVfbG9jYXRpb24gICAgICAgID0gL1dFQi1JTkYvZnVzaW9uL21lbnUvDQorI2FwcGxpY2F0aW9uX21lbnVfc2V0X25hbWUgICAgICAgICAgICA9IEFQUA0KKyNhcHBsaWNhdGlvbl9tZW51X2F0dHJpYnV0ZV9uYW1lICAgICAgPSBhcHBsaWNhdGlvbk1lbnVEYXRhDQorI2FwcGxpY2F0aW9uX21lbnVfcHJvcGVydGllc19uYW1lICAgICA9IG1lbnUucHJvcGVydGllcw0KKyNidXNpbmVzc19kaXJlY3RfbWVudV9zZXRfbmFtZSAgICAgICAgPSBCRA0KKyNidXNpbmVzc19kaXJlY3RfbWVudV9wcm9wZXJ0aWVzX25hbWUgPSBiZC5tZW51LnByb3BlcnRpZXMNCisjYnVzaW5lc3NfZGlyZWN0X21lbnVfYXR0cmlidXRlX25hbWUgID0gYnVzaW5lc3NEaXJlY3RNZW51RGF0YQ0KKw0KK2FwcGxpY2F0aW9uX25hbWUgICAgICAgICAgICAgID0gVmlydHVhbCBJbmZyYXN0cnVjdHVyZSBEZXBsb3ltZW50DQorYXBwbGljYXRpb25fdXNlcl9pZCAgICAgICAgICAgPSAzMDAwMA0KK3Bvc3RfZGVmYXVsdF9yb2xlX2lkICAgICAgICAgID0gMTYNCitjbHVzdGVyZWQgICAgICAgICAgICAgICAgICAgICA9IHRydWUNCisNCisjRW5hYmxlIEZ1c2lvbiBNb2JpbGUgY2FwYWJpbGl0aWVzIGZvciB0aGUgYXBwbGljYXRpb24NCittb2JpbGVfZW5hYmxlID0gZmFsc2UNCisNCisjIENhY2hlIGNvbmZpZyBmaWxlIGlzIG5lZWRlZCBvbiB0aGUgY2xhc3NwYXRoDQorY2FjaGVfY29uZmlnX2ZpbGVfcGF0aCAgICAgICAgPSAvV0VCLUlORi9jbGFzc2VzL2NhY2hlLmNjZg0KK2NhY2hlX3N3aXRjaCAgICAgICAgICAgICAgICAgID0gMTk5DQorY2FjaGVfbG9hZF9vbl9zdGFydHVwICAgICAgICAgPSBmYWxzZQ0KKw0KK3VzZXJfbmFtZSA9IGZ1bGxOYW1lDQorDQorZGVjcnlwdGlvbl9rZXkgPSAke1ZJRF9ERUNSWVBUSU9OX0tFWX0NCisNCisjZWxlbWVudCBtYXAgZmlsZXMNCitlbGVtZW50X21hcF9maWxlX3BhdGggPSAvdG1wDQorZWxlbWVudF9tYXBfaWNvbl9wYXRoID0gYXBwL3ZpZC9pY29ucy8NCisNCisjYWFpIHJlbGF0ZWQgcHJvcGVydGllcw0KK2FhaS5zZXJ2ZXIudXJsLmJhc2U9aHR0cHM6Ly8ke1ZJRF9BQUlfSE9TVH06JHtWSURfQUFJX1BPUlR9L2FhaS8NCithYWkuc2VydmVyLnVybD1odHRwczovLyR7VklEX0FBSV9IT1NUfToke1ZJRF9BQUlfUE9SVH0vYWFpL3YxMy8NCithYWkub2xkc2VydmVyLnVybC5iYXNlPWh0dHBzOi8vJHtWSURfQUFJX0hPU1R9OiR7VklEX0FBSV9QT1JUfS9hYWkvc2VydmVycy8NCithYWkub2xkc2VydmVyLnVybD1odHRwczovLyR7VklEX0FBSV9IT1NUfToke1ZJRF9BQUlfUE9SVH0vYWFpL3NlcnZlcnMvdjMvDQorYWFpLnRydXN0c3RvcmUuZmlsZW5hbWU9JHtBQUlfVFJVU1RTVE9SRV9GSUxFTkFNRX0NCithYWkudHJ1c3RzdG9yZS5wYXNzd2QueD0ke0FBSV9UUlVTVFNUT1JFX1BBU1NXRF9YfQ0KK2FhaS5rZXlzdG9yZS5maWxlbmFtZT0ke0FBSV9LRVlTVE9SRV9GSUxFTkFNRX0NCithYWkua2V5c3RvcmUucGFzc3dkLng9JHtBQUlfS0VZU1RPUkVfUEFTU1dEX1h9DQorYWFpLnZpZC51c2VybmFtZT0ke0FBSV9WSURfVUlEfQ0KK2FhaS52aWQucGFzc3dkLng9JHtBQUlfVklEX1BBU1NXRF9YfQ0KK2FhaS51c2UuY2xpZW50LmNlcnQ9JHtBQUlfVVNFX0NMSUVOVF9DRVJUfQ0KK2FhaS52bmYucHJvdnN0YXR1cz0ke0FBSV9WTkZfUFJPVlNUQVRVU30NCisNCisjIEVDT01QIFBvcnRhbCBTaGFyZWQgQ29udGV4dCBSRVNUIEFQSSBVUkwNCitlY29tcF9zaGFyZWRfY29udGV4dF9yZXN0X3VybD0ke1ZJRF9FQ09NUF9TSEFSRURfQ09OVEVYVF9SRVNUX1VSTH0NCisjIExpbmsgc2hvd24gaW4gSGVscCBtZW51DQorY29udGFjdF91c19saW5rPSR7VklEX0NPTlRBQ1RfVVNfTElOS30NCisjQ3JvbiBTY2hlZHVsZXMNCitsb2dfY3JvbiAgICAgICAgICAgICAgICAgICAgICA9IDAgMC8xICogKiAqID87DQorbXlsb2dpbnNfZmVlZF9jcm9uICAgICAgICAgICAgPSAwIDAvNjAgKiAqICogPzsNCisjc2Vzc2lvbnRpbWVvdXRfZmVlZF9jcm9uCSAgPSAwICogKiAqICogPyAqDQorbXlfbG9naW5fZmVlZF9vdXRwdXRfZGlyICAgICAgPSAke1ZJRF9NWUxPR0lOX0ZFRURfRElSRUNUT1JZfQ0KKw0KKyMgQW4gVW5pcXVlIDEyOC1iaXQgdmFsdWUgZGVmaW5lZCB0byBpZGVudGlmeSBhIHNwZWNpZmljIHZlcnNpb24NCisjIG9mIGFuIGFwcGxpY2F0aW9uIGRlcGxveWVkIG9uIGEgc3BlY2lmaWMgdmlydHVhbCBtYWNoaW5lLg0KKyMgVGhpcyB2YWx1ZSBtdXN0IGJlIGdlbmVyYXRlZCBhbmQgdXBkYXRlZCBieSB0aGUgYXBwbGljYXRpb24gDQorIyB3aGljaCBpcyB1c2luZyB0aGUgRUNPTVAgU0RLIGF0IHRoZSB0aW1lIG9mIGl0cyBkZXBsb3ltZW50Lg0KKyMgT25saW5lIFVuaXF1ZSBVVUlEIGdlbmVyYXRvciAtIGh0dHBzOi8vd3d3LnV1aWRnZW5lcmF0b3IubmV0Lw0KK2luc3RhbmNlX3V1aWQ9MjkyYjQ2MWEtMjk1NC00YjYzLWEzZjktZjkxNmM3YWQzYmMwDQorDQorDQorI01TTyByZWxhdGVkIHByb3BlcnRpZXMNCisjc2ltdWxhdG9yDQorbXNvLnNlcnZlci51cmw9JHtWSURfTVNPX1NFUlZFUl9VUkx9DQorbXNvLnBvbGxpbmcuaW50ZXJ2YWwubXNlY3M9JHtNU09fUE9MTElOR19JTlRFUlZBTF9NU0VDU30NCittc28ubWF4LnBvbGxzPTEwDQorbXNvLnVzZXIubmFtZT0ke1ZJRF9NU09fVVNFUn0NCittc28ucGFzc3dvcmQueD0ke1ZJRF9NU09fUEFTU30NCisjRTJFIGlzIHYzDQorbXNvLnJlc3RhcGkuc3ZjLmUyZWluc3RhbmNlPS9lMmVTZXJ2aWNlSW5zdGFuY2VzL3YzDQorbXNvLnJlc3RhcGkuc3ZjLmluc3RhbmNlPS9zZXJ2aWNlSW5zdGFudGlhdGlvbi92Ny9zZXJ2aWNlSW5zdGFuY2VzDQorbXNvLnJlc3RhcGkuc3ZjLmluc3RhbmNlLmRlbGV0ZUFuZFVuYXNzaWduPS9zZXJ2aWNlSW5zdGFudGlhdGlvbi92Ny9zZXJ2aWNlSW5zdGFuY2VzDQorbXNvLnJlc3RhcGkudm5mLmluc3RhbmNlPS9zZXJ2aWNlSW5zdGFuY2VzL3Y2LzxzZXJ2aWNlX2luc3RhbmNlX2lkPi92bmZzDQorbXNvLnJlc3RhcGkudm5mLmNoYW5nZW1hbmFnZW1lbnQuaW5zdGFuY2U9L3NlcnZpY2VJbnN0YW5jZXMvdjYvPHNlcnZpY2VfaW5zdGFuY2VfaWQ+L3ZuZnMvPHZuZl9pbnN0YW5jZV9pZD4vPHJlcXVlc3RfdHlwZT4NCittc28ucmVzdGFwaS5uZXR3b3JrLmluc3RhbmNlPS9zZXJ2aWNlSW5zdGFuY2VzL3Y2LzxzZXJ2aWNlX2luc3RhbmNlX2lkPi9uZXR3b3Jrcw0KK21zby5yZXN0YXBpLnZmLm1vZHVsZS5zY2FsZW91dD0vc2VydmljZUluc3RhbnRpYXRpb24vdjcvc2VydmljZUluc3RhbmNlcy88c2VydmljZV9pbnN0YW5jZV9pZD4vdm5mcy88dm5mX2luc3RhbmNlX2lkPi92Zk1vZHVsZXMvc2NhbGVPdXQNCittc28ucmVzdGFwaS52Zi5tb2R1bGUuaW5zdGFuY2U9L3NlcnZpY2VJbnN0YW5jZXMvdjYvPHNlcnZpY2VfaW5zdGFuY2VfaWQ+L3ZuZnMvPHZuZl9pbnN0YW5jZV9pZD4vdmZNb2R1bGVzDQorbXNvLnJlc3RhcGkudm9sdW1lLmdyb3VwLmluc3RhbmNlPS9zZXJ2aWNlSW5zdGFuY2VzL3Y2LzxzZXJ2aWNlX2luc3RhbmNlX2lkPi92bmZzLzx2bmZfaW5zdGFuY2VfaWQ+L3ZvbHVtZUdyb3Vwcw0KK21zby5yZXN0YXBpLmdldC5vcmMucmVxPS9vcmNoZXN0cmF0aW9uUmVxdWVzdHMvdjYNCittc28ucmVzdGFwaS5nZXQub3JjLnJlcXM9L29yY2hlc3RyYXRpb25SZXF1ZXN0cy92Nj8NCittc28ucmVzdGFwaS5nZXQubWFuLnRhc2tzPS90YXNrcy92MQ0KK21zby5yZXN0YXBpLmNvbmZpZ3VyYXRpb25zPS9zZXJ2aWNlSW5zdGFuY2VzL3Y2LzxzZXJ2aWNlX2luc3RhbmNlX2lkPi9jb25maWd1cmF0aW9ucw0KK21zby5yZXN0YXBpLmNvbmZpZ3VyYXRpb24uaW5zdGFuY2U9JHttc28ucmVzdGFwaS5jb25maWd1cmF0aW9uc30vPGNvbmZpZ3VyYXRpb25faWQ+DQorDQorbXNvLnJlc3RhcGkuc2VydmljZUluc3RhbnRpYXRpb25BcGlSb290PS9zZXJ2aWNlSW5zdGFudGlhdGlvbi92Nw0KK21zby5yZXN0YXBpLnNlcnZpY2VJbnN0YW5jZUNyZWF0ZT0ke21zby5yZXN0YXBpLnNlcnZpY2VJbnN0YW50aWF0aW9uQXBpUm9vdH0vc2VydmljZUluc3RhbmNlcw0KK21zby5yZXN0YXBpLnNlcnZpY2VJbnN0YW5jZUFzc2lnbj0ke21zby5yZXN0YXBpLnNlcnZpY2VJbnN0YW50aWF0aW9uQXBpUm9vdH0vc2VydmljZUluc3RhbmNlcy9hc3NpZ24NCisNCittc28ucmVzdGFwaS5jbG91ZFJlc291cmNlc0FwaVJvb3Q9L2Nsb3VkUmVzb3VyY2VzL3YxDQorbXNvLnJlc3RhcGkub3BlcmF0aW9uYWxFbnZpcm9ubWVudD0ke21zby5yZXN0YXBpLmNsb3VkUmVzb3VyY2VzQXBpUm9vdH0vb3BlcmF0aW9uYWxFbnZpcm9ubWVudHMvPG9wZXJhdGlvbmFsX2Vudmlyb25tZW50X2lkPg0KKw0KK21zby5yZXN0YXBpLm9wZXJhdGlvbmFsRW52aXJvbm1lbnQuYWN0aXZhdGU9JHttc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50fS9hY3RpdmF0ZQ0KK21zby5yZXN0YXBpLm9wZXJhdGlvbmFsRW52aXJvbm1lbnQuZGVhY3RpdmF0ZT0ke21zby5yZXN0YXBpLm9wZXJhdGlvbmFsRW52aXJvbm1lbnR9L2RlYWN0aXZhdGUNCittc28ucmVzdGFwaS5vcGVyYXRpb25hbEVudmlyb25tZW50LmNyZWF0ZT0ke21zby5yZXN0YXBpLmNsb3VkUmVzb3VyY2VzQXBpUm9vdH0vb3BlcmF0aW9uYWxFbnZpcm9ubWVudHMNCisNCittc28ucmVzdGFwaS5jbG91ZFJlc291cmNlc1JlcXVlc3RzQXBpUm9vdD0vY2xvdWRSZXNvdXJjZXNSZXF1ZXN0cy92MQ0KK21zby5yZXN0YXBpLm9wZXJhdGlvbmFsRW52aXJvbm1lbnQuY2xvdWRSZXNvdXJjZXNSZXF1ZXN0cy5zdGF0dXM9JHttc28ucmVzdGFwaS5jbG91ZFJlc291cmNlc1JlcXVlc3RzQXBpUm9vdH0/cmVxdWVzdElkPTxyZXF1ZXN0X2lkPg0KKw0KK21zby5kaXNwbGF5VGVzdEFQSU9uU2NyZWVuPXRydWUNCittc28uZGVmYXVsdFRlc3RBUEk9R1JfQVBJDQorbXNvLm1heE9wZW5lZEluc3RhbnRpYXRpb25SZXF1ZXN0cz0yMA0KK21zby5hc3luY1BvbGxpbmdJbnRlcnZhbFNlY29uZHM9MQ0KK3JlZnJlc2hUaW1lSW5zdGFudGlhdGlvbkRhc2hib2FyZD0xMA0KKw0KK3ZpZC50cnVzdHN0b3JlLmZpbGVuYW1lPSR7VklEX1RSVVNUU1RPUkVfRklMRX0NCit2aWQudHJ1c3RzdG9yZS5wYXNzd2QueD0ke1ZJRF9UUlVTVFNUT1JFX1BBU1N9DQorbXNvLmRtZTIuY2xpZW50LnRpbWVvdXQ9JHtNU09fRE1FMl9DTElFTlRfVElNRU9VVH0NCittc28uZG1lMi5jbGllbnQucmVhZC50aW1lb3V0PSR7TVNPX0RNRTJfQ0xJRU5UX1JFQURfVElNRU9VVH0NCittc28uZG1lMi5zZXJ2ZXIudXJsPSR7TVNPX0RNRTJfU0VSVkVSX1VSTH0NCittc28uZG1lMi5lbmFibGVkPSR7TVNPX0RNRTJfRU5BQkxFRH0NCitzY2hlZHVsZXIuYmFzaWMuYXV0aD0NCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL2NvbmYvZnVzaW9uLnByb3BlcnRpZXMgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL2NvbmYvZnVzaW9uLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ0MTdhYQotLS0gL2Rldi9udWxsCisrKyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9mdXNpb24vY29uZi9mdXNpb24ucHJvcGVydGllcwpAQCAtMCwwICsxLDQ2IEBACisjIGxvZ2luIHNldHRpbmdzDQorbG9naW5fbWV0aG9kX2JhY2tkb29yICAgICAgID0gYmFja2Rvb3INCitsb2dpbl9tZXRob2Rfd2ViX2p1bmN0aW9uICAgICAgID0gbG9naW5fbWV0aG9kX3dlYl9qdW5jdGlvbg0KK2xvZ2luX21ldGhvZF9jc3AgICAgICAgPSBsb2dpbl9tZXRob2RfY3NwDQorbG9naW5fbWV0aG9kX2F0dHJpYnV0ZV9uYW1lID0gbG9naW5fbWV0aG9kDQorYXV0aGVudGljYXRpb25fbWVjaGFuaXNtID0gQk9USA0KK3JvbGVfZnVuY3Rpb25fbGlzdCA9IHJvbGVfZnVuY2lvbl9saXN0DQorDQorI2xvZ2luIG1lc3NhZ2UNCitsb2dpbi5lcnJvci5ocmlkLmVtcHR5ID0gTG9naW4gZmFpbGVkLCBwbGVhc2UgY29udGFjdCBzeXN0ZW0gYWRtaW5pc3RyYXRvci4gDQorbG9naW4uZXJyb3IuaHJpZC5ub3QtZm91bmQgPSBVc2VyIG5vdCBmb3VuZCwgcGxlYXNlIGNvbnRhY3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IuDQorbG9naW4uZXJyb3IudXNlci5pbmFjdGl2ZSA9IEFjY291bnQgaXMgZGlzYWJsZWQsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yLg0KKw0KKyMgVXNlciBTZXNzaW9uIHNldHRpbmdzDQordXNlcl9hdHRyaWJ1dGVfbmFtZSAgICAgICAgICAgPSB1c2VyDQorcm9sZXNfYXR0cmlidXRlX25hbWUgICAgICAgICAgPSByb2xlcw0KK3JvbGVfZnVuY3Rpb25zX2F0dHJpYnV0ZV9uYW1lID0gcm9sZV9mdW5jdGlvbnMNCisjY2xpZW50X2RldmljZV9hdHRyaWJ1dGVfbmFtZSAgPSBjbGllbnRfZGV2aWNlDQorI2NsaWVudF9kZXZpY2VfZW11bGF0aW9uICAgICAgID0gZmFsc2UNCisNCisjIEltcG9ydC11c2VyIExEQVAgc2V0dGluZ3MNCitwb3N0X2luaXRpYWxfY29udGV4dF9mYWN0b3J5ID0gY29tLnN1bi5qbmRpLmxkYXAuTGRhcEN0eEZhY3RvcnkNCitwb3N0X3Byb3ZpZGVyX3VybCAgICAgICAgICAgID0gbGRhcDovL2xkYXAubXljb21wYW55LmNvbTozODkNCitwb3N0X3NlY3VyaXR5X3ByaW5jaXBhbCAgICAgID0gb3U9cGVvcGxlLG89bXljb21wYW55LGM9dXMNCitwb3N0X21heF9yZXN1bHRfc2l6ZSAgICAgICAgID0gNDk5DQorDQorIyBtZW51IHNldHRpbmdzDQorbWVudV9xdWVyeV9uYW1lICAgICAgICAgICAgICAgICAgICAgID0gbWVudURhdGENCisjbWVudV9wcm9wZXJ0aWVzX2ZpbGVfbG9jYXRpb24gICAgICAgID0gL1dFQi1JTkYvZnVzaW9uL21lbnUvDQorYXBwbGljYXRpb25fbWVudV9zZXRfbmFtZSAgICAgICAgICAgID0gQVBQDQorYXBwbGljYXRpb25fbWVudV9hdHRyaWJ1dGVfbmFtZSAgICAgID0gYXBwbGljYXRpb25NZW51RGF0YQ0KKyNhcHBsaWNhdGlvbl9tZW51X3Byb3BlcnRpZXNfbmFtZSAgICAgPSBtZW51LnByb3BlcnRpZXMNCitidXNpbmVzc19kaXJlY3RfbWVudV9zZXRfbmFtZSAgICAgICAgPSBCRA0KKyNidXNpbmVzc19kaXJlY3RfbWVudV9wcm9wZXJ0aWVzX25hbWUgPSBiZC5tZW51LnByb3BlcnRpZXMNCitidXNpbmVzc19kaXJlY3RfbWVudV9hdHRyaWJ1dGVfbmFtZSAgPSBidXNpbmVzc0RpcmVjdE1lbnVEYXRhDQorDQorIyBSQVBUT1IgY29uZmlnIHNldHRpbmdzDQorI3JhcHRvcl9jb25maWdfZmlsZV9wYXRoID0gL1dFQi1JTkYvY29uZi8NCisNCisjIFJvbGUgc2V0dGluZ3MNCitzeXNfYWRtaW5fcm9sZV9pZCA9IDENCisjc3lzX2FkbWluX3JvbGVfZnVuY3Rpb25fZGVsZXRlX2Zyb21fdWkgPSB0cnVlDQorDQorIyBQcm9maWxlIFNlYXJjaCBzZXR0aW5ncw0KKyNwcm9maWxlX3NlYXJjaF9yZXBvcnRfaWQ9MTgxDQorI2NhbGxhYmxlX3Byb2ZpbGVfc2VhcmNoX3JlcG9ydF9pZD0zODYNCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL29ybS9GdXNpb24uaGJtLnhtbCBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9mdXNpb24vb3JtL0Z1c2lvbi5oYm0ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTU2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL29ybS9GdXNpb24uaGJtLnhtbApAQCAtMCwwICsxLDM5NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPCEtLQ0KKyAgPT09PT09PT09PT09TElDRU5TRV9TVEFSVD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgT05BUCBQb3J0YWwgU0RLDQorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBDb3B5cmlnaHQgwqkgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgDQorICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYWxsIHNvZnR3YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgbGljZW5zZWQNCisgIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSDigJxMaWNlbnNl4oCdKTsNCisgIHlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgDQorICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgDQorICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgDQorICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYWxsIGRvY3VtZW50YXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyBsaWNlbnNlZA0KKyAgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgTGljZW5zZSwgQXR0cmlidXRpb24gNC4wIEludGwuICh0aGUg4oCcTGljZW5zZeKAnSk7DQorICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBkb2N1bWVudGF0aW9uIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgDQorICAgICAgICAgICAgICBodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wLw0KKyANCisgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgZG9jdW1lbnRhdGlvbg0KKyAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorIA0KKyAgPT09PT09PT09PT09TElDRU5TRV9FTkQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyANCisgIA0KKyAgLS0+DQorDQorPCFET0NUWVBFIGhpYmVybmF0ZS1tYXBwaW5nIFBVQkxJQw0KKyAgICAgICAgIi0vL0hpYmVybmF0ZS9IaWJlcm5hdGUgTWFwcGluZyBEVEQgMy4wLy9FTiINCisgICAgICAgICJodHRwOi8vaGliZXJuYXRlLnNvdXJjZWZvcmdlLm5ldC9oaWJlcm5hdGUtbWFwcGluZy0zLjAuZHRkIj4NCisNCis8aGliZXJuYXRlLW1hcHBpbmcgcGFja2FnZT0ib3JnLm9uYXAucG9ydGFsc2RrLmNvcmUuZG9tYWluIj4NCisNCisgICAgIDwhLS0gVXNlciBjbGFzcyBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJVc2VyIiB0YWJsZT0iRk5fVVNFUiI+DQorICAgICAgICA8aWQgbmFtZT0iaWQiIGNvbHVtbj0idXNlcl9pZCIgPiANCisgICAgICAgICAgPGdlbmVyYXRvciBjbGFzcz0ibmF0aXZlIj4NCisgICAgICAgICAgICAgPHBhcmFtIG5hbWU9InNlcXVlbmNlIj5zZXFfZm5fdXNlcjwvcGFyYW0+IA0KKyAgICAgICAgICA8L2dlbmVyYXRvcj4NCisgICAgICAgIDwvaWQ+DQorDQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ib3JnSWQiICAgICAgICAgY29sdW1uPSJvcmdfaWQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYW5hZ2VySWQiICAgICBjb2x1bW49Im1hbmFnZXJfaWQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJmaXJzdE5hbWUiICAgICBjb2x1bW49ImZpcnN0X25hbWUiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtaWRkbGVJbml0aWFsIiBjb2x1bW49Im1pZGRsZV9uYW1lIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFzdE5hbWUiICAgICAgY29sdW1uPSJsYXN0X25hbWUiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwaG9uZSIgICAgICAgICBjb2x1bW49InBob25lIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmF4IiAgICAgICAgICAgY29sdW1uPSJmYXgiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjZWxsdWxhciIgICAgICBjb2x1bW49ImNlbGx1bGFyIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZW1haWwiICAgICAgICAgY29sdW1uPSJlbWFpbCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFkZHJlc3NJZCIgICAgIGNvbHVtbj0iYWRkcmVzc19pZCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFsZXJ0TWV0aG9kQ2QiIGNvbHVtbj0iYWxlcnRfbWV0aG9kX2NkIi8+DQorDQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWRkcmVzczEiICAgICAgY29sdW1uPSJhZGRyZXNzX2xpbmVfMSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFkZHJlc3MyIiAgICAgIGNvbHVtbj0iYWRkcmVzc19saW5lXzIiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjaXR5IiAgICAgICAgICBjb2x1bW49ImNpdHkiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzdGF0ZSIgICAgICAgICBjb2x1bW49InN0YXRlX2NkIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwQ29kZSIgICAgICAgY29sdW1uPSJ6aXBfY29kZSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNvdW50cnkiICAgICAgIGNvbHVtbj0iY291bnRyeV9jZCIvPg0KKw0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImhyaWQiICAgICAgICAgIGNvbHVtbj0iaHJpZCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9yZ1VzZXJJZCIgICAgIGNvbHVtbj0ib3JnX3VzZXJfaWQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcmdDb2RlIiAgICAgICBjb2x1bW49Im9yZ19jb2RlIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibG9naW5JZCIgICAgICAgY29sdW1uPSJsb2dpbl9pZCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxvZ2luUHdkIiAgICAgIGNvbHVtbj0ibG9naW5fcHdkIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFzdExvZ2luRGF0ZSIgY29sdW1uPSJsYXN0X2xvZ2luX2RhdGUiICB0eXBlPSJ0aW1lc3RhbXAiLz4NCisNCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsb2NhdGlvbkNsbGkiICBjb2x1bW49ImxvY2F0aW9uX2NsbGkiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ib3JnTWFuYWdlclVzZXJJZCIgY29sdW1uPSJvcmdfbWFuYWdlcl91c2VyaWQiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29tcGFueSIgICAgICAgY29sdW1uPSJjb21wYW55IiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImRlcGFydG1lbnQiICAgIGNvbHVtbj0iZGVwYXJ0bWVudCIgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJkZXBhcnRtZW50TmFtZSIgICAgCWNvbHVtbj0iZGVwYXJ0bWVudF9uYW1lIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1c2luZXNzVW5pdCIgIAkJY29sdW1uPSJidXNpbmVzc191bml0IiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1c2luZXNzVW5pdE5hbWUiICAgY29sdW1uPSJidXNpbmVzc191bml0X25hbWUiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iam9iVGl0bGUiICAgICAgCQljb2x1bW49ImpvYl90aXRsZSIgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaWxvU3RhdHVzIiAgICAJCWNvbHVtbj0ic2lsb19zdGF0dXMiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmluYW5jaWFsTG9jQ29kZSIgICBjb2x1bW49ImZpbl9sb2NfY29kZSIgLz4NCisNCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhY3RpdmUiICAgICAgICBjb2x1bW49ImFjdGl2ZV95biIgICAgICAgdHlwZT0ieWVzX25vIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW50ZXJuYWwiICAgICAgY29sdW1uPSJpc19pbnRlcm5hbF95biIgIHR5cGU9Inllc19ubyIvPg0KKw0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNyZWF0ZWQiICB0eXBlPSJ0aW1lc3RhbXAiIGNvbHVtbj0iY3JlYXRlZF9kYXRlIiAgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtb2RpZmllZCIgdHlwZT0idGltZXN0YW1wIiBjb2x1bW49Im1vZGlmaWVkX2RhdGUiIC8+DQorDQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iY3JlYXRlZElkIiAgY29sdW1uPSJjcmVhdGVkX2lkIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1vZGlmaWVkSWQiIGNvbHVtbj0ibW9kaWZpZWRfaWQiIC8+DQorCQk8cHJvcGVydHkgbmFtZT0idGltZVpvbmVJZCIgY29sdW1uPSJ0aW1lem9uZSIgLz4NCisJCQ0KKyAgICAgICAgPHNldCBuYW1lPSJ1c2VyQXBwcyIgdGFibGU9IkZOX1VTRVJfUk9MRSIgbGF6eT0iZmFsc2UiIHNvcnQ9Im5hdHVyYWwiIGludmVyc2U9InRydWUiIGNhc2NhZGU9ImFsbC1kZWxldGUtb3JwaGFuIj4NCisgICAgICAgICAgICA8a2V5IGNvbHVtbj0idXNlcl9pZCIvPg0KKyAgICAgICAgICAgIDxvbmUtdG8tbWFueSBjbGFzcz0ib3JnLm9uYXAucG9ydGFsc2RrLmNvcmUuZG9tYWluLlVzZXJBcHAiIC8+DQorICAgICAgICA8L3NldD4NCisNCisgICAgICAgIDxzZXQgbmFtZT0icHNldWRvUm9sZXMiIHRhYmxlPSJGTl9VU0VSX1BTRVVET19ST0xFIiBsYXp5PSJmYWxzZSIgc29ydD0ibmF0dXJhbCI+DQorICAgICAgICAgICAgPGtleSBjb2x1bW49InVzZXJfaWQiLz4NCisgICAgICAgICAgICA8bWFueS10by1tYW55IGNvbHVtbj0icHNldWRvX3JvbGVfaWQiIGNsYXNzPSJvcmcub25hcC5wb3J0YWxzZGsuY29yZS5kb21haW4uUm9sZSIgLz4NCisgICAgICAgIDwvc2V0Pg0KKyAgICA8L2NsYXNzPg0KKw0KKyAgICAgPCEtLSBQcm9maWxlIGNsYXNzIG1hcHBpbmcgZGV0YWlsczsNCisgICAgIAkgIGR1cGUgb2YgVXNlciBjbGFzcywgYnV0IGZld2VyIGZpZWxkcyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IlByb2ZpbGUiIHRhYmxlPSJGTl9VU0VSIj4NCisgICAgICAgIDxpZCBuYW1lPSJpZCIgY29sdW1uPSJ1c2VyX2lkIiA+IA0KKwkJCTxnZW5lcmF0b3IgY2xhc3M9ImluY3JlbWVudCIvPg0KKyAgICAgICAgPC9pZD4JDQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmlyc3RfbmFtZSIgICAgIGNvbHVtbj0iZmlyc3RfbmFtZSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Imxhc3RfbmFtZSIgICAgICBjb2x1bW49Imxhc3RfbmFtZSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVtYWlsIiAgICAgICAgIGNvbHVtbj0iZW1haWwiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcmdNYW5hZ2VyVXNlcklkIiBjb2x1bW49Im9yZ19tYW5hZ2VyX3VzZXJpZCIgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhY3RpdmVfeW4iICAgICAgICBjb2x1bW49ImFjdGl2ZV95biIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9yZ1VzZXJJZCIgICAgICAgICBjb2x1bW49Im9yZ191c2VyX2lkIi8+DQorICAgCTwvY2xhc3M+DQorCQ0KKyAJPGNsYXNzIG5hbWU9IlVzZXJBcHAiIHRhYmxlPSJmbl91c2VyX3JvbGUiPg0KKyAgICAgICAgPGNvbXBvc2l0ZS1pZD4NCisgICAgICAgICAgICA8a2V5LXByb3BlcnR5IG5hbWU9InVzZXJJZCIgdHlwZT0ibG9uZyI+DQorICAgICAgICAgICAgICAgIDxjb2x1bW4gbmFtZT0idXNlcl9pZCIgcHJlY2lzaW9uPSIxMSIgc2NhbGU9IjAiIC8+DQorICAgICAgICAgICAgPC9rZXktcHJvcGVydHk+DQorICAgICAgICAJPGtleS1tYW55LXRvLW9uZSBuYW1lPSJhcHAiIGNsYXNzPSJvcmcub25hcC5wb3J0YWxzZGsuY29yZS5kb21haW4uQXBwIiBjb2x1bW49ImFwcF9pZCIgLz4NCisgICAgICAgIAk8a2V5LW1hbnktdG8tb25lIG5hbWU9InJvbGUiIGNsYXNzPSJvcmcub25hcC5wb3J0YWxzZGsuY29yZS5kb21haW4uUm9sZSIgY29sdW1uPSJyb2xlX2lkIiAvPg0KKyAgICAgICAgPC9jb21wb3NpdGUtaWQ+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0icHJpb3JpdHkiIHR5cGU9ImphdmEubGFuZy5TaG9ydCI+DQorICAgICAgICAgICAgPGNvbHVtbiBuYW1lPSJwcmlvcml0eSIgcHJlY2lzaW9uPSI0IiBzY2FsZT0iMCIgLz4NCisgICAgICAgIDwvcHJvcGVydHk+DQorICAgIDwvY2xhc3M+DQorDQorICAgIDwhLS0gQXBwIGNsYXNzIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IkFwcCIgdGFibGU9ImZuX2FwcCI+DQorICAgICAgICA8aWQgbmFtZT0iaWQiIGNvbHVtbj0iYXBwX2lkIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibmFtZSIgY29sdW1uPSJhcHBfbmFtZSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFwcFBhc3N3b3JkIiBjb2x1bW49ImFwcF9wYXNzd29yZCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InVzZXJuYW1lIiBjb2x1bW49ImFwcF91c2VybmFtZSIvPg0KKwkJPHByb3BlcnR5IG5hbWU9ImltYWdlVXJsIiBjb2x1bW49ImFwcF9pbWFnZV91cmwiLz4NCisJCTxwcm9wZXJ0eSBuYW1lPSJkZXNjcmlwdGlvbiIgY29sdW1uPSJhcHBfZGVzY3JpcHRpb24iLz4NCisJCTxwcm9wZXJ0eSBuYW1lPSJub3RlcyIgY29sdW1uPSJhcHBfbm90ZXMiLz4NCisJCTxwcm9wZXJ0eSBuYW1lPSJ1cmwiIGNvbHVtbj0iYXBwX3VybCIvPg0KKwkJPHByb3BlcnR5IG5hbWU9ImFsdGVybmF0ZVVybCIgY29sdW1uPSJhcHBfYWx0ZXJuYXRlX3VybCIvPg0KKwkJPHByb3BlcnR5IG5hbWU9InJlc3RFbmRwb2ludCIgY29sdW1uPSJhcHBfcmVzdF9lbmRwb2ludCIvPg0KKwkJPHByb3BlcnR5IG5hbWU9Im1sQXBwTmFtZSIgY29sdW1uPSJtbF9hcHBfbmFtZSIvPg0KKwkJPHByb3BlcnR5IG5hbWU9Im1sQXBwQWRtaW5JZCIgY29sdW1uPSJtbF9hcHBfYWRtaW5faWQiLz4NCisJCTxwcm9wZXJ0eSBuYW1lPSJtb3RzSWQiIGNvbHVtbj0ibW90c19pZCIvPg0KKwkJPHByb3BlcnR5IG5hbWU9Im9wZW4iIGNvbHVtbj0ib3BlbiIvPg0KKwkJPHByb3BlcnR5IG5hbWU9ImVuYWJsZWQiIGNvbHVtbj0iZW5hYmxlZCIvPg0KKwkJPHByb3BlcnR5IG5hbWU9InRodW1ibmFpbCIgY29sdW1uPSJ0aHVtYm5haWwiIHR5cGU9ImJsb2IiLz4NCisJCTxwcm9wZXJ0eSBuYW1lPSJ1ZWJLZXkiIGNvbHVtbj0idWViX2tleSIvPg0KKwkJPHByb3BlcnR5IG5hbWU9InVlYlNlY3JldCIgY29sdW1uPSJ1ZWJfc2VjcmV0Ii8+DQorCQk8cHJvcGVydHkgbmFtZT0idWViVG9waWNOYW1lIiBjb2x1bW49InVlYl90b3BpY19uYW1lIi8+DQorICAgIDwvY2xhc3M+DQorDQorDQorCTwhLS0gQXVkaXQgTG9nIGNsYXNzIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IkF1ZGl0TG9nIiB0YWJsZT0iZm5fYXVkaXRfbG9nIj4NCisgICAgICAgIDxpZCBuYW1lPSJpZCIgY29sdW1uPSJsb2dfaWQiPg0KKyAgICAgICAgICA8IS0tIDxnZW5lcmF0b3IgY2xhc3M9InNlcXVlbmNlIj4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ic2VxdWVuY2UiPnNlcV9mbl9hdWRpdF9sb2c8L3BhcmFtPg0KKyAgICAgICAgICA8L2dlbmVyYXRvcj4gLS0+DQorICAgICAgICAgIDxnZW5lcmF0b3IgY2xhc3M9Im5hdGl2ZSI+DQorCQkJPHBhcmFtIG5hbWU9InNlcXVlbmNlIj5zZXFfZm5fYXVkaXRfbG9nPC9wYXJhbT4NCisJCSAgPC9nZW5lcmF0b3I+DQorICAgICAgICA8L2lkPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFjdGl2aXR5Q29kZSIgICAgICBjb2x1bW49ImFjdGl2aXR5X2NkIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWZmZWN0ZWRSZWNvcmRJZCIgIGNvbHVtbj0iYWZmZWN0ZWRfcmVjb3JkX2lkIiAgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjb21tZW50cyIgICAgICAgICAgY29sdW1uPSJjb21tZW50cyIgIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iY3JlYXRlZElkIiAgICAgICAgIGNvbHVtbj0idXNlcl9pZCIgLz4NCisgICAgPC9jbGFzcz4NCisgICAgDQorICAgIDwhLS0gVXNlciBSb2xlIGNsYXNzIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IlJvbGUiIHRhYmxlPSJGTl9ST0xFIj4NCisgICAgICAgIDxpZCBuYW1lPSJpZCIgY29sdW1uPSJyb2xlX2lkIj4NCisgICAgICAgICAgIDxnZW5lcmF0b3IgY2xhc3M9Im5hdGl2ZSI+DQorICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJzZXF1ZW5jZSI+c2VxX2ZuX3JvbGU8L3BhcmFtPiANCisgICAgICAgICAgPC9nZW5lcmF0b3I+DQorICAgICAgICA8L2lkPg0KKw0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im5hbWUiICAgICAgY29sdW1uPSJyb2xlX25hbWUiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwcmlvcml0eSIgIGNvbHVtbj0icHJpb3JpdHkiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWN0aXZlIiAgICBjb2x1bW49ImFjdGl2ZV95biIgIHR5cGU9Inllc19ubyIvPg0KKw0KKyAgICAgICAgPHNldCBuYW1lPSJyb2xlRnVuY3Rpb25zIiB0YWJsZT0iRk5fUk9MRV9GVU5DVElPTiIgbGF6eT0iZmFsc2UiIHNvcnQ9Im5hdHVyYWwiPg0KKyAgICAgICAgICAgIDxrZXkgY29sdW1uPSJyb2xlX2lkIi8+DQorICAgICAgICAgICAgPG1hbnktdG8tbWFueSBjb2x1bW49ImZ1bmN0aW9uX2NkIiBjbGFzcz0ib3JnLm9uYXAucG9ydGFsc2RrLmNvcmUuZG9tYWluLlJvbGVGdW5jdGlvbiIvPg0KKyAgICAgICAgPC9zZXQ+DQorDQorICAgICAgICA8c2V0IG5hbWU9ImNoaWxkUm9sZXMiIHRhYmxlPSJGTl9ST0xFX0NPTVBPU0lURSIgbGF6eT0iZmFsc2UiIHNvcnQ9Im5hdHVyYWwiPg0KKyAgICAgICAgICAgIDxrZXkgY29sdW1uPSJwYXJlbnRfcm9sZV9pZCIvPg0KKyAgICAgICAgICAgIDxtYW55LXRvLW1hbnkgY29sdW1uPSJjaGlsZF9yb2xlX2lkIiBjbGFzcz0ib3JnLm9uYXAucG9ydGFsc2RrLmNvcmUuZG9tYWluLlJvbGUiLz4NCisgICAgICAgIDwvc2V0Pg0KKyAgICAgICAgDQorICAgICAgICA8c2V0IG5hbWU9InBhcmVudFJvbGVzIiB0YWJsZT0iRk5fUk9MRV9DT01QT1NJVEUiIGxhenk9ImZhbHNlIiBzb3J0PSJuYXR1cmFsIj4NCisgICAgICAgICAgICA8a2V5IGNvbHVtbj0iY2hpbGRfcm9sZV9pZCIvPg0KKyAgICAgICAgICAgIDxtYW55LXRvLW1hbnkgY29sdW1uPSJwYXJlbnRfcm9sZV9pZCIgY2xhc3M9Im9yZy5vbmFwLnBvcnRhbHNkay5jb3JlLmRvbWFpbi5Sb2xlIi8+DQorICAgICAgICA8L3NldD4NCisNCisgICAgPC9jbGFzcz4NCisgICAgDQorIA0KKw0KKyAgICA8IS0tIFVzZXIgUm9sZSBGdW5jdGlvbiBjbGFzcyBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJSb2xlRnVuY3Rpb24iIHRhYmxlPSJGTl9GVU5DVElPTiI+DQorICAgICAgICA8aWQgICAgICAgIG5hbWU9ImNvZGUiICBjb2x1bW49ImZ1bmN0aW9uX2NkIiAgIC8+DQorICAgICAgICA8cHJvcGVydHkgIG5hbWU9Im5hbWUiICBjb2x1bW49ImZ1bmN0aW9uX25hbWUiIC8+DQorICAgICAgICA8cHJvcGVydHkgIG5hbWU9InR5cGUiICBjb2x1bW49InR5cGUiIC8+DQorICAgICAgICA8cHJvcGVydHkgIG5hbWU9ImFjdGlvbiIgIGNvbHVtbj0iYWN0aW9uIiAvPg0KKyAgICA8L2NsYXNzPg0KKyAgICANCisgICAgPCEtLSBNZW51IGNsYXNzIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9Ik1lbnUiIHRhYmxlPSJGTl9NRU5VIj4NCisgICAgICAgIDxpZCBuYW1lPSJpZCIgY29sdW1uPSJtZW51X2lkIj4NCisgICAgICAgICAgPGdlbmVyYXRvciBjbGFzcz0ibmF0aXZlIj4NCisgICAgICAgICAgICAgPHBhcmFtIG5hbWU9InNlcXVlbmNlIj5zZXFfZm5fbWVudTwvcGFyYW0+IA0KKyAgICAgICAgICA8L2dlbmVyYXRvcj4NCisgICAgICAgIDwvaWQ+DQorDQorICAgICAgICAgPCEtLSA8cHJvcGVydHkgbmFtZT0ibWVudUxldmVsIiAgIGNvbHVtbj0ibGV2ZWwtMSIvPiAtLT4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiICAgICAgIGNvbHVtbj0ibGFiZWwiLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0icGFyZW50SWQiICAgIGNvbHVtbj0icGFyZW50X2lkIi8+DQorICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFjdGlvbiIgICAgICBjb2x1bW49ImFjdGlvbiIvPg0KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJmdW5jdGlvbkNkIiAgY29sdW1uPSJmdW5jdGlvbl9jZCIvPg0KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzb3J0T3JkZXIiICAgY29sdW1uPSJzb3J0X29yZGVyIi8+DQorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNlcnZsZXQiICAgICBjb2x1bW49InNlcnZsZXQiLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0icXVlcnlTdHJpbmciIGNvbHVtbj0icXVlcnlfc3RyaW5nIi8+DQorICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImV4dGVybmFsVXJsIiBjb2x1bW49ImV4dGVybmFsX3VybCIvPg0KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0YXJnZXQiICAgICAgY29sdW1uPSJ0YXJnZXQiLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWVudVNldENvZGUiIGNvbHVtbj0ibWVudV9zZXRfY2QiLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWN0aXZlIiAgICAgIGNvbHVtbj0iYWN0aXZlX3luIiAgICB0eXBlPSJ5ZXNfbm8iLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2VwYXJhdG9yIiAgIGNvbHVtbj0ic2VwYXJhdG9yX3luIiB0eXBlPSJ5ZXNfbm8iLz4NCisgICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1hZ2VTcmMiICAgIGNvbHVtbj0iaW1hZ2Vfc3JjIiAvPg0KKyAgICA8L2NsYXNzPg0KKw0KKyAgICA8Y2xhc3MgbmFtZT0iTWVudURhdGEiIHRhYmxlPSJGTl9NRU5VIj4NCisgICAgICAgIDwhLS0gIDxpZCAgICAgICBuYW1lPSJpZCIgICAgICAgICAgY29sdW1uPSJtZW51X2lkIi8+IC0tPg0KKyAgICAgICAgPGlkIG5hbWU9ImlkIiBjb2x1bW49Im1lbnVfaWQiPg0KKyAgICAgICAgICA8Z2VuZXJhdG9yIGNsYXNzPSJuYXRpdmUiPg0KKyAgICAgICAgICAgICA8cGFyYW0gbmFtZT0ic2VxdWVuY2UiPnNlcV9mbl9tZW51PC9wYXJhbT4gDQorICAgICAgICAgIDwvZ2VuZXJhdG9yPg0KKyAgICAgICAgPC9pZD4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsYWJlbCIgICAgICAgY29sdW1uPSJsYWJlbCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFjdGlvbiIgICAgICBjb2x1bW49ImFjdGlvbiIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImZ1bmN0aW9uQ2QiICBjb2x1bW49ImZ1bmN0aW9uX2NkIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ic29ydE9yZGVyIiAgIGNvbHVtbj0ic29ydF9vcmRlciIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InNlcnZsZXQiICAgICBjb2x1bW49InNlcnZsZXQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJxdWVyeVN0cmluZyIgY29sdW1uPSJxdWVyeV9zdHJpbmciLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJleHRlcm5hbFVybCIgY29sdW1uPSJleHRlcm5hbF91cmwiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0YXJnZXQiICAgICAgY29sdW1uPSJ0YXJnZXQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhY3RpdmUiICAgICAgY29sdW1uPSJhY3RpdmVfeW4iICAgIHR5cGU9Inllc19ubyIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InNlcGFyYXRvciIgICBjb2x1bW49InNlcGFyYXRvcl95biIgdHlwZT0ieWVzX25vIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1hZ2VTcmMiICAgIGNvbHVtbj0iaW1hZ2Vfc3JjIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1lbnVTZXRDb2RlIiBjb2x1bW49Im1lbnVfc2V0X2NkIiAgLz4NCisNCisgICAgICAgIDxtYW55LXRvLW9uZSBuYW1lPSJwYXJlbnRNZW51IiBjb2x1bW49InBhcmVudF9pZCIgY2xhc3M9Ik1lbnVEYXRhIi8+DQorDQorICAgICAgICA8c2V0IG5hbWU9ImNoaWxkTWVudXMiIGxhenk9ImZhbHNlIiBzb3J0PSJuYXR1cmFsIiBpbnZlcnNlPSJ0cnVlIiB3aGVyZT0iYWN0aXZlX3luID0gJ1knIj4NCisgICAgICAgICAgICA8a2V5IGNvbHVtbj0icGFyZW50X2lkIi8+DQorICAgICAgICAgICAgPG9uZS10by1tYW55IGNsYXNzPSJNZW51RGF0YSIvPg0KKyAgICAgICAgPC9zZXQ+DQorICAgIDwvY2xhc3M+DQorICAgIA0KKyAgICA8IS0tIEJyb2FkY2FzdCBNZXNzYWdlIGNsYXNzIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IkJyb2FkY2FzdE1lc3NhZ2UiIHRhYmxlPSJmbl9icm9hZGNhc3RfbWVzc2FnZSI+DQorICAgICAgICA8aWQgbmFtZT0iaWQiIGNvbHVtbj0ibWVzc2FnZV9pZCI+DQorICAgICAgICAgICAgPGdlbmVyYXRvciBjbGFzcz0ibmF0aXZlIj4NCisgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJzZXF1ZW5jZSI+c2VxX2ZuX2Jyb2FkY2FzdF9tZXNzYWdlPC9wYXJhbT4NCisgICAgICAgICAgICA8L2dlbmVyYXRvcj4NCisgICAgICAgIDwvaWQ+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWVzc2FnZVRleHQiIGNvbHVtbj0ibWVzc2FnZV90ZXh0Ii8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ibG9jYXRpb25JZCIgIGNvbHVtbj0ibWVzc2FnZV9sb2NhdGlvbl9pZCIvPg0KKw0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InN0YXJ0RGF0ZSIgICBjb2x1bW49ImJyb2FkY2FzdF9zdGFydF9kYXRlIiAgdHlwZT0idGltZXN0YW1wIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZW5kRGF0ZSIgICAgIGNvbHVtbj0iYnJvYWRjYXN0X2VuZF9kYXRlIiAgICB0eXBlPSJ0aW1lc3RhbXAiLz4NCisNCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzb3J0T3JkZXIiICAgY29sdW1uPSJzb3J0X29yZGVyIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWN0aXZlIiAgICAgIGNvbHVtbj0iYWN0aXZlX3luIiAgICAgICAgICAgICB0eXBlPSJ5ZXNfbm8iLz4NCisNCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaXRlQ2QiICAgICAgY29sdW1uPSJicm9hZGNhc3Rfc2l0ZV9jZCIgICAgLz4NCisgICAgPC9jbGFzcz4NCisgICAgDQorICAgIA0KKyAgICA8IS0tIFN0YXRlIExvb2t1cCBjbGFzcyBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJMdVN0YXRlIiB0YWJsZT0iRk5fTFVfU1RBVEUiPg0KKyAgICAgICAgPGlkICAgICAgIG5hbWU9ImFiYnIiICBjb2x1bW49InN0YXRlX2NkIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InN0YXRlIiAgICAgICAgICAgICAgICAgICAvPg0KKyAgICA8L2NsYXNzPg0KKyAgICANCisgICAgPCEtLSBDb3VudHJ5IExvb2t1cCBjbGFzcyBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJMdUNvdW50cnkiIHRhYmxlPSJGTl9MVV9DT1VOVFJZIj4NCisgICAgICAgIDxpZCAgICAgICBuYW1lPSJhYmJyIiAgY29sdW1uPSJjb3VudHJ5X2NkIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNvdW50cnkiICAgICAgICAgICAgICAgICAgIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZnVsbE5hbWUiIGNvbHVtbj0iZnVsbF9uYW1lIiAvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9IndlYnBob25lQ291bnRyeUxhYmVsIiBjb2x1bW49ImZ1bGx3ZWJwaG9uZV9jb3VudHJ5X2xhYmVsX25hbWUiIC8+DQorICAgIDwvY2xhc3M+DQorICAgIA0KKyAgICA8Y2xhc3MgbmFtZT0iTHVUaW1lWm9uZSIgdGFibGU9IkZOX0xVX1RJTUVaT05FIj4NCisgICAgICAgIDxpZCAgICAgICBuYW1lPSJ0aW1lem9uZUlkIiAgY29sdW1uPSJ0aW1lem9uZV9pZCIgLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJuYW1lIiBjb2x1bW49InRpbWV6b25lX25hbWUiIC8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0idmFsdWUiIGNvbHVtbj0idGltZXpvbmVfdmFsdWUiIC8+DQorICAgIDwvY2xhc3M+DQorDQorDQorICAgIDwhLS0gTG9va3VwIChpZC92YWx1ZSBiZWFuKSBjbGFzcyBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJMb29rdXAiPg0KKyAgICAgICAgPGNvbXBvc2l0ZS1pZCAgbmFtZT0ibmFtZVZhbHVlSWQiIGNsYXNzPSJvcmcub25hcC5wb3J0YWxzZGsuY29yZS5kb21haW4uc3VwcG9ydC5OYW1lVmFsdWVJZCI+DQorICAgICAgICAgIDxrZXktcHJvcGVydHkgbmFtZT0idmFsIi8+DQorICAgICAgICAgIDxrZXktcHJvcGVydHkgbmFtZT0ibGFiIiAvPg0KKyAgICAgICAgPC9jb21wb3NpdGUtaWQ+DQorICAgIDwvY2xhc3M+DQorDQorCTxjbGFzcyBuYW1lPSJVcmxzQWNjZXNzaWJsZSIgdGFibGU9IlZfVVJMX0FDQ0VTUyI+DQorICAgICAgPGNvbXBvc2l0ZS1pZCAgbmFtZT0idXJsc0FjY2Vzc2libGVLZXkiIGNsYXNzPSJvcmcub25hcC5wb3J0YWxzZGsuY29yZS5kb21haW4uVXJsc0FjY2Vzc2libGVLZXkiPg0KKyAgICAJPGtleS1wcm9wZXJ0eQluYW1lPSJ1cmwiCWNvbHVtbj0idXJsIi8+DQorICAgIAk8a2V5LXByb3BlcnR5ICAgbmFtZT0iZnVuY3Rpb25DZCIJY29sdW1uPSJmdW5jdGlvbl9jZCIvPg0KKyAgICAgIDwvY29tcG9zaXRlLWlkPg0KKyAgICA8L2NsYXNzPg0KKw0KKw0KKwk8cXVlcnkgbmFtZT0iUGFyZW50SWRGb3JMYWJlbExpc3QiPg0KKyAgICAgIHNlbGVjdCBkaXN0aW5jdCBtZC5wYXJlbnRNZW51LmlkIGZyb20gTWVudURhdGEgYXMgbWQgd2hlcmUgbWQubGFiZWwgPSA6cGFyYW1MYWJlbCBhbmQgbWQubGFiZWwgaXMgbm90IG51bGwNCisgICAgPC9xdWVyeT4NCisgICAgDQorCTxxdWVyeSBuYW1lPSJJZEZvckxhYmVsTGlzdCI+DQorICAgICAgc2VsZWN0IGRpc3RpbmN0IG1kLmlkIGZyb20gTWVudURhdGEgYXMgbWQgd2hlcmUgbWQubGFiZWwgPSA6cGFyYW1MYWJlbA0KKyAgICA8L3F1ZXJ5PiAgICANCisgICAgDQorCTxxdWVyeSBuYW1lPSJwYXJlbnRMaXN0Ij4NCisgICAgICBzZWxlY3QgZGlzdGluY3QgbWQuaWQsIG1kLmxhYmVsLCBtZC5wYXJlbnRNZW51LmlkIGZyb20gTWVudURhdGEgYXMgbWQgd2hlcmUgbWQubGFiZWwgaXMgbm90IG51bGwNCisgICAgPC9xdWVyeT4NCisgICAgCQ0KKwk8cXVlcnkgbmFtZT0iZnVuY3Rpb25DRGxpc3RPbGQiPg0KKyAgICAgIHNlbGVjdCBkaXN0aW5jdCBmdW5jdGlvbkNkIGZyb20gTWVudURhdGEgDQorICAgIDwvcXVlcnk+DQorDQorCTxxdWVyeSBuYW1lPSJmdW5jdGlvbkNEbGlzdCI+DQorICAgICAgc2VsZWN0IGRpc3RpbmN0IGNvZGUgZnJvbSBSb2xlRnVuY3Rpb24gDQorICAgIDwvcXVlcnk+ICAgDQorICAgICANCisJPHF1ZXJ5IG5hbWU9Im1lbnVEYXRhIj4NCisgICAgICBmcm9tIE1lbnVEYXRhIHdoZXJlIG1lbnVTZXRDb2RlID0gOm1lbnVfc2V0X2NkIGFuZCBwYXJlbnRNZW51IGlzIG51bGwNCisgICAgPC9xdWVyeT4NCisJPHF1ZXJ5IG5hbWU9InJlc3RyaWN0ZWRVcmxzIj4NCisgICAgICBGUk9NIFVybHNBY2Nlc3NpYmxlIEEgd2hlcmUgdXBwZXIoQS51cmxzQWNjZXNzaWJsZUtleS51cmwpID0gdXBwZXIoOmN1cnJlbnRfdXJsKQ0KKyAgICA8L3F1ZXJ5Pg0KKw0KKyAgICA8cXVlcnkgbmFtZT0iZ2V0VXNlck5hbWVCeUlkIj4NCisgICAgICBzZWxlY3QgZmlyc3ROYW1lLCBsYXN0TmFtZSBmcm9tIFVzZXIgd2hlcmUgaWQgPSA6dXNlcl9pZA0KKyAgICA8L3F1ZXJ5Pg0KKw0KKyAgICA8cXVlcnkgbmFtZT0iZ2V0VXNlckVtYWlsIj4NCisgICAgICBzZWxlY3QgZW1haWwgZnJvbSBVc2VyIHdoZXJlIGlkID0gOnVzZXJfaWQNCisgICAgPC9xdWVyeT4NCisNCisgICAgPHF1ZXJ5IG5hbWU9ImdldEFsbFVzZXJzIj4NCisgICAgICBzZWxlY3QgaWQsIGZpcnN0TmFtZSwgbGFzdE5hbWUgZnJvbSBVc2VyIHdoZXJlIGFjdGl2ZSA9IHRydWUgb3JkZXIgYnkgbGFzdE5hbWUsIGZpcnN0TmFtZQ0KKyAgICA8L3F1ZXJ5Pg0KKwkNCisgICAgPHF1ZXJ5IG5hbWU9ImdldFJvbGVOYW1lQnlJZCI+DQorICAgICAgc2VsZWN0IG5hbWUgZnJvbSBSb2xlIHdoZXJlIGlkID0gOnJvbGVfaWQNCisgICAgPC9xdWVyeT4NCisNCisgICAgPHF1ZXJ5IG5hbWU9ImdldEFsbFJvbGVzIj4NCisgICAgICBzZWxlY3QgaWQsIG5hbWUgZnJvbSBSb2xlIG9yZGVyIGJ5IG5hbWUNCisgICAgPC9xdWVyeT4JDQorICAgICAgDQorICAgICA8cXVlcnkgbmFtZT0iZ2V0VXNlckJ5UHJvZmlsZUlkIj4NCisgICAgICBzZWxlY3Qgb3JnVXNlcklkIGZyb20gVXNlciB3aGVyZSBpZCA9IDp1c2VyX2lkDQorICAgICA8L3F1ZXJ5Pg0KKyAgICANCisgICAgIDxxdWVyeSBuYW1lPSJnZXRVc2VySWRCeW9yZ1VzZXJJZCI+DQorICAgICAgc2VsZWN0IGlkIGZyb20gVXNlciB3aGVyZSBvcmdVc2VySWQgPSA6b3JnVXNlcklkDQorICAgICA8L3F1ZXJ5Pg0KKw0KKyAgICAgPHF1ZXJ5IG5hbWU9ImdldFVzZXJCeU9yZ1VzZXJJZCI+DQorCQlGUk9NIFVzZXIgV0hFUkUgb3JnVXNlcklkID0gOm9yZ191c2VyX2lkDQorICAgICA8L3F1ZXJ5Pg0KKw0KKyAgICAgPHF1ZXJ5IG5hbWU9ImdldFVzZXJCeUxvZ2luSWQiPg0KKwkJRlJPTSBVc2VyIFdIRVJFIGxvZ2luSWQgPSA6bG9naW5faWQNCisgICAgIDwvcXVlcnk+DQorDQorICAgICA8cXVlcnkgbmFtZT0iZ2V0VXNlckJ5TG9naW5JZExvZ2luUHdkIj4NCisJCUZST00gVXNlciBXSEVSRSBsb2dpbklkID0gOmxvZ2luX2lkIGFuZCBsb2dpblB3ZCA9IDpsb2dpbl9wd2QJCQ0KKyAgICAgPC9xdWVyeT4NCisNCis8L2hpYmVybmF0ZS1tYXBwaW5nPg0KZGlmZiAtLWdpdCBhL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9mdXNpb24vb3JtL1JOb3RlQm9va0ludGVncmF0aW9uLmhibS54bWwgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL29ybS9STm90ZUJvb2tJbnRlZ3JhdGlvbi5oYm0ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNzFhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZnVzaW9uL29ybS9STm90ZUJvb2tJbnRlZ3JhdGlvbi5oYm0ueG1sCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzwhLS0NCisgID09PT09PT09PT09PUxJQ0VOU0VfU1RBUlQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIE9OQVAgUG9ydGFsIFNESw0KKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgQ29weXJpZ2h0IMKpIDIwMTcgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIA0KKyAgVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIGFsbCBzb2Z0d2FyZSBjb250YWluZWQgaGVyZWluIGlzIGxpY2Vuc2VkDQorICB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUg4oCcTGljZW5zZeKAnSk7DQorICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorIA0KKyAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorIA0KKyAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorIA0KKyAgVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIGFsbCBkb2N1bWVudGF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMgbGljZW5zZWQNCisgIHVuZGVyIHRoZSBDcmVhdGl2ZSBDb21tb25zIExpY2Vuc2UsIEF0dHJpYnV0aW9uIDQuMCBJbnRsLiAodGhlIOKAnExpY2Vuc2XigJ0pOw0KKyAgeW91IG1heSBub3QgdXNlIHRoaXMgZG9jdW1lbnRhdGlvbiBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorIA0KKyAgICAgICAgICAgICAgaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC8NCisgDQorICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIGRvY3VtZW50YXRpb24NCisgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyANCisgID09PT09PT09PT09PUxJQ0VOU0VfRU5EPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgDQorICBFQ09NUCBpcyBhIHRyYWRlbWFyayBhbmQgc2VydmljZSBtYXJrIG9mIEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5Lg0KKyAgLS0+DQorDQorPCFET0NUWVBFIGhpYmVybmF0ZS1tYXBwaW5nIFBVQkxJQw0KKyAgICAgICAgIi0vL0hpYmVybmF0ZS9IaWJlcm5hdGUgTWFwcGluZyBEVEQgMy4wLy9FTiINCisgICAgICAgICJodHRwOi8vaGliZXJuYXRlLnNvdXJjZWZvcmdlLm5ldC9oaWJlcm5hdGUtbWFwcGluZy0zLjAuZHRkIj4NCisNCis8aGliZXJuYXRlLW1hcHBpbmcgcGFja2FnZT0ib3JnLm9uYXAucG9ydGFsc2RrLnJub3RlYm9va2ludGVncmF0aW9uLmRvbWFpbiI+DQorDQorICAgIA0KKwkgPCEtLSBSTm90ZWJvb2tJbnRlZ3JhdGlvbiBtYXBwaW5nIGRldGFpbHMgLS0+DQorICAgIDxjbGFzcyBuYW1lPSJSTm90ZUJvb2tDcmVkZW50aWFscyIgdGFibGU9InJjbG91ZGludm9jYXRpb24iPg0KKyAgICAgICAgPGlkIG5hbWU9InRva2VuIiBjb2x1bW49IklEIj4gDQorICAgICAgICAgIA0KKyAgICAgICAgPC9pZD4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjcmVhdGVkRGF0ZSIgICAgICAgICBjb2x1bW49ImNyZWF0ZWQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VyU3RyaW5nIiAgICAgY29sdW1uPSJ1c2VySW5mbyIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Im5vdGVib29rSUQiICAgICBjb2x1bW49Im5vdGVib29rSUQiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwYXJhbWV0ZXJzU3RyaW5nIiBjb2x1bW49InBhcmFtZXRlcnMiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0b2tlblJlYWREYXRlIiBjb2x1bW49InRva2VucmVhZGRhdGUiLz4NCisgICAgICAgIA0KKwk8L2NsYXNzPg0KKwkNCisJDQorCQ0KKzwvaGliZXJuYXRlLW1hcHBpbmc+DQpkaWZmIC0tZ2l0IGEvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2Z1c2lvbi9vcm0vV29ya2Zsb3cuaGJtLnhtbCBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9mdXNpb24vb3JtL1dvcmtmbG93LmhibS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhMmQxNQotLS0gL2Rldi9udWxsCisrKyBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9mdXNpb24vb3JtL1dvcmtmbG93LmhibS54bWwKQEAgLTAsMCArMSw2NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPCEtLQ0KKyAgPT09PT09PT09PT09TElDRU5TRV9TVEFSVD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgT05BUCBQb3J0YWwgU0RLDQorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBDb3B5cmlnaHQgwqkgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgDQorICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYWxsIHNvZnR3YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgbGljZW5zZWQNCisgIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSDigJxMaWNlbnNl4oCdKTsNCisgIHlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgDQorICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgDQorICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgDQorICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYWxsIGRvY3VtZW50YXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyBsaWNlbnNlZA0KKyAgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgTGljZW5zZSwgQXR0cmlidXRpb24gNC4wIEludGwuICh0aGUg4oCcTGljZW5zZeKAnSk7DQorICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBkb2N1bWVudGF0aW9uIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgDQorICAgICAgICAgICAgICBodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wLw0KKyANCisgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgZG9jdW1lbnRhdGlvbg0KKyAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorIA0KKyAgPT09PT09PT09PT09TElDRU5TRV9FTkQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyANCisgIA0KKyAgLS0+DQorDQorPCFET0NUWVBFIGhpYmVybmF0ZS1tYXBwaW5nIFBVQkxJQw0KKyAgICAgICAgIi0vL0hpYmVybmF0ZS9IaWJlcm5hdGUgTWFwcGluZyBEVEQgMy4wLy9FTiINCisgICAgICAgICJodHRwOi8vaGliZXJuYXRlLnNvdXJjZWZvcmdlLm5ldC9oaWJlcm5hdGUtbWFwcGluZy0zLjAuZHRkIj4NCisNCis8aGliZXJuYXRlLW1hcHBpbmcgcGFja2FnZT0ib3JnLm9uYXAucG9ydGFsc2RrLndvcmtmbG93LmRvbWFpbiI+DQorDQorICAgIA0KKwkgPCEtLSBXb3JrZmxvd1NjaGVkdWxlIG1hcHBpbmcgZGV0YWlscyAtLT4NCisgICAgPGNsYXNzIG5hbWU9IldvcmtmbG93U2NoZWR1bGUiIHRhYmxlPSJmbl9zY2hlZHVsZV93b3JrZmxvd3MiPg0KKyAgICAgICAgPGlkIG5hbWU9ImlkIiBjb2x1bW49ImlkX3NjaGVkdWxlX3dvcmtmbG93cyI+IA0KKyAgICAgICAgICA8Z2VuZXJhdG9yIGNsYXNzPSJuYXRpdmUiPg0KKyAgICAgICAgICA8L2dlbmVyYXRvcj4NCisgICAgICAgIDwvaWQ+DQorDQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2VydmVyVXJsIiAgICAgICAgIGNvbHVtbj0id29ya2Zsb3dfc2VydmVyX3VybCIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9IndvcmtmbG93S2V5IiAgICAgY29sdW1uPSJ3b3JrZmxvd19rZXkiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhcmd1bWVudHMiICAgICBjb2x1bW49IndvcmtmbG93X2FyZ3VtZW50cyIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNyb25EZXRhaWxzIiBjb2x1bW49InN0YXJ0RGF0ZVRpbWVDcm9uIi8+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0ic3RhcnREYXRlVGltZSIgY29sdW1uPSJzdGFydF9kYXRlX3RpbWUiLz4NCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJlbmREYXRlVGltZSIgY29sdW1uPSJlbmREYXRlVGltZSIvPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJlY3VycmVuY2UiIGNvbHVtbj0icmVjdXJyZW5jZSIvPg0KKyAgICAgICAgDQorCTwvY2xhc3M+DQorCQ0KKwkNCisJDQorPC9oaWJlcm5hdGUtbWFwcGluZz4NCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvaW5kZXguanNwIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjI3NGZmCi0tLSAvZGV2L251bGwKKysrIGIvb25hcC1lbmFibGVyLWluZnJhL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2luZGV4LmpzcApAQCAtMCwwICsxLDQyIEBACis8JS0tDQorICA9PT09PT09PT09PT1MSUNFTlNFX1NUQVJUPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBPTkFQIFBvcnRhbCBTREsNCisgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIENvcHlyaWdodCCpIDIwMTcgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIA0KKyAgVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIGFsbCBzb2Z0d2FyZSBjb250YWluZWQgaGVyZWluIGlzIGxpY2Vuc2VkDQorICB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgk0xpY2Vuc2WUKTsNCisgIHlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgDQorICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgDQorICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgDQorICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYWxsIGRvY3VtZW50YXRpb24gY29udGFpbmVkIGhlcmVpbiBpcyBsaWNlbnNlZA0KKyAgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgTGljZW5zZSwgQXR0cmlidXRpb24gNC4wIEludGwuICh0aGUgk0xpY2Vuc2WUKTsNCisgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGRvY3VtZW50YXRpb24gZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyANCisgICAgICAgICAgICAgIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS80LjAvDQorIA0KKyAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBkb2N1bWVudGF0aW9uDQorICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgDQorICA9PT09PT09PT09PT1MSUNFTlNFX0VORD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIA0KKyAgRUNPTVAgaXMgYSB0cmFkZW1hcmsgYW5kIHNlcnZpY2UgbWFyayBvZiBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4NCisgIC0tJT4NCis8JUAgdGFnbGliIHByZWZpeD0iYyIgdXJpPSJodHRwOi8vamF2YS5zdW4uY29tL2pzcC9qc3RsL2NvcmUiICU+DQorDQorPCUtLSBSZWRpcmVjdGVkIGJlY2F1c2Ugd2UgY2FuJ3Qgc2V0IHRoZSB3ZWxjb21lIHBhZ2UgdG8gYSB2aXJ0dWFsIFVSTC4gLS0lPg0KKzwlLS0gRm9yd2FyZCB0byB0aGUgaW50ZW5kZWQgc3RhcnQgcGFnZSB0byByZWR1Y2UgZnJ1c3RyYXRpb24gZm9yIG5ldyB1c2Vycy4gLS0lPiANCis8YzpyZWRpcmVjdCB1cmw9Ii9sb2dpbi5odG0iPjwvYzpyZWRpcmVjdD4NCmRpZmYgLS1naXQgYS9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL29uYXAtZW5hYmxlci1pbmZyYS9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZGUxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9vbmFwLWVuYWJsZXItaW5mcmEvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0vKi0NCisgICAgICAgICogPT09PT09PT09PT09TElDRU5TRV9TVEFSVD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgICogT1NBTSBDb3JlDQorICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAqIENvcHlyaWdodCAoQykgMjAxOCBBVCZUDQorICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAgICAgICAgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICAgICAgICAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAgICAgICAgKg0KKyAgICAgICAgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAgICAgICAgKg0KKyAgICAgICAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICAgICAgICAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICAgICAgICAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAgICAgICAgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICAgICAgICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAgICAgICAgKiA9PT09PT09PT09PT1MSUNFTlNFX0VORD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgKi8tLT4NCis8d2ViLWFwcCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KKyAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3htbG5zLmpjcC5vcmcveG1sL25zL2phdmFlZSIgDQorICAgICAgICAgeG1sbnM6d2ViPSJodHRwOi8veG1sbnMuamNwLm9yZy94bWwvbnMvamF2YWVlL3dlYi1hcHBfM18xLnhzZCINCisgICAgICAgICB2ZXJzaW9uPSIzLjEiIHhtbG5zPSJodHRwOi8veG1sbnMuamNwLm9yZy94bWwvbnMvamF2YWVlIj4NCisNCisJPGRpc3BsYXktbmFtZT5lY29tcC1zZGstYXBwLW9zPC9kaXNwbGF5LW5hbWU+DQorDQorCTwhLS0gVGhlIGFwcCBjYW4gZnVuY3Rpb24gb24gYSBIQSBjbHVzdGVyIC0tPg0KKwk8ZGlzdHJpYnV0YWJsZSAvPg0KKw0KKwk8c2Vzc2lvbi1jb25maWc+DQorCQk8c2Vzc2lvbi10aW1lb3V0PjMwPC9zZXNzaW9uLXRpbWVvdXQ+DQorCQk8dHJhY2tpbmctbW9kZT5DT09LSUU8L3RyYWNraW5nLW1vZGU+DQorCTwvc2Vzc2lvbi1jb25maWc+DQorCTxmaWx0ZXI+DQorICAgIDxmaWx0ZXItbmFtZT5TZWN1cml0eVhzc0ZpbHRlcjwvZmlsdGVyLW5hbWU+DQorICAgIDxmaWx0ZXItY2xhc3M+b3JnLm9uYXAucG9ydGFsYXBwLmZpbHRlci5TZWN1cml0eVhzc0ZpbHRlcjwvZmlsdGVyLWNsYXNzPg0KKyAgIDwvZmlsdGVyPiANCisgICAgPGZpbHRlci1tYXBwaW5nPg0KKyAgICA8ZmlsdGVyLW5hbWU+U2VjdXJpdHlYc3NGaWx0ZXI8L2ZpbHRlci1uYW1lPg0KKyAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPg0KKyAgPC9maWx0ZXItbWFwcGluZz4NCisNCis8L3dlYi1hcHA+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=