PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cgo8IS0tIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDA2LiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgLS0+CjwhLS0gU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIC0tPgo8IS0tIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAtLT4KPGh0bWw+CiAgPGhlYWQ+CgogICAgPHRpdGxlPkJvb3N0LlB5dGhvbiAtICZsdDtib29zdC9weXRob24vc3RsX2l0ZXJhdG9yLmhwcCZndDs8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PQoiSFRNTCBUaWR5IGZvciBXaW5kb3dzICh2ZXJzIDFzdCBBdWd1c3QgMjAwMiksIHNlZSB3d3cudzMub3JnIiAgICA+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2Jvb3N0LmNzcyI+CiAgPC9oZWFkPgoKICA8Ym9keT4KICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI3IiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9CmhlYWRlciAgICA+CiAgICAgIDx0cj4KICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIzMDAiPgogICAgICAgICAgPGgzPjxhIGhyZWY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bSI+PGltZyBoZWlnaHQ9Ijg2IiB3aWR0aD0iMjc3IgogICAgICAgICAgYWx0PSJDKysgQm9vc3QiIHNyYz0iLi4vLi4vLi4vLi4vYm9vc3QucG5nIiBib3JkZXI9IjAiPjwvYT48L2gzPgogICAgICAgIDwvdGQ+CgogICAgICAgIDx0ZCB2YWxpZ249InRvcCI+CiAgICAgICAgICA8aDEgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vaW5kZXguaHRtbCI+Qm9vc3QuUHl0aG9uPC9hPjwvaDE+CgogICAgICAgICAgPGgyIGFsaWduPSJjZW50ZXIiPkhlYWRlciAmbHQ7Ym9vc3QvcHl0aG9uL3N0bF9pdGVyYXRvci5ocHAmZ3Q7PC9oMj4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KICAgIDxocj4KCiAgICA8aDI+Q29udGVudHM8L2gyPgogICAgPGRsIGNsYXNzPSJwYWdlLWluZGV4Ij4KICAgICAgPGR0PjxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT48L2R0PgoKICAgICAgPGR0PjxhIGhyZWY9IiNjbGFzc2VzIj5DbGFzc2VzPC9hPjwvZHQ+CgogICAgICA8ZGQ+CiAgICAgICAgPGRsIGNsYXNzPSJwYWdlLWluZGV4Ij4KICAgICAgICAgIDxkdD48YSBocmVmPSIjc3RsX2lucHV0X2l0ZXJhdG9yLXNwZWMiPkNsYXNzIHRlbXBsYXRlCiAgICAgICAgICA8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3I8L2NvZGU+PC9hPjwvZHQ+CgogICAgICAgICAgPGRkPgogICAgICAgICAgICA8ZGwgY2xhc3M9InBhZ2UtaW5kZXgiPgogICAgICAgICAgICAgIDxkdD48YSBocmVmPSIjc3RsX2lucHV0X2l0ZXJhdG9yLXNwZWMtc3lub3BzaXMiPkNsYXNzCiAgICAgICAgICAgICAgPGNvZGU+c3RsX2lucHV0X2l0ZXJhdG9yPC9jb2RlPiBzeW5vcHNpczwvYT48L2R0PgoKICAgICAgICAgICAgICA8ZHQ+PGEgaHJlZj0iI3N0bF9pbnB1dF9pdGVyYXRvci1zcGVjLWNvbnN0cnVjdG9ycyI+Q2xhc3MgdGVtcGxhdGUKICAgICAgICAgICAgICA8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3I8L2NvZGU+IGNvbnN0cnVjdG9yczwvYT48L2R0PgoKICAgICAgICAgICAgICA8ZHQ+PGEgaHJlZj0iI3N0bF9pbnB1dF9pdGVyYXRvci1zcGVjLW1vZGlmaWVycyI+Q2xhc3MgdGVtcGxhdGUKICAgICAgICAgICAgICA8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3I8L2NvZGU+IG1vZGlmaWVyczwvYT48L2R0PgoKICAgICAgICAgICAgICA8ZHQ+PGEgaHJlZj0iI3N0bF9pbnB1dF9pdGVyYXRvci1zcGVjLW9ic2VydmVycyI+Q2xhc3MgdGVtcGxhdGUKICAgICAgICAgICAgICA8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3I8L2NvZGU+IG9ic2VydmVyczwvYT48L2R0PgogICAgICAgICAgICA8L2RsPgogICAgICAgICAgPC9kZD4KICAgICAgICA8L2RsPgogICAgICA8L2RkPgoKICAgICAgPGR0PjxhIGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9kdD4KICAgIDwvZGw+CiAgICA8aHI+CgogICAgPGgyPjxhIG5hbWU9ImludHJvZHVjdGlvbiI+PC9hPkludHJvZHVjdGlvbjwvaDI+CgogICAgPHA+PGNvZGU+Jmx0O2Jvb3N0L3B5dGhvbi9zdGxfaXRlcmF0b3IuaHBwJmd0OzwvY29kZT4gcHJvdmlkZXMgdHlwZXMKICAgIGZvciBjcmVhdGluZyA8YSBocmVmPSJodHRwOi8vd3d3LnNnaS5jb20vdGVjaC9zdGwvSXRlcmF0b3JzLmh0bWwiPkMrKwogICAgSXRlcmF0b3JzPC9hPiBmcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cucHl0aG9uLm9yZy9kb2MvY3VycmVudC9saWIvdHlwZWl0ZXIuaHRtbCI+CiAgICBQeXRob24gaXRlcmFibGVzPC9hPi48L3A+CgogICAgPGgyPjxhIG5hbWU9ImNsYXNzZXMiPjwvYT5DbGFzc2VzPC9oMj4KCiAgICA8aDM+PGEgbmFtZT0ic3RsX2lucHV0X2l0ZXJhdG9yLXNwZWMiPjwvYT5DbGFzcyBUZW1wbGF0ZQogICAgPGNvZGU+c3RsX2lucHV0X2l0ZXJhdG9yPC9jb2RlPjwvaDM+CgogICAgPHA+SW5zdGFuY2VzIG9mIDxjb2RlPnN0bF9pbnB1dF9pdGVyYXRvciZsdDtUJmd0OzwvY29kZT4gaG9sZCBhIFB5dGhvbgogICAgaXRlcmF0b3IgYW5kIGFkYXB0IGl0IGZvciB1c2Ugd2l0aCBTVEwgYWxnb3JpdGhtcy4KICAgIDxjb2RlPnN0bF9pbnB1dF9pdGVyYXRvciZsdDtUJmd0OzwvY29kZT4gc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgZm9yCiAgICBhbiA8YSBocmVmPSJodHRwOi8vd3d3LnNnaS5jb20vdGVjaC9zdGwvSW5wdXRJdGVyYXRvci5odG1sIj5JbnB1dCBJdGVyYXRvcjwvYT4uCiAgICA8L3A+CgogICAgPHRhYmxlIGJvcmRlcj0iMSIgc3VtbWFyeT0ic3RsX2lucHV0X2l0ZXJhdG9yIHRlbXBsYXRlIHBhcmFtZXRlcnMiPgogICAgICA8dHI+CiAgICAgICAgPHRoPlRlbXBsYXRlIFBhcmFtZXRlcjwvdGg+CgogICAgICAgIDx0aD5SZXF1aXJlbWVudHM8L3RoPgoKICAgICAgICA8dGg+U2VtYW50aWNzPC90aD4KCiAgICAgICAgPHRoPkRlZmF1bHQ8L3RoPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZT5WYWx1ZVR5cGU8L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPjxjb2RlPlZhbHVlVHlwZTwvY29kZT4gbXVzdCBiZSBDb3B5Q29uc3RydWN0aWJsZS48L3RkPgoKICAgICAgICA8dGQ+RGVyZWZlcmVuY2luZyBhbiBpbnN0YW5jZSBvZiA8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3ImbHQ7VmFsdWVUeXBlJmd0OzwvY29kZT4KICAgICAgICB3aWxsIHJldHVybiBhbiBydmFsdWUgb2YgdHlwZSA8Y29kZT5WYWx1ZVR5cGU8L2NvZGU+LjwvdGQ+CgogICAgICAgIDx0ZD48aT5Ob25lPC9pPjwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgoKICAgIDxoND48YSBuYW1lPSJzdGxfaW5wdXRfaXRlcmF0b3Itc3BlYy1zeW5vcHNpcyI+PC9hPkNsYXNzIFRlbXBsYXRlIHN0bF9pbnB1dF9pdGVyYXRvcgogICAgc3lub3BzaXM8L2g0PgoKPHByZT4KbmFtZXNwYWNlIGJvb3N0IHsgbmFtZXNwYWNlIHB5dGhvbgp7CiAgdGVtcGxhdGUgJmx0O2NsYXNzIFZhbHVlVHlwZSZndDsKICBzdHJ1Y3Qgc3RsX2lucHV0X2l0ZXJhdG9yCiAgewogICAgICB0eXBlZGVmIHN0ZDo6cHRyZGlmZl90IGRpZmZlcmVuY2VfdHlwZTsKICAgICAgdHlwZWRlZiBWYWx1ZVR5cGUgdmFsdWVfdHlwZTsKICAgICAgdHlwZWRlZiBWYWx1ZVR5cGUqIHBvaW50ZXI7CiAgICAgIHR5cGVkZWYgVmFsdWVUeXBlIHJlZmVyZW5jZTsKICAgICAgdHlwZWRlZiBzdGQ6OmlucHV0X2l0ZXJhdG9yX3RhZyBpdGVyYXRvcl9jYXRlZ29yeTsKCiAgICAgIHN0bF9pbnB1dF9pdGVyYXRvcigpOwogICAgICBzdGxfaW5wdXRfaXRlcmF0b3IoPGEgaHJlZj0ib2JqZWN0Lmh0bWwjb2JqZWN0LXNwZWMiPm9iamVjdDwvYT4gY29uc3QmYW1wOyBvYik7CgogICAgICBzdGxfaW5wdXRfaXRlcmF0b3ImYW1wOyBvcGVyYXRvcisrKCk7CiAgICAgIHN0bF9pbnB1dF9pdGVyYXRvciBvcGVyYXRvcisrKGludCk7CgogICAgICBWYWx1ZVR5cGUgb3BlcmF0b3IqKCkgY29uc3Q7CgogICAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KHN0bF9pbnB1dF9pdGVyYXRvciBjb25zdCZhbXA7IGxocywgc3RsX2lucHV0X2l0ZXJhdG9yIGNvbnN0JmFtcDsgcmhzKTsKICAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3IhPShzdGxfaW5wdXRfaXRlcmF0b3IgY29uc3QmYW1wOyBsaHMsIHN0bF9pbnB1dF9pdGVyYXRvciBjb25zdCZhbXA7IHJocyk7CiAgcHJpdmF0ZToKICAgICAgPGEgaHJlZj0ib2JqZWN0Lmh0bWwjb2JqZWN0LXNwZWMiPm9iamVjdDwvYT4gaXQ7IC8vIEZvciBleHBvc2l0aW9uIG9ubHkKICAgICAgPGEgaHJlZj0ib2JqZWN0Lmh0bWwjb2JqZWN0LXNwZWMiPm9iamVjdDwvYT4gb2I7IC8vIEZvciBleHBvc2l0aW9uIG9ubHkKICB9Owp9fQo8L3ByZT4KCiAgICA8aDQ+CiAgICAgIDxhIG5hbWU9InN0bF9pbnB1dF9pdGVyYXRvci1zcGVjLWNvbnN0cnVjdG9ycyI+PC9hPkNsYXNzIFRlbXBsYXRlIDxjb2RlPnN0bF9pbnB1dF9pdGVyYXRvcjwvY29kZT4KICAgICAgY29uc3RydWN0b3JzCiAgICA8L2g0PgoKPHByZT4Kc3RsX2lucHV0X2l0ZXJhdG9yKCkKPC9wcmU+CgogICAgPGRsIGNsYXNzPSJmdW5jdGlvbi1zZW1hbnRpY3MiPgogICAgICA8ZHQ+PGI+RWZmZWN0czo8L2I+CiAgICAgICAgQ3JlYXRlcyBhIHBhc3QtdGhlLWVuZCBpbnB1dCBpdGVyYXRvciwgdXNlZnVsIGZvciBzaWduaWZ5aW5nIHRoZSBlbmQgb2YgYSBzZXF1ZW5jZS4KICAgICAgPC9kdD4KICAgICAgPGR0PjxiPlBvc3Rjb25kaXRpb25zOjwvYj4gPGNvZGU+dGhpczwvY29kZT4gaXMgcGFzdC10aGUtZW5kLjwvZHQ+CiAgICAgIDxkdD48Yj5UaHJvd3M6PC9iPiBOb3RoaW5nLjwvZHQ+CiAgICA8L2RsPgoKPHByZT4Kc3RsX2lucHV0X2l0ZXJhdG9yKG9iamVjdCBjb25zdCZhbXA7IG9iKQo8L3ByZT4KCiAgICA8ZGwgY2xhc3M9ImZ1bmN0aW9uLXNlbWFudGljcyI+CiAgICAgIDxkdD48Yj5FZmZlY3RzOjwvYj4KICAgICAgICBDYWxscyA8Y29kZT5vYi5hdHRyKCJfX2l0ZXJfXyIpKCk8L2NvZGU+IGFuZCBzdG9yZXMgdGhlIHJlc3VsdGluZyBQeXRob24gaXRlcmF0b3IKICAgICAgICBvYmplY3QgaW4gPGNvZGU+dGhpcy0mZ3Q7aXQ8L2NvZGU+LiBUaGVuLCBjYWxscyA8Y29kZT50aGlzLSZndDtpdC5hdHRyKCJuZXh0IikoKTwvY29kZT4gYW5kCiAgICAgICAgc3RvcmVzIHRoZSByZXN1bHQgaW4gPGNvZGU+dGhpcy0mZ3Q7b2I8L2NvZGU+LiBJZiB0aGUgc2VxdWVuY2UgaXMgZXhoYXVzdGVkLCBzZXRzCiAgICAgICAgPGNvZGU+dGhpcy0mZ3Q7b2I8L2NvZGU+IHRvIDxjb2RlPm9iamVjdCgpPC9jb2RlPi4KICAgICAgPC9kdD4KCiAgICAgIDxkdD48Yj5Qb3N0Y29uZGl0aW9uczo8L2I+IDxjb2RlPnRoaXM8L2NvZGU+IGlzIGEgZGVyZWZlcmVuY2VhYmxlIG9yIHBhc3QtdGhlLWVuZC48L2R0PgogICAgPC9kbD4KCiAgICA8aDQ+CiAgICAgIDxhIG5hbWU9InN0bF9pbnB1dF9pdGVyYXRvci1zcGVjLW1vZGlmaWVycyI+PC9hPkNsYXNzIFRlbXBsYXRlIDxjb2RlPnN0bF9pbnB1dF9pdGVyYXRvcjwvY29kZT4KICAgICAgbW9kaWZpZXJzCiAgICA8L2g0PgoKPHByZT4Kc3RsX2lucHV0X2l0ZXJhdG9yJmFtcDsgb3BlcmF0b3IrKygpCjwvcHJlPgoKICAgIDxkbCBjbGFzcz0iZnVuY3Rpb24tc2VtYW50aWNzIj4KICAgICAgPGR0PjxiPkVmZmVjdHM6PC9iPgogICAgICAgIENhbGxzIDxjb2RlPnRoaXMtJmd0O2l0LmF0dHIoIm5leHQiKSgpPC9jb2RlPiBhbmQgc3RvcmVzIHRoZSByZXN1bHQgaW4KICAgICAgICA8Y29kZT50aGlzLSZndDtvYjwvY29kZT4uIElmIHRoZSBzZXF1ZW5jZSBpcyBleGhhdXN0ZWQsIHNldHMgPGNvZGU+dGhpcy0mZ3Q7b2I8L2NvZGU+CiAgICAgICAgdG8gPGNvZGU+b2JqZWN0KCk8L2NvZGU+LgogICAgICA8L2R0PgoKICAgICAgPGR0PjxiPlBvc3Rjb25kaXRpb25zOjwvYj4gPGNvZGU+dGhpczwvY29kZT4gaXMgYSBkZXJlZmVyZW5jZWFibGUgb3IgcGFzdC10aGUtZW5kLjwvZHQ+CgogICAgICA8ZHQ+PGI+UmV0dXJuczo8L2I+IDxjb2RlPip0aGlzPC9jb2RlPi48L2R0PgogICAgPC9kbD4KCjxwcmU+CnN0bF9pbnB1dF9pdGVyYXRvciBvcGVyYXRvcisrKGludCkKPC9wcmU+CgogICAgPGRsIGNsYXNzPSJmdW5jdGlvbi1zZW1hbnRpY3MiPgogICAgICA8ZHQ+PGI+RWZmZWN0czo8L2I+CiAgICAgICAgPGNvZGU+c3RsX2lucHV0X2l0ZXJhdG9yIHRtcCA9ICp0aGlzOyArKyp0aGlzOyByZXR1cm4gdG1wOzwvY29kZT4KICAgICAgPC9kdD4KCiAgICAgIDxkdD48Yj5Qb3N0Y29uZGl0aW9uczo8L2I+IDxjb2RlPnRoaXM8L2NvZGU+IGlzIGEgZGVyZWZlcmVuY2VhYmxlIG9yIHBhc3QtdGhlLWVuZC48L2R0PgogICAgPC9kbD4KCiAgICA8aDQ+PGEgbmFtZT0ic3RsX2lucHV0X2l0ZXJhdG9yLXNwZWMtb2JzZXJ2ZXJzIj48L2E+Q2xhc3MgVGVtcGxhdGU8Y29kZT5zdGxfaW5wdXRfaXRlcmF0b3I8L2NvZGU+CiAgICBvYnNlcnZlcnM8L2g0PgoKPHByZT4KVmFsdWVUeXBlIG9wZXJhdG9yKigpIGNvbnN0CjwvcHJlPgoKICAgIDxkbCBjbGFzcz0iZnVuY3Rpb24tc2VtYW50aWNzIj4KICAgICAgPGR0PjxiPkVmZmVjdHM6PC9iPgogICAgICAgIFJldHVybnMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbiB0aGUgc2VxdWVuY2UuCiAgICAgIDwvZHQ+CiAgICAgIDxkdD48Yj5SZXR1cm5zOjwvYj4KICAgICAgICA8Y29kZT5leHRyYWN0Jmx0O1ZhbHVlVHlwZSZndDsodGhpcy0mZ3Q7b2IpOzwvY29kZT4KICAgICAgPC9kdD4KICAgIDwvZGw+Cgo8cHJlPgpmcmllbmQgYm9vbCBvcGVyYXRvcj09KHN0bF9pbnB1dF9pdGVyYXRvciBjb25zdCZhbXA7IGxocywgc3RsX2lucHV0X2l0ZXJhdG9yIGNvbnN0JmFtcDsgcmhzKQo8L3ByZT4KCiAgICA8ZGwgY2xhc3M9ImZ1bmN0aW9uLXNlbWFudGljcyI+CiAgICAgIDxkdD48Yj5FZmZlY3RzOjwvYj4KICAgICAgICBSZXR1cm5zIHRydWUgaWYgYm90aCBpdGVyYXRvcnMgYXJlIGRlcmVmZXJlbmNlYWJsZSBvciBpZiBib3RoIGl0ZXJhdG9ycyBhcmUgcGFzdC10aGUtZW5kLAogICAgICAgIGZhbHNlIG90aGVyd2lzZS4KICAgICAgPC9kdD4KICAgICAgPGR0PjxiPlJldHVybnM6PC9iPgogICAgICAgIDxjb2RlPihsaHMub2IgPT0gb2JqZWN0KCkpID09IChyaHMub2IgPT0gb2JqZWN0KCkpPC9jb2RlPgogICAgICA8L2R0PgogICAgPC9kbD4KCjxwcmU+CmZyaWVuZCBib29sIG9wZXJhdG9yIT0oc3RsX2lucHV0X2l0ZXJhdG9yIGNvbnN0JmFtcDsgbGhzLCBzdGxfaW5wdXRfaXRlcmF0b3IgY29uc3QmYW1wOyByaHMpCjwvcHJlPgoKICAgIDxkbCBjbGFzcz0iZnVuY3Rpb24tc2VtYW50aWNzIj4KICAgICAgPGR0PjxiPkVmZmVjdHM6PC9iPgogICAgICAgIFJldHVybnMgZmFsc2UgaWYgYm90aCBpdGVyYXRvcnMgYXJlIGRlcmVmZXJlbmNlYWJsZSBvciBpZiBib3RoIGl0ZXJhdG9ycyBhcmUgcGFzdC10aGUtZW5kLAogICAgICAgIHRydWUgb3RoZXJ3aXNlLgogICAgICA8L2R0PgogICAgICA8ZHQ+PGI+UmV0dXJuczo8L2I+CiAgICAgICAgPGNvZGU+IShsaHMgPT0gcmhzKTwvY29kZT4KICAgICAgPC9kdD4KICAgIDwvZGw+CgogICAgPGgyPjxhIG5hbWU9ImV4YW1wbGVzIj48L2E+RXhhbXBsZXM8L2gyPgo8cHJlPgojaW5jbHVkZSAmbHQ7Ym9vc3QvcHl0aG9uL29iamVjdC5ocHAmZ3Q7CiNpbmNsdWRlICZsdDtib29zdC9weXRob24vc3RsX2l0ZXJhdG9yLmhwcCZndDsKCiNpbmNsdWRlICZsdDtsaXN0Jmd0OwoKdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpweXRob247CnN0ZDo6bGlzdCZsdDtpbnQmZ3Q7IHNlcXVlbmNlX3RvX2ludF9saXN0KG9iamVjdCBjb25zdCZhbXA7IG9iKQp7CiAgICBzdGxfaW5wdXRfaXRlcmF0b3ImbHQ7aW50Jmd0OyBiZWdpbihvYiksIGVuZDsKICAgIHJldHVybiBzdGQ6Omxpc3QmbHQ7aW50Jmd0OyhiZWdpbiwgZW5kKTsKfQo8L3ByZT4KCjxocj4KICAgICAgICA8cD5SZXZpc2VkIAogICAgICAgIDwhLS13ZWJib3QgYm90PSJUaW1lc3RhbXAiIFMtVHlwZT0iRURJVEVEIiBTLUZvcm1hdD0iJWQgJUIsICVZIiBzdGFydHNwYW4gLS0+MzAgCk9jdG9iZXIsIDIwMDUKICA8IS0td2ViYm90IGJvdD0iVGltZXN0YW1wIiBlbmRzcGFuIGktY2hlY2tzdW09IjM5MzU5IiAtLT4KICAgICAgICA8L3A+CgogICAgICAgIDxwPjxpPqkgQ29weXJpZ2h0IEVyaWMgTmllYmxlciAyMDA1LjwvaT48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+