<?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>170707</bug_id>
          
          <creation_ts>2017-04-10 16:40:27 -0700</creation_ts>
          <short_desc>REGRESSION(r195479) First main resource load in new WebProcess bypasses content extensions</short_desc>
          <delta_ts>2021-05-19 16:41:41 -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>am</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jonathan.arnold</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296213</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-10 16:40:27 -0700</bug_when>
    <thetext>REGRESSION(r195479) First main resource load in new WebProcess bypasses content extensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296215</commentid>
    <comment_count>1</comment_count>
      <attachid>306757</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-10 16:50:40 -0700</bug_when>
    <thetext>Created attachment 306757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296236</commentid>
    <comment_count>2</comment_count>
      <attachid>306757</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-10 17:40:04 -0700</bug_when>
    <thetext>Comment on attachment 306757
Patch

Clearing flags on attachment: 306757

Committed r215212: &lt;http://trac.webkit.org/changeset/215212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296237</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-10 17:40:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298023</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-17 14:31:26 -0700</bug_when>
    <thetext>*** Bug 170812 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298027</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-04-17 14:33:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/27788755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761772</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-05-19 16:41:41 -0700</bug_when>
    <thetext>*** Bug 162057 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306757</attachid>
            <date>2017-04-10 16:50:40 -0700</date>
            <delta_ts>2017-04-10 17:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170707-20170410165040.patch</filename>
            <type>text/plain</type>
            <size>36511</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTE4MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY2IEBACisyMDE3LTA0LTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTk1NDc5KSBGaXJzdCBtYWluIHJlc291cmNlIGxvYWQgaW4gbmV3IFdlYlByb2Nlc3MgYnlw
