SW5wdXQ6IF9BY2NvdW50SW5kZXgoTnVtZXJpYyk7CgpiZWdpbiAKCkdldEFjY291bnQgPSAiIjsK
aWYgdG1fYWNjb3VudHNfY291bnQgPD4gMCBhbmQgdG1fYWNjb3VudHNfY291bnQgPj0gX0FjY291
bnRJbmRleCB0aGVuIGJlZ2luCglHZXRBY2NvdW50ID0gdG1fYWNjb3VudF9zdHJfdmFsdWUoX0Fj
Y291bnRJbmRleCwgMjAwMCk7CmVuZDsgCgplbmQK
aW5wdXRzOiBUZXN0KCB0cnVlZmFsc2VzaW1wbGUgKSwgVHJ1ZVZhbCggU3RyaW5nU2ltcGxlICks
IEZhbHNlVmFsKCBTdHJpbmdTaW1wbGUgKSA7CgppZiBUZXN0IHRoZW4KCUlGRlRFWFQgPSBUcnVl
VmFsIAplbHNlIAoJSUZGVEVYVCA9IEZhbHNlVmFsIDsKCgo=
W0ludHJhYmFyT3JkZXJHZW5lcmF0aW9uID0gdHJ1ZV07CgovL1N0cmF0ZWd5LCBTQSBvbgoKaW5w
dXRzOiAKCVNoaWZ0Qm94CQkJCSgwKSwKCVRpbWVPZmZTZXQJCQkJKDUpLAoJTGFiZWxTaXplCQkJ
CSgxMCksCglMYWJlbENvbG9yCQkJCShsaWdodGdyYXkpLAoJTG9uZ0NvbG9yCQkJCShncmVlbiks
CglTaG9ydENvbG9yCQkJCShyZWQpLAoJTGFiZWxGb250CQkJCSgiQXJpYWwgQm9sZCIpOwoKdmFy
czogCglpbnRyYWJhcnBlcnNpc3QgICBNUGF0QgkJKDApLCAKCWludHJhYmFycGVyc2lzdCAgIHBy
ZXZNUGF0QgkJKDApLCAKCWludHJhYmFycGVyc2lzdCAgIG15RW50cnl0aW1lcwkoMCksIAoJaW50
cmFiYXJwZXJzaXN0ICAgdGltZURpZmYJCSgwKSwKCWludHJhYmFycGVyc2lzdCAgIGxhc3Rwcmlj
ZQkJKGNsb3NlKSwKCXNlc3NIaWdoCQkJCSgwKSwKCXNlc3NIaQkJCQkJKDApLAoJc2Vzc0xvdwkJ
CQkoMCksCglzZXNzTG8JCQkJCSgwKSwKCXByaWNlRW50cnkJCQkJKDApLAoJZW50cnlQcmMJCQkJ
KDApLAoJdHh0U3RyCQkJCQkoIlR1cm4gU0EgT24iKSwKCXR4dFRpbWUJCQkJKC0xKSwKCXR4dENv
bnRyYWN0cwkJCQkoLTEpLAoJdHh0UG9zaXRpb24JCQkJKC0xKSwKCW15VGltZQkJCQkJKDApLAoJ
bXlUaW1lMgkJCQkoMCksCglteU1pbnV0ZXMJCQkJKDApLAoJb2ZmU2V0VGltZQkJCQkoRUxUaW1l
VG9EYXRlVGltZShUaW1lT2ZmU2V0KSksCglkVGljawkJCQkJKE1pbk1vdmUvUHJpY2VTY2FsZSks
Cglib3hTaGlmdAkJCQkoMCksCgluZXdwb3NpdGlvbgkJCQkoZmFsc2UpOwoKCmJveFNoaWZ0ID0g
U2hpZnRCb3ggKiBkVGljazsKCmlmIGdldGFwcGluZm8oYWlyZWFsdGltZWNhbGMpID0gMSBhbmQg
Z2V0YXBwaW5mbyhhaXN0cmF0ZWd5YXV0bykgPSAxIHRoZW4gYmVnaW4KCglNUGF0QiA9IE1hcmtl
dFBvc2l0aW9uX2F0X0Jyb2tlcjsKCglpZiBNUGF0QiA8PiBwcmV2TVBhdEIgYW5kIE1QYXRCIDw+
IDAgdGhlbiBiZWdpbgoJCW15RW50cnl0aW1lcyA9IGN1cnJlbnR0aW1lX3M7CgkJU2Vzc0hpID0g
Y2xvc2U7CgkJU2Vzc0xvID0gY2xvc2U7CgkJcHJpY2VFbnRyeSA9IGNsb3NlOwoJZW5kOwoKCWlm
IE1QYXRCIDw+IDAgdGhlbiBiZWdpbgoJIAlpZiBzZXNzSGkgPCBIaWdoIHRoZW4gc2Vzc0hpID0g
aGlnaDsKCSAJaWYgc2Vzc0xvID4gTG93IHRoZW4gc2Vzc0xvID0gbG93OwoJIAlzZXNzSGlnaCA9
IHNlc3NIaTsKCSAJc2Vzc0xvdyA9IHNlc3NMbzsKCQlwcmljZWVudHJ5ID0gcHJpY2VFbnRyeTsK
CSAJCgoJCS8vdGltZURpZmYgPSBUaW1lVG9TZWNvbmRzKFRpbWVfcykgLSBteUVudHJ5dGltZVMg
OyAgIAoJCXRpbWVEaWZmID0gY3VycmVudFRpbWVfcyAtIG15RW50cnl0aW1lUyA7ICAgCgoJCXR4
dFN0ciA9ICgiYWNjb3VudCAtICIgKyB0ZXh0KEdldEFjY291bnQoMSkpICsgbmV3bGluZSArIAoJ
CQluZXdsaW5lICsgaWZmdGV4dCAoTVBhdEIgPCAwLCAiICAgICBTaG9ydCBwb3NpdGlvbiIsICIg
ICAgIExvbmcgcG9zaXRpb24iKSArIG5ld2xpbmUgKyB0ZXh0KE1QYXRCKSArICIgY29udHJhY3Qg
KHMpIiArIG5ld2xpbmUgKyAgCgkJCW5ld2xpbmUgKyBGb3JtYXRUaW1lKCJISDptbTpzcyIsIGVs
X3RpbWV0b2RhdGV0aW1lX3MobXlFbnRyeXRpbWVzKSkgKyAiIC0gZW50cnkgdGltZSIgKyBOZXdM
aW5lICsgCgkJCW5ld2xpbmUgKyBGb3JtYXRUaW1lKCJISDptbTpzcyIsIGVsX3RpbWV0b2RhdGV0
aW1lX3ModGltZWRpZmYpKSArICIgLSB0aW1lIGluIHRyYWRlIiArIE5ld0xpbmUgKyAKCQkJTnVt
VG9TdHIoc2Vzc0hpZ2gsIDIpICsgIiAtIGhpZ2ggc2luY2UgZW50cnkiICsgbmV3bGluZSArIAoJ
CQlOdW1Ub1N0cihzZXNzTG93LCAyKSArICIgLSBsb3cgc2luY2UgZW50cnkiICsgbmV3bGluZSAr
IAoJCQlOdW1Ub1N0cihwcmljZWVudHJ5ICwgMikgKyAiIC0gZW50cnkgcHJpY2UiKTsKCQkJCgll
bmQ7IC8vaWYgTGFzdEJhck9uQ2hhcnRfcyB0aGVuIFByaW50IGFsbCB0ZXh0IHZhcmlhYmxlczsK
CglpZiBNUGF0QiA9IDAgdGhlbiBiZWdpbgoJCXR4dFN0ciA9ICIgTk8gUE9TSVRJT04gIjsKCWVu
ZDsKCglwcmV2TVBhdEIgPSBNUGF0QjsKZW5kOwoKUmVjYWxjTGFzdEJhckFmdGVyICgxKTsKCmlm
IEJhcm51bWJlciA9IDEgdGhlbiAgYmVnaW4gCgl0eHRUaW1lID0gdGV4dF9uZXdfcyhKdWxpYW5U
b0RhdGUoYWlSaWdodERpc3BEYXRlVGltZSksIEdldEFwcEluZm8oYWlSaWdodERpc3BEYXRlVGlt
ZSksIEdldEFwcEluZm8oYWlIaWdoZXN0RGlzcFZhbHVlKSAtIEJveFNoaWZ0LCIiKTsgICAgICAg
ICAgICAKCQl0ZXh0X3NldGZvbnRuYW1lKHR4dFRpbWUsIExhYmVsRm9udCk7CgkJdGV4dF9zZXRj
b2xvcih0eHRUaW1lLCBMYWJlbENvbG9yKTsKCQl0ZXh0X3NldHNpemUodHh0VGltZSwgTGFiZWxT
aXplKTsKCQlUZXh0X1NldFN0eWxlKHR4dFRpbWUsIDEsIDApOwoJCS8vdGV4dF9zZXRib3JkZXIo
dHh0VGltZSAsIHRydWUpOwoJCS8vdGV4dF9zZXRiZ2NvbG9yKHR4dFRpbWUgLCBibGFjayk7CgkJ
dGV4dF9sb2NrKHR4dFRpbWUsIHRydWUpOwplbmQgCmVsc2UgYmVnaW4gCgl0ZXh0X1NldFN0cmlu
Zyh0eHRUaW1lLCB0eHRTdHIpOyAKCXRleHRfU2V0Q29sb3IgKHR4dFRpbWUsIGlmZihNUGF0QiA9
IDAsIExhYmVsQ29sb3IsIGlmZihNUGF0QiA8IDAsU2hvcnRDb2xvciAsTG9uZ0NvbG9yKSkpOyAK
CglpZiBCYXJTdGF0dXMoMSkgPSAyIHRoZW4gYmVnaW4KCQlUZXh0X1NldExvY2F0aW9uX3ModHh0
VGltZSwgSnVsaWFuVG9EYXRlKEdldEFwcEluZm8oYWlSaWdodERpc3BEYXRlVGltZSkpLERhdGVU
aW1lMkVMVGltZV9zKEdldEFwcEluZm8oYWlSaWdodERpc3BEYXRlVGltZSkgLSAKCQkJb2ZmU2V0
VGltZSksIEdldEFwcEluZm8oYWlIaWdoZXN0RGlzcFZhbHVlKSAtIGJveFNoaWZ0KTsKCWVuZDsK
ZW5kOwoK