UHJvYmzobWUgZGVzIGNvbm5leGlvbnMgc2ltdWx0YW7pZXMgYXZlYyB1biBiYWNrZW5kCgpQb3VyIGNoYXF1ZSBzZXJ2ZXVyLCAzIGNhcyBwb3NzaWJsZXMgOgoKICAtIHBhcyBkZSBsaW1pdGUgKHBhciBk6WZhdXQpCiAgLSBsaW1pdGUgc3RhdGlxdWUgKG1heGNvbm4pCiAgLSBsaW1pdGUgZHluYW1pcXVlIChtYXhjb25uLyhyYXRpbyBkZSBweC0+Y29ubiksIGF2ZWMgbWluY29ubikKCk9uIGEgZG9uYyBiZXNvaW4gZCd1bmUgbGltaXRlIHN1ciBsZSBwcm94eSBkYW5zIGxlIGNhcyBkZSBsYSBsaW1pdGUKZHluYW1pcXVlLCBhZmluIGRlIGZpeGVyIHVuIHNldWlsIGV0IHVuIHJhdGlvLiBDZSBxdWkgY29tcHRlLCBjJ2VzdApsZSBwb2ludCBhcHLocyBsZXF1ZWwgb24gcGFzc2UgZCd1biBy6WdpbWUgbGlu6WFpcmUg4CB1biBy6WdpbWUKc2F0dXLpLgoKT24gYSBkb25jIDMgcGhhc2VzIDoKCiAgLSBy6WdpbWUgbWluaW1hbCAgKDAuLnNydi0+bWluY29ubikKICAtIHLpZ2ltZSBsaW7pYWlyZSAoc3J2LT5taW5jb25uLi5zcnYtPm1heGNvbm4pCiAgLSBy6WdpbWUgc2F0dXLpIChzcnYtPm1heGNvbm4uLikKCkxlIG1pbmNvbm4gcG91cnJhaXQgYXVzc2kgcmVzc29ydGlyIGR1IHNlcnZldXIgPwpFbiBwcmF0aXF1ZSwgb24gdmV1dCA6CiAgLSB1biBtYXggcGFyIHNlcnZldXIKICAtIHVuIHNldWlsIGdsb2JhbCBhdXF1ZWwgbGVzIHNlcnZldXJzIGFwcGxpcXVlbnQgbGUgbWF4CiAgLSB1biBzZXVpbCBtaW5pbWFsIGVuLWRlc3NvdXMgZHVxdWVsIGxlIG5iIGRlIGNvbm4gZXN0CiAgICBtYWludGVudS4gQ2V0dGUgbGltaXRlIGEgdW4gc2VucyBwYXIgc2VydmV1ciAoamFtYWlzIG1vaW5zIGRlIFggY29ubnMpCiAgICBtYWlzIGF1c3NpIGVuIGdsb2JhbCAocGFzIGxhIHBlaW5lIGRlIGZhaXJlIGR1IGR5bmFtaXF1ZSBlbiBkZXNzb3VzIGRlCiAgICBYIGNvbm5zIOAgculwYXJ0aXIpLiBMYSBkaWZmaWN1bHTpIGVuIGdsb2JhbCwgYydlc3QgZGUgc2F2b2lyIGNvbW1lbnQKICAgIG9uIGNhbGN1bGUgbGUgbm9tYnJlIG1pbiBhc3NvY2npIOAgY2hhcXVlIHNlcnZldXIsIHZ1IHF1ZSBjJ2VzdCB1biByYXRpbwogICAgZOlmaW5pIOAgcGFydGlyIGR1IG1heC4KCkNhIHJldmllbnQg4CBwZXUgcHLocyDgIGxhIG3qbWUgY2hvc2UgcXVlIGRlIGZhaXJlIDIg6XRhdHMgOgoKICAtIHLpZ2ltZSBsaW7pYWlyZSBhdmVjIHVuIG9mZnNldCAoc3J2LT5taW5jb25uLi5zcnYtPm1heGNvbm4pCiAgLSBy6WdpbWUgc2F0dXLpIChzcnYtPm1heGNvbm4uLikKClNhdWYgcXVlIGRhbnMgY2UgY2FzLCBsZSBtaW4gZXQgbGUgbWF4IHNvbnQgYmllbiBwYXIgc2VydmV1ciwgZXQgbGUgc2V1aWwgZXN0Cmdsb2JhbCBldCBjb3JyZXNwb25kIOAgbGEgbGltaXRlIGRlIGNvbm5leGlvbnMgYXUtZGVs4CBkZSBsYXF1ZWwgb24gdmV1dAp0b3VybmVyIOAgcGxlaW4gculnaW1lIHN1ciBsJ2Vuc2VtYmxlIGRlcyBzZXJ2ZXVycy4gT24gcGV1dCBkb25jIHBhcmxlciBkZQpwYXNzYWdlIGVuIG1vZGUgImZ1bGwiLCAic2F0dXJhdGVkIiwgIm9wdGltYWwiLiBPbiBwZXV0IOlnYWxlbWVudCBwYXJsZXIgZGUKbGEgZmluIGRlIGxhIHBhcnRpZSAic2NhbGFibGUiLCAiZHluYW1pcXVlIi4KCj0+IGZ1bGxjb25uIDEwMDAgcGFyIGV4ZW1wbGUgPwoKCg==