YXNzZXMgY29udGVudCBleHRlbnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA3MDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3Nzg4NzU1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGZp
eCB0aGlzIGJ5IHNlbmRpbmcgdGhlIFVzZXJDb250ZW50Q29udHJvbGxlciB3aXRoIHRoZSBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzCisgICAgICAgIGluc3RlYWQgb2YgaW4gYSBJUEMgbWVzc2Fn
ZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY3JlYXRpb24uICBCeSB0aGUgdGltZSB0aGUgV2ViUGFn
ZQorICAgICAgICByZWNlaXZlcyBpdHMgc2Vjb25kIG1lc3NhZ2UsIGl0IGhhcyBhbHJlYWR5IHN0
YXJ0ZWQgbG9hZGluZyB0aGUgZmlyc3QgbWFpbiByZXNvdXJjZS4KKyAgICAgICAgCisgICAgICAg
IEkgYWxzbyBjaGFuZ2VkIGFsbCBpbnN0YW5jZXMgb2YgY2FsbGluZyBDaGlsZFByb2Nlc3NQcm94
eTo6Y29ubmVjdGlvbigpIHRvIHNlbmQgYSBtZXNzYWdlCisgICAgICAgIGluIGZhdm9yIG9mIGNh
bGxpbmcgQ2hpbGRQcm9jZXNzUHJveHk6OnNlbmQsIHdoaWNoIGRvZXMgdGhlIHNhbWUgdGhpbmcg
ZXhjZXB0IGlmIGEgY2hpbGQKKyAgICAgICAgcHJvY2VzcyBoYXMgbm90IHN0YXJ0ZWQsIGl0IHdp
bGwgcHV0IHRoZSBtZXNzYWdlIGluIGEgcXVldWUgYW5kIHNlbmQgaXQgd2hlbiB0aGUgcHJvY2Vz
cworICAgICAgICBpcyBmaW5pc2hlZCBsYXVuY2hpbmcuICBUaGlzIHdhcyBuZWNlc3NhcnkgYmVj
YXVzZSB0aGUgVXNlckNvbnRlbnRDb250cm9sbGVyIGlzIG5vdyBjb25uZWN0ZWQKKyAgICAgICAg
dG8gdGhlIHByb2Nlc3Mgc29vbmVyLCBzbyB0aGVyZSB3ZXJlIHNvbWUgQVBJIHRlc3RzIHRoYXQg
d291bGQgdHJ5IHRvIHNlbmQgbWVzc2FnZXMgYmV0d2VlbgorICAgICAgICBpbml0aWF0aW5nIGEg
cHJvY2VzcyBsYXVuY2ggYW5kIGZpbmlzaGluZyBhIHByb2Nlc3MgbGF1bmNoLCBhbmQgdGhpcyBj
aGFuZ2UgcHJlc2VydmVzIHRoZQorICAgICAgICBleGlzdGluZyBiZWhhdmlvciBpbiB0aG9zZSBj
YXNlcy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkUHJveHk6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZUFzeW5jKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6YWRkUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjphZGRVc2VyQ29udGVudFdvcmxkVXNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJDb250ZW50V29y
bGRVc2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eTo6cmVtb3ZlVXNlclNjcmlwdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRVc2VyU3R5bGVTaGVldCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVVc2Vy
U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5OjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJN
ZXNzYWdlSGFuZGxlckZvck5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlck1lc3NhZ2VIYW5kbGVycyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRDb250ZW50RXh0ZW5zaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92
ZUNvbnRlbnRFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eTo6cmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlz
aXRlZExpbmtTdG9yZTo6cmVtb3ZlQWxsKToKKyAgICAgICAgKFdlYktpdDo6VmlzaXRlZExpbmtT
dG9yZTo6cGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpW
aXNpdGVkTGlua1N0b3JlOjpzZW5kVGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmlzaEluaXRpYWxp
emluZ1dlYlBhZ2VBZnRlclByb2Nlc3NMYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6bV9iYWNrZ3JvdW5kQ1BVTGltaXQpOgorCiAyMDE3LTA0LTEwICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBFbmFibGUgRE9NIHRpbWVyIHRocm90dGxpbmcgYW5kIENTUyBhbmltYXRpb25zIHN1c3BlbnNp
b24KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDIxNTE4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYg
KzEwMSwxMyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJCiAgICAg
ZW5jb2RlciA8PCBlbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDsKICNlbmRp
ZgogI2VuZGlmCisgICAgZW5jb2RlciA8PCB1c2VyQ29udGVudFdvcmxkczsKKyAgICBlbmNvZGVy
IDw8IHVzZXJTY3JpcHRzOworICAgIGVuY29kZXIgPDwgdXNlclN0eWxlU2hlZXRzOworICAgIGVu
Y29kZXIgPDwgbWVzc2FnZUhhbmRsZXJzOworI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
CisgICAgZW5jb2RlciA8PCBjb250ZW50RXh0ZW5zaW9uczsKKyNlbmRpZgogfQogCiBib29sIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0yMzcsNiArMjQ0LDE4IEBA
IGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKEkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCiAjZW5kaWYKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMudXNlckNvbnRlbnRXb3JsZHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVzZXJTY3JpcHRzKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2VyU3R5bGVTaGVldHMp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLm1lc3NhZ2VIYW5kbGVycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5j
b250ZW50RXh0ZW5zaW9ucykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIHJl
dHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIxNTE4MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDE1ICsyMywxNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyc19oCi0jZGVmaW5lIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEcmF3aW5nQXJl
YUluZm8uaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blN0YXRlLmgiCisjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YS5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91
cERhdGEuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5jbHVkZSAiV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rp
dml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRTaXplLmg+CkBAIC0xNTYsOCArMTU3LDE1IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBib29sIGVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNF
bmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogI2VuZGlmCisKKyAgICAvLyBVc2VyQ29udGVudENv
bnRyb2xsZXIgbWVtYmVycworICAgIFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmluZz4+
IHVzZXJDb250ZW50V29ybGRzOworICAgIFZlY3RvcjxXZWJVc2VyU2NyaXB0RGF0YT4gdXNlclNj
cmlwdHM7CisgICAgVmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gdXNlclN0eWxlU2hlZXRz
OworICAgIFZlY3RvcjxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IG1lc3NhZ2VIYW5kbGVy
czsKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorICAgIFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhPj4gY29udGVudEV4dGVuc2lv
bnM7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCShyZXZpc2lvbiAyMTUxODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MSw3ICsxMTEsNyBAQCB2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OnJlbW92ZUFsbCgpCiAKICAgICBm
b3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKSB7CiAgICAgICAgIEFT
U0VSVChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NlcygpLmNvbnRhaW5zKHByb2Nlc3Mp
KTsKLSAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpWaXNpdGVk
TGlua1RhYmxlQ29udHJvbGxlcjo6UmVtb3ZlQWxsVmlzaXRlZExpbmtzKCksIG1faWRlbnRpZmll
cik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rVGFibGVDb250
cm9sbGVyOjpSZW1vdmVBbGxWaXNpdGVkTGlua3MoKSwgbV9pZGVudGlmaWVyKTsKICAgICB9CiB9
CiAKQEAgLTE5NCw5ICsxOTQsOSBAQCB2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OnBlbmRpbmdWaXNp
dGVkTGluCiAgICAgICAgIEFTU0VSVChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3Nlcygp
LmNvbnRhaW5zKHByb2Nlc3MpKTsKIAogICAgICAgICBpZiAoYWRkZWRWaXNpdGVkTGlua3Muc2l6
ZSgpID4gMjApCi0gICAgICAgICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpBbGxWaXNpdGVkTGlua1N0YXRlQ2hhbmdl
ZCgpLCBtX2lkZW50aWZpZXIpOworICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OkFsbFZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkKCks
IG1faWRlbnRpZmllcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OlZpc2l0
ZWRMaW5rU3RhdGVDaGFuZ2VkKGFkZGVkVmlzaXRlZExpbmtzKSwgbV9pZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9s
bGVyOjpWaXNpdGVkTGlua1N0YXRlQ2hhbmdlZChhZGRlZFZpc2l0ZWRMaW5rcyksIG1faWRlbnRp
Zmllcik7CiAgICAgfQogfQogCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBWaXNpdGVkTGlua1N0
b3JlOjpzZW5kVGFibGUoV2ViUHJvYwogICAgIGlmICghbV90YWJsZS5zaGFyZWRNZW1vcnkoKS0+
Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHByb2Nlc3MuY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6U2V0VmlzaXRlZExpbmtUYWJsZShoYW5k
bGUpLCBtX2lkZW50aWZpZXIpOworICAgIHByb2Nlc3Muc2VuZChNZXNzYWdlczo6VmlzaXRlZExp
bmtUYWJsZUNvbnRyb2xsZXI6OlNldFZpc2l0ZWRMaW5rVGFibGUoaGFuZGxlKSwgbV9pZGVudGlm
aWVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjE1MTgxKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyNCw4
ICs4MjQsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluaXNoSW5pdGlhbGl6aW5nV2ViCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fbmVlZHNUb0ZpbmlzaEluaXRpYWxpemluZ1dlYlBhZ2VBZnRl
clByb2Nlc3NMYXVuY2ggPSBmYWxzZTsKLQotICAgIG1fcHJvY2Vzcy0+YWRkV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkobV91c2VyQ29udGVudENvbnRyb2xsZXIpOwogICAgIG1fcHJvY2Vz
cy0+YWRkVmlzaXRlZExpbmtTdG9yZShtX3Zpc2l0ZWRMaW5rU3RvcmUpOwogfQogCkBAIC01NTk1
LDYgKzU1OTMsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAj
ZW5kaWYKICNlbmRpZgogCisgICAgbV9wcm9jZXNzLT5hZGRXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eShtX3VzZXJDb250ZW50Q29udHJvbGxlciwgcGFyYW1ldGVycyk7CisKICAgICByZXR1
cm4gcGFyYW1ldGVyczsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDIxNTE4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTAgKzMy
MCwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkVmlzaXRlZExpbmtTdG9yCiAgICAgc3Rv
cmUuYWRkUHJvY2VzcygqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYg
cHJveHkpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkmIHByb3h5LCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIG1fd2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveGllcy5hZGQoJnByb3h5KTsKLSAgICBwcm94eS5hZGRQcm9jZXNzKCp0aGlzKTsKKyAg
ICBwcm94eS5hZGRQcm9jZXNzKCp0aGlzLCBwYXJhbWV0ZXJzKTsKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmRpZERlc3Ryb3lWaXNpdGVkTGlua1N0b3JlKFZpc2l0ZWRMaW5rU3RvcmUmIHN0
b3JlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAko
cmV2aXNpb24gMjE1MTgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCB2aXNpYmxlUGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlUGFnZUNvdW50
ZXIudmFsdWUoKTsgfQogCiAgICAgdm9pZCBhZGRWaXNpdGVkTGlua1N0b3JlKFZpc2l0ZWRMaW5r
U3RvcmUmKTsKLSAgICB2b2lkIGFkZFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5Jik7CisgICAgdm9pZCBhZGRXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYsIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lWaXNpdGVkTGlua1N0b3JlKFZp
c2l0ZWRMaW5rU3RvcmUmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNl
UHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjE1MTgxKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc1Byb3h5OjpnZXREYXRhYmFz
ZVByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OkRhdGFiYXNlUHJvY2Vzczo6Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKCksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3M6OkNyZWF0
ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRp
c3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZvaWQgRGF0
YWJhc2VQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCkBAIC0yMTcsNyAr
MjE3LDcgQEAgdm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bgogICAgIH0K
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVx
dWVzdHM7ICsraSkKLSAgICAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFz
ZVByb2Nlc3M6OkNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwKTsKKyAg
ICAgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpDcmVhdGVEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgMCk7CiAgICAgCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlv
blJlcXVlc3RzID0gMDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkocmV2aXNpb24gMjE1MTgxKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIERvd25sb2FkUHJveHk6OmNhbmNlbCgpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChOZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJv
Y2VzcyA9IG1fcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgIG5ldHdvcmtQ
cm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDYW5j
ZWxEb3dubG9hZChtX2Rvd25sb2FkSUQpLCAwKTsKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDYW5jZWxEb3dubG9hZChtX2Rvd25sb2FkSUQp
LCAwKTsKIH0KIAogdm9pZCBEb3dubG9hZFByb3h5OjppbnZhbGlkYXRlKCkKQEAgLTEyNiw3ICsx
MjYsNyBAQCB2b2lkIERvd25sb2FkUHJveHk6OmNhbkF1dGhlbnRpY2F0ZUFnYWluCiAKICAgICBi
b29sIHJlc3VsdCA9IG1fcHJvY2Vzc1Bvb2wtPmRvd25sb2FkQ2xpZW50KCkuY2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShnZXRQdHIoV2ViUHJvdGVjdGlvblNwYWNlOjpjcmVh
dGUocHJvdGVjdGlvblNwYWNlKSkpOwogICAgIAotICAgIG5ldHdvcmtQcm9jZXNzUHJveHktPmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNvbnRpbnVlQ2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZURvd25sb2FkKG1fZG93bmxvYWRJRCwgcmVz
dWx0KSwgMCk7CisgICAgbmV0d29ya1Byb2Nlc3NQcm94eS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZURv
d25sb2FkKG1fZG93bmxvYWRJRCwgcmVzdWx0KSwgMCk7CiB9CiAjZW5kaWYKIApAQCAtMTQ0LDcg
KzE0NCw3IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6d2lsbFNlbmRSZXF1ZXN0KGNvbnMKICAgICAg
ICAgaWYgKCFuZXR3b3JrUHJvY2Vzc1Byb3h5KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICAgICAgbmV0d29ya1Byb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6Q29udGludWVXaWxsU2VuZFJlcXVlc3QocHJvdGVjdGVkVGhp
cy0+bV9kb3dubG9hZElELCBuZXdSZXF1ZXN0KSwgMCk7CisgICAgICAgIG5ldHdvcmtQcm9jZXNz
UHJveHktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDb250aW51ZVdpbGxTZW5kUmVx
dWVzdChwcm90ZWN0ZWRUaGlzLT5tX2Rvd25sb2FkSUQsIG5ld1JlcXVlc3QpLCAwKTsKICAgICB9
KTsKIH0KICNlbmRpZgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGVj
aWRlRGVzdGluYXRpb25XaXQKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
KGRlc3RpbmF0aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkV3JpdGUsIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpOwogCiAgICAgaWYgKE5ldHdvcmtQcm9jZXNzUHJveHkqIG5ldHdvcmtQcm9jZXNz
ID0gbV9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkKLSAgICAgICAgbmV0d29ya1Byb2Nl
c3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNvbnRpbnVl
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oZG93bmxvYWRJRCwgZGVzdGluYXRpb24s
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlKSwgMCk7CisgICAgICAgIG5l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q29udGludWVEZWNp
ZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihkb3dubG9hZElELCBkZXN0aW5hdGlvbiwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSwgYWxsb3dPdmVyd3JpdGUpLCAwKTsKIH0KIAogI2lmICFVU0Uo
TkVUV09SS19TRVNTSU9OKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkuY3BwCShyZXZpc2lvbiAyMTUxODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Nyw0MCArNjcsMzMgQEAgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6On5X
ZWJVc2VyQwogICAgIH0KIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6
YWRkUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSkKK3ZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQ
cm9jZXNzUHJveHksIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0g
ICAgQVNTRVJUKHdlYlByb2Nlc3NQcm94eS5zdGF0ZSgpID09IFdlYlByb2Nlc3NQcm94eTo6U3Rh
dGU6OlJ1bm5pbmcpOwotCiAgICAgaWYgKCFtX3Byb2Nlc3Nlcy5hZGQoJndlYlByb2Nlc3NQcm94
eSkuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2ViUHJvY2Vzc1Byb3h5LmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLCAqdGhpcyk7CiAKLSAgICBWZWN0
b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+PiB1c2VyQ29udGVudFdvcmxkczsKKyAgICBB
U1NFUlQocGFyYW1ldGVycy51c2VyQ29udGVudFdvcmxkcy5pc0VtcHR5KCkpOwogICAgIGZvciAo
Y29uc3QgYXV0byYgd29ybGQgOiBtX3VzZXJDb250ZW50V29ybGRzKQotICAgICAgICB1c2VyQ29u
dGVudFdvcmxkcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIod29ybGQua2V5LT5pZGVudGlmaWVyKCks
IHdvcmxkLmtleS0+bmFtZSgpKSk7Ci0gICAgd2ViUHJvY2Vzc1Byb3h5LmNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyQ29udGVudFdv
cmxkcyh1c2VyQ29udGVudFdvcmxkcyksIG1faWRlbnRpZmllcik7CisgICAgICAgIHBhcmFtZXRl
cnMudXNlckNvbnRlbnRXb3JsZHMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKHdvcmxkLmtleS0+aWRl
bnRpZmllcigpLCB3b3JsZC5rZXktPm5hbWUoKSkpOwogCi0gICAgVmVjdG9yPFdlYlVzZXJTY3Jp
cHREYXRhPiB1c2VyU2NyaXB0czsKKyAgICBBU1NFUlQocGFyYW1ldGVycy51c2VyU2NyaXB0cy5p
c0VtcHR5KCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgdXNlclNjcmlwdCA6IG1fdXNlclNjcmlw
dHMtPmVsZW1lbnRzT2ZUeXBlPEFQSTo6VXNlclNjcmlwdD4oKSkKLSAgICAgICAgdXNlclNjcmlw
dHMuYXBwZW5kKHsgdXNlclNjcmlwdC0+aWRlbnRpZmllcigpLCB1c2VyU2NyaXB0LT51c2VyQ29u
dGVudFdvcmxkKCkuaWRlbnRpZmllcigpLCB1c2VyU2NyaXB0LT51c2VyU2NyaXB0KCkgfSk7Ci0g
ICAgd2ViUHJvY2Vzc1Byb3h5LmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU2NyaXB0cyh1c2VyU2NyaXB0cyksIG1faWRlbnRpZmll
cik7CisgICAgICAgIHBhcmFtZXRlcnMudXNlclNjcmlwdHMuYXBwZW5kKHsgdXNlclNjcmlwdC0+
aWRlbnRpZmllcigpLCB1c2VyU2NyaXB0LT51c2VyQ29udGVudFdvcmxkKCkuaWRlbnRpZmllcigp
LCB1c2VyU2NyaXB0LT51c2VyU2NyaXB0KCkgfSk7CiAKLSAgICBWZWN0b3I8V2ViVXNlclN0eWxl
U2hlZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CisgICAgQVNTRVJUKHBhcmFtZXRlcnMudXNlclN0
eWxlU2hlZXRzLmlzRW1wdHkoKSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU3R5bGVTaGVl
dCA6IG1fdXNlclN0eWxlU2hlZXRzLT5lbGVtZW50c09mVHlwZTxBUEk6OlVzZXJTdHlsZVNoZWV0
PigpKQotICAgICAgICB1c2VyU3R5bGVTaGVldHMuYXBwZW5kKHsgdXNlclN0eWxlU2hlZXQtPmlk
ZW50aWZpZXIoKSwgdXNlclN0eWxlU2hlZXQtPnVzZXJDb250ZW50V29ybGQoKS5pZGVudGlmaWVy
KCksIHVzZXJTdHlsZVNoZWV0LT51c2VyU3R5bGVTaGVldCgpIH0pOwotICAgIHdlYlByb2Nlc3NQ
cm94eS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxl
cjo6QWRkVXNlclN0eWxlU2hlZXRzKHVzZXJTdHlsZVNoZWV0cyksIG1faWRlbnRpZmllcik7Cisg
ICAgICAgIHBhcmFtZXRlcnMudXNlclN0eWxlU2hlZXRzLmFwcGVuZCh7IHVzZXJTdHlsZVNoZWV0
LT5pZGVudGlmaWVyKCksIHVzZXJTdHlsZVNoZWV0LT51c2VyQ29udGVudFdvcmxkKCkuaWRlbnRp
ZmllcigpLCB1c2VyU3R5bGVTaGVldC0+dXNlclN0eWxlU2hlZXQoKSB9KTsKIAotICAgIFZlY3Rv
cjxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IG1lc3NhZ2VIYW5kbGVyczsKKyAgICBBU1NF
UlQocGFyYW1ldGVycy5tZXNzYWdlSGFuZGxlcnMuaXNFbXB0eSgpKTsKICAgICBmb3IgKGF1dG8m
IGhhbmRsZXIgOiBtX3NjcmlwdE1lc3NhZ2VIYW5kbGVycy52YWx1ZXMoKSkKLSAgICAgICAgbWVz
c2FnZUhhbmRsZXJzLmFwcGVuZCh7IGhhbmRsZXItPmlkZW50aWZpZXIoKSwgaGFuZGxlci0+dXNl
ckNvbnRlbnRXb3JsZCgpLmlkZW50aWZpZXIoKSwgaGFuZGxlci0+bmFtZSgpIH0pOwotICAgIHdl
YlByb2Nlc3NQcm94eS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6QWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhtZXNzYWdlSGFuZGxlcnMp
LCBtX2lkZW50aWZpZXIpOworICAgICAgICBwYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVycy5hcHBl
bmQoeyBoYW5kbGVyLT5pZGVudGlmaWVyKCksIGhhbmRsZXItPnVzZXJDb250ZW50V29ybGQoKS5p
ZGVudGlmaWVyKCksIGhhbmRsZXItPm5hbWUoKSB9KTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCi0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVu
dEV4dGVuc2lvbkRhdGE+PiBjb250ZW50RXh0ZW5zaW9uczsKKyAgICBBU1NFUlQocGFyYW1ldGVy
cy5jb250ZW50RXh0ZW5zaW9ucy5pc0VtcHR5KCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgY29u
dGVudEV4dGVuc2lvbiA6IG1fY29udGVudEV4dGVuc2lvbnMudmFsdWVzKCkpCi0gICAgICAgIGNv
bnRlbnRFeHRlbnNpb25zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihjb250ZW50RXh0ZW5zaW9uLT5u
YW1lKCksIGNvbnRlbnRFeHRlbnNpb24tPmNvbXBpbGVkRXh0ZW5zaW9uKCkuZGF0YSgpKSk7Ci0g
ICAgd2ViUHJvY2Vzc1Byb3h5LmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjpBZGRDb250ZW50RXh0ZW5zaW9ucyhjb250ZW50RXh0ZW5zaW9ucyks
IG1faWRlbnRpZmllcik7CisgICAgICAgIHBhcmFtZXRlcnMuY29udGVudEV4dGVuc2lvbnMuYXBw
ZW5kKHN0ZDo6bWFrZV9wYWlyKGNvbnRlbnRFeHRlbnNpb24tPm5hbWUoKSwgY29udGVudEV4dGVu
c2lvbi0+Y29tcGlsZWRFeHRlbnNpb24oKS5kYXRhKCkpKTsKICNlbmRpZgogfQogCkBAIC0xMjAs
NyArMTEzLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6YWRkVQogICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV91c2VyQ29udGVudFdvcmxkcy5hZGQoJndvcmxkKTsKICAgICBp
ZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyQ29udGVu
dFdvcmxkcyh7IHN0ZDo6bWFrZV9wYWlyKHdvcmxkLmlkZW50aWZpZXIoKSwgd29ybGQubmFtZSgp
KSB9KSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6QWRkVXNlckNvbnRlbnRXb3JsZHMoeyBzdGQ6Om1h
a2VfcGFpcih3b3JsZC5pZGVudGlmaWVyKCksIHdvcmxkLm5hbWUoKSkgfSksIG1faWRlbnRpZmll
cik7CiAgICAgfQogfQogCkBAIC0xNDQsNyArMTM3LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6cmVtbwogewogICAgIGlmIChzaG91bGRTZW5kUmVtb3ZlVXNlckNvbnRl
bnRXb3JsZHNNZXNzYWdlKHdvcmxkLCBudW1iZXJPZlVzZXNUb1JlbW92ZSkpIHsKICAgICAgICAg
Zm9yIChXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgICAg
IHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250
cm9sbGVyOjpSZW1vdmVVc2VyQ29udGVudFdvcmxkcyh7IHdvcmxkLmlkZW50aWZpZXIoKSB9KSwg
bV9pZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoeyB3b3JsZC5pZGVu
dGlmaWVyKCkgfSksIG1faWRlbnRpZmllcik7CiAgICAgfQogfQogCkBAIC0xNTcsNyArMTUwLDcg
QEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtbwogICAgIH0KIAogICAg
IGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCi0gICAgICAgIHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjpSZW1vdmVVc2VyQ29udGVudFdvcmxkcyh3b3JsZHNUb1JlbW92ZSksIG1faWRlbnRpZmll
cik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6UmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMod29ybGRzVG9SZW1vdmUpLCBtX2lkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRVc2VyU2Ny
aXB0KEFQSTo6VXNlclNjcmlwdCYgdXNlclNjcmlwdCkKQEAgLTE2OSw3ICsxNjIsNyBAQCB2b2lk
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjphZGRVCiAgICAgbV91c2VyU2NyaXB0cy0+
ZWxlbWVudHMoKS5hcHBlbmQoJnVzZXJTY3JpcHQpOwogCiAgICAgZm9yIChXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTY3JpcHRz
KHsgeyB1c2VyU2NyaXB0LmlkZW50aWZpZXIoKSwgd29ybGQtPmlkZW50aWZpZXIoKSwgdXNlclNj
cmlwdC51c2VyU2NyaXB0KCkgfSB9KSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU2NyaXB0cyh7
IHsgdXNlclNjcmlwdC5pZGVudGlmaWVyKCksIHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTY3Jp
cHQudXNlclNjcmlwdCgpIH0gfSksIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0JiB1
c2VyU2NyaXB0KQpAQCAtMTc3LDcgKzE3MCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OnJlbW8KICAgICBSZWY8QVBJOjpVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IHVz
ZXJTY3JpcHQudXNlckNvbnRlbnRXb3JsZCgpOwogCiAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTY3JpcHQo
d29ybGQtPmlkZW50aWZpZXIoKSwgdXNlclNjcmlwdC5pZGVudGlmaWVyKCkpLCBtX2lkZW50aWZp
ZXIpOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OlJlbW92ZVVzZXJTY3JpcHQod29ybGQtPmlkZW50aWZpZXIoKSwgdXNlclNjcmlwdC5p
ZGVudGlmaWVyKCkpLCBtX2lkZW50aWZpZXIpOwogCiAgICAgbV91c2VyU2NyaXB0cy0+ZWxlbWVu
dHMoKS5yZW1vdmVBbGwoJnVzZXJTY3JpcHQpOwogCkBAIC0xODcsNyArMTgwLDcgQEAgdm9pZCBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtbwogdm9pZCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNjcmlwdHMoQVBJOjpVc2VyQ29udGVudFdvcmxk
JiB3b3JsZCkKIHsKICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vz
c2VzKQotICAgICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclNjcmlwdHMoeyB3b3JsZC5pZGVudGlm
aWVyKCkgfSksIG1faWRlbnRpZmllcik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclNjcmlwdHMoeyB3b3JsZC5p
ZGVudGlmaWVyKCkgfSksIG1faWRlbnRpZmllcik7CiAKICAgICB1bnNpZ25lZCB1c2VyU2NyaXB0
c1JlbW92ZWQgPSBtX3VzZXJTY3JpcHRzLT5yZW1vdmVBbGxPZlR5cGVNYXRjaGluZzxBUEk6OlVz
ZXJTY3JpcHQ+KFsmXShjb25zdCBhdXRvJiB1c2VyU2NyaXB0KSB7CiAgICAgICAgIHJldHVybiAm
dXNlclNjcmlwdC0+dXNlckNvbnRlbnRXb3JsZCgpID09ICZ3b3JsZDsKQEAgLTIwOCw3ICsyMDEs
NyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vCiAgICAgICAgIHdv
cmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKHdvcmxkQ291bnRQYWlyLmtleS0+aWRlbnRp
ZmllcigpKTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNz
ZXMpCi0gICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU2NyaXB0cyh3b3JsZElkZW50aWZpZXJz
KSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU2NyaXB0cyh3b3JsZElkZW50aWZpZXJz
KSwgbV9pZGVudGlmaWVyKTsKIAogICAgIG1fdXNlclNjcmlwdHMtPmVsZW1lbnRzKCkuY2xlYXIo
KTsKIApAQCAtMjI0LDcgKzIxNyw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHk6OmFkZFUKICAgICBtX3VzZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHMoKS5hcHBlbmQoJnVzZXJT
dHlsZVNoZWV0KTsKIAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9j
ZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU3R5bGVTaGVldHMoeyB7IHVzZXJTdHlsZVNo
ZWV0LmlkZW50aWZpZXIoKSwgd29ybGQtPmlkZW50aWZpZXIoKSwgdXNlclN0eWxlU2hlZXQudXNl
clN0eWxlU2hlZXQoKSB9IH0pLCBtX2lkZW50aWZpZXIpOworICAgICAgICBwcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTdHlsZVNoZWV0cyh7
IHsgdXNlclN0eWxlU2hlZXQuaWRlbnRpZmllcigpLCB3b3JsZC0+aWRlbnRpZmllcigpLCB1c2Vy
U3R5bGVTaGVldC51c2VyU3R5bGVTaGVldCgpIH0gfSksIG1faWRlbnRpZmllcik7CiB9CiAKIHZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0KEFQ
STo6VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQpAQCAtMjMyLDcgKzIyNSw3IEBAIHZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW8KICAgICBSZWY8QVBJOjpVc2Vy
Q29udGVudFdvcmxkPiB3b3JsZCA9IHVzZXJTdHlsZVNoZWV0LnVzZXJDb250ZW50V29ybGQoKTsK
IAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCi0gICAg
ICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpSZW1vdmVVc2VyU3R5bGVTaGVldCh3b3JsZC0+aWRlbnRpZmllcigpLCB1c2Vy
U3R5bGVTaGVldC5pZGVudGlmaWVyKCkpLCBtX2lkZW50aWZpZXIpOworICAgICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTdHls
ZVNoZWV0KHdvcmxkLT5pZGVudGlmaWVyKCksIHVzZXJTdHlsZVNoZWV0LmlkZW50aWZpZXIoKSks
IG1faWRlbnRpZmllcik7CiAKICAgICBtX3VzZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHMoKS5yZW1v
dmVBbGwoJnVzZXJTdHlsZVNoZWV0KTsKIApAQCAtMjQyLDcgKzIzNSw3IEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW8KIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhBUEk6OlVzZXJDb250ZW50V29ybGQm
IHdvcmxkKQogewogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNz
ZXMpCi0gICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoeyB3b3JsZC5pZGVu
dGlmaWVyKCkgfSksIG1faWRlbnRpZmllcik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKHsg
d29ybGQuaWRlbnRpZmllcigpIH0pLCBtX2lkZW50aWZpZXIpOwogCiAgICAgdW5zaWduZWQgdXNl
clN0eWxlU2hlZXRzUmVtb3ZlZCA9IG1fdXNlclN0eWxlU2hlZXRzLT5yZW1vdmVBbGxPZlR5cGVN
YXRjaGluZzxBUEk6OlVzZXJTdHlsZVNoZWV0PihbJl0oY29uc3QgYXV0byYgdXNlclN0eWxlU2hl
ZXQpIHsKICAgICAgICAgcmV0dXJuICZ1c2VyU3R5bGVTaGVldC0+dXNlckNvbnRlbnRXb3JsZCgp
ID09ICZ3b3JsZDsKQEAgLTI2Myw3ICsyNTYsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vCiAgICAgICAgIHdvcmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5k
KHdvcmxkQ291bnRQYWlyLmtleS0+aWRlbnRpZmllcigpKTsKIAogICAgIGZvciAoV2ViUHJvY2Vz
c1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxV
c2VyU3R5bGVTaGVldHMod29ybGRJZGVudGlmaWVycyksIG1faWRlbnRpZmllcik7CisgICAgICAg
IHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3Zl
QWxsVXNlclN0eWxlU2hlZXRzKHdvcmxkSWRlbnRpZmllcnMpLCBtX2lkZW50aWZpZXIpOwogCiAg
ICAgbV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzKCkuY2xlYXIoKTsKIApAQCAtMjg0LDcgKzI3
Nyw3IEBAIGJvb2wgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFUKICAgICBtX3Nj
cmlwdE1lc3NhZ2VIYW5kbGVycy5hZGQoaGFuZGxlci5pZGVudGlmaWVyKCksICZoYW5kbGVyKTsK
IAogICAgIGZvciAoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzIDogbV9wcm9jZXNzZXMpCi0gICAg
ICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpBZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKHsgeyBoYW5kbGVyLmlkZW50
aWZpZXIoKSwgd29ybGQtPmlkZW50aWZpZXIoKSwgaGFuZGxlci5uYW1lKCkgfSB9KSwgbV9pZGVu
dGlmaWVyKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpBZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKHsgeyBoYW5kbGVyLmlkZW50
aWZpZXIoKSwgd29ybGQtPmlkZW50aWZpZXIoKSwgaGFuZGxlci5uYW1lKCkgfSB9KSwgbV9pZGVu
dGlmaWVyKTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI5NCw3ICsyODcsNyBAQCB2
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vCiAgICAgZm9yIChhdXRvIGl0
ID0gbV9zY3JpcHRNZXNzYWdlSGFuZGxlcnMuYmVnaW4oKSwgZW5kID0gbV9zY3JpcHRNZXNzYWdl
SGFuZGxlcnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBpZiAoaXQtPnZhbHVl
LT5uYW1lKCkgPT0gbmFtZSAmJiAmaXQtPnZhbHVlLT51c2VyQ29udGVudFdvcmxkKCkgPT0gJndv
cmxkKSB7CiAgICAgICAgICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJv
Y2Vzc2VzKQotICAgICAgICAgICAgICAgIHByb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhh
bmRsZXIod29ybGQuaWRlbnRpZmllcigpLCBpdC0+dmFsdWUtPmlkZW50aWZpZXIoKSksIG1faWRl
bnRpZmllcik7CisgICAgICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIod29ybGQu
aWRlbnRpZmllcigpLCBpdC0+dmFsdWUtPmlkZW50aWZpZXIoKSksIG1faWRlbnRpZmllcik7CiAK
ICAgICAgICAgICAgIG1fc2NyaXB0TWVzc2FnZUhhbmRsZXJzLnJlbW92ZShpdCk7CiAKQEAgLTMw
Nyw3ICszMDAsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vCiB2
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyTWVzc2FnZUhh
bmRsZXJzKEFQSTo6VXNlckNvbnRlbnRXb3JsZCYgd29ybGQpCiB7CiAgICAgZm9yIChXZWJQcm9j
ZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+Y29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OlJlbW92ZUFs
bFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoeyB3b3JsZC5pZGVudGlmaWVyKCkgfSksIG1faWRl
bnRpZmllcik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6UmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyh7IHdvcmxkLmlk
ZW50aWZpZXIoKSB9KSwgbV9pZGVudGlmaWVyKTsKIAogICAgIHVuc2lnbmVkIG51bWJlclJlbW92
ZWQgPSAwOwogICAgIG1fc2NyaXB0TWVzc2FnZUhhbmRsZXJzLnJlbW92ZUlmKFsmXShhdXRvJiBl
bnRyeSkgewpAQCAtMzQ1LDcgKzMzOCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHk6OmFkZEMKICAgICBhdXRvIHBhaXIgPSBzdGQ6Om1ha2VfcGFpcihjb250ZW50RXh0ZW5z
aW9uLm5hbWUoKSwgY29udGVudEV4dGVuc2lvbi5jb21waWxlZEV4dGVuc2lvbigpLmRhdGEoKSk7
CiAKICAgICBmb3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQotICAg
ICAgICBwcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6QWRkQ29udGVudEV4dGVuc2lvbnMoeyBwYWlyIH0pLCBtX2lkZW50aWZpZXIp
OworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OkFkZENvbnRlbnRFeHRlbnNpb25zKHsgcGFpciB9KSwgbV9pZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQ29udGVudEV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0zNTMsNyArMzQ2LDcgQEAgdm9pZCBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eTo6cmVtbwogICAgIG1fY29udGVudEV4dGVuc2lvbnMucmVtb3Zl
KG5hbWUpOwogCiAgICAgZm9yIChXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MgOiBtX3Byb2Nlc3Nl
cykKLSAgICAgICAgcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OlJlbW92ZUNvbnRlbnRFeHRlbnNpb24obmFtZSksIG1faWRlbnRp
Zmllcik7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6UmVtb3ZlQ29udGVudEV4dGVuc2lvbihuYW1lKSwgbV9pZGVudGlmaWVyKTsKIH0K
IAogdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsQ29udGVudEV4
dGVuc2lvbnMoKQpAQCAtMzYxLDcgKzM1NCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OnJlbW8KICAgICBtX2NvbnRlbnRFeHRlbnNpb25zLmNsZWFyKCk7CiAKICAgICBm
b3IgKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKQotICAgICAgICBwcm9j
ZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxl
cjo6UmVtb3ZlQWxsQ29udGVudEV4dGVuc2lvbnMoKSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAg
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVB
bGxDb250ZW50RXh0ZW5zaW9ucygpLCBtX2lkZW50aWZpZXIpOwogfQogI2VuZGlmCiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCShyZXZpc2lvbiAyMTUxODEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOwogc3RydWN0IEZyYW1lSW5mb0RhdGE7CitzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczsKIAogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyQ29udGVudENvbnRyb2xs
ZXI+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKQEAgLTY4LDcgKzY5
LDcgQEAgcHVibGljOgogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogCi0gICAgdm9pZCBhZGRQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYp
OworICAgIHZvaWQgYWRkUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAgICAgdm9pZCByZW1vdmVQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYpOwog
CiAgICAgQVBJOjpBcnJheSYgdXNlclNjcmlwdHMoKSB7IHJldHVybiBtX3VzZXJTY3JpcHRzLmdl
dCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIx
NTE4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVVzZXJTdHlsZVNoZWV0cyhJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkJik7CiAgICAgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCisgICAgdm9pZCBhZGRV
c2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+
PiYpOworICAgIHZvaWQgYWRkVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTY3JpcHRE
YXRhPiYpOworICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJVc2Vy
U3R5bGVTaGVldERhdGE+Jik7CisgICAgdm9pZCBhZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJz
KGNvbnN0IFZlY3RvcjxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+Jik7CisjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKKyAgICB2b2lkIGFkZENvbnRlbnRFeHRlbnNpb25zKGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRh
Pj4mKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlcih1aW50NjRfdCBpZGVudGlmaWVyKTsKIApAQCAtNzgsMjMgKzg2LDE4IEBAIHByaXZh
dGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZv
aWQgYWRkVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwg
U3RyaW5nPj4mKTsKICAgICB2b2lkIHJlbW92ZVVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3Rv
cjx1aW50NjRfdD4mKTsKIAotICAgIHZvaWQgYWRkVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPFdl
YlVzZXJTY3JpcHREYXRhPiYpOwogICAgIHZvaWQgcmVtb3ZlVXNlclNjcmlwdCh1aW50NjRfdCB3
b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKICAgICB2b2lk
IHJlbW92ZUFsbFVzZXJTY3JpcHRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mKTsKIAotICAgIHZv
aWQgYWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJVc2VyU3R5bGVTaGVldERhdGE+
Jik7CiAgICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3b3JsZElkZW50aWZp
ZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUFsbFVz
ZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CiAKLSAgICB2b2lkIGFkZFVz
ZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YT4mKTsKICAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcih1aW50
NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKICAg
ICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPHVp
bnQ2NF90PiYpOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICB2b2lkIGFk
ZENvbnRlbnRFeHRlbnNpb25zKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21w
aWxlZENvbnRlbnRFeHRlbnNpb25EYXRhPj4mKTsKICAgICB2b2lkIHJlbW92ZUNvbnRlbnRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRFeHRl
bnNpb25zKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDIxNTE4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY2LDYgKzU2
NiwxNCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnCiAKICAgICBm
b3IgKGF1dG8gaXRlcmF0b3IgOiBwYXJhbWV0ZXJzLnVybFNjaGVtZUhhbmRsZXJzKQogICAgICAg
ICByZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIoaXRlcmF0b3IudmFsdWUsIGl0ZXJhdG9yLmtleSk7
CisKKyAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlckNvbnRlbnRXb3JsZHMocGFy
YW1ldGVycy51c2VyQ29udGVudFdvcmxkcyk7CisgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXIt
PmFkZFVzZXJTY3JpcHRzKHBhcmFtZXRlcnMudXNlclNjcmlwdHMpOworICAgIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyLT5hZGRVc2VyU3R5bGVTaGVldHMocGFyYW1ldGVycy51c2VyU3R5bGVTaGVl
dHMpOworICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyU2NyaXB0TWVzc2FnZUhh
bmRsZXJzKHBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXJzKTsKKyNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQorICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRDb250ZW50RXh0ZW5z
aW9ucyhwYXJhbWV0ZXJzLmNvbnRlbnRFeHRlbnNpb25zKTsKKyNlbmRpZgogfQogCiAjaWYgRU5B
QkxFKFdFQl9SVEMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMTUyMDcpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNC0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjE5NTQ3OSkgRmly
c3QgbWFpbiByZXNvdXJjZSBsb2FkIGluIG5ldyBXZWJQcm9jZXNzIGJ5cGFzc2VzIGNvbnRlbnQg
ZXh0ZW5zaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcwNzA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzc4ODc1NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbToKKyAgICAgICAg
KC1bQ29udGVudEV4dGVuc2lvbkRlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFu
ZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9XZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgICgtW0NvbnRlbnRCbG9ja2luZ1dlYnNpdGVQ
b2xpY2llc0RlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2Fn
ZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtDb250
ZW50QmxvY2tpbmdXZWJzaXRlUG9saWNpZXNEZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFRFU1QpOgor
CiAyMDE3LTA0LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZmFjdG9yIERhdGFJbnRlcmFjdGlvblRlc3RzLlVucmVzcG9uc2l2ZVBhZ2VEb2Vz
Tm90SGFuZ1VJIHRvIG5vdCBjaGVjayBhZ2FpbnN0IGEgZml4ZWQgdGltZSBpbnRlcnZhbApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQkocmV2aXNpb24gMjE1
MTgxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjksMTggKzI2OSwxMCBA
QCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuCiB7CiAgICAgc3dpdGNo
IChhbGVydENvdW50KyspIHsKICAgICBjYXNlIDA6Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgZmly
c3QgY29udGVudCBibG9ja2VyIHNob3VsZCBiZSBlbmFibGVkIGhlcmUuCi0gICAgICAgIC8vIENv
bnRlbnRFeHRlbnNpb25zQmFja2VuZDo6YWRkQ29udGVudEV4dGVuc2lvbiBpc24ndCBiZWluZyBj
YWxsZWQgaW4gdGhlIFdlYlByb2Nlc3MKLSAgICAgICAgLy8gdW50aWwgYWZ0ZXIgdGhlIGZpcnN0
IG1haW4gcmVzb3VyY2Ugc3RhcnRzIGxvYWRpbmcsIHNvIHdlIG5lZWQgdG8gc2VuZCBhIG1lc3Nh
Z2UgdG8gdGhlCi0gICAgICAgIC8vIFdlYlByb2Nlc3MgYmVmb3JlIGxvYWRpbmcgaWYgd2UgaGF2
ZSBpbnN0YWxsZWQgY29udGVudCBibG9ja2Vycy4KLSAgICAgICAgLy8gU2VlIHJkYXI6Ly9wcm9i
bGVtLzI3Nzg4NzU1Ci0gICAgICAgIEVYUEVDVF9TVFJFUSgiY29udGVudCBibG9ja2VycyBkaXNh
YmxlZCIsIG1lc3NhZ2UuVVRGOFN0cmluZyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToK
ICAgICAgICAgLy8gRGVmYXVsdCBiZWhhdmlvci4KICAgICAgICAgRVhQRUNUX1NUUkVRKCJjb250
ZW50IGJsb2NrZXJzIGVuYWJsZWQiLCBtZXNzYWdlLlVURjhTdHJpbmcpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIDI6CisgICAgY2FzZSAxOgogICAgICAgICAvLyBBZnRlciBoYXZpbmcgcmVt
b3ZlZCB0aGUgY29udGVudCBleHRlbnNpb24uCiAgICAgICAgIEVYUEVDVF9TVFJFUSgiY29udGVu
dCBibG9ja2VycyBkaXNhYmxlZCIsIG1lc3NhZ2UuVVRGOFN0cmluZyk7CiAgICAgICAgIGJyZWFr
OwpAQCAtMzIyLDEwICszMTQsNiBAQCBURVNUX0YoV0tDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0
LCBBZGRSCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKIAotICAgIHJlY2VpdmVkQWxlcnQgPSBm
YWxzZTsKLSAgICBbd2ViVmlldyByZWxvYWRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRBbGVydCk7Ci0KICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXSByZW1vdmVDb250ZW50RXh0ZW5zaW9uOmV4dGVuc2lvbi5nZXQoKV07CiAKICAgICBy
ZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCShyZXZpc2lvbiAy
MTUxODEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRl
UG9saWNpZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTcxLDIyICs3MSwxNCBAQCAtICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuCiB7CiAgICAgc3dpdGNoIChhbGVydENvdW50
KyspIHsKICAgICBjYXNlIDA6Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgZmlyc3QgY29udGVudCBi
bG9ja2VyIHNob3VsZCBiZSBlbmFibGVkIGhlcmUuCi0gICAgICAgIC8vIENvbnRlbnRFeHRlbnNp
b25zQmFja2VuZDo6YWRkQ29udGVudEV4dGVuc2lvbiBpc24ndCBiZWluZyBjYWxsZWQgaW4gdGhl
IFdlYlByb2Nlc3MKLSAgICAgICAgLy8gdW50aWwgYWZ0ZXIgdGhlIGZpcnN0IG1haW4gcmVzb3Vy
Y2Ugc3RhcnRzIGxvYWRpbmcsIHNvIHdlIG5lZWQgdG8gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlCi0g
ICAgICAgIC8vIFdlYlByb2Nlc3MgYmVmb3JlIGxvYWRpbmcgaWYgd2UgaGF2ZSBpbnN0YWxsZWQg
Y29udGVudCBibG9ja2Vycy4KLSAgICAgICAgLy8gU2VlIHJkYXI6Ly9wcm9ibGVtLzI3Nzg4NzU1
Ci0gICAgICAgIEVYUEVDVF9TVFJFUSgiY29udGVudCBibG9ja2VycyBkaXNhYmxlZCIsIG1lc3Nh
Z2UuVVRGOFN0cmluZyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKICAgICAgICAgLy8g
RGVmYXVsdCBiZWhhdmlvci4KICAgICAgICAgRVhQRUNUX1NUUkVRKCJjb250ZW50IGJsb2NrZXJz
IGVuYWJsZWQiLCBtZXNzYWdlLlVURjhTdHJpbmcpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IDI6CisgICAgY2FzZSAxOgogICAgICAgICAvLyBBZnRlciBoYXZpbmcgc2V0IHdlYnNpdGVQb2xp
Y2llcy5jb250ZW50QmxvY2tlcnNFbmFibGVkIHRvIGZhbHNlLgogICAgICAgICBFWFBFQ1RfU1RS
RVEoImNvbnRlbnQgYmxvY2tlcnMgZGlzYWJsZWQiLCBtZXNzYWdlLlVURjhTdHJpbmcpOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIDM6CisgICAgY2FzZSAyOgogICAgICAgICAvLyBBZnRlciBo
YXZpbmcgcmVsb2FkZWQgd2l0aG91dCBjb250ZW50IGJsb2NrZXJzLgogICAgICAgICBFWFBFQ1Rf
U1RSRVEoImNvbnRlbnQgYmxvY2tlcnMgZGlzYWJsZWQiLCBtZXNzYWdlLlVURjhTdHJpbmcpOwog
ICAgICAgICBicmVhazsKQEAgLTEwMiwxMiArOTQsOSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRlCiAgICAgX1dLV2Vic2l0ZVBvbGljaWVzICp3ZWJzaXRlUG9saWNp
ZXMgPSBbW1tfV0tXZWJzaXRlUG9saWNpZXMgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKICAg
ICBzd2l0Y2ggKGFsZXJ0Q291bnQpIHsKICAgICBjYXNlIDA6Ci0gICAgICAgIC8vIFZlcmlmeSBh
biBleGlzdGluZyBidWcgdGhlIGZpcnN0IHRpbWUgYSBwYWdlIGlzIGxvYWRlZCBpbiBhIG5ldyBX
ZWJQcm9jZXNzLgotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6CiAgICAgICAgIC8vIFZlcmlm
eSB0aGUgY29udGVudCBibG9ja2VycyBiZWhhdmUgY29ycmVjdGx5IHdpdGggdGhlIGRlZmF1bHQg
YmVoYXZpb3IuCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgMjoKKyAgICBjYXNlIDE6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIC8vIFZlcmlmeSBkaXNhYmxpbmcgY29udGVudCBibG9ja2VycyB3
b3JrcyBjb3JyZWN0bHkuCiAgICAgICAgICAgICB3ZWJzaXRlUG9saWNpZXMuY29udGVudEJsb2Nr
ZXJzRW5hYmxlZCA9IGZhbHNlOwpAQCAtMTIwLDcgKzEwOSw3IEBAIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGUKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIDM6CisgICAgY2FzZSAyOgogICAgICAgICAvLyBWZXJpZnkg
ZW5hYmxpbmcgY29udGVudCBibG9ja2VycyBoYXMgbm8gZWZmZWN0IHdoZW4gcmVsb2FkaW5nIHdp
dGhvdXQgY29udGVudCBibG9ja2Vycy4KICAgICAgICAgd2Vic2l0ZVBvbGljaWVzLmNvbnRlbnRC
bG9ja2Vyc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTE2NCwxMCArMTUzLDYg
QEAgVEVTVChXZWJLaXQyLCBXZWJzaXRlUG9saWNpZXNDb250ZW50QmxvYwogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CiAKICAgICByZWNlaXZlZEFsZXJ0ID0g
ZmFsc2U7Ci0gICAgW3dlYlZpZXcgcmVsb2FkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkQWxlcnQpOwotCi0gICAgcmVjZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IF9yZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJzXTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>