IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJIlJvYm90cy50eHQiIGZpbGVzCiIgUm9ib3RzLnR4dCBmaWxlcyBpbmRpY2F0ZSB0byBXV1cgcm9ib3RzIHdoaWNoIHBhcnRzIG9mIGEgd2ViIHNpdGUgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZC4KIiBNYWludGFpbmVyOglEb21pbmlxdWUgU3TpcGhhbiAoZG9taW5pcXVlQG1nZ2VuLmNvbSkKIiBVUkw6IGh0dHA6Ly93d3cubWdnZW4uY29tL3ZpbS9zeW50YXgvcm9ib3RzLnppcAoiIExhc3QgY2hhbmdlOgkyMDAxIE1heSAwOQoKIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAppZiB2ZXJzaW9uIDwgNjAwCiAgICBzeW50YXggY2xlYXIKZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgICBmaW5pc2gKZW5kaWYKCgoiIHNodXQgY2FzZSBvZmYKc3luIGNhc2UgaWdub3JlCgoiIENvbW1lbnQKc3luIG1hdGNoICByb2JvdHNDb21tZW50CSIjLiokIiBjb250YWlucz1yb2JvdHNVcmwscm9ib3RzTWFpbCxyb2JvdHNTdHJpbmcKCiIgU3RhciAqIChtZWFucyBhbGwgc3BpZGVycykKc3luIG1hdGNoICByb2JvdHNTdGFyCQkiXCoiCgoiIDoKc3luIG1hdGNoICByb2JvdHNEZWxpbWl0ZXIJIjoiCgoKIiBUaGUga2V5d29yZHMKIiBVc2VyLWFnZW50CnN5biBtYXRjaCAgcm9ib3RzQWdlbnQJCSJeW1V1XVtTc11bRWVdW1JyXVwtW0FhXVtHZ11bRWVdW05uXVtUdF0iCiIgRGlzYWxsb3cKc3luIG1hdGNoICByb2JvdHNEaXNhbGxvdwkiXltEZF1bSWldW1NzXVtBYV1bTGxdW0xsXVtPb11bV3ddIgoKIiBEaXNhbGxvdzogb3IgVXNlci1BZ2VudDogYW5kIHRoZSByZXN0IG9mIHRoZSBsaW5lIGJlZm9yZSBhbiBldmVudHVhbCBjb21tZW50CnN5bnQgbWF0Y2ggcm9ib3RzTGluZQkJIlwoXltVdV1bU3NdW0VlXVtScl1cLVtBYV1bR2ddW0VlXVtObl1bVHRdXHxeW0RkXVtJaV1bU3NdW0FhXVtMbF1bTGxdW09vXVtXd11cKTpbXiNdKiIJY29udGFpbnM9cm9ib3RzQWdlbnQscm9ib3RzRGlzYWxsb3cscm9ib3RzU3Rhcixyb2JvdHNEZWxpbWl0ZXIKCiIgU29tZSBmcmVxdWVudCB0aGluZ3MgaW4gY29tbWVudHMKc3luIG1hdGNoICByb2JvdHNVcmwJCSJodHRwW3NdXD06Ly9cUyoiCnN5biBtYXRjaCAgcm9ib3RzTWFpbAkJIlxTKkBcUyoiCnN5biByZWdpb24gcm9ib3RzU3RyaW5nCQlzdGFydD0rTFw9Iisgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KyIrCgppZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfcm9ib3Nfc3ludGF4X2luaXRzIikKICBpZiB2ZXJzaW9uIDwgNTA4CiAgICBsZXQgZGlkX3JvYm90c19zeW50YXhfaW5pdHMgPSAxCiAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgogIGVsc2UKICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogIGVuZGlmCgogIEhpTGluayByb2JvdHNDb21tZW50CQlDb21tZW50CiAgSGlMaW5rIHJvYm90c0FnZW50CQlUeXBlCiAgSGlMaW5rIHJvYm90c0Rpc2FsbG93CQlTdGF0ZW1lbnQKICBIaUxpbmsgcm9ib3RzTGluZQkJU3BlY2lhbAogIEhpTGluayByb2JvdHNTdGFyCQlPcGVyYXRvcgogIEhpTGluayByb2JvdHNEZWxpbWl0ZXIJRGVsaW1pdGVyCiAgSGlMaW5rIHJvYm90c1VybAkJU3RyaW5nCiAgSGlMaW5rIHJvYm90c01haWwJCVN0cmluZwogIEhpTGluayByb2JvdHNTdHJpbmcJCVN0cmluZwoKICBkZWxjb21tYW5kIEhpTGluawplbmRpZgoKCmxldCBiOmN1cnJlbnRfc3ludGF4ID0gInJvYm90cyIKCiIgdmltOiB0cz04IHN3PTIKCg==