A/MNCk1crFFjAAAAAAAAAAAFAAAAQAAAAHN+AAAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAZAMAZwEAWgMAZAMAZAYAZAQAhAAAgwAAWVoEAGQFAIQAAFoFAHkQAGQBAGQCAGwGAFoGAFduEQAEZQcAawoAcmYAAQEBbhQAWGUGAGoIAGUEAIMAAGoJAIMBAAFkAgBTKAcAAABzQwYAAFdvcmQgY29tcGxldGlvbiBmb3IgR05VIHJlYWRsaW5lLgoKVGhlIGNvbXBsZXRlciBjb21wbGV0ZXMga2V5d29yZHMsIGJ1aWx0LWlucyBhbmQgZ2xvYmFscyBpbiBhIHNlbGVjdGFibGUKbmFtZXNwYWNlICh3aGljaCBkZWZhdWx0cyB0byBfX21haW5fXyk7IHdoZW4gY29tcGxldGluZyBOQU1FLk5BTUUuLi4sIGl0CmV2YWx1YXRlcyAoISkgdGhlIGV4cHJlc3Npb24gdXAgdG8gdGhlIGxhc3QgZG90IGFuZCBjb21wbGV0ZXMgaXRzIGF0dHJpYnV0ZXMuCgpJdCdzIHZlcnkgY29vbCB0byBkbyAiaW1wb3J0IHN5cyIgdHlwZSAic3lzLiIsIGhpdCB0aGUgY29tcGxldGlvbiBrZXkgKHR3aWNlKSwKYW5kIHNlZSB0aGUgbGlzdCBvZiBuYW1lcyBkZWZpbmVkIGJ5IHRoZSBzeXMgbW9kdWxlIQoKVGlwOiB0byB1c2UgdGhlIHRhYiBrZXkgYXMgdGhlIGNvbXBsZXRpb24ga2V5LCBjYWxsCgogICAgcmVhZGxpbmUucGFyc2VfYW5kX2JpbmQoInRhYjogY29tcGxldGUiKQoKTm90ZXM6CgotIEV4Y2VwdGlvbnMgcmFpc2VkIGJ5IHRoZSBjb21wbGV0ZXIgZnVuY3Rpb24gYXJlICppZ25vcmVkKiAoYW5kIGdlbmVyYWxseSBjYXVzZQogIHRoZSBjb21wbGV0aW9uIHRvIGZhaWwpLiAgVGhpcyBpcyBhIGZlYXR1cmUgLS0gc2luY2UgcmVhZGxpbmUgc2V0cyB0aGUgdHR5CiAgZGV2aWNlIGluIHJhdyAob3IgY2JyZWFrKSBtb2RlLCBwcmludGluZyBhIHRyYWNlYmFjayB3b3VsZG4ndCB3b3JrIHdlbGwKICB3aXRob3V0IHNvbWUgY29tcGxpY2F0ZWQgaG9vcGxhIHRvIHNhdmUsIHJlc2V0IGFuZCByZXN0b3JlIHRoZSB0dHkgc3RhdGUuCgotIFRoZSBldmFsdWF0aW9uIG9mIHRoZSBOQU1FLk5BTUUuLi4gZm9ybSBtYXkgY2F1c2UgYXJiaXRyYXJ5IGFwcGxpY2F0aW9uCiAgZGVmaW5lZCBjb2RlIHRvIGJlIGV4ZWN1dGVkIGlmIGFuIG9iamVjdCB3aXRoIGEgX19nZXRhdHRyX18gaG9vayBpcyBmb3VuZC4KICBTaW5jZSBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGFwcGxpY2F0aW9uIChvciB0aGUgdXNlcikgdG8gZW5hYmxlIHRoaXMKICBmZWF0dXJlLCBJIGNvbnNpZGVyIHRoaXMgYW4gYWNjZXB0YWJsZSByaXNrLiAgTW9yZSBjb21wbGljYXRlZCBleHByZXNzaW9ucwogIChlLmcuIGZ1bmN0aW9uIGNhbGxzIG9yIGluZGV4aW5nIG9wZXJhdGlvbnMpIGFyZSAqbm90KiBldmFsdWF0ZWQuCgotIEdOVSByZWFkbGluZSBpcyBhbHNvIHVzZWQgYnkgdGhlIGJ1aWx0LWluIGZ1bmN0aW9ucyBpbnB1dCgpIGFuZApyYXdfaW5wdXQoKSwgYW5kIHRodXMgdGhlc2UgYWxzbyBiZW5lZml0L3N1ZmZlciBmcm9tIHRoZSBjb21wbGV0ZXIKZmVhdHVyZXMuICBDbGVhcmx5IGFuIGludGVyYWN0aXZlIGFwcGxpY2F0aW9uIGNhbiBiZW5lZml0IGJ5CnNwZWNpZnlpbmcgaXRzIG93biBjb21wbGV0ZXIgZnVuY3Rpb24gYW5kIHVzaW5nIHJhd19pbnB1dCgpIGZvciBhbGwKaXRzIGlucHV0LgoKLSBXaGVuIHRoZSBvcmlnaW5hbCBzdGRpbiBpcyBub3QgYSB0dHkgZGV2aWNlLCBHTlUgcmVhZGxpbmUgaXMgbmV2ZXIKICB1c2VkLCBhbmQgdGhpcyBtb2R1bGUgKGFuZCB0aGUgcmVhZGxpbmUgbW9kdWxlKSBhcmUgc2lsZW50bHkgaW5hY3RpdmUuCgpp/////050CQAAAENvbXBsZXRlcmMAAAAAAAAAAAIAAABCAAAAczgAAABlAABaAQBkBQBkAACEAQBaAwBkAQCEAABaBABkAgCEAABaBQBkAwCEAABaBgBkBACEAABaBwBSUygGAAAAYwIAAAACAAAABAAAAEMAAABzUAAAAHwBAHIiAHQAAHwBAHQBAIMCAAxyIgB0AgBkAQCCAgBuAAB8AQBkBABrCAByOgBkAgB8AABfBABuEgBkAwB8AABfBAB8AQB8AABfBQBkBABTKAUAAABz4QEAAENyZWF0ZSBhIG5ldyBjb21wbGV0ZXIgZm9yIHRoZSBjb21tYW5kIGxpbmUuCgogICAgICAgIENvbXBsZXRlcihbbmFtZXNwYWNlXSkgLT4gY29tcGxldGVyIGluc3RhbmNlLgoKICAgICAgICBJZiB1bnNwZWNpZmllZCwgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIHdoZXJlIGNvbXBsZXRpb25zIGFyZSBwZXJmb3JtZWQKICAgICAgICBpcyBfX21haW5fXyAodGVjaG5pY2FsbHksIF9fbWFpbl9fLl9fZGljdF9fKS4gTmFtZXNwYWNlcyBzaG91bGQgYmUKICAgICAgICBnaXZlbiBhcyBkaWN0aW9uYXJpZXMuCgogICAgICAgIENvbXBsZXRlciBpbnN0YW5jZXMgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGNvbXBsZXRpb24gbWVjaGFuaXNtIG9mCiAgICAgICAgcmVhZGxpbmUgdmlhIHRoZSBzZXRfY29tcGxldGVyKCkgY2FsbDoKCiAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihDb21wbGV0ZXIobXlfbmFtZXNwYWNlKS5jb21wbGV0ZSkKICAgICAgICBzHgAAAG5hbWVzcGFjZSBtdXN0IGJlIGEgZGljdGlvbmFyeWkBAAAAaQAAAABOKAYAAAB0CgAAAGlzaW5zdGFuY2V0BAAAAGRpY3R0CQAAAFR5cGVFcnJvcnQEAAAATm9uZXQLAAAAdXNlX21haW5fbnN0CQAAAG5hbWVzcGFjZSgCAAAAdAQAAABzZWxmUgYAAAAoAAAAACgAAAAAc1MAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9ybGNv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