<?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>193244</bug_id>
          
          <creation_ts>2019-01-08 10:05:34 -0800</creation_ts>
          <short_desc>Remove more use of NetworkProcess::singleton</short_desc>
          <delta_ts>2019-01-08 13:25:29 -0800</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>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1492636</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 10:05:34 -0800</bug_when>
    <thetext>Remove more use of NetworkProcess::singleton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492637</commentid>
    <comment_count>1</comment_count>
      <attachid>358606</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 10:05:48 -0800</bug_when>
    <thetext>Created attachment 358606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492649</commentid>
    <comment_count>2</comment_count>
      <attachid>358610</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 10:15:47 -0800</bug_when>
    <thetext>Created attachment 358610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492722</commentid>
    <comment_count>3</comment_count>
      <attachid>358610</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-08 13:21:32 -0800</bug_when>
    <thetext>Comment on attachment 358610
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=358610&amp;action=review

Looks good (I assume the ownership model is correct, just like my question in Bug 193243). r=me

&gt; Source/WebKit/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=193244

Radar :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492727</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-08 13:24:37 -0800</bug_when>
    <thetext>These should definitely keep the NetworkProcess alive, because the presence of these objects means we are starting new loads.

http://trac.webkit.org/r239741</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492728</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-08 13:25:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/47126001&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358606</attachid>
            <date>2019-01-08 10:05:48 -0800</date>
            <delta_ts>2019-01-08 10:15:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193244-20190108100548.patch</filename>
            <type>text/plain</type>
            <size>22702</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTAxLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG1vcmUg
