IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDQojIC0qLSBjb2Rpbmc6IGlzby04ODU5LTEgLSotDQoNCiIiIg0KUnVuIGEgUHl0aG9uIHNjcmlwdCB1bmRlciBob3RzaG90J3MgY29udHJvbC4NCg0KQWRhcHRlZCBmcm9tIGEgcG9zdGluZyBvbiBweXRob24tZGV2IGJ5IFdhbHRlciBE9nJ3YWxkDQoNCnVzYWdlICVwcm9nIFsgJXByb2cgYXJncyBdIGZpbGVuYW1lIFsgZmlsZW5hbWUgYXJncyBdDQoNCkFueSBhcmd1bWVudHMgYWZ0ZXIgdGhlIGZpbGVuYW1lIGFyZSB1c2VkIGFzIHN5cy5hcmd2IGZvciB0aGUgZmlsZW5hbWUuDQoiIiINCg0KaW1wb3J0IHN5cw0KaW1wb3J0IG9wdHBhcnNlDQppbXBvcnQgb3MNCmltcG9ydCBob3RzaG90DQppbXBvcnQgaG90c2hvdC5zdGF0cw0KDQpQUk9GSUxFID0gImhvdHNob3QucHJvZiINCg0KZGVmIHJ1bl9ob3RzaG90KGZpbGVuYW1lLCBwcm9maWxlLCBhcmdzKToNCiAgICBwcm9mID0gaG90c2hvdC5Qcm9maWxlKHByb2ZpbGUpDQogICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguZGlybmFtZShmaWxlbmFtZSkpDQogICAgc3lzLmFyZ3YgPSBbZmlsZW5hbWVdICsgYXJncw0KICAgIHByb2YucnVuKCJleGVjZmlsZSglcikiICUgZmlsZW5hbWUpDQogICAgcHJvZi5jbG9zZSgpDQogICAgc3RhdHMgPSBob3RzaG90LnN0YXRzLmxvYWQocHJvZmlsZSkNCiAgICBzdGF0cy5zb3J0X3N0YXRzKCJ0aW1lIiwgImNhbGxzIikNCg0KICAgICMgcHJpbnRfc3RhdHMgdXNlcyB1bmFkb3JuZWQgcHJpbnQgc3RhdGVtZW50cywgc28gdGhlIG9ubHkgd2F5DQogICAgIyB0byBmb3JjZSBvdXRwdXQgdG8gc3RkZXJyIGlzIHRvIHJlYXNzaWduIHN5cy5zdGRvdXQgdGVtcG9yYXJpbHkNCiAgICBzYXZlX3N0ZG91dCA9IHN5cy5zdGRvdXQNCiAgICBzeXMuc3Rkb3V0ID0gc3lzLnN0ZGVycg0KICAgIHN0YXRzLnByaW50X3N0YXRzKCkNCiAgICBzeXMuc3Rkb3V0ID0gc2F2ZV9zdGRvdXQNCg0KICAgIHJldHVybiAwDQoNCmRlZiBtYWluKGFyZ3MpOg0KICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcihfX2RvY19fKQ0KICAgIHBhcnNlci5kaXNhYmxlX2ludGVyc3BlcnNlZF9hcmdzKCkNCiAgICBwYXJzZXIuYWRkX29wdGlvbigiLXAiLCAiLS1wcm9maWxlIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9UFJPRklMRSwNCiAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJwcm9maWxlIiwgaGVscD0nU3BlY2lmeSBwcm9maWxlIGZpbGUgdG8gdXNlJykNCiAgICAob3B0aW9ucywgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQ0KDQogICAgaWYgbGVuKGFyZ3MpID09IDA6DQogICAgICAgIHBhcnNlci5wcmludF9oZWxwKCJtaXNzaW5nIHNjcmlwdCB0byBleGVjdXRlIikNCiAgICAgICAgcmV0dXJuIDENCg0KICAgIGZpbGVuYW1lID0gYXJnc1swXQ0KICAgIHJldHVybiBydW5faG90c2hvdChmaWxlbmFtZSwgb3B0aW9ucy5wcm9maWxlLCBhcmdzWzE6XSkNCg0KaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoNCiAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2WzE6XSkpDQo=