<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>175906</bug_id>
          
          <creation_ts>2017-08-23 13:55:38 -0700</creation_ts>
          <short_desc>Clean up UIClients</short_desc>
          <delta_ts>2017-08-23 15:10:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1341766</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-23 13:55:38 -0700</bug_when>
    <thetext>Clean up UIClients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341767</commentid>
    <comment_count>1</comment_count>
      <attachid>318912</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-23 13:56:53 -0700</bug_when>
    <thetext>Created attachment 318912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341774</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-23 14:08:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341808</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-23 15:10:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/34045296&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318912</attachid>
            <date>2017-08-23 13:56:53 -0700</date>
            <delta_ts>2017-08-23 14:01:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175906-20170823135652.patch</filename>
            <type>text/plain</type>
            <size>33918</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjExMDApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA4LTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAgVUlD
bGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzU5MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGVyZSB3ZXJlIHNvbWUgdW5uZWNlc3NhcnkgY2hlY2tzIHRvIHNlZSBpZiB0aGUgY2xpZW50IGlt
cGxlbWVudHMgc29tZXRoaW5nLAorICAgICAgICB3aGVuIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlz
IHRvIGRvIG5vdGhpbmcgaWYgdGhlIGNsaWVudCBkb2Vzbid0IGltcGxlbWVudCB0aGUgY2FsbGJh
Y2suCisgICAgICAgIEFsc28sIG1ha2Ugc29tZSBvdmVycmlkZXMgZmluYWxzIGFuZCBmaXggc29t
ZSBzcGFjaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6ZGlkTm90SGFuZGxlS2V5RXZlbnQpOgorICAgICAgICAoQVBJ
OjpVSUNsaWVudDo6aW1wbGVtZW50c0RpZE5vdEhhbmRsZUtleUV2ZW50IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2
ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlRXZlbnQpOgorCiAy
MDE3LTA4LTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgY2FsbGJhY2tzIGNvcnJlc3BvbmRpbmcg
dG8gV0tQYWdlVUlDbGllbnQncyB0YWtlRm9jdXMsIGZvY3VzLCBhbmQgdW5mb2N1cwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMjEwNTUp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00OTc4LDggKzQ5NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUV2
ZW50KHVpbnQzCiAKICAgICAgICAgLy8gRklYTUU6IERpc3BhdGNoIGFkZGl0aW9uYWwgZXZlbnRz
IHRvIHRoZSBkaWROb3RIYW5kbGVXaGVlbEV2ZW50IGNsaWVudCBmdW5jdGlvbi4KICAgICAgICAg
aWYgKCFoYW5kbGVkKSB7Ci0gICAgICAgICAgICBpZiAobV91aUNsaWVudC0+aW1wbGVtZW50c0Rp
ZE5vdEhhbmRsZVdoZWVsRXZlbnQoKSkKLSAgICAgICAgICAgICAgICBtX3VpQ2xpZW50LT5kaWRO
b3RIYW5kbGVXaGVlbEV2ZW50KHRoaXMsIG9sZGVzdENvYWxlc2NlZEV2ZW50LT5sYXN0KCkpOwor
ICAgICAgICAgICAgbV91aUNsaWVudC0+ZGlkTm90SGFuZGxlV2hlZWxFdmVudCh0aGlzLCBvbGRl
c3RDb2FsZXNjZWRFdmVudC0+bGFzdCgpKTsKICAgICAgICAgICAgIG1fcGFnZUNsaWVudC53aGVl
bEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShvbGRlc3RDb2FsZXNjZWRFdmVudC0+bGFzdCgp
KTsKICAgICAgICAgfQogCkBAIC01MDE1LDggKzUwMTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZUV2ZW50KHVpbnQzCiAgICAgICAgIGlmIChoYW5kbGVkKQogICAgICAgICAgICAg
YnJlYWs7CiAKLSAgICAgICAgaWYgKG1fdWlDbGllbnQtPmltcGxlbWVudHNEaWROb3RIYW5kbGVL
ZXlFdmVudCgpKQotICAgICAgICAgICAgbV91aUNsaWVudC0+ZGlkTm90SGFuZGxlS2V5RXZlbnQo
dGhpcywgZXZlbnQpOworICAgICAgICBtX3VpQ2xpZW50LT5kaWROb3RIYW5kbGVLZXlFdmVudCh0
aGlzLCBldmVudCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNpZiBFTkFCTEUoTUFDX0dFU1RV
UkVfRVZFTlRTKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgJKHJldmlzaW9uIDIyMTA1NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NiwxMCArOTYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIERpY3Rpb25hcnkqKSB7IH0K
ICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAotICAgIHZpcnR1YWwgYm9v
bCBpbXBsZW1lbnRzRGlkTm90SGFuZGxlS2V5RXZlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVLZXlFdmVudChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSosIGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpIHsgfQotCi0gICAg
dmlydHVhbCBib29sIGltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlV2hlZWxFdmVudChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudCYp
IHsgfQogCiAgICAgdmlydHVhbCBib29sIHRvb2xiYXJzQXJlVmlzaWJsZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSopIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMjIxMDU1KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxMiw3ICsxNjEyLDcg
QEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBh
Z2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBzaG93UGFnZShXZWJQYWdlUHJv
eHkqIHBhZ2UpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuc2hv
d1BhZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgdm9p
ZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9jbGll
bnQuc2hvd1BhZ2UodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAg
ICAgIH0KIAotICAgICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJQYWdl
UHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKFdlYlBhZ2VQcm94eSogcGFnZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKCFtX2NsaWVudC5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTYyOCw3ICsxNjI4LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQuZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlKFdlYlBhZ2VQcm94eSogcGFnZSwgYm9vbCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVy
ZSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZShXZWJQYWdlUHJveHkqIHBhZ2UsIGJvb2wgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUp
IGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTYz
Niw3ICsxNjM2LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwog
ICAgICAgICAgICAgbV9jbGllbnQuaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2Uo
dG9BUEkocGFnZSksIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKFdlYlBhZ2VQcm94eSYgcGFnZSwgV0tSZXNv
dXJjZUxpbWl0IGxpbWl0KSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZEV4Y2VlZEJhY2tncm91
bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQoV2ViUGFnZVByb3h5JiBwYWdlLCBXS1Jl
c291cmNlTGltaXQgbGltaXQpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9j
bGllbnQuZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZCkK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjQ0LDcgKzE2NDQsNyBAQCB2b2lkIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBtX2NsaWVudC5kaWRF
eGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKHRvQVBJKCZwYWdl
KSwgbGltaXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAg
ICB2b2lkIGNsb3NlKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBj
bG9zZShXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICghbV9jbGllbnQuY2xvc2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY1Miw3ICsx
NjUyLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAg
ICAgICAgbV9jbGllbnQuY2xvc2UodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHRha2VGb2N1cyhXZWJQYWdlUHJveHkqIHBh
Z2UsIFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKSBvdmVycmlkZQorICAgICAgICB2b2lkIHRh
a2VGb2N1cyhXZWJQYWdlUHJveHkqIHBhZ2UsIFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKSBm
aW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnRha2VGb2N1cykKICAg
ICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjYwLDcgKzE2NjAsNyBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBtX2NsaWVudC50YWtlRm9j
dXModG9BUEkocGFnZSksIGRpcmVjdGlvbiwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlk
ZQorICAgICAgICB2b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSogcGFnZSkgZmluYWwKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5mb2N1cykKICAgICAgICAgICAgICAgICByZXR1
cm47CkBAIC0xNjY4LDcgKzE2NjgsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1Bh
Z2VSZWYgcGFnCiAgICAgICAgICAgICBtX2NsaWVudC5mb2N1cyh0b0FQSShwYWdlKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgdW5mb2N1cyhX
ZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgdW5mb2N1cyhXZWJQYWdl
UHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQu
dW5mb2N1cykKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjc2LDcgKzE2NzYsNyBAQCB2
b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBtX2Ns
aWVudC51bmZvY3VzKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAg
ICAgICB9CiAKLSAgICAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViUGFnZVByb3h5KiBw
YWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9pZCAoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkZyYW1l
UHJveHkqIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0
YSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAobV9jbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0KSB7CiAgICAgICAg
ICAgICAgICAgUmVmUHRyPFJ1bkphdmFTY3JpcHRBbGVydFJlc3VsdExpc3RlbmVyPiBsaXN0ZW5l
ciA9IFJ1bkphdmFTY3JpcHRBbGVydFJlc3VsdExpc3RlbmVyOjpjcmVhdGUoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
VUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZVBy
b3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9p
ZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgcnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
ZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnJ1bkphdmFTY3JpcHRD
b25maXJtKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJ1bkphdmFTY3JpcHRDb25maXJtUmVz
dWx0TGlzdGVuZXI+IGxpc3RlbmVyID0gUnVuSmF2YVNjcmlwdENvbmZpcm1SZXN1bHRMaXN0ZW5l
cjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTE3MjksNyArMTcyOSw3
IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcnVu
SmF2YVNjcmlwdFByb21wdChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9pZCAo
Y29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCisgICAgICAgIHZv
aWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdlYkZyYW1lUHJveHkqIGZyYW1l
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248
dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQpIHsKICAgICAg
ICAgICAgICAgICBSZWZQdHI8UnVuSmF2YVNjcmlwdFByb21wdFJlc3VsdExpc3RlbmVyPiBsaXN0
ZW5lciA9IFJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTE3NjIsNyArMTc2Miw3IEBAIHZvaWQgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFN0cmluZygpKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgc2V0U3RhdHVzVGV4dChXZWJQ
YWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCkgb3ZlcnJpZGUKKyAgICAgICAgdm9p
ZCBzZXRTdGF0dXNUZXh0KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiB0ZXh0KSBm
aW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnNldFN0YXR1c1RleHQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc3MCw3ICsxNzcwLDcgQEAgdm9pZCBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQuc2V0
U3RhdHVzVGV4dCh0b0FQSShwYWdlKSwgdG9BUEkodGV4dC5pbXBsKCkpLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiBk
YXRhLCBXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
V2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgZGF0YSwgV2Vi
S2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycywgQVBJOjpPYmplY3QqIHVzZXJEYXRh
KSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50Lm1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50ICYmICFtX2NsaWVudC5tb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3ODgsNyArMTc4
OCw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAg
fQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgICAgIHZvaWQgdW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYlBhZ2VQcm94eSogcGFnZSwgV0tQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgQVBJOjpEaWN0aW9u
YXJ5KiBwbHVnaW5JbmZvcm1hdGlvbikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViUGFnZVByb3h5KiBwYWdlLCBXS1BsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBBUEk6OkRpY3Rpb25hcnkq
IHBsdWdpbkluZm9ybWF0aW9uKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAocGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0ga1dLUGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb25Q
bHVnaW5NaXNzaW5nKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2xpZW50Lm1pc3NpbmdQbHVn
aW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApCkBAIC0xODE4LDg3ICsxODE4
LDc3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAg
fQogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCi0gICAgICAgIGJvb2wg
aW1wbGVtZW50c0RpZE5vdEhhbmRsZUtleUV2ZW50KCkgY29uc3Qgb3ZlcnJpZGUKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LmRpZE5vdEhhbmRsZUtleUV2ZW50OwotICAg
ICAgICB9Ci0KLSAgICAgICAgdm9pZCBkaWROb3RIYW5kbGVLZXlFdmVudChXZWJQYWdlUHJveHkq
IHBhZ2UsIGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KSBvdmVycmlkZQorICAg
ICAgICB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3Qg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGlkTm90SGFuZGxlS2V5RXZlbnQpCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgbV9jbGllbnQuZGlkTm90SGFuZGxlS2V5RXZlbnQodG9BUEko
cGFnZSksIGV2ZW50Lm5hdGl2ZUV2ZW50KCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAg
ICAgICAgIH0KIAotICAgICAgICBib29sIGltcGxlbWVudHNEaWROb3RIYW5kbGVXaGVlbEV2ZW50
KCkgY29uc3Qgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50
LmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGRpZE5v
dEhhbmRsZVdoZWVsRXZlbnQoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBOYXRpdmVXZWJXaGVl
bEV2ZW50JiBldmVudCkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWROb3RIYW5kbGVXaGVlbEV2
ZW50KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQp
IGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkTm90SGFuZGxl
V2hlZWxFdmVudCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBtX2NsaWVu
dC5kaWROb3RIYW5kbGVXaGVlbEV2ZW50KHRvQVBJKHBhZ2UpLCBldmVudC5uYXRpdmVFdmVudCgp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCB0
b29sYmFyc0FyZVZpc2libGUoV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQorICAgICAgICBi
b29sIHRvb2xiYXJzQXJlVmlzaWJsZShXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgICAg
IHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQudG9vbGJhcnNBcmVWaXNpYmxlKQogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LnRvb2xi
YXJzQXJlVmlzaWJsZSh0b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgc2V0VG9vbGJhcnNBcmVWaXNpYmxlKFdlYlBhZ2VQcm94
eSogcGFnZSwgYm9vbCB2aXNpYmxlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHNldFRvb2xiYXJz
QXJlVmlzaWJsZShXZWJQYWdlUHJveHkqIHBhZ2UsIGJvb2wgdmlzaWJsZSkgZmluYWwKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5zZXRUb29sYmFyc0FyZVZpc2libGUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgbV9jbGllbnQuc2V0VG9vbGJhcnNB
cmVWaXNpYmxlKHRvQVBJKHBhZ2UpLCB2aXNpYmxlLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBtZW51QmFySXNWaXNpYmxlKFdlYlBhZ2VQcm94
eSogcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAgYm9vbCBtZW51QmFySXNWaXNpYmxlKFdlYlBhZ2VQ
cm94eSogcGFnZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5t
ZW51QmFySXNWaXNpYmxlKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgcmV0dXJuIG1fY2xpZW50Lm1lbnVCYXJJc1Zpc2libGUodG9BUEkocGFnZSksIG1fY2xpZW50
LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNldE1lbnVCYXJJ
c1Zpc2libGUoV2ViUGFnZVByb3h5KiBwYWdlLCBib29sIHZpc2libGUpIG92ZXJyaWRlCisgICAg
ICAgIHZvaWQgc2V0TWVudUJhcklzVmlzaWJsZShXZWJQYWdlUHJveHkqIHBhZ2UsIGJvb2wgdmlz
aWJsZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5zZXRNZW51
QmFySXNWaXNpYmxlKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIG1fY2xp
ZW50LnNldE1lbnVCYXJJc1Zpc2libGUodG9BUEkocGFnZSksIHZpc2libGUsIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIHN0YXR1c0JhcklzVmlz
aWJsZShXZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIGJvb2wgc3RhdHVzQmFy
SXNWaXNpYmxlKFdlYlBhZ2VQcm94eSogcGFnZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5zdGF0dXNCYXJJc1Zpc2libGUpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICByZXR1cm4gbV9jbGllbnQuc3RhdHVzQmFySXNWaXNpYmxl
KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBzZXRTdGF0dXNCYXJJc1Zpc2libGUoV2ViUGFnZVByb3h5KiBwYWdlLCBib29s
IHZpc2libGUpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgc2V0U3RhdHVzQmFySXNWaXNpYmxlKFdl
YlBhZ2VQcm94eSogcGFnZSwgYm9vbCB2aXNpYmxlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LnNldFN0YXR1c0JhcklzVmlzaWJsZSkKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICBtX2NsaWVudC5zZXRTdGF0dXNCYXJJc1Zpc2libGUodG9B
UEkocGFnZSksIHZpc2libGUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0K
IAotICAgICAgICBib29sIGlzUmVzaXphYmxlKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUK
KyAgICAgICAgYm9vbCBpc1Jlc2l6YWJsZShXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuaXNSZXNpemFibGUpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICByZXR1cm4gbV9jbGllbnQuaXNSZXNpemFi
bGUodG9BUEkocGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAot
ICAgICAgICB2b2lkIHNldElzUmVzaXphYmxlKFdlYlBhZ2VQcm94eSogcGFnZSwgYm9vbCByZXNp
emFibGUpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgc2V0SXNSZXNpemFibGUoV2ViUGFnZVByb3h5
KiBwYWdlLCBib29sIHJlc2l6YWJsZSkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC5zZXRJc1Jlc2l6YWJsZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBtX2NsaWVudC5zZXRJc1Jlc2l6YWJsZSh0b0FQSShwYWdlKSwgcmVzaXphYmxlLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzZXRX
aW5kb3dGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpIG92
ZXJyaWRlCisgICAgICAgIHZvaWQgc2V0V2luZG93RnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGZyYW1lKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
IW1fY2xpZW50LnNldFdpbmRvd0ZyYW1lKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5
MDYsNyArMTg5Niw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcK
ICAgICAgICAgICAgIG1fY2xpZW50LnNldFdpbmRvd0ZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShm
cmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICBG
bG9hdFJlY3Qgd2luZG93RnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQorICAgICAg
ICBGbG9hdFJlY3Qgd2luZG93RnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmdldFdpbmRvd0ZyYW1lKQogICAgICAgICAg
ICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKQEAgLTE5MTQsMTIgKzE5MDQsMTIgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgcmV0dXJuIHRv
RmxvYXRSZWN0KG1fY2xpZW50LmdldFdpbmRvd0ZyYW1lKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgYm9vbCBjYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gbV9jbGllbnQucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjYgfHwgbV9jbGllbnQucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwog
ICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBGdW5j
dGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICAgICAg
dm9pZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqIHBh
Z2UsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIGZy
YW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9jbGll
bnQucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRy
PFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyPiBsaXN0ZW5lciA9IFJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyOjpjcmVhdGUoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTkzNiw3ICsxOTI2LDcgQEAgdm9pZCBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
dHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoV2ViUGFnZVBy
b3h5KiBwYWdlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoV2ViUGFnZVBy
b3h5KiBwYWdlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnBh
Z2VEaWRTY3JvbGwpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTk0NCw3ICsxOTM0LDcg
QEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAg
bV9jbGllbnQucGFnZURpZFNjcm9sbCh0b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VEaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0ZWRVc2FnZSwgRnVuY3Rp
b248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJp
ZGUKKyAgICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiBwYWdl
LCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25z
dCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpc3BsYXlOYW1l
LCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3Vy
cmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlLCBGdW5jdGlvbjx2b2lkKHVuc2lnbmVk
IGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuZXhjZWVkZWREYXRhYmFzZVF1b3RhKSB7CiAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsKQEAgLTE5NTQsNyArMTk0NCw3
IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKG1fY2xpZW50LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSh0b0FQSShw
YWdlKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShvcmlnaW4pLCB0b0FQSShkYXRhYmFzZU5hbWUuaW1w
bCgpKSwgdG9BUEkoZGF0YWJhc2VEaXNwbGF5TmFtZS5pbXBsKCkpLCBjdXJyZW50UXVvdGEsIGN1
cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBydW5P
cGVuUGFuZWwoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiBw
YXJhbWV0ZXJzLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KiBsaXN0ZW5lcikgb3Zl
cnJpZGUKKyAgICAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJG
cmFtZVByb3h5KiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgQVBJ
OjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5KiBsaXN0ZW5lcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFt
X2NsaWVudC5ydW5PcGVuUGFuZWwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTk2Myw3ICsxOTUzLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBh
ZwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGRl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBw
YWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBlcm1pc3Npb25SZXF1ZXN0KSBvdmVy
cmlkZQorICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpTZWN1
cml0eU9yaWdpbiogb3JpZ2luLCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHBl
cm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTk3Miw3ICsxOTYyLDcgQEAgdm9pZCBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KIAotICAgICAgICBib29sIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5JiBwZXJtaXNzaW9uUmVxdWVzdCkgb3ZlcnJpZGUKKyAgICAgICAgYm9vbCBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFsCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTk4
MSw3ICsxOTcxLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkmIHJlcXVlc3QpIG92ZXJyaWRlCisgICAgICAgIGJvb2wgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJh
bWVQcm94eSYgZnJhbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eSYgcmVxdWVzdCkgZmluYWwKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKCFtX2NsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTk5MCw3ICsxOTgwLDcgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNz
aW9uUmVxdWVzdCkgb3ZlcnJpZGUKKyAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIEFQSTo6U2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25S
ZXF1ZXN0KSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTIwMDAsNyArMTk5MCw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgfQogCiAgICAgICAgIC8vIFByaW50aW5nLgot
ICAgICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVBy
b3h5KiBmcmFtZSkgb3ZlcnJpZGUKKyAgICAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQ
cm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUpIGZpbmFsCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuaGVhZGVySGVpZ2h0KQogICAgICAgICAgICAgICAgIHJldHVy
biAwOwpAQCAtMjAwOCw3ICsxOTk4LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQ
YWdlUmVmIHBhZwogICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LmhlYWRlckhlaWdodCh0b0FQ
SShwYWdlKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAg
ICB9CiAKLSAgICAgICAgZmxvYXQgZm9vdGVySGVpZ2h0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2Vi
RnJhbWVQcm94eSogZnJhbWUpIG92ZXJyaWRlCisgICAgICAgIGZsb2F0IGZvb3RlckhlaWdodChX
ZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lKSBmaW5hbAogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmZvb3RlckhlaWdodCkKICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKQEAgLTIwMTYsNyArMjAwNiw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAgIHJldHVybiBtX2NsaWVudC5mb290ZXJIZWln
aHQodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdlUHJveHkqIHBhZ2Us
IFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpIG92
ZXJyaWRlCisgICAgICAgIHZvaWQgZHJhd0hlYWRlcihXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZy
YW1lUHJveHkqIGZyYW1lLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZHJhd0hlYWRlcikKICAgICAgICAg
ICAgICAgICByZXR1cm47CkBAIC0yMDI0LDcgKzIwMTQsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VV
SUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBtX2NsaWVudC5kcmF3SGVhZGVyKHRv
QVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHJlY3QpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkcmF3Rm9vdGVyKFdlYlBhZ2VQcm94
eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
cmVjdCkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkcmF3Rm9vdGVyKFdlYlBhZ2VQcm94eSogcGFn
ZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkg
ZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kcmF3Rm9vdGVyKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwMzIsNyArMjAyMiw3IEBAIHZvaWQgV0tQYWdl
U2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAgIG1fY2xpZW50LmRyYXdG
b290ZXIodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkocmVjdCksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByaW50RnJhbWUoV2Vi
UGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkgb3ZlcnJpZGUKKyAgICAgICAg
dm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUp
IGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQucHJpbnRGcmFtZSkK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDQwLDEyICsyMDMwLDEyIEBAIHZvaWQgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgICAgIG1fY2xpZW50LnBy
aW50RnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdCBvdmVy
cmlkZQorICAgICAgICBib29sIGNhblJ1bk1vZGFsKCkgY29uc3QgZmluYWwKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIG1fY2xpZW50LnJ1bk1vZGFsOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkqIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIHZv
aWQgcnVuTW9kYWwoV2ViUGFnZVByb3h5KiBwYWdlKSBmaW5hbAogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LnJ1bk1vZGFsKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAg
LTIwNTMsNyArMjA0Myw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBw
YWcKICAgICAgICAgICAgIG1fY2xpZW50LnJ1bk1vZGFsKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBvcmln
aW5hdGluZ1VSTFN0cmluZywgQVBJOjpEYXRhKiBkYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lk
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBBUEk6OkRhdGEqIGRhdGEpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQuc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcikKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDYxLDcgKzIwNTEsNyBA
QCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBt
X2NsaWVudC5zYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKHRvQVBJKHBhZ2UpLCB0b0FQ
SShzdWdnZXN0ZWRGaWxlbmFtZS5pbXBsKCkpLCB0b0FQSShtaW1lVHlwZS5pbXBsKCkpLCB0b1VS
TFJlZihvcmlnaW5hdGluZ1VSTFN0cmluZy5pbXBsKCkpLCB0b0FQSShkYXRhKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcGlubmVkU3RhdGVE
aWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHBpbm5l
ZFN0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYgcGFnZSkgZmluYWwKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5waW5uZWRTdGF0ZURpZENoYW5nZSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CkBAIC0yMDY5LDcgKzIwNTksNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBtX2NsaWVudC5waW5uZWRTdGF0ZURpZENo
YW5nZSh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0K
IAotICAgICAgICB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYgcGFn
ZSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJQYWdl
UHJveHkmIHBhZ2UpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQu
aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjA3
Nyw3ICsyMDY3LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwog
ICAgICAgICAgICAgbV9jbGllbnQuaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UodG9BUEkoJnBhZ2Up
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBk
aWRDbGlja0F1dG9GaWxsQnV0dG9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpPYmplY3QqIHVz
ZXJJbmZvKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZENsaWNrQXV0b0ZpbGxCdXR0b24oV2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6Ok9iamVjdCogdXNlckluZm8pIGZpbmFsCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmICghbV9jbGllbnQuZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbikKICAgICAg
ICAgICAgICAgICByZXR1cm47CkBAIC0yMDg2LDcgKzIwNzYsNyBAQCB2b2lkIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQotICAgICAgICB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEqIG1ldGFkYXRhKSBvdmVycmlk
ZQorICAgICAgICB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEqIG1ldGFkYXRhKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50Lm1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hh
bmdlKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTIwOTUsNyArMjA4NSw3IEBAIHZvaWQg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWcKICAgICAgICAgfQogI2VuZGlmCiAj
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2so
V2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQorICAgICAgICB2b2lkIHJlcXVlc3RQb2ludGVy
TG9jayhXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICghbV9jbGllbnQucmVxdWVzdFBvaW50ZXJMb2NrKQogICAgICAgICAgICAgICAgIHJldHVybjsK
QEAgLTIxMDMsNyArMjA5Myw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJl
ZiBwYWcKICAgICAgICAgICAgIG1fY2xpZW50LnJlcXVlc3RQb2ludGVyTG9jayh0b0FQSShwYWdl
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQg
ZGlkTG9zZVBvaW50ZXJMb2NrKFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKKyAgICAgICAg
dm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViUGFnZVByb3h5KiBwYWdlKSBmaW5hbAogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZExvc2VQb2ludGVyTG9jaykKICAgICAg
ICAgICAgICAgICByZXR1cm47CkBAIC0yMTM3LDcgKzIxMjcsNyBAQCB2b2lkIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnCiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCBldmVudCwgT3B0aW9u
U2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4gZmxhZ3MpIG92ZXJyaWRlCisgICAgICAg
IHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkF1
dG9wbGF5RXZlbnQgZXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+
IGZsYWdzKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmhhbmRs
ZUF1dG9wbGF5RXZlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAkocmV2aXNpb24gMjIxMDk5KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAKICAgICBwcml2YXRlOgogICAgICAgICAvLyBB
UEk6OkNvbnRleHRNZW51Q2xpZW50Ci0gICAgICAgIFJldGFpblB0cjxOU01lbnU+IG1lbnVGcm9t
UHJvcG9zZWRNZW51KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgTlNNZW51ICosIGNvbnN0IFdlYktp
dDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOworICAgICAg
ICBSZXRhaW5QdHI8TlNNZW51PiBtZW51RnJvbVByb3Bvc2VkTWVudShXZWJQYWdlUHJveHkmLCBO
U01lbnUgKiwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBBUEk6Ok9iamVjdCopIG92ZXJy
aWRlOwogCiAgICAgICAgIFVJRGVsZWdhdGUmIG1fdWlEZWxlZ2F0ZTsKICAgICB9OwpAQCAtODQs
NDcgKzg0LDQ3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgY2FuQ3JlYXRlTmV3UGFnZUFzeW5j
KCkgZmluYWw7CiAgICAgICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZU5ld1BhZ2VDb21t
b24oV2ViUGFnZVByb3h5KiwgQVBJOjpGcmFtZUluZm8mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPFdlYlBhZ2VQcm94eT4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpOwogCi0gICAgICAgIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRFbnRlckZ1bGxz
Y3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRF
eGl0RnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwotICAgICAgICB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6
U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJp
ZGU7Ci0gICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJv
eHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQgKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0
cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGNsb3NlKFdlYlBhZ2VQcm94eSopIGZp
bmFsOworICAgICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJQYWdlUHJv
eHkqKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5
KikgZmluYWw7CisgICAgICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikg
ZmluYWw7CisgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYlBhZ2VQcm94eSosIGNv
bnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7
CisgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZVByb3h5KiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7
CisgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJQYWdlUHJveHkqLCBjb25zdCBX
VEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpTdHJp
bmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgICAgIGJvb2wgY2FuUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgY29uc3QgZmluYWw7Ci0gICAgICAgIHZvaWQgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWw7Ci0gICAgICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYlBhZ2VQcm94eSosIFdl
YkZyYW1lUHJveHkqLCBBUEk6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25n
IGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdl
LCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhw
ZWN0ZWRVc2FnZSwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgRnVu
Y3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYlBhZ2VQ
cm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsOworICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRP
cmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZSwgdW5zaWduZWQgbG9u
ZyBsb25nIGV4cGVjdGVkVXNhZ2UsIEZ1bmN0aW9uPHZvaWQodW5zaWduZWQgbG9uZyBsb25nKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CisgICAgICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRl
ZCwgRnVuY3Rpb248dm9pZCh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBmaW5hbDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHZvaWQgc2hvd1BhZ2UoV2ViUGFn
ZVByb3h5KikgZmluYWw7Ci0gICAgICAgIHZvaWQgdGFrZUZvY3VzKFdlYktpdDo6V2ViUGFnZVBy
b3h5KiwgV0tGb2N1c0RpcmVjdGlvbikgZmluYWw7Ci0gICAgICAgIHZvaWQgZm9jdXMoV2ViS2l0
OjpXZWJQYWdlUHJveHkqKSBmaW5hbDsKLSAgICAgICAgdm9pZCB1bmZvY3VzKFdlYktpdDo6V2Vi
UGFnZVByb3h5KikgZmluYWw7Ci0gICAgICAgIGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94
eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBB
UEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
Kikgb3ZlcnJpZGU7Ci0jZW5kaWYKLSAgICAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJh
bWVQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jikgb3ZlcnJpZGU7Ci0gICAgICAg
IGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mLCBXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Jikg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
Kikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgdGFrZUZvY3VzKFdlYlBhZ2VQcm94eSosIFdLRm9j
dXNEaXJlY3Rpb24pIGZpbmFsOworICAgICAgICB2b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSopIGZp
bmFsOworICAgICAgICB2b2lkIHVuZm9jdXMoV2ViUGFnZVByb3h5KikgZmluYWw7CisgICAgICAg
IGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgZmluYWw7CisjZW5kaWYKKyAgICAgICAg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CisgICAgICAg
IGJvb2wgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7CisgICAgICAgIHZvaWQgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBmaW5hbDsKKyAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSosIFdl
YkZyYW1lUHJveHkqKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1MpCiAjaWYgSEFWRShBUFBfTElO
S1MpCi0gICAgICAgIGJvb2wgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudChf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBzaG91bGRJ
bmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
IGZpbmFsOwogI2VuZGlmCi0gICAgICAgIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxl
bWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVs
dEFjdGlvbnMpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2so
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKLSAgICAgICAgVUlWaWV3Q29udHJv
bGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCkgb3ZlcnJpZGU7CisgICAgICAgIFJldGFp
blB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
LCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMpIGZpbmFsOworICAgICAgICB2b2lk
IGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBmaW5hbDsK
KyAgICAgICAgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCkgZmlu
YWw7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0gICAgICAgIE5TRGljdGlvbmFyeSAqZGF0
YURldGVjdGlvbkNvbnRleHQoKSBvdmVycmlkZTsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICpkYXRh
RGV0ZWN0aW9uQ29udGV4dCgpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAg
ICAgICAgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVy
cmlkZTsKLSAgICAgICAgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0OjpXZWJQYWdlUHJv
eHkqKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soV2ViUGFnZVBy
b3h5KikgZmluYWw7CisgICAgICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKFdlYlBhZ2VQcm94
eSopIGZpbmFsOwogI2VuZGlmCiAgICAgICAgIAotICAgICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgYm9vbCkgb3ZlcnJp
ZGU7CisgICAgICAgIHZvaWQgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UoV2Vi
UGFnZVByb3h5KiwgYm9vbCkgZmluYWw7CiAKLSAgICAgICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1
bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKSBmaW5hbDsKIAogICAgICAgICBVSURlbGVnYXRlJiBtX3VpRGVsZWdhdGU7CiAgICAg
fTsK
</data>
<flag name="review"
          id="339278"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>