dXNlIG9mIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyOjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyOjpjb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYWRlSWZOZWVkZWQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RX
aXRoUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpwcm9j
ZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpQaW5nTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb25u
ZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKwogMjAxOS0wMS0w
OCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFsd2F5cyBjYWxsIENvbXBsZXRpb25IYW5kbGVyIGluIENhY2hlOjpzdG9yZQpJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmNwcAkocmV2aXNpb24gMjM5NjcwKQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw4ICs0MCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpOZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIoUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBDb21wbGV0aW9uQ2FsbGJhY2smJiBjb21wbGV0aW9u
Q2FsbGJhY2spCitOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6Ok5ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgQ29t
cGxldGlvbkNhbGxiYWNrJiYgY29tcGxldGlvbkNhbGxiYWNrKQogICAgIDogbV9wYXJhbWV0ZXJz
KFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9j
ZXNzKQogICAgICwgbV9jb21wbGV0aW9uQ2FsbGJhY2soV1RGTW92ZShjb21wbGV0aW9uQ2FsbGJh
Y2spKQogICAgICwgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Moc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKQogewpAQCAtMTAxLDcgKzEwMiw3IEBAIHZv
aWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRSZWMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5hdXRoZW50aWNhdGlvbk1h
bmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnBh
Z2VJRCwgbV9wYXJhbWV0ZXJzLmZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmF1dGhlbnRpY2F0aW9uTWFuYWdlcigp
LmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMucGFnZUlELCBt
X3BhcmFtZXRlcnMuZnJhbWVJRCwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmgJKHJldmlzaW9uIDIzOTY3MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDgg
QEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBO
ZXR3b3JrUHJvY2VzczsKKwogY2xhc3MgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyIGZpbmFs
IDogcHJpdmF0ZSBOZXR3b3JrRGF0YVRhc2tDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgpAQCAtNTMsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB1
c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImJik+OwogCi0gICAgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyKFBh
cmFtZXRlcnMmJiwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIENv
bXBsZXRpb25DYWxsYmFjayYmKTsKKyAgICBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIoTmV0
d29ya1Byb2Nlc3MmLCBQYXJhbWV0ZXJzJiYsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzLCBDb21wbGV0aW9uQ2FsbGJhY2smJik7CiAgICAgfk5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlcigpOwogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVz
dDsgfQogCkBAIC03Miw2ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYW5ub3RTaG93VVJM
KCkgZmluYWw7CiAKICAgICBQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKKyAgICBSZWY8TmV0d29y
a1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBtX3Jlc3BvbnNlOwogICAgIENvbXBsZXRpb25DYWxsYmFjayBtX2NvbXBsZXRpb25DYWxsYmFj
azsKICAgICBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiBtX3Rhc2s7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjM5NzAxKQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpsb2FkCiAgICAgfTsKIAogICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGlt
ZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgot
ICAgIG5ldyBQaW5nTG9hZChXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIG5ldyBQaW5nTG9hZChuZXR3b3JrUHJvY2VzcygpLCBXVEZNb3Zl
KGxvYWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRPbkxpbmVTdGF0ZShib29sIGlzT25M
aW5lKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHAJKHJldmlzaW9uIDIzOTY3MCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSwxMSBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotTmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXI6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkgPSBkZWZhdWx0OworTmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2Vy
KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKKyAgICA6IG1fbmV0d29ya1Byb2Nlc3Mo
bmV0d29ya1Byb2Nlc3MpCit7Cit9CisKIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjp+
TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKQogewogICAgIGF1dG8gcGVuZGluZ0NhbGxi
YWNrcyA9IFdURk1vdmUobV9wZW5kaW5nQ2FsbGJhY2tzKTsKQEAgLTU5LDcgKzYzLDcgQEAgdm9p
ZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6Y29udAogICAgIG1fcGVuZGluZ0NhbGxi
YWNrcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gVmVjdG9yPEJhY2tl
bmRDYWxsYmFjaz4geyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShj
YWxsYmFjaykpOwotICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpDb250ZW50
RXh0ZW5zaW9uUnVsZXMgeyBpZGVudGlmaWVyIH0sIDApOworICAgIG1fbmV0d29ya1Byb2Nlc3Mu
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6Q29udGVudEV4dGVuc2lvblJ1bGVzIHsgaWRlbnRpZmllciB9LCAwKTsKIH0KIAogdm9p
ZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVudFJ1bGVMaXN0cyhVc2Vy
Q29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYgY29udGVudFJ1
bGVMaXN0cykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRl
bnRSdWxlTGlzdE1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmgJKHJldmlzaW9uIDIzOTY3MCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsMTEgQEAgY2xhc3MgRGVjb2RlcjsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIE5ldHdvcmtQcm9jZXNzOworCiBjbGFzcyBO
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciB7CiBwdWJsaWM6Ci0gICAgTmV0d29ya0NvbnRl
bnRSdWxlTGlzdE1hbmFnZXIoKTsKKyAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcihO
ZXR3b3JrUHJvY2VzcyYpOwogICAgIH5OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpOwog
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8VXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ+PiBtX2NvbnRlbnRFeHRlbnNpb25C
YWNrZW5kczsKICAgICBIYXNoTWFwPFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIFZl
Y3RvcjxCYWNrZW5kQ2FsbGJhY2s+PiBtX3BlbmRpbmdDYWxsYmFja3M7CisgICAgTmV0d29ya1By
b2Nlc3MmIG1fbmV0d29ya1Byb2Nlc3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAJKHJldmlzaW9uIDIzOTY5OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsOSArNDcsMTAg
QEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZU9yaWdpbihjb25zdCBVUgogICAgIHJldHVybiB1
cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwucHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8
IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwogfQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdv
cmtMb2FkQ2hlY2tlcihGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYm
IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5n
JiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1
cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQorTmV0
d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYm
IHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYg
cmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVF
eHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQogICAgIDog
bV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQp
CisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICwgbV9wYWdlSUQo
cGFnZUlEKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX29yaWdpbmFsUmVxdWVz
dEhlYWRlcnMoV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSkKQEAgLTE5Nyw3ICsxOTgs
NyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6YXBwbHlIVFRQU1VwZ3JhCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvJiBodHRwc1VwZ3JhZGVDaGVja2VyID0gTmV0d29ya1By
b2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyKCk7CisgICAgYXV0
byYgaHR0cHNVcGdyYWRlQ2hlY2tlciA9IG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyKCk7CiAKICAgICAvLyBEbyBub3Qgd2FpdCBmb3IgaHR0cHNVcGdyYWRlQ2hl
Y2tlciB0byBjb21wbGV0ZSBpdHMgc2V0dXAuCiAgICAgaWYgKCFodHRwc1VwZ3JhZGVDaGVja2Vy
LmRpZFNldHVwQ29tcGxldGVTdWNjZXNzZnVsbHkoKSkgewpAQCAtNDA3LDcgKzQwOCw3IEBAIHZv
aWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZXF1ZXMKICAgICAgICAgbV9mcmFtZUlE
LAogICAgICAgICBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5CiAgICAgfTsKLSAgICBtX2NvcnNQ
cmVmbGlnaHRDaGVja2VyID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI+KFdURk1vdmUocGFyYW1ldGVycyksIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIGhhbmRsZXIgPSBX
VEZNb3ZlKGhhbmRsZXIpLCBpc1JlZGlyZWN0ZWQgPSBpc1JlZGlyZWN0ZWQoKV0oYXV0byYmIGVy
cm9yKSBtdXRhYmxlIHsKKyAgICBtX2NvcnNQcmVmbGlnaHRDaGVja2VyID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI+KG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCks
IFdURk1vdmUocGFyYW1ldGVycyksIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIGhhbmRsZXIgPSBXVEZNb3Zl
KGhhbmRsZXIpLCBpc1JlZGlyZWN0ZWQgPSBpc1JlZGlyZWN0ZWQoKV0oYXV0byYmIGVycm9yKSBt
dXRhYmxlIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY2hlY2tDT1JTUmVxdWVz
dFdpdGhQcmVmbGlnaHQgLSBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdo
dCBwcmVmbGlnaHQgY29tcGxldGUsIHN1Y2Nlc3M6ICVkIGZvclJlZGlyZWN0PyAlZCIsIGVycm9y
LmlzTnVsbCgpLCBpc1JlZGlyZWN0ZWQpOwogCiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkp
IHsKQEAgLTQ1Niw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6cHJvY2Vzc0Nv
bnRlbnRFCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2lu
Z2xldG9uKCkubmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKS5jb250ZW50RXh0ZW5zaW9u
c0JhY2tlbmQoKm1fdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiBiYWNrZW5kKSBtdXRhYmxlIHsKKyAgICBt
X25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpLmNvbnRlbnRF
eHRlbnNpb25zQmFja2VuZCgqbV91c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVz
dCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGJhY2tlbmQpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5l
eHBlY3RlZChSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9u
IH0pKTsKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAkocmV2aXNpb24gMjM5NjcwKQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsMTIgKzQ3LDEzIEBAIGVudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgOiBib28KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXI7CitjbGFzcyBOZXR3b3JrUHJvY2VzczsKIAogY2xhc3MgTmV0d29ya0xvYWRD
aGVja2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9
OwogCi0gICAgTmV0d29ya0xvYWRDaGVja2VyKFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6
OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpI
VFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYs
IFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQ
U1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpP
dGhlcik7CisgICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6
RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiBy
ZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExv
YWRUeXBlID0gTG9hZFR5cGU6Ok90aGVyKTsKICAgICB+TmV0d29ya0xvYWRDaGVja2VyKCk7CiAK
ICAgICBzdHJ1Y3QgUmVkaXJlY3Rpb25UcmlwbGV0IHsKQEAgLTEyMiw2ICsxMjMsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OkZldGNoT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0
d29ya1Byb2Nlc3M7CiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAgICAgdWludDY0X3QgbV9mcmFt
ZUlEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJz
OyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIzOTcxMCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKCkK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAsIG1fY2xlYXJDYWNoZURpc3BhdGNoR3JvdXAoMCkK
ICNlbmRpZgorICAgICwgbV9uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigqdGhpcykKICAg
ICAsIG1fc3RvcmFnZVRhc2tRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5TdG9yYWdlVGFzayIpKQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgICwgbV9p
ZGJQZXJPcmlnaW5RdW90YShJREJTZXJ2ZXI6OmRlZmF1bHRQZXJPcmlnaW5RdW90YSkKQEAgLTIw
Miw3ICsyMDMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICBtX05ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC00MTEs
NyArNDEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lYwogICAg
IGlmIChpc1NlcnZpY2VXb3JrZXJQcm9jZXNzICYmICFtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5p
c0VtcHR5KCkpIHsKICAgICAgICAgQVNTRVJUKHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2Vy
RW50aXRsZW1lbnQoKSk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRl
eHRQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgICAgIGF1dG8gY29udGV4dENvbm5lY3Rpb24gPSBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNyZWF0ZShzZWN1cml0eU9yaWdpbiwgbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbnMubGFzdCgpLT5jb25uZWN0aW9uKCkpOworICAgICAgICBhdXRv
IGNvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVh
dGUoKnRoaXMsIHNlY3VyaXR5T3JpZ2luLCBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5sYXN0KCkt
PmNvbm5lY3Rpb24oKSk7CiAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9ucy5hZGQoV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIGNvbnRleHRDb25uZWN0
aW9uLmNvcHlSZWYoKSk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1
bHQuaXNOZXdFbnRyeSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgJKHJldmlzaW9uIDIzOTcxMCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24o
UEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
LSAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciYgbmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXIoKSB7IHJldHVybiBtX05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOyB9Cisg
ICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXImIG5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyKCkgeyByZXR1cm4gbV9uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsgfQogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTM5MSw3ICszOTEsNyBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIE5l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXI7CisgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgbV9uZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlcjsKICNlbmRpZgogCiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdG9yYWdlVGFz
a1F1ZXVlOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjM5NzI1KQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpOZXR3b3JrUmVz
b3VyY2VMbwogCiAgICAgaWYgKHN5bmNocm9ub3VzUmVwbHkgfHwgcGFyYW1ldGVycy5zaG91bGRS
ZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcykgewogICAgICAgICBOZXR3b3JrTG9hZENoZWNrZXI6
OkxvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IGlzTWFpbkZyYW1lTG9hZCgpID8gTmV0d29ya0xv
YWRDaGVja2VyOjpMb2FkVHlwZTo6TWFpbkZyYW1lIDogTmV0d29ya0xvYWRDaGVja2VyOjpMb2Fk
VHlwZTo6T3RoZXI7Ci0gICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrTG9hZENoZWNrZXI+KEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRp
b25zIH0sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELCBIVFRQSGVhZGVyTWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMgfSwgVVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwg
bV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGln
aHRQb2xpY3ksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBtX3BhcmFtZXRlcnMu
aXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJp
Y3MoKSwgcmVxdWVzdExvYWRUeXBlKTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkQ2hlY2tlcj4oY29ubmVjdGlvbi5uZXR3b3JrUHJv
Y2VzcygpLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9ucyB9LCBtX3BhcmFtZXRl
cnMuc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgSFRUUEhlYWRlck1hcCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJz
IH0sIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3Vy
Y2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMucHJlZmxpZ2h0UG9saWN5LCBvcmlnaW5h
bFJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKSwgbV9wYXJhbWV0ZXJzLmlzSFRUUFNVcGdyYWRlRW5h
YmxlZCwgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCksIHJlcXVlc3RMb2Fk
VHlwZSk7CiAgICAgICAgIGlmIChtX3BhcmFtZXRlcnMuY3NwUmVzcG9uc2VIZWFkZXJzKQogICAg
ICAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPnNldENTUFJlc3BvbnNlSGVhZGVycyhDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyBtX3BhcmFtZXRlcnMuY3NwUmVzcG9u
c2VIZWFkZXJzLnZhbHVlKCkgfSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCShyZXZpc2lvbiAy
Mzk2NzApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzksMTEgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBSZXNvdXJjZUVycm9yJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQorUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vz
cywgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJh
bWV0ZXJzKSkKICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpCiAgICAgLCBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlBpbmdMb2FkOjp0aW1lb3V0VGlt
ZXJGaXJlZCkKLSAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKG1ha2VVbmlxdWVSZWY8TmV0d29y
a0xvYWRDaGVja2VyPihGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fcGFy
YW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELCBXVEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwg
VVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9y
aWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG1fcGFyYW1ldGVy
cy5yZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKSkKKyAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKG1h
a2VVbmlxdWVSZWY8TmV0d29ya0xvYWRDaGVja2VyPihuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRp
b25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnN9LCBtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgV1RGTW92ZShtX3Bh
cmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1
ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFt
ZXRlcnMucHJlZmxpZ2h0UG9saWN5LCBtX3BhcmFtZXRlcnMucmVxdWVzdC5odHRwUmVmZXJyZXIo
KSkpCiB7CiAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPmVuYWJsZUNvbnRlbnRFeHRlbnNpb25z
Q2hlY2soKTsKICAgICBpZiAobV9wYXJhbWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgJKHJldmlzaW9uIDIzOTY3MCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsMTAgKzM2LDExIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29y
a0xvYWRDaGVja2VyOworY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiAKIGNsYXNzIFBpbmdMb2FkIGZp
bmFsIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFBpbmdMb2FkPiwgcHJpdmF0ZSBOZXR3b3JrRGF0
YVRhc2tDbGllbnQgewogcHVibGljOgotICAgIFBpbmdMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik7CisgICAgUGlu
Z0xvYWQoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOwogICAgIAogcHJpdmF0ZToKICAgICB+
UGluZ0xvYWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyMzk2NzApCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTIgKzM2LDE1IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24p
CitXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikKICAgICA6IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihzZWN1cml0eU9yaWdpbikKICAg
ICAsIG1faXBjQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICwgbV9uZXR3b3Jr
UHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKIHsKIH0KIAorV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uOjp+V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCiBJ
UEM6OkNvbm5lY3Rpb24qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKQogewogICAgIHJldHVybiBtX2lwY0Nvbm5lY3Rpb24ucHRyKCk7CkBA
IC0xMDQsNyArMTA3LDcgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRp
ZAogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29ubmVjdGlvbk1heU5v
TG9uZ2VyQmVOZWVkZWQoKQogewotICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5zd0Nv
bnRleHRDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgqdGhpcyk7CisgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+c3dDb250ZXh0Q29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKnRoaXMpOwog
fQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlKCkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgJ
KHJldmlzaW9uIDIzOTY3MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgTmV0d29ya1By
b2Nlc3M7CisKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiA6IHB1YmxpYyBX
ZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCkBAIC01MCw3ICs1Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogCiBwcml2YXRlOgotICAgIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmKTsKKyAgICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oTmV0
d29ya1Byb2Nlc3MmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmKTsKKyAgICB+V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7
CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWw7CkBAIC03MCw2ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIGZpbmFsOwogCiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOworICAgIFJlZjxOZXR3b3JrUHJvY2Vz
cz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICAKIH07IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358610</attachid>
            <date>2019-01-08 10:15:47 -0800</date>
            <delta_ts>2019-01-08 13:21:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193244-20190108101547.patch</filename>
            <type>text/plain</type>
            <size>22743</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzk3MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTAxLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG1vcmUg
dXNlIG9mIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyOjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyOjpjb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYWRlSWZOZWVkZWQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RX
aXRoUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpwcm9j
ZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpQaW5nTG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb25u
ZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKwogMjAxOS0wMS0w
OCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFN0b3AgdXNpbmcgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGluIFdlYlByb2Nlc3MKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlci5jcHAJKHJldmlzaW9uIDIzOTcyNikKKysrIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAsOCArNDAsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6TmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyKFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBib29sIHNob3VsZENhcHR1
cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgQ29tcGxldGlvbkNhbGxiYWNrJiYgY29tcGxldGlv
bkNhbGxiYWNrKQorTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpOZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycywgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIENv
bXBsZXRpb25DYWxsYmFjayYmIGNvbXBsZXRpb25DYWxsYmFjaykKICAgICA6IG1fcGFyYW1ldGVy
cyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJv
Y2VzcykKICAgICAsIG1fY29tcGxldGlvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkNhbGxi
YWNrKSkKICAgICAsIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcykKIHsKQEAgLTEwMSw3ICsxMDIsNyBAQCB2
b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuYXV0aGVudGljYXRpb25N
YW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fcGFyYW1ldGVycy5w
YWdlSUQsIG1fcGFyYW1ldGVycy5mcmFtZUlELCBjaGFsbGVuZ2UsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5hdXRoZW50aWNhdGlvbk1hbmFnZXIo
KS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnBhZ2VJRCwg
bV9wYXJhbWV0ZXJzLmZyYW1lSUQsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5oCShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4
IEBAIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3Mg
TmV0d29ya1Byb2Nlc3M7CisKIGNsYXNzIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlciBmaW5h
bCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKQEAgLTUzLDcgKzU1LDcgQEAgcHVibGljOgogICAgIH07CiAgICAg
dXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiYpPjsKIAotICAgIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcihQ
YXJhbWV0ZXJzJiYsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBD
b21wbGV0aW9uQ2FsbGJhY2smJik7CisgICAgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiwgUGFyYW1ldGVycyYmLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdv
cmtMb2FkTWV0cmljcywgQ29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIH5OZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIoKTsKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVl
c3Q7IH0KIApAQCAtNzIsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2Fubm90U2hvd1VS
TCgpIGZpbmFsOwogCiAgICAgUGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgUmVmPE5ldHdv
cmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgbV9yZXNwb25zZTsKICAgICBDb21wbGV0aW9uQ2FsbGJhY2sgbV9jb21wbGV0aW9uQ2FsbGJh
Y2s7CiAgICAgUmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4gbV90YXNrOwpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDIzOTcyNikKKysrIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDEsNyArMzQxLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6bG9hZAogICAgIH07CiAKICAgICAvLyBQaW5nTG9hZCBtYW5hZ2VzIGl0cyBvd24gbGlmZXRp
bWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVuIGZ1bGZpbGxlZC4K
LSAgICBuZXcgUGluZ0xvYWQoV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBuZXcgUGluZ0xvYWQobmV0d29ya1Byb2Nlc3MoKSwgV1RGTW92
ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0T25MaW5lU3RhdGUoYm9vbCBpc09u
TGluZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCShyZXZpc2lvbiAyMzk3MjYp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsMTEgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLU5ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyOjpOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpID0gZGVmYXVsdDsKK05l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
cihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MpCisgICAgOiBtX25ldHdvcmtQcm9jZXNz
KG5ldHdvcmtQcm9jZXNzKQoreworfQorCiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6
fk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkKIHsKICAgICBhdXRvIHBlbmRpbmdDYWxs
YmFja3MgPSBXVEZNb3ZlKG1fcGVuZGluZ0NhbGxiYWNrcyk7CkBAIC01OSw3ICs2Myw3IEBAIHZv
aWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmNvbnQKICAgICBtX3BlbmRpbmdDYWxs
YmFja3MuZW5zdXJlKGlkZW50aWZpZXIsIFtdIHsKICAgICAgICAgcmV0dXJuIFZlY3RvcjxCYWNr
ZW5kQ2FsbGJhY2s+IHsgfTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKFdURk1vdmUo
Y2FsbGJhY2spKTsKLSAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Q29udGVu
dEV4dGVuc2lvblJ1bGVzIHsgaWRlbnRpZmllciB9LCAwKTsKKyAgICBtX25ldHdvcmtQcm9jZXNz
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OkNvbnRlbnRFeHRlbnNpb25SdWxlcyB7IGlkZW50aWZpZXIgfSwgMCk7CiB9CiAKIHZv
aWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMoVXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mIGNvbnRlbnRS
dWxlTGlzdHMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCShyZXZpc2lvbiAyMzk3MjYp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDExIEBAIGNsYXNzIERlY29kZXI7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrUHJvY2VzczsKKwogY2xhc3Mg
TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIgewogcHVibGljOgotICAgIE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyKCk7CisgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIo
TmV0d29ya1Byb2Nlc3MmKTsKICAgICB+TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKTsK
IAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJik7CkBAIC01Niw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFVzZXJDb250
ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kPj4gbV9jb250ZW50RXh0ZW5zaW9u
QmFja2VuZHM7CiAgICAgSGFzaE1hcDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBW
ZWN0b3I8QmFja2VuZENhbGxiYWNrPj4gbV9wZW5kaW5nQ2FsbGJhY2tzOworICAgIE5ldHdvcmtQ
cm9jZXNzJiBtX25ldHdvcmtQcm9jZXNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuY3BwCShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDkgKzQ3LDEw
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW4oY29uc3QgVVIKICAgICByZXR1cm4g
dXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3RvY29sSXNCbG9iKCkgfHwgIW9yaWdpbiB8
fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAotTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3
b3JrTG9hZENoZWNrZXIoRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIEhUVFBIZWFkZXJNYXAm
JiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIFN0cmlu
ZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKK05l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3
b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIEhUVFBIZWFkZXJNYXAmJiBv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4m
JiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0dXJl
RXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKICAgICA6
IG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQorICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1fcGFnZUlE
KHBhZ2VJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpCkBAIC0xOTcsNyArMTk4
LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmFwcGx5SFRUUFNVcGdyYQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byYgaHR0cHNVcGdyYWRlQ2hlY2tlciA9IE5ldHdvcmtQ
cm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlcigpOworICAgIGF1
dG8mIGh0dHBzVXBncmFkZUNoZWNrZXIgPSBtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlcigpOwogCiAgICAgLy8gRG8gbm90IHdhaXQgZm9yIGh0dHBzVXBncmFkZUNo
ZWNrZXIgdG8gY29tcGxldGUgaXRzIHNldHVwLgogICAgIGlmICghaHR0cHNVcGdyYWRlQ2hlY2tl
ci5kaWRTZXR1cENvbXBsZXRlU3VjY2Vzc2Z1bGx5KCkpIHsKQEAgLTQwNyw3ICs0MDgsNyBAQCB2
b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzCiAgICAgICAgIG1fZnJhbWVJ
RCwKICAgICAgICAgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeQogICAgIH07Ci0gICAgbV9jb3Jz
UHJlZmxpZ2h0Q2hlY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyPihXVEZNb3ZlKHBhcmFtZXRlcnMpLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcywgW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBoYW5kbGVyID0g
V1RGTW92ZShoYW5kbGVyKSwgaXNSZWRpcmVjdGVkID0gaXNSZWRpcmVjdGVkKCldKGF1dG8mJiBl
cnJvcikgbXV0YWJsZSB7CisgICAgbV9jb3JzUHJlZmxpZ2h0Q2hlY2tlciA9IHN0ZDo6bWFrZV91
bmlxdWU8TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyPihtX25ldHdvcmtQcm9jZXNzLmdldCgp
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljcywgW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBoYW5kbGVyID0gV1RGTW92
ZShoYW5kbGVyKSwgaXNSZWRpcmVjdGVkID0gaXNSZWRpcmVjdGVkKCldKGF1dG8mJiBlcnJvcikg
bXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNoZWNrQ09SU1JlcXVl
c3RXaXRoUHJlZmxpZ2h0IC0gbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGln
aHQgcHJlZmxpZ2h0IGNvbXBsZXRlLCBzdWNjZXNzOiAlZCBmb3JSZWRpcmVjdD8gJWQiLCBlcnJv
ci5pc051bGwoKSwgaXNSZWRpcmVjdGVkKTsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgp
KSB7CkBAIC00NTYsNyArNDU3LDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OnByb2Nlc3ND
b250ZW50RQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTmV0d29ya1Byb2Nlc3M6OnNp
bmdsZXRvbigpLm5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkuY29udGVudEV4dGVuc2lv
bnNCYWNrZW5kKCptX3VzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYgYmFja2VuZCkgbXV0YWJsZSB7CisgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+bmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKS5jb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQoKm1fdXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVl
c3QpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiBiYWNrZW5kKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAgICAgICAgY2FsbGJhY2sobWFrZVVu
ZXhwZWN0ZWQoUmVzb3VyY2VFcnJvciB7IFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlv
biB9KSk7CiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgJKHJldmlzaW9uIDIzOTcyNikKKysr
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDEyICs0NywxMyBAQCBlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IDogYm9vCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyOworY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiAKIGNsYXNzIE5ldHdvcmtMb2Fk
Q2hlY2tlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIExvYWRUeXBlIDogYm9vbCB7IE1haW5GcmFtZSwgT3RoZXIg
fTsKIAotICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFM
OjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
LCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRU
UFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6
T3RoZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6
OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYg
cmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RM
b2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwog
CiAgICAgc3RydWN0IFJlZGlyZWN0aW9uVHJpcGxldCB7CkBAIC0xMjIsNiArMTIzLDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgbV9vcHRpb25zOwogICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25l
dHdvcmtQcm9jZXNzOwogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwogICAgIHVpbnQ2NF90IG1fZnJh
bWVJRDsKICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVy
czsgLy8gTmVlZGVkIGZvciBDT1JTIGNoZWNrcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAyMzk3MjYpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI4LDYgKzEyOCw5IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vzcygp
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLCBtX2NsZWFyQ2FjaGVEaXNwYXRjaEdyb3VwKDAp
CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorICAgICwgbV9uZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlcigqdGhpcykKKyNlbmRpZgogICAgICwgbV9zdG9yYWdlVGFz
a1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VUYXNrIikp
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgLCBtX2lkYlBlck9yaWdpblF1b3Rh
KElEQlNlcnZlcjo6ZGVmYXVsdFBlck9yaWdpblF1b3RhKQpAQCAtMjAyLDcgKzIwNSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKEkKIAogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7Ci0gICAgICAgIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIG1fbmV0d29ya0NvbnRl
bnRSdWxlTGlzdE1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTQxMSw3ICs0MTQsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjCiAgICAgaWYgKGlzU2VydmljZVdv
cmtlclByb2Nlc3MgJiYgIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1wdHkoKSkgewogICAg
ICAgICBBU1NFUlQocGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpKTsK
ICAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKTsKLSAgICAgICAgYXV0byBjb250ZXh0Q29ubmVjdGlvbiA9IFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6Y3JlYXRlKHNlY3VyaXR5T3JpZ2luLCBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5sYXN0KCktPmNvbm5lY3Rpb24oKSk7CisgICAgICAgIGF1dG8gY29udGV4dENvbm5lY3Rp
b24gPSBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgc2VjdXJp
dHlPcmlnaW4sIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmxhc3QoKS0+Y29ubmVjdGlvbigpKTsK
ICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25zLmFk
ZChXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luKSwgY29udGV4dENvbm5lY3Rpb24uY29weVJlZigpKTsK
ICAgICAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsK
IApJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAkocmV2aXNpb24gMjM5NzI2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlvbihQQUw6OlNlc3Npb25JRCkg
Y29uc3Q7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyJiBuZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigpIHsgcmV0
dXJuIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7IH0KKyAgICBOZXR3b3JrQ29udGVu
dFJ1bGVMaXN0TWFuYWdlciYgbmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIoKSB7IHJldHVy
biBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtMzkxLDcgKzM5MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgTmV0d29ya0NvbnRlbnRSdWxl
TGlzdE1hbmFnZXIgbV9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsKKyAgICBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlciBtX25ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwog
I2VuZGlmCiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCShyZXZpc2lvbiAyMzk3MjYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsx
MTIsNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Ok5ldHdvcmtSZXNvdXJjZUxvCiAKICAgICBp
ZiAoc3luY2hyb25vdXNSZXBseSB8fCBwYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3Bv
bnNlQWNjZXNzKSB7CiAgICAgICAgIE5ldHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGUgcmVxdWVz
dExvYWRUeXBlID0gaXNNYWluRnJhbWVMb2FkKCkgPyBOZXR3b3JrTG9hZENoZWNrZXI6OkxvYWRU
eXBlOjpNYWluRnJhbWUgOiBOZXR3b3JrTG9hZENoZWNrZXI6OkxvYWRUeXBlOjpPdGhlcjsKLSAg
ICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2Fk
Q2hlY2tlcj4oRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnMgfSwgbV9wYXJhbWV0
ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIEhUVFBIZWFkZXJNYXAgeyBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVy
cyB9LCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291
cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgb3JpZ2lu
YWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIG1fcGFyYW1ldGVycy5pc0hUVFBTVXBncmFkZUVu
YWJsZWQsIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpLCByZXF1ZXN0TG9h
ZFR5cGUpOworICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCksIEZldGNoT3B0
aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zIH0sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBIVFRQSGVhZGVy
TWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgfSwgVVJMIHsgbV9wYXJh
bWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVm
KCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBS
ZWZlcnJlcigpLCBtX3BhcmFtZXRlcnMuaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBzaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSwgcmVxdWVzdExvYWRUeXBlKTsKICAgICAgICAg
aWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRlcnMpCiAgICAgICAgICAgICBtX25ldHdv
cmtMb2FkQ2hlY2tlci0+c2V0Q1NQUmVzcG9uc2VIZWFkZXJzKENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyB7IG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRlcnMudmFsdWUo
KSB9KTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAJKHJldmlzaW9uIDIzOTcyNikKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1QaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3Im
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitQaW5nTG9h
ZDo6UGluZ0xvYWQoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKICAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQogICAgICwg
bV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1f
dGltZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQotICAgICwg
bV9uZXR3b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KEZl
dGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zfSwgbV9wYXJhbWV0ZXJzLnNlc3Npb25J
RCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIFdURk1v
dmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRl
cnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwg
bV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFJl
ZmVycmVyKCkpKQorICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3
b3JrTG9hZENoZWNrZXI+KG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRl
cnMub3B0aW9uc30sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBXVEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5h
bFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9w
YXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQ
b2xpY3ksIG1fcGFyYW1ldGVycy5yZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKSkKIHsKICAgICBtX25l
dHdvcmtMb2FkQ2hlY2tlci0+ZW5hYmxlQ29udGVudEV4dGVuc2lvbnNDaGVjaygpOwogICAgIGlm
IChtX3BhcmFtZXRlcnMuY3NwUmVzcG9uc2VIZWFkZXJzKQpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAkocmV2aXNpb24gMjM5NzI2KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCArMzYs
MTEgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXI7Citj
bGFzcyBOZXR3b3JrUHJvY2VzczsKIAogY2xhc3MgUGluZ0xvYWQgZmluYWwgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UGluZ0xvYWQ+LCBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiBw
dWJsaWM6Ci0gICAgUGluZ0xvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKKyAgICBQaW5nTG9hZChOZXR3b3JrUHJv
Y2VzcyYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKT4mJik7CiAgICAgCiBwcml2YXRlOgogICAgIH5QaW5nTG9hZCgpOwpJbmRl
eDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAJKHJldmlzaW9uIDIzOTcyNikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMiArMzYsMTUgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKE5ldHdvcmtQ
cm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0
eU9yaWdpbiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uKHNlY3VyaXR5T3JpZ2luKQogICAgICwgbV9pcGNDb25uZWN0
aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQ
cm9jZXNzKQogewogfQogCitXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKIElQQzo6Q29ubmVjdGlvbiog
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
CiB7CiAgICAgcmV0dXJuIG1faXBjQ29ubmVjdGlvbi5wdHIoKTsKQEAgLTEwNCw3ICsxMDcsNyBA
QCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkCiAKIHZvaWQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgp
CiB7Ci0gICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnN3Q29udGV4dENvbm5lY3Rpb25N
YXlOb0xvbmdlckJlTmVlZGVkKCp0aGlzKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5zd0NvbnRl
eHRDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGUoKQpJbmRleDogU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAkocmV2aXNpb24gMjM5NzI2
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrUHJvY2VzczsKKwogY2xhc3Mg
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4g
QXJncz4gc3RhdGljIFJlZjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IGNyZWF0ZShB
cmdzJiYuLi4gYXJncykKQEAgLTUwLDcgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgdGVybWlu
YXRlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYp
OworICAgIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihOZXR3b3JrUHJvY2VzcyYsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYp
OworICAgIH5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKTsKIAogICAgIC8vIElQQzo6
TWVzc2FnZVNlbmRlcgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBmaW5hbDsKQEAgLTcwLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3Rp
b25NYXlOb0xvbmdlckJlTmVlZGVkKCkgZmluYWw7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2lwY0Nvbm5lY3Rpb247CisgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwogICAgIAogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAK
</data>
<flag name="review"
          id="375433"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>