LyoKKiBBZGQvUmVtb3ZlIFByb2dyYW1zIEtvcmVhbiByZXNvdXJjZXMKKgoqIENvcHlyaWdodCAyMDAxLTIwMDIsIDIwMDggT3dlbiBSdWRnZQoqIENvcHlyaWdodCAyMDA4IFl1blNvbmcgSHdhbmcKKgoqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCioKKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgoqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKgoqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQoqCiovCgojaW5jbHVkZSAicmVzLmgiCgpMQU5HVUFHRSBMQU5HX0tPUkVBTiwgU1VCTEFOR19ERUZBVUxUCgpTVFJJTkdUQUJMRQp7CiAgIElEU19DUExfVElUTEUsICLHwbfOsde3pSDD37ChL7vowaYiCiAgIElEU19DUExfREVTQywgIrv1ILzSx8HGrr/+vu64piC8s8Shx8+wxbOqLMDMucwgvLPEobXIILzSx8HGrr/+vu64piC0573FwMcgxMTHu8XNv6G8rSC76MGmIMfSILz2IMDWvcC0z7TZLiIKICAgSURTX1RBQjFfVElUTEUsICLHwbfOsde3pSIKCiAgIElEU19VTklOU1RBTExfRkFJTEVELCAivvDAzr26xee3r7imIL3Hx+DH0iC89iC++L3AtM+02SwgJyVzJy4gtOe9xcC6IMDMIMfBt86x17elwMcgvvDAzr26xecgwaS6uLimILe5wfa9usauuK6/obytIMH2v+yw2r3AtM+x7j8iCiAgIElEU19OT1RfU1BFQ0lGSUVELCAiwfbBpLXHwfYgvsrAvSIKICAgSURTX0NPTFVNTl9OQU1FLCAiwMy4pyIKICAgSURTX0NPTFVNTl9QVUJMSVNIRVIsICLBpsDbu+ciCiAgIElEU19DT0xVTU5fVkVSU0lPTiwgIrn2wa8iCiAgIElEU19JTlNUQUxMX0ZJTFRFUiwgIryzxKEgx8G3zrHXt6UwKmluc3RhbCouZXhlOypzZXR1cCouZXhlOyoubXNpXDDHwbfOsde3pSAoKi5leGUpXDAqLmV4ZVwwuPC15yDGxMDPtekgKCouKilcMCouKlwwXDAiCn0KCklERF9NQUlOIERJQUxPRyAwLCAwLCAzMjAsIDIyMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAivLPEoS+76MGmIgpGT05UIDksICJNUyBTaGVsbCBEbGciCnsKIENPTlRST0wgIsfDt87HxyC18L26xamzqiC9w7Xwt9LAzLOqICzHz7XltfC9usWpv6G8rSC79SDHwbfOsde3pcC7ILyzxKHHz7fBuOkgIFu8s8ShXbimIMWsuK/Hz73KvcO/wC4iLCAxMDAwLCAiU1RBVElDIiwgU1NfTEVGVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQLCA0MCwgNywgMjcwLCAyMAogQ09OVFJPTCAivLPEoSgmSSkuLi4iLCBJRENfSU5TVEFMTCwgIkJVVFRPTiIsIEJTX1BVU0hCVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCAyNDYsIDI2LCA2NCwgMTQKIENPTlRST0wgIiIsIC0xLCAiU1RBVElDIiwgU1NfTEVGVCB8IFNTX1NVTktFTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgNywgNDYsIDMwMywgMQogQ09OVFJPTCAyLCAxMDAxLCAiU1RBVElDIiwgU1NfSUNPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgNywgNywgMjEsIDIwCiBDT05UUk9MICLAzCC80sfBxq6//r7utMIgwNq1v8C4t84gu+jBprXHvvrAuyC89rW1IMDWvcC0z7TZLryzxKG1yCCxuLy6v+S80rimILDtxKGwxbOqIMfBt86x17elwLsgwfa/7LfBuOkgLCDD37ChL7vowaYguPG3z7+hvK0gvLHFw8fPvcq9w7/ALi4iLCAxMDAyLCAiU1RBVElDIiwgU1NfTEVGVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQLCA0MCwgNTcsIDI3MCwgMzYKIENPTlRST0wgIiIsIElETF9QUk9HUkFNUywgIlN5c0xpc3RWaWV3MzIiLCBMVlNfUkVQT1JUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TT1JUQVNDRU5ESU5HIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfVEFCU1RPUCwgNywgOTAsIDMwMywgMTAwCiBDT05UUk9MICLD37ChL7vowaYoJlIpLi4iLCBJRENfQUREUkVNT1ZFLCAiQlVUVE9OIiwgQlNfUFVTSEJVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDI0NiwgMTk4LCA2NCwgMTQKIENPTlRST0wgIsH2v/ggIMGkurgoJlMpLi4uIiwgSURDX1NVUFBPUlRfSU5GTywgImJ1dHRvbiIsIEJTX1BVU0hCVVRUT04gfCBCU19DRU5URVIgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCAxNzYsIDE5OCwgNjQsIDE0CiBDT05UUk9MIDMsIDEwMDMsICJTVEFUSUMiLCBTU19JQ09OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCA3LCA1NywgMjEsIDIwCn0KCklERF9JTkZPIERJQUxPRyAwLCAwLCAyNTYsIDEzOApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfM0RMT09LIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwfa/+CDBpLq4IgpGT05UIDksICJNUyBTaGVsbCBEbGciCnsKIENPTlRST0wgIsiuwM4iLCBJRE9LLCAiQlVUVE9OIiwgQlNfREVGUFVTSEJVVFRPTiB8IEJTX0NFTlRFUiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDEwMywgMTE2LCA1MCwgMTQKIENPTlRST0wgIsDMIMGkuri0wiAlczogv6G8rSCx4rz6IMH2v/jAuyC53rHiIMCnx9ggu+e/67XLtM+02SIsIElEQ19JTkZPX0xBQkVMLCAic3RhdGljIiwgU1NfTEVGVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDksIDIyOCwgMTkKIENPTlRST0wgIsGmwNu75zoiLCAtMSwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDE2LCAzMCwgNjAsIDgKIENPTlRST0wgIrn2wa86IiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxNiwgNDAsIDYwLCA4CiBDT05UUk9MICK/rLb0w7M6IiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxNiwgNTAsIDYwLCA4CiBDT05UUk9MICLB9r/4IMGkurg6IiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxNiwgNjAsIDY0LCA4CiBDT05UUk9MICLB9r/4IMD8yK06IiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxNiwgNzAsIDY4LCA4CiBDT05UUk9MICLB1sDHu+fH1zoiLCAtMSwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDE2LCA4MCwgNjAsIDgKIENPTlRST0wgIsGmx7Agvve1pcDMxq46IiwgLTEsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxNiwgOTAsIDYwLCA4CiBDT05UUk9MICK8s7jtOiIsIC0xLCAic3RhdGljIiwgU1NfTEVGVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTYsIDEwMCwgNjAsIDgKIENPTlRST0wgIiIsIElEQ19JTkZPX1BVQkxJU0hFUiwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgMzAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fVkVSU0lPTiwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgNDAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fQ09OVEFDVCwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgNTAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fU1VQUE9SVCwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgNjAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fUEhPTkUsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMDQsIDcwLCAxMzYsIDgKIENPTlRST0wgIiIsIElEQ19JTkZPX1JFQURNRSwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgODAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fVVBEQVRFUywgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEwNCwgOTAsIDEzNiwgOAogQ09OVFJPTCAiIiwgSURDX0lORk9fQ09NTUVOVFMsICJzdGF0aWMiLCBTU19MRUZUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMDQsIDEwMCwgMTM2LCA4Cn0K