<?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>85662</bug_id>
          
          <creation_ts>2012-05-04 13:56:47 -0700</creation_ts>
          <short_desc>Refactor CSP state to prepare for having both a ReportOnly and an Enforced policy</short_desc>
          <delta_ts>2012-05-04 14:40:09 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>mkwst</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>616609</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 13:56:47 -0700</bug_when>
    <thetext>Refactor CSP state to prepare for having both a ReportOnly and an Enforced policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616612</commentid>
    <comment_count>1</comment_count>
      <attachid>140315</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 13:58:36 -0700</bug_when>
    <thetext>Created attachment 140315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616624</commentid>
    <comment_count>2</comment_count>
      <attachid>140315</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-04 14:06:07 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

Attachment 140315 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12627257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616625</commentid>
    <comment_count>3</comment_count>
      <attachid>140315</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-05-04 14:06:49 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

Attachment 140315 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12543434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616627</commentid>
    <comment_count>4</comment_count>
      <attachid>140315</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-04 14:07:10 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

Attachment 140315 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12531265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616628</commentid>
    <comment_count>5</comment_count>
      <attachid>140315</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-04 14:07:48 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

Attachment 140315 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12637001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616631</commentid>
    <comment_count>6</comment_count>
      <attachid>140315</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-04 14:10:46 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616639</commentid>
    <comment_count>7</comment_count>
      <attachid>140315</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-04 14:14:42 -0700</bug_when>
    <thetext>Comment on attachment 140315
Patch

Attachment 140315 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12543436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616640</commentid>
    <comment_count>8</comment_count>
      <attachid>140321</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 14:15:00 -0700</bug_when>
    <thetext>Created attachment 140321
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616685</commentid>
    <comment_count>9</comment_count>
      <attachid>140321</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 14:40:04 -0700</bug_when>
    <thetext>Comment on attachment 140321
Patch for landing

Clearing flags on attachment: 140321

Committed r116177: &lt;http://trac.webkit.org/changeset/116177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616686</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-04 14:40:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140315</attachid>
            <date>2012-05-04 13:58:36 -0700</date>
            <delta_ts>2012-05-04 14:14:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85662-20120504135834.patch</filename>
            <type>text/plain</type>
            <size>28672</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYwZThhMzUyYTUxYWU3
NWE5OWY3ZWMzYjdiZDRhMWI2YmI2YzI3Zi4uMTkyY2VhOWVlYzlhZWY4Y2Y3YTU4OWE0ZGE5ZDRh
MGU3Yzc1YTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA1LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgQ1NQIHN0YXRl
IHRvIHByZXBhcmUgZm9yIGhhdmluZyBib3RoIGEgUmVwb3J0T25seSBhbmQgYW4gRW5mb3JjZWQg
cG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NTY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVmYWN0b3JzIHRoZSBDb250ZW50U2VjdXJpdHlQb2xpY3kgc3RhdGUgaW50byBh
IHNlcGFyYXRlCisgICAgICAgIERpcmVjdGl2ZUxpc3QgY2xhc3MgdG8gcHJlcGFyZSBmb3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTYxLCB3aGlj
aCB3aWxsIGNhdXNlIHVzIHRvCisgICAgICAgIG5lZWQgdHdvIGRpcmVjdGl2ZSBsaXN0czogb25l
IGZvciBlbmZvcmNlbWVudCBhbmQgb25lIGZvciBtb25pdG9yaW5nLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc2hvdWxkbid0IGNhdXNlIGFueSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChDU1BEaXJlY3RpdmVM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmhlYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpoZWFkZXJUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmRlbnlJZkVuZm9yY2luZ1BvbGljeSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVj
dGl2ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnJlcG9ydFZpb2xhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0Ojpsb2dVbnJlY29nbml6ZWREaXJlY3Rp
dmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tFdmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6Om9wZXJhdGl2ZURpcmVjdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0lubGluZUFuZFJlcG9ydFZp
b2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWxB
bmRSZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6
Y2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1BE
aXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93T2JqZWN0RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW1hZ2VGcm9tU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U3R5bGVGcm9tU291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93Rm9udEZyb21Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dNZWRpYUZyb21Tb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dDb25uZWN0RnJvbVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZURpcmVjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9ydFVSSSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGVDU1BEaXJlY3RpdmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YXBwbHlTYW5kYm94UG9saWN5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6On5Db250ZW50U2VjdXJpdHlQb2xp
Y3kpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojpjb3B5U3RhdGVG
cm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2
ZUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92
ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmhlYWRlclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd0phdmFTY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVTY3JpcHQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dPYmplY3RGcm9tU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dDaGlsZEZy
YW1lRnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFsbG93SW1hZ2VGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dTdHlsZUZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd0ZvbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dNZWRpYUZyb21Tb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0Nvbm5lY3RGcm9tU291cmNlKToK
KyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KToKKwog
MjAxMi0wNS0wNCAgRGF2aWQgVHNlbmcgIDxkdHNlbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBD
aHJvbWl1bSBzaG91bGQgaW5jbHVkZSBNZW51TGlzdFBvcHVwcycgYW5kIE1lbnVMaXN0T3B0aW9u
cycgd2l0aGluIHRoZSBheCB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkZGJl
MDBmYmZkM2EzOWIyZDczM2JhZGUxMjA4MTMxNGRmOWQyZjY3Li41Y2VhZTU2MWQxNTY3ZjQwYjdj
MTM2MDlmZjE3ZWZkNjAxNzFiYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTA1LTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmVmYWN0b3IgQ1NQIHN0YXRlIHRvIHByZXBhcmUgZm9yIGhhdmluZyBib3RoIGEg
UmVwb3J0T25seSBhbmQgYW4gRW5mb3JjZWQgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjYWxsZXJzIHRvIHRoZSBuZXcgZnVuY3Rp
b24gbmFtZS4KKworICAgICAgICAqIHNyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQp
OgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KToKKwogMjAxMi0wNS0w
NCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERvbid0IHJl
cXVpcmUgRnJhbWVMb2FkZXJDbGllbnQgdG8gbWFudWZhY3R1cmUgYSBjb21taXREYXRhKCkgY2Fs
bCBmb3IgZW1wdHkgZG9jdW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwCmluZGV4IGViN2ExYzU4M2Y4MjcwNDZiMjQ1MmNiMzY4MjVkYWU2Y2I5
MmQ2NTYuLjYwM2UxOGY4N2NjZDA1YzY0NjgxZjhiODcxN2VjYjEwYWY2NDgwM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQ4Miw0OSAr
NDgyLDk5IEBAIHByaXZhdGU6CiAgICAgS1VSTCBtX3NlbGZVUkw7CiB9OwogCi1Db250ZW50U2Vj
dXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgIDogbV9oYXZlUG9saWN5KGZhbHNlKQotICAg
ICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAg
LCBtX3JlcG9ydE9ubHkoZmFsc2UpCi0gICAgLCBtX2hhdmVTYW5kYm94UG9saWN5KGZhbHNlKQot
ICAgICwgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZChmYWxzZSkKLXsKLX0KK2NsYXNzIENT
UERpcmVjdGl2ZUxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENTUERpcmVj
dGl2ZUxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKworICAgIGNvbnN0IFN0cmluZyYg
aGVhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXI7IH0KKyAgICBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OkhlYWRlclR5cGUgaGVhZGVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0T25s
eSA/IENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25seSA6IENvbnRlbnRTZWN1cml0eVBv
bGljeTo6RW5mb3JjZVBvbGljeTsgfQorCisgICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKCkg
Y29uc3Q7CisgICAgYm9vbCBhbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoKSBjb25zdDsKKyAgICBi
b29sIGFsbG93SW5saW5lU2NyaXB0KCkgY29uc3Q7CisgICAgYm9vbCBhbGxvd0lubGluZVN0eWxl
KCkgY29uc3Q7CisgICAgYm9vbCBhbGxvd0V2YWwoKSBjb25zdDsKKworICAgIGJvb2wgYWxsb3dT
Y3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93T2JqZWN0
RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7CisgICAgYm9vbCBhbGxvd0NoaWxkRnJhbWVG
cm9tU291cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93SW1hZ2VGcm9tU291
cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93U3R5bGVGcm9tU291cmNlKGNv
bnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93Rm9udEZyb21Tb3VyY2UoY29uc3QgS1VS
TCYpIGNvbnN0OworICAgIGJvb2wgYWxsb3dNZWRpYUZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNv
bnN0OworICAgIGJvb2wgYWxsb3dDb25uZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7
CiAKLUNvbnRlbnRTZWN1cml0eVBvbGljeTo6fkNvbnRlbnRTZWN1cml0eVBvbGljeSgpCi17Ci19
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IENTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJvbShj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIG90aGVyKSAKKyAgICB2b2lkIHBhcnNlKGNvbnN0
IFN0cmluZyYpOworCisgICAgYm9vbCBwYXJzZURpcmVjdGl2ZShjb25zdCBVQ2hhciogYmVnaW4s
IGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgbmFtZSwgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9p
ZCBwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGFkZERpcmVjdGl2ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgYXBwbHlT
YW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgc2FuZGJveFBvbGljeSk7CisKKyAgICBQYXNzT3du
UHRyPENTUERpcmVjdGl2ZT4gY3JlYXRlQ1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKKyAgICBDU1BEaXJlY3RpdmUqIG9wZXJhdGl2ZURpcmVj
dGl2ZShDU1BEaXJlY3RpdmUqKSBjb25zdDsKKyAgICB2b2lkIHJlcG9ydFZpb2xhdGlvbihjb25z
dCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UpIGNv
bnN0OworICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3Q7CisgICAgYm9vbCBjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKikgY29uc3Q7CisKKyAg
ICBib29sIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0
IFN0cmluZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0OworICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVw
b3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2Up
IGNvbnN0OworICAgIGJvb2wgY2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0
aXZlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CisKKyAgICBib29s
IGRlbnlJZkVuZm9yY2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0T25seTsgfQor
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
ICAgIFN0cmluZyBtX2hlYWRlcjsKKworICAgIGJvb2wgbV9yZXBvcnRPbmx5OworICAgIGJvb2wg
bV9oYXZlU2FuZGJveFBvbGljeTsKKworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fZGVmYXVs
dFNyYzsKKyAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX3NjcmlwdFNyYzsKKyAgICBPd25QdHI8
Q1NQRGlyZWN0aXZlPiBtX29iamVjdFNyYzsKKyAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX2Zy
YW1lU3JjOworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1faW1nU3JjOworICAgIE93blB0cjxD
U1BEaXJlY3RpdmU+IG1fc3R5bGVTcmM7CisgICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9mb250
U3JjOworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fbWVkaWFTcmM7CisgICAgT3duUHRyPENT
UERpcmVjdGl2ZT4gbV9jb25uZWN0U3JjOworCisgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJM
czsKK307CisKK0NTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICA6IG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICwgbV9yZXBvcnRPbmx5KGZh
bHNlKQorICAgICwgbV9oYXZlU2FuZGJveFBvbGljeShmYWxzZSkKIHsKLSAgICBBU1NFUlQoIW1f
aGF2ZVBvbGljeSk7Ci0gICAgaWYgKG90aGVyLT5tX2hhdmVQb2xpY3kpCi0gICAgICAgIGRpZFJl
Y2VpdmVIZWFkZXIob3RoZXItPm1faGVhZGVyLCBvdGhlci0+bV9yZXBvcnRPbmx5ID8gUmVwb3J0
T25seSA6IEVuZm9yY2VQb2xpY3kpOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlwZSB0eXBlKQor
UGFzc093blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgU3RyaW5n
JiBoZWFkZXIsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSB0eXBlKQogewotICAg
IGlmIChtX2hhdmVQb2xpY3kpCi0gICAgICAgIHJldHVybjsgLy8gVGhlIGZpcnN0IHBvbGljeSB3
aW5zLgotCi0gICAgcGFyc2UoaGVhZGVyKTsKLSAgICBtX2hhdmVQb2xpY3kgPSB0cnVlOwotICAg
IG1faGVhZGVyID0gaGVhZGVyOworICAgIE93blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBwb2xpY3kg
PSBhZG9wdFB0cihuZXcgQ1NQRGlyZWN0aXZlTGlzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7
CisgICAgcG9saWN5LT5wYXJzZShoZWFkZXIpOworICAgIHBvbGljeS0+bV9oZWFkZXIgPSBoZWFk
ZXI7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFJlcG9ydE9ubHk6Ci0gICAgICAg
IG1fcmVwb3J0T25seSA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEVuZm9yY2VQ
b2xpY3k6Ci0gICAgICAgIEFTU0VSVCghbV9yZXBvcnRPbmx5KTsKKyAgICBjYXNlIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6UmVwb3J0T25seToKKyAgICAgICAgcG9saWN5LT5tX3JlcG9ydE9ubHkg
PSB0cnVlOworICAgICAgICByZXR1cm4gcG9saWN5LnJlbGVhc2UoKTsKKyAgICBjYXNlIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6RW5mb3JjZVBvbGljeToKKyAgICAgICAgQVNTRVJUKCFwb2xpY3kt
Pm1fcmVwb3J0T25seSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICghY2hlY2tF
dmFsKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpKQotICAgICAgICBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFsKCk7CisgICAgaWYgKCFwb2xpY3ktPmNo
ZWNrRXZhbChwb2xpY3ktPm9wZXJhdGl2ZURpcmVjdGl2ZShwb2xpY3ktPm1fc2NyaXB0U3JjLmdl
dCgpKSkpCisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFsKCk7CisK
KyAgICByZXR1cm4gcG9saWN5LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0
IFN0cmluZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0Cit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnJl
cG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYg
Y29uc29sZU1lc3NhZ2UpIGNvbnN0CiB7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtX3JlcG9ydE9u
bHkgPyAiW1JlcG9ydCBPbmx5XSAiICsgY29uc29sZU1lc3NhZ2UgOiBjb25zb2xlTWVzc2FnZTsK
ICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKQEAg
LTU2MiwyMyArNjEyLDIzIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9s
YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAgICAgIFBpbmdM
b2FkZXI6OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihmcmFtZSwgbV9yZXBv
cnRVUkxzW2ldLCByZXBvcnQpOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6bG9n
VW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3ZvaWQgQ1NQ
RGlyZWN0aXZlTGlzdDo6bG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3QKIHsKICAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlVucmVjb2duaXpl
ZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJyIsIG5hbWUsICInLlxuIik7CiAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAK
LWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKiBkaXJl
Y3RpdmUpIGNvbnN0Citib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrRXZhbChDU1BEaXJlY3Rp
dmUqIGRpcmVjdGl2ZSkgY29uc3QKIHsKICAgICByZXR1cm4gIWRpcmVjdGl2ZSB8fCBkaXJlY3Rp
dmUtPmFsbG93RXZhbCgpOwogfQogCi1DU1BEaXJlY3RpdmUqIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6b3BlcmF0aXZlRGlyZWN0aXZlKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlKSBjb25zdAorQ1NQ
RGlyZWN0aXZlKiBDU1BEaXJlY3RpdmVMaXN0OjpvcGVyYXRpdmVEaXJlY3RpdmUoQ1NQRGlyZWN0
aXZlKiBkaXJlY3RpdmUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRpcmVjdGl2ZSA/IGRpcmVjdGl2
ZSA6IG1fZGVmYXVsdFNyYy5nZXQoKTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBj
b25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0
OjpjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSwg
Y29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSkgY29uc3QKIHsKICAgICBpZiAoIWRpcmVjdGl2
ZSB8fCBkaXJlY3RpdmUtPmFsbG93SW5saW5lKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NTg2LDcgKzYzNiw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpjaGVja0lubGluZUFu
ZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2CiAgICAgcmV0dXJuIGRlbnlJ
ZkVuZm9yY2luZ1BvbGljeSgpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y2hl
Y2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVj
a0V2YWxBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvbnN0IFN0
cmluZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0CiB7CiAgICAgaWYgKGNoZWNrRXZhbChkaXJlY3Rp
dmUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU5NCw3ICs2NDQsNyBAQCBib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6Y2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2
ZSogZGlyZWN0aXZlLAogICAgIHJldHVybiBkZW55SWZFbmZvcmNpbmdQb2xpY3koKTsKIH0KIAot
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9u
KENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dHlwZSkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tTb3VyY2VBbmRSZXBvcnRW
aW9sYXRpb24oQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB0eXBlKSBjb25zdAogewogICAgIGlmICghZGlyZWN0aXZlIHx8IGRpcmVjdGl2ZS0+
YWxsb3dzKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNjAyLDQzICs2NTIsNDMgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9u
KENTUERpcmVjdGl2ZSogZGlyZWN0aXYKICAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5
KCk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0phdmFTY3JpcHRVUkxz
KCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAo
IlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIG9mIENvbnRlbnQtU2Vj
dXJpdHktUG9saWN5LlxuIikpOwogICAgIHJldHVybiBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xh
dGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2Fn
ZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xl
TWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVz
ZSBvZiBDb250ZW50LVNlY3VyaXR5LVBvbGljeS5cbiIpKTsKICAgICByZXR1cm4gY2hlY2tJbmxp
bmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgp
KSwgY29uc29sZU1lc3NhZ2UpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dJbmxpbmVTY3JpcHQoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGlu
ZVNjcmlwdCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNv
bGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2Ugb2Yg
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kuXG4iKSk7CiAgICAgcmV0dXJuIGNoZWNrSW5saW5lQW5k
UmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNv
bnNvbGVNZXNzYWdlKTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5s
aW5lU3R5bGUoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVN0eWxl
KCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsICgiUmVmdXNlZCB0byBhcHBseSBpbmxpbmUgc3R5bGUgYmVjYXVzZSBvZiBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeS5cbiIpKTsKLSAgICByZXR1cm4gbV9vdmVycmlkZUlubGluZVN0eWxlQWxs
b3dlZCB8fCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUo
bV9zdHlsZVNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlKTsKKyAgICByZXR1cm4gY2hlY2tJbmxp
bmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkp
LCBjb25zb2xlTWVzc2FnZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d0V2YWwoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoKSBjb25zdAog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1
c2VkIHRvIGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5
LlxuIikpOwogICAgIHJldHVybiBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZl
RGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UpOwogfQogCi1ib29s
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwm
IHVybCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNl
KGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgdHlwZSwgKCJzY3JpcHQiKSk7CiAgICAgcmV0dXJuIGNoZWNrU291cmNlQW5kUmVwb3J0Vmlv
bGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIHVybCwgdHlwZSk7
CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2Uo
Y29uc3QgS1VSTCYgdXJsKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd09iamVj
dEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCB0eXBlLCAoIm9iamVjdCIpKTsKICAgICBpZiAodXJsLnByb3RvY29sSXMo
ImFib3V0IikpCkBAIC02NDYsNyArNjk2LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJu
IGNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX29iamVj
dFNyYy5nZXQoKSksIHVybCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wg
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dDaGlsZEZyYW1lRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1
cmwpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR5cGUsICgiZnJh
bWUiKSk7CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJhYm91dCIpKQpAQCAtNjU0LDQ4ICs3MDQs
NDEgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3Vy
Y2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBjaGVja1NvdXJjZUFuZFJlcG9y
dFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9mcmFtZVNyYy5nZXQoKSksIHVybCwgdHlw
ZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0ltYWdlRnJvbVNvdXJj
ZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW1h
Z2VGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgdHlwZSwgKCJpbWFnZSIpKTsKICAgICByZXR1cm4gY2hlY2tTb3VyY2VB
bmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1faW1nU3JjLmdldCgpKSwgdXJs
LCB0eXBlKTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9t
U291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dTdHlsZUZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCB0eXBlLCAoInN0eWxlIikpOwogICAgIHJldHVybiBjaGVja1Nv
dXJjZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQo
KSksIHVybCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0Zv
bnRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlz
dDo6YWxsb3dGb250RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR5cGUsICgiZm9udCIpKTsKICAgICByZXR1cm4gY2hl
Y2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fZm9udFNyYy5n
ZXQoKSksIHVybCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d01lZGlhRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93TWVkaWFGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHlwZSwgKCJtZWRpYSIpKTsKICAgICByZXR1
cm4gY2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fbWVk
aWFTcmMuZ2V0KCkpLCB1cmwsIHR5cGUpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6YWxsb3dDb25uZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93Q29ubmVjdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBj
b25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0eXBlLCAoImNvbm5lY3Qi
KSk7CiAgICAgcmV0dXJuIGNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURp
cmVjdGl2ZShtX2Nvbm5lY3RTcmMuZ2V0KCkpLCB1cmwsIHR5cGUpOwogfQogCi12b2lkIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUp
Ci17Ci0gICAgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCA9IHZhbHVlOwotfQotCiAvLyBw
b2xpY3kgICAgICAgICAgICA9IGRpcmVjdGl2ZS1saXN0CiAvLyBkaXJlY3RpdmUtbGlzdCAgICA9
IFsgZGlyZWN0aXZlICooICI7IiBbIGRpcmVjdGl2ZSBdICkgXQogLy8KLXZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKK3ZvaWQgQ1NQRGlyZWN0
aXZlTGlzdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBwb2xpY3kpCiB7Ci0gICAgQVNTRVJUKCFtX2hh
dmVQb2xpY3kpOwotCiAgICAgaWYgKHBvbGljeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNzIxLDcgKzc2NCw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZShj
b25zdCBTdHJpbmcmIHBvbGljeSkKIC8vIGRpcmVjdGl2ZS1uYW1lICAgID0gMSooIEFMUEhBIC8g
RElHSVQgLyAiLSIgKQogLy8gZGlyZWN0aXZlLXZhbHVlICAgPSAqKCBXU1AgLyA8VkNIQVIgZXhj
ZXB0ICI7Ij4gKQogLy8KLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZURpcmVjdGl2
ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgbmFtZSwgU3Ry
aW5nJiB2YWx1ZSkKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VEaXJlY3RpdmUoY29uc3Qg
VUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFs
dWUpCiB7CiAgICAgQVNTRVJUKG5hbWUuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQodmFsdWUuaXNF
bXB0eSgpKTsKQEAgLTc2MCw3ICs4MDMsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
cGFyc2VEaXJlY3RpdmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLAogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2VSZXBv
cnRVUkkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VS
ZXBvcnRVUkkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBjb25zdCBVQ2hhciogcG9zaXRp
b24gPSB2YWx1ZS5jaGFyYWN0ZXJzKCk7CiAgICAgY29uc3QgVUNoYXIqIGVuZCA9IHBvc2l0aW9u
ICsgdmFsdWUubGVuZ3RoKCk7CkBAIC03NzgsMTkgKzgyMSwxOSBAQCB2b2lkIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6cGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB9CiB9
CiAKLVBhc3NPd25QdHI8Q1NQRGlyZWN0aXZlPiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNyZWF0
ZUNTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCitQ
YXNzT3duUHRyPENTUERpcmVjdGl2ZT4gQ1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlQ1NQRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IENTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KSk7CiB9CiAKLXZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjphcHBseVNhbmRi
b3hQb2xpY3koY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KQordm9pZCBDU1BEaXJlY3RpdmVM
aXN0OjphcHBseVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KQogewog
ICAgIEFTU0VSVCghbV9oYXZlU2FuZGJveFBvbGljeSk7CiAgICAgbV9oYXZlU2FuZGJveFBvbGlj
eSA9IHRydWU7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5lbmZvcmNlU2FuZGJveEZs
YWdzKFNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KHNhbmRib3hQb2xpY3kpKTsK
IH0KIAotdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFkZERpcmVjdGl2ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFk
ZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRTcmMsICgiZGVmYXVsdC1zcmMi
KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywgKCJzY3JpcHQt
c3JjIikpOwpAQCAtODMyLDQgKzg3NSwxMDggQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUKICAg
ICAgICAgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKG5hbWUpOwogfQogCitDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgLCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2Vk
KGZhbHNlKQoreworfQorCitDb250ZW50U2VjdXJpdHlQb2xpY3k6On5Db250ZW50U2VjdXJpdHlQ
b2xpY3koKQoreworfQorCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJv
bShjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIG90aGVyKSAKK3sKKyAgICBBU1NFUlQoIW1f
cG9saWN5KTsKKyAgICBpZiAob3RoZXItPm1fcG9saWN5KQorICAgICAgICBkaWRSZWNlaXZlSGVh
ZGVyKG90aGVyLT5oZWFkZXIoKSwgb3RoZXItPmhlYWRlclR5cGUoKSk7Cit9CisKK3ZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVy
LCBIZWFkZXJUeXBlIHR5cGUpCit7CisgICAgaWYgKG1fcG9saWN5KQorICAgICAgICByZXR1cm47
IC8vIFRoZSBmaXJzdCBwb2xpY3kgd2lucy4KKyAgICBtX3BvbGljeSA9IENTUERpcmVjdGl2ZUxp
c3Q6OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGhlYWRlciwgdHlwZSk7Cit9CisK
K3ZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUo
Ym9vbCB2YWx1ZSkKK3sKKyAgICBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkID0gdmFsdWU7
Cit9CisKK2NvbnN0IFN0cmluZyYgQ29udGVudFNlY3VyaXR5UG9saWN5OjpoZWFkZXIoKSBjb25z
dAoreworICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9saWN5LT5oZWFkZXIoKSA6IGVtcHR5U3Ry
aW5nKCk7Cit9CisKK0NvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmhlYWRlclR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA/
IG1fcG9saWN5LT5oZWFkZXJUeXBlKCkgOiBFbmZvcmNlUG9saWN5OworfQorCitib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dKYXZhU2NyaXB0VVJMcygpOworfQorCiti
b29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0lubGluZUV2ZW50
SGFuZGxlcnMoKTsKK30KKworYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5l
U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxv
d0lubGluZVNjcmlwdCgpOworfQorCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJ
bmxpbmVTdHlsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX292ZXJyaWRl
SW5saW5lU3R5bGVBbGxvd2VkIHx8IG1fcG9saWN5LT5hbGxvd0lubGluZVN0eWxlKCk7Cit9CisK
K2Jvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwoKSBjb25zdAoreworICAgIHJl
dHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93RXZhbCgpOworfQorCitib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd1NjcmlwdEZy
b21Tb3VyY2UodXJsKTsKK30KKworYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93T2Jq
ZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3Bv
bGljeSB8fCBtX3BvbGljeS0+YWxsb3dPYmplY3RGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wg
Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKGNvbnN0IEtV
UkwmIHVybCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxv
d0NoaWxkRnJhbWVGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0ltYWdlRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAg
cmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbWFnZUZyb21Tb3VyY2UodXJsKTsK
K30KKworYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9tU291cmNlKGNv
bnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5
LT5hbGxvd1N0eWxlRnJvbVNvdXJjZSh1cmwpOworfQorCitib29sIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6YWxsb3dGb250RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAg
cmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dGb250RnJvbVNvdXJjZSh1cmwpOwor
fQorCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dNZWRpYUZyb21Tb3VyY2UoY29u
c3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3kt
PmFsbG93TWVkaWFGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0Nvbm5lY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0Nvbm5lY3RGcm9tU291cmNlKHVy
bCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5o
CmluZGV4IGIwYTFhZDA5ZjUzNDkyZmRiZjYwYWEwNjczMDdhMDdjNGYwNzA4YzMuLjRiMTgyNWNm
ZjMyNDQ4MDA3NDAwZDcwOTk0MDNhZTA2ZjE4MmM1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIENTUERpcmVjdGl2ZTsKK2NsYXNzIENTUERpcmVjdGl2ZUxpc3Q7
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgS1VSTDsKIApAQCAtNTMsOCAr
NTMsOSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUhlYWRlcihjb25z
dCBTdHJpbmcmLCBIZWFkZXJUeXBlKTsKLSAgICBTdHJpbmcgcG9saWN5KCkgeyByZXR1cm4gbV9o
ZWFkZXI7IH0KLSAgICBIZWFkZXJUeXBlIGhlYWRlclR5cGUoKSB7IHJldHVybiBtX3JlcG9ydE9u
bHkgPyBSZXBvcnRPbmx5IDogRW5mb3JjZVBvbGljeTsgfQorCisgICAgY29uc3QgU3RyaW5nJiBo
ZWFkZXIoKSBjb25zdDsKKyAgICBIZWFkZXJUeXBlIGhlYWRlclR5cGUoKSBjb25zdDsKIAogICAg
IGJvb2wgYWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVF
dmVudEhhbmRsZXJzKCkgY29uc3Q7CkBAIC03Niw0MiArNzcsOSBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CiAKLSAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcGFyc2VE
aXJlY3RpdmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5h
bWUsIFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5n
Jik7Ci0gICAgdm9pZCBhZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKLSAgICB2b2lkIGFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHNh
bmRib3hQb2xpY3kpOwotCi0gICAgUGFzc093blB0cjxDU1BEaXJlY3RpdmU+IGNyZWF0ZUNTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotCi0gICAg
Q1NQRGlyZWN0aXZlKiBvcGVyYXRpdmVEaXJlY3RpdmUoQ1NQRGlyZWN0aXZlKikgY29uc3Q7Ci0g
ICAgdm9pZCByZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25z
dCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdDsKLSAgICB2b2lkIGxvZ1VucmVjb2duaXpl
ZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIGJvb2wgY2hlY2tFdmFs
KENTUERpcmVjdGl2ZSopIGNvbnN0OwotCi0gICAgYm9vbCBjaGVja0lubGluZUFuZFJlcG9ydFZp
b2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25z
dDsKLSAgICBib29sIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBj
b25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdDsKLSAgICBib29sIGNoZWNrU291cmNl
QW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJp
bmcmIHR5cGUpIGNvbnN0OwotCi0gICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBjb25z
dCB7IHJldHVybiBtX3JlcG9ydE9ubHk7IH0KLQotICAgIGJvb2wgbV9oYXZlUG9saWN5OwogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotICAg
IGJvb2wgbV9yZXBvcnRPbmx5OwotICAgIFN0cmluZyBtX2hlYWRlcjsKLSAgICBPd25QdHI8Q1NQ
RGlyZWN0aXZlPiBtX2RlZmF1bHRTcmM7Ci0gICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9zY3Jp
cHRTcmM7Ci0gICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9vYmplY3RTcmM7Ci0gICAgT3duUHRy
PENTUERpcmVjdGl2ZT4gbV9mcmFtZVNyYzsKLSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX2lt
Z1NyYzsKLSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX3N0eWxlU3JjOwotICAgIE93blB0cjxD
U1BEaXJlY3RpdmU+IG1fZm9udFNyYzsKLSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX21lZGlh
U3JjOwotICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fY29ubmVjdFNyYzsKLSAgICBib29sIG1f
aGF2ZVNhbmRib3hQb2xpY3k7CiAgICAgYm9vbCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2Vk
OwotICAgIFZlY3RvcjxLVVJMPiBtX3JlcG9ydFVSTHM7CisgICAgT3duUHRyPENTUERpcmVjdGl2
ZUxpc3Q+IG1fcG9saWN5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ZThlNWRhMTkyODUzNDBjMWEwNjI5NGM2ZmZj
ZjUxMDczZTFlY2IxLi41OWQ0YmEzNTEyMzEyY2JmOTE3ZDU2ZDA0NWU3ZjE1MzBmZDdiZmFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApA
QCAtMjcyLDcgKzI3Miw3IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5n
UHJveHkoKQogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KGNv
bnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKICAgICBS
ZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlz
LCBzdGFydE1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5j
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+cG9saWN5KCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyKCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+aGVhZGVyVHlwZSgpKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7
CiAgICAgdGhyZWFkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCBlN2FhZTQyNjNiZGVlMzMxZDAw
YTRhZDI1MjkyOGQzZjJkMzg1ZmYwLi44OGFjYmUxMTYzMDVhZTE4M2UzNTc2MTM3MTA1ODc2ZDA3
NWRiMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgU2hhcmVkV29ya2Vy
U2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQobV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgp
KTsKICAgICAgICAgLy8gUGFzcyB0aGUgc2NyaXB0IG9mZiB0byB0aGUgd29ya2VyLCB0aGVuIHNl
bmQgYSBjb25uZWN0IGV2ZW50LgogICAgICAgICBtX3dlYldvcmtlci0+c3RhcnRXb3JrZXJDb250
ZXh0KG1fdXJsLCBtX25hbWUsIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVz
ZXJBZ2VudChtX3VybCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+cG9saWN5KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlcigpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6V2ViQ29udGVudFNlY3Vy
aXR5UG9saWN5VHlwZT4obV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmhlYWRlclR5cGUoKSksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9yZXNwb25zZUFwcENhY2hlSUQpOwogICAgICAgICBzZW5kQ29u
bmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2Vy
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGll
bnRJbXBsLmNwcAppbmRleCA3ZGI1NDQ1MWEwYzI3ZDA0MDA3NjBhNWUwNWQ3MDViZjY0NDU4NGNk
Li5mYjEwMDA1ZWY4OTlkNzU5NmVmZjUzMzEwNTI2OGUyN2ZhNzRkNjNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtODcs
NyArODcsNyBAQCBXb3JrZXJDb250ZXh0UHJveHkqIFdlYldvcmtlckNsaWVudEltcGw6OmNyZWF0
ZVdvcmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdvcmtlcgogdm9pZCBXZWJXb3JrZXJDbGllbnRJ
bXBsOjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlKQogewogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRo
cmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50
LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5wb2xpY3ko
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5oZWFkZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXJUeXBlKCkpOwogICAgIG1f
cHJveHktPndvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140321</attachid>
            <date>2012-05-04 14:15:00 -0700</date>
            <delta_ts>2012-05-04 14:40:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85662-20120504141459.patch</filename>
            <type>text/plain</type>
            <size>29980</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYwZThhMzUyYTUxYWU3
NWE5OWY3ZWMzYjdiZDRhMWI2YmI2YzI3Zi4uZDJmMjA2YzZiOTZjYTQ0YTU3NTI4ZWY3OTdhZjE2
MmY5NWFkZTMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA1LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgQ1NQIHN0YXRl
IHRvIHByZXBhcmUgZm9yIGhhdmluZyBib3RoIGEgUmVwb3J0T25seSBhbmQgYW4gRW5mb3JjZWQg
cG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NTY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggcmVmYWN0b3JzIHRoZSBDb250ZW50U2VjdXJpdHlQb2xpY3kgc3RhdGUgaW50byBhIHNl
cGFyYXRlCisgICAgICAgIERpcmVjdGl2ZUxpc3QgY2xhc3MgdG8gcHJlcGFyZSBmb3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTYxLCB3aGljaCB3
aWxsIGNhdXNlIHVzIHRvCisgICAgICAgIG5lZWQgdHdvIGRpcmVjdGl2ZSBsaXN0czogb25lIGZv
ciBlbmZvcmNlbWVudCBhbmQgb25lIGZvciBtb25pdG9yaW5nLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggc2hvdWxkbid0IGNhdXNlIGFueSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBw
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChDU1BEaXJlY3RpdmVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmhlYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpoZWFkZXJUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmRlbnlJZkVuZm9yY2luZ1BvbGljeSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2
ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnJlcG9ydFZpb2xhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0Ojpsb2dVbnJlY29nbml6ZWREaXJlY3RpdmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6Om9wZXJhdGl2ZURpcmVjdGl2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0lubGluZUFuZFJlcG9ydFZpb2xh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWxBbmRS
ZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y2hl
Y2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJl
Y3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERp
cmVjdGl2ZUxpc3Q6OmFsbG93T2JqZWN0RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1BEaXJlY3RpdmVMaXN0OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW1hZ2VGcm9tU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U3R5bGVGcm9tU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93Rm9udEZyb21Tb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dNZWRpYUZyb21Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dDb25uZWN0RnJvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZURpcmVjdGl2ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVJlcG9ydFVSSSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGVDU1BEaXJlY3RpdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YXBwbHlTYW5kYm94UG9saWN5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6On5Db250ZW50U2VjdXJpdHlQb2xpY3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojpjb3B5U3RhdGVGcm9t
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhl
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92ZXJy
aWRlQWxsb3dJbmxpbmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmhlYWRlclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojph
bGxvd0phdmFTY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBv
bGljeTo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dPYmplY3RGcm9tU291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dDaGlsZEZyYW1l
RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFs
bG93SW1hZ2VGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBv
bGljeTo6YWxsb3dTdHlsZUZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNl
Y3VyaXR5UG9saWN5OjphbGxvd0ZvbnRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dNZWRpYUZyb21Tb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0Nvbm5lY3RGcm9tU291cmNlKToKKyAg
ICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KToKKwogMjAx
Mi0wNS0wNCAgRGF2aWQgVHNlbmcgIDxkdHNlbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBDaHJv
bWl1bSBzaG91bGQgaW5jbHVkZSBNZW51TGlzdFBvcHVwcycgYW5kIE1lbnVMaXN0T3B0aW9ucycg
d2l0aGluIHRoZSBheCB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkZGJlMDBm
YmZkM2EzOWIyZDczM2JhZGUxMjA4MTMxNGRmOWQyZjY3Li5mMWFiZDE0OWM2MTQ2ODMxMmViYjI3
ZGRjMGRjMmMzZGU0M2JlYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA1LTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmVmYWN0b3IgQ1NQIHN0YXRlIHRvIHByZXBhcmUgZm9yIGhhdmluZyBib3RoIGEgUmVw
b3J0T25seSBhbmQgYW4gRW5mb3JjZWQgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgorCisgICAgICAgIFVwZGF0ZSBjYWxsZXJzIHRvIHRoZSBuZXcgZnVuY3Rpb24gbmFt
ZS4KKworICAgICAgICAqIHNyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
V29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KToKKwogMjAxMi0wNS0wNCAgTmF0
ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUg
RnJhbWVMb2FkZXJDbGllbnQgdG8gbWFudWZhY3R1cmUgYSBjb21taXREYXRhKCkgY2FsbCBmb3Ig
ZW1wdHkgZG9jdW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwCmluZGV4IGViN2ExYzU4M2Y4MjcwNDZiMjQ1MmNiMzY4MjVkYWU2Y2I5MmQ2NTYu
LjYwM2UxOGY4N2NjZDA1YzY0NjgxZjhiODcxN2VjYjEwYWY2NDgwM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQ4Miw0OSArNDgyLDk5
IEBAIHByaXZhdGU6CiAgICAgS1VSTCBtX3NlbGZVUkw7CiB9OwogCi1Db250ZW50U2VjdXJpdHlQ
b2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQotICAgIDogbV9oYXZlUG9saWN5KGZhbHNlKQotICAgICwgbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgLCBtX3Jl
cG9ydE9ubHkoZmFsc2UpCi0gICAgLCBtX2hhdmVTYW5kYm94UG9saWN5KGZhbHNlKQotICAgICwg
bV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZChmYWxzZSkKLXsKLX0KK2NsYXNzIENTUERpcmVj
dGl2ZUxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENTUERpcmVjdGl2ZUxp
c3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKworICAgIGNvbnN0IFN0cmluZyYgaGVhZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXI7IH0KKyAgICBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OkhlYWRlclR5cGUgaGVhZGVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0T25seSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25seSA6IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
RW5mb3JjZVBvbGljeTsgfQorCisgICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKCkgY29uc3Q7
CisgICAgYm9vbCBhbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoKSBjb25zdDsKKyAgICBib29sIGFs
bG93SW5saW5lU2NyaXB0KCkgY29uc3Q7CisgICAgYm9vbCBhbGxvd0lubGluZVN0eWxlKCkgY29u
c3Q7CisgICAgYm9vbCBhbGxvd0V2YWwoKSBjb25zdDsKKworICAgIGJvb2wgYWxsb3dTY3JpcHRG
cm9tU291cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93T2JqZWN0RnJvbVNv
dXJjZShjb25zdCBLVVJMJikgY29uc3Q7CisgICAgYm9vbCBhbGxvd0NoaWxkRnJhbWVGcm9tU291
cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93SW1hZ2VGcm9tU291cmNlKGNv
bnN0IEtVUkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93U3R5bGVGcm9tU291cmNlKGNvbnN0IEtV
UkwmKSBjb25zdDsKKyAgICBib29sIGFsbG93Rm9udEZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNv
bnN0OworICAgIGJvb2wgYWxsb3dNZWRpYUZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNvbnN0Owor
ICAgIGJvb2wgYWxsb3dDb25uZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7CiAKLUNv
bnRlbnRTZWN1cml0eVBvbGljeTo6fkNvbnRlbnRTZWN1cml0eVBvbGljeSgpCi17Ci19Citwcml2
YXRlOgorICAgIGV4cGxpY2l0IENTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJvbShjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3kqIG90aGVyKSAKKyAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmlu
ZyYpOworCisgICAgYm9vbCBwYXJzZURpcmVjdGl2ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0
IFVDaGFyKiBlbmQsIFN0cmluZyYgbmFtZSwgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCBwYXJz
ZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGFkZERpcmVjdGl2ZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgYXBwbHlTYW5kYm94
UG9saWN5KGNvbnN0IFN0cmluZyYgc2FuZGJveFBvbGljeSk7CisKKyAgICBQYXNzT3duUHRyPENT
UERpcmVjdGl2ZT4gY3JlYXRlQ1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSk7CisKKyAgICBDU1BEaXJlY3RpdmUqIG9wZXJhdGl2ZURpcmVjdGl2ZShD
U1BEaXJlY3RpdmUqKSBjb25zdDsKKyAgICB2b2lkIHJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJp
bmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0Owor
ICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29u
c3Q7CisgICAgYm9vbCBjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKikgY29uc3Q7CisKKyAgICBib29s
IGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IFN0cmlu
ZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0OworICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVwb3J0Vmlv
bGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0
OworICAgIGJvb2wgY2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiwg
Y29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CisKKyAgICBib29sIGRlbnlJ
ZkVuZm9yY2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0T25seTsgfQorCisgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworICAgIFN0
cmluZyBtX2hlYWRlcjsKKworICAgIGJvb2wgbV9yZXBvcnRPbmx5OworICAgIGJvb2wgbV9oYXZl
U2FuZGJveFBvbGljeTsKKworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fZGVmYXVsdFNyYzsK
KyAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX3NjcmlwdFNyYzsKKyAgICBPd25QdHI8Q1NQRGly
ZWN0aXZlPiBtX29iamVjdFNyYzsKKyAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX2ZyYW1lU3Jj
OworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1faW1nU3JjOworICAgIE93blB0cjxDU1BEaXJl
Y3RpdmU+IG1fc3R5bGVTcmM7CisgICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9mb250U3JjOwor
ICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fbWVkaWFTcmM7CisgICAgT3duUHRyPENTUERpcmVj
dGl2ZT4gbV9jb25uZWN0U3JjOworCisgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJMczsKK307
CisKK0NTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICwgbV9yZXBvcnRPbmx5KGZhbHNlKQor
ICAgICwgbV9oYXZlU2FuZGJveFBvbGljeShmYWxzZSkKIHsKLSAgICBBU1NFUlQoIW1faGF2ZVBv
bGljeSk7Ci0gICAgaWYgKG90aGVyLT5tX2hhdmVQb2xpY3kpCi0gICAgICAgIGRpZFJlY2VpdmVI
ZWFkZXIob3RoZXItPm1faGVhZGVyLCBvdGhlci0+bV9yZXBvcnRPbmx5ID8gUmVwb3J0T25seSA6
IEVuZm9yY2VQb2xpY3kpOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVj
ZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlwZSB0eXBlKQorUGFzc093
blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgU3RyaW5nJiBoZWFk
ZXIsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSB0eXBlKQogewotICAgIGlmICht
X2hhdmVQb2xpY3kpCi0gICAgICAgIHJldHVybjsgLy8gVGhlIGZpcnN0IHBvbGljeSB3aW5zLgot
Ci0gICAgcGFyc2UoaGVhZGVyKTsKLSAgICBtX2hhdmVQb2xpY3kgPSB0cnVlOwotICAgIG1faGVh
ZGVyID0gaGVhZGVyOworICAgIE93blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBwb2xpY3kgPSBhZG9w
dFB0cihuZXcgQ1NQRGlyZWN0aXZlTGlzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7CisgICAg
cG9saWN5LT5wYXJzZShoZWFkZXIpOworICAgIHBvbGljeS0+bV9oZWFkZXIgPSBoZWFkZXI7CiAK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFJlcG9ydE9ubHk6Ci0gICAgICAgIG1fcmVw
b3J0T25seSA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEVuZm9yY2VQb2xpY3k6
Ci0gICAgICAgIEFTU0VSVCghbV9yZXBvcnRPbmx5KTsKKyAgICBjYXNlIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6UmVwb3J0T25seToKKyAgICAgICAgcG9saWN5LT5tX3JlcG9ydE9ubHkgPSB0cnVl
OworICAgICAgICByZXR1cm4gcG9saWN5LnJlbGVhc2UoKTsKKyAgICBjYXNlIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6RW5mb3JjZVBvbGljeToKKyAgICAgICAgQVNTRVJUKCFwb2xpY3ktPm1fcmVw
b3J0T25seSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICghY2hlY2tFdmFsKG9w
ZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpKQotICAgICAgICBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFsKCk7CisgICAgaWYgKCFwb2xpY3ktPmNoZWNrRXZh
bChwb2xpY3ktPm9wZXJhdGl2ZURpcmVjdGl2ZShwb2xpY3ktPm1fc2NyaXB0U3JjLmdldCgpKSkp
CisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFsKCk7CisKKyAgICBy
ZXR1cm4gcG9saWN5LnJlbGVhc2UoKTsKIH0KIAotdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmlu
ZyYgY29uc29sZU1lc3NhZ2UpIGNvbnN0Cit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnJlcG9ydFZp
b2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0IFN0cmluZyYgY29uc29s
ZU1lc3NhZ2UpIGNvbnN0CiB7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtX3JlcG9ydE9ubHkgPyAi
W1JlcG9ydCBPbmx5XSAiICsgY29uc29sZU1lc3NhZ2UgOiBjb25zb2xlTWVzc2FnZTsKICAgICBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKQEAgLTU2Miwy
MyArNjEyLDIzIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24o
Y29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAgICAgICAgIFBpbmdMb2FkZXI6
OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihmcmFtZSwgbV9yZXBvcnRVUkxz
W2ldLCByZXBvcnQpOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6bG9nVW5yZWNv
Z25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3ZvaWQgQ1NQRGlyZWN0
aXZlTGlzdDo6bG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29u
c3QKIHsKICAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlVucmVjb2duaXplZCBDb250
ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJyIsIG5hbWUsICInLlxuIik7CiAgICAgbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKLWJvb2wg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUp
IGNvbnN0Citib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrRXZhbChDU1BEaXJlY3RpdmUqIGRp
cmVjdGl2ZSkgY29uc3QKIHsKICAgICByZXR1cm4gIWRpcmVjdGl2ZSB8fCBkaXJlY3RpdmUtPmFs
bG93RXZhbCgpOwogfQogCi1DU1BEaXJlY3RpdmUqIENvbnRlbnRTZWN1cml0eVBvbGljeTo6b3Bl
cmF0aXZlRGlyZWN0aXZlKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlKSBjb25zdAorQ1NQRGlyZWN0
aXZlKiBDU1BEaXJlY3RpdmVMaXN0OjpvcGVyYXRpdmVEaXJlY3RpdmUoQ1NQRGlyZWN0aXZlKiBk
aXJlY3RpdmUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRpcmVjdGl2ZSA/IGRpcmVjdGl2ZSA6IG1f
ZGVmYXVsdFNyYy5nZXQoKTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNoZWNr
SW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVj
a0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSwgY29uc3Qg
U3RyaW5nJiBjb25zb2xlTWVzc2FnZSkgY29uc3QKIHsKICAgICBpZiAoIWRpcmVjdGl2ZSB8fCBk
aXJlY3RpdmUtPmFsbG93SW5saW5lKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNTg2LDcg
KzYzNiw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpjaGVja0lubGluZUFuZFJlcG9y
dFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2CiAgICAgcmV0dXJuIGRlbnlJZkVuZm9y
Y2luZ1BvbGljeSgpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y2hlY2tFdmFs
QW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBTdHJpbmcm
IGNvbnNvbGVNZXNzYWdlKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWxB
bmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvbnN0IFN0cmluZyYg
Y29uc29sZU1lc3NhZ2UpIGNvbnN0CiB7CiAgICAgaWYgKGNoZWNrRXZhbChkaXJlY3RpdmUpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU5NCw3ICs2NDQsNyBAQCBib29sIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6Y2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGly
ZWN0aXZlLAogICAgIHJldHVybiBkZW55SWZFbmZvcmNpbmdQb2xpY3koKTsKIH0KIAotYm9vbCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKENTUERp
cmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdHlwZSkg
Y29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRp
b24oQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB0eXBlKSBjb25zdAogewogICAgIGlmICghZGlyZWN0aXZlIHx8IGRpcmVjdGl2ZS0+YWxsb3dz
KHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNjAyLDQzICs2NTIsNDMgQEAgYm9vbCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKENTUERp
cmVjdGl2ZSogZGlyZWN0aXYKICAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5KCk7CiB9
CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0phdmFTY3JpcHRVUkxzKCkgY29u
c3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0CiB7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVz
ZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJpdHkt
UG9saWN5LlxuIikpOwogICAgIHJldHVybiBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihv
cGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSk7CiB9
CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMo
KSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMo
KSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2Fn
ZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBvZiBD
b250ZW50LVNlY3VyaXR5LVBvbGljeS5cbiIpKTsKICAgICByZXR1cm4gY2hlY2tJbmxpbmVBbmRS
ZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29u
c29sZU1lc3NhZ2UpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxp
bmVTY3JpcHQoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVNjcmlw
dCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNz
YWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2Ugb2YgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kuXG4iKSk7CiAgICAgcmV0dXJuIGNoZWNrSW5saW5lQW5kUmVwb3J0
VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVN
ZXNzYWdlKTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5
bGUoKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVN0eWxlKCkgY29u
c3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgi
UmVmdXNlZCB0byBhcHBseSBpbmxpbmUgc3R5bGUgYmVjYXVzZSBvZiBDb250ZW50LVNlY3VyaXR5
LVBvbGljeS5cbiIpKTsKLSAgICByZXR1cm4gbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCB8
fCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHls
ZVNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlKTsKKyAgICByZXR1cm4gY2hlY2tJbmxpbmVBbmRS
ZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpLCBjb25z
b2xlTWVzc2FnZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwo
KSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoKSBjb25zdAogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRv
IGV2YWx1YXRlIHNjcmlwdCBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5LlxuIikp
OwogICAgIHJldHVybiBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0
aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UpOwogfQogCi1ib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkg
Y29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0
IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHlw
ZSwgKCJzY3JpcHQiKSk7CiAgICAgcmV0dXJuIGNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9u
KG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIHVybCwgdHlwZSk7CiB9CiAK
LWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoY29uc3Qg
S1VSTCYgdXJsKSBjb25zdAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd09iamVjdEZyb21T
b3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCB0eXBlLCAoIm9iamVjdCIpKTsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImFib3V0
IikpCkBAIC02NDYsNyArNjk2LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93
T2JqZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNoZWNr
U291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX29iamVjdFNyYy5n
ZXQoKSksIHVybCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d0NoaWxkRnJhbWVGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wgQ1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dDaGlsZEZyYW1lRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNv
bnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR5cGUsICgiZnJhbWUiKSk7
CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJhYm91dCIpKQpAQCAtNjU0LDQ4ICs3MDQsNDEgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UoY29u
c3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xh
dGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9mcmFtZVNyYy5nZXQoKSksIHVybCwgdHlwZSk7CiB9
CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0ltYWdlRnJvbVNvdXJjZShjb25z
dCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW1hZ2VGcm9t
U291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgdHlwZSwgKCJpbWFnZSIpKTsKICAgICByZXR1cm4gY2hlY2tTb3VyY2VBbmRSZXBv
cnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1faW1nU3JjLmdldCgpKSwgdXJsLCB0eXBl
KTsKIH0KIAotYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9tU291cmNl
KGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTdHls
ZUZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCB0eXBlLCAoInN0eWxlIikpOwogICAgIHJldHVybiBjaGVja1NvdXJjZUFu
ZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQoKSksIHVy
bCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0ZvbnRGcm9t
U291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dGb250RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHR5cGUsICgiZm9udCIpKTsKICAgICByZXR1cm4gY2hlY2tTb3Vy
Y2VBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fZm9udFNyYy5nZXQoKSks
IHVybCwgdHlwZSk7CiB9CiAKLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlh
RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENTUERpcmVjdGl2ZUxpc3Q6
OmFsbG93TWVkaWFGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHlwZSwgKCJtZWRpYSIpKTsKICAgICByZXR1cm4gY2hl
Y2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fbWVkaWFTcmMu
Z2V0KCkpLCB1cmwsIHR5cGUpOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dDb25uZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Citib29sIENTUERpcmVj
dGl2ZUxpc3Q6OmFsbG93Q29ubmVjdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0eXBlLCAoImNvbm5lY3QiKSk7CiAg
ICAgcmV0dXJuIGNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2
ZShtX2Nvbm5lY3RTcmMuZ2V0KCkpLCB1cmwsIHR5cGUpOwogfQogCi12b2lkIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCi17Ci0g
ICAgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCA9IHZhbHVlOwotfQotCiAvLyBwb2xpY3kg
ICAgICAgICAgICA9IGRpcmVjdGl2ZS1saXN0CiAvLyBkaXJlY3RpdmUtbGlzdCAgICA9IFsgZGly
ZWN0aXZlICooICI7IiBbIGRpcmVjdGl2ZSBdICkgXQogLy8KLXZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKK3ZvaWQgQ1NQRGlyZWN0aXZlTGlz
dDo6cGFyc2UoY29uc3QgU3RyaW5nJiBwb2xpY3kpCiB7Ci0gICAgQVNTRVJUKCFtX2hhdmVQb2xp
Y3kpOwotCiAgICAgaWYgKHBvbGljeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NzIxLDcgKzc2NCw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZShjb25zdCBT
dHJpbmcmIHBvbGljeSkKIC8vIGRpcmVjdGl2ZS1uYW1lICAgID0gMSooIEFMUEhBIC8gRElHSVQg
LyAiLSIgKQogLy8gZGlyZWN0aXZlLXZhbHVlICAgPSAqKCBXU1AgLyA8VkNIQVIgZXhjZXB0ICI7
Ij4gKQogLy8KLWJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZURpcmVjdGl2ZShjb25z
dCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmluZyYgbmFtZSwgU3RyaW5nJiB2
YWx1ZSkKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VEaXJlY3RpdmUoY29uc3QgVUNoYXIq
IGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpCiB7
CiAgICAgQVNTRVJUKG5hbWUuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQodmFsdWUuaXNFbXB0eSgp
KTsKQEAgLTc2MCw3ICs4MDMsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2VE
aXJlY3RpdmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLAogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2VSZXBvcnRVUkko
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VSZXBvcnRV
UkkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBjb25zdCBVQ2hhciogcG9zaXRpb24gPSB2
YWx1ZS5jaGFyYWN0ZXJzKCk7CiAgICAgY29uc3QgVUNoYXIqIGVuZCA9IHBvc2l0aW9uICsgdmFs
dWUubGVuZ3RoKCk7CkBAIC03NzgsMTkgKzgyMSwxOSBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6cGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB9CiB9CiAKLVBh
c3NPd25QdHI8Q1NQRGlyZWN0aXZlPiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNyZWF0ZUNTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCitQYXNzT3du
UHRyPENTUERpcmVjdGl2ZT4gQ1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlQ1NQRGlyZWN0aXZlKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENTUERpcmVjdGl2ZShuYW1lLCB2YWx1ZSwgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KSk7CiB9CiAKLXZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjphcHBseVNhbmRib3hQb2xp
Y3koY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KQordm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojph
cHBseVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KQogewogICAgIEFT
U0VSVCghbV9oYXZlU2FuZGJveFBvbGljeSk7CiAgICAgbV9oYXZlU2FuZGJveFBvbGljeSA9IHRy
dWU7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5lbmZvcmNlU2FuZGJveEZsYWdzKFNl
Y3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KHNhbmRib3hQb2xpY3kpKTsKIH0KIAot
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVj
dGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRTcmMsICgiZGVmYXVsdC1zcmMiKSk7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywgKCJzY3JpcHQtc3JjIikp
OwpAQCAtODMyLDQgKzg3NSwxMDggQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFkZERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUKICAgICAgICAg
bG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKG5hbWUpOwogfQogCitDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KQorICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCisgICAgLCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkKGZhbHNl
KQoreworfQorCitDb250ZW50U2VjdXJpdHlQb2xpY3k6On5Db250ZW50U2VjdXJpdHlQb2xpY3ko
KQoreworfQorCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y29weVN0YXRlRnJvbShjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIG90aGVyKSAKK3sKKyAgICBBU1NFUlQoIW1fcG9saWN5
KTsKKyAgICBpZiAob3RoZXItPm1fcG9saWN5KQorICAgICAgICBkaWRSZWNlaXZlSGVhZGVyKG90
aGVyLT5oZWFkZXIoKSwgb3RoZXItPmhlYWRlclR5cGUoKSk7Cit9CisKK3ZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyLCBIZWFk
ZXJUeXBlIHR5cGUpCit7CisgICAgaWYgKG1fcG9saWN5KQorICAgICAgICByZXR1cm47IC8vIFRo
ZSBmaXJzdCBwb2xpY3kgd2lucy4KKyAgICBtX3BvbGljeSA9IENTUERpcmVjdGl2ZUxpc3Q6OmNy
ZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGhlYWRlciwgdHlwZSk7Cit9CisKK3ZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUoYm9vbCB2
YWx1ZSkKK3sKKyAgICBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkID0gdmFsdWU7Cit9CisK
K2NvbnN0IFN0cmluZyYgQ29udGVudFNlY3VyaXR5UG9saWN5OjpoZWFkZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9saWN5LT5oZWFkZXIoKSA6IGVtcHR5U3RyaW5nKCk7
Cit9CisKK0NvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmhlYWRlclR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9s
aWN5LT5oZWFkZXJUeXBlKCkgOiBFbmZvcmNlUG9saWN5OworfQorCitib29sIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFt
X3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dKYXZhU2NyaXB0VVJMcygpOworfQorCitib29sIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0lubGluZUV2ZW50SGFuZGxl
cnMoKTsKK30KKworYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU2NyaXB0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0lubGlu
ZVNjcmlwdCgpOworfQorCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVT
dHlsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX292ZXJyaWRlSW5saW5l
U3R5bGVBbGxvd2VkIHx8IG1fcG9saWN5LT5hbGxvd0lubGluZVN0eWxlKCk7Cit9CisKK2Jvb2wg
Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwoKSBjb25zdAoreworICAgIHJldHVybiAh
bV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93RXZhbCgpOworfQorCitib29sIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd1NjcmlwdEZyb21Tb3Vy
Y2UodXJsKTsKK30KKworYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93T2JqZWN0RnJv
bVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3BvbGljeSB8
fCBtX3BvbGljeS0+YWxsb3dPYmplY3RGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0NoaWxk
RnJhbWVGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5Ojph
bGxvd0ltYWdlRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbWFnZUZyb21Tb3VyY2UodXJsKTsKK30KKwor
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9tU291cmNlKGNvbnN0IEtV
UkwmIHVybCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxv
d1N0eWxlRnJvbVNvdXJjZSh1cmwpOworfQorCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
YWxsb3dGb250RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dGb250RnJvbVNvdXJjZSh1cmwpOworfQorCiti
b29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dNZWRpYUZyb21Tb3VyY2UoY29uc3QgS1VS
TCYgdXJsKSBjb25zdAoreworICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93
TWVkaWFGcm9tU291cmNlKHVybCk7Cit9CisKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5Ojph
bGxvd0Nvbm5lY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0Nvbm5lY3RGcm9tU291cmNlKHVybCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4
IGIwYTFhZDA5ZjUzNDkyZmRiZjYwYWEwNjczMDdhMDdjNGYwNzA4YzMuLjRiMTgyNWNmZjMyNDQ4
MDA3NDAwZDcwOTk0MDNhZTA2ZjE4MmM1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIENTUERpcmVjdGl2ZTsKK2NsYXNzIENTUERpcmVjdGl2ZUxpc3Q7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgS1VSTDsKIApAQCAtNTMsOCArNTMsOSBA
QCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJp
bmcmLCBIZWFkZXJUeXBlKTsKLSAgICBTdHJpbmcgcG9saWN5KCkgeyByZXR1cm4gbV9oZWFkZXI7
IH0KLSAgICBIZWFkZXJUeXBlIGhlYWRlclR5cGUoKSB7IHJldHVybiBtX3JlcG9ydE9ubHkgPyBS
ZXBvcnRPbmx5IDogRW5mb3JjZVBvbGljeTsgfQorCisgICAgY29uc3QgU3RyaW5nJiBoZWFkZXIo
KSBjb25zdDsKKyAgICBIZWFkZXJUeXBlIGhlYWRlclR5cGUoKSBjb25zdDsKIAogICAgIGJvb2wg
YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVFdmVudEhh
bmRsZXJzKCkgY29uc3Q7CkBAIC03Niw0MiArNzcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiAKLSAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcGFyc2VEaXJlY3Rp
dmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5hbWUsIFN0
cmluZyYgdmFsdWUpOwotICAgIHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJik7Ci0g
ICAgdm9pZCBhZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKLSAgICB2b2lkIGFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHNhbmRib3hQ
b2xpY3kpOwotCi0gICAgUGFzc093blB0cjxDU1BEaXJlY3RpdmU+IGNyZWF0ZUNTUERpcmVjdGl2
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotCi0gICAgQ1NQRGly
ZWN0aXZlKiBvcGVyYXRpdmVEaXJlY3RpdmUoQ1NQRGlyZWN0aXZlKikgY29uc3Q7Ci0gICAgdm9p
ZCByZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTdHJp
bmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdDsKLSAgICB2b2lkIGxvZ1VucmVjb2duaXplZERpcmVj
dGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIGJvb2wgY2hlY2tFdmFsKENTUERp
cmVjdGl2ZSopIGNvbnN0OwotCi0gICAgYm9vbCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlv
bihDU1BEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdDsKLSAg
ICBib29sIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdDsKLSAgICBib29sIGNoZWNrU291cmNlQW5kUmVw
b3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHR5
cGUpIGNvbnN0OwotCi0gICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlcG9ydE9ubHk7IH0KLQotICAgIGJvb2wgbV9oYXZlUG9saWN5OwogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotICAgIGJvb2wg
bV9yZXBvcnRPbmx5OwotICAgIFN0cmluZyBtX2hlYWRlcjsKLSAgICBPd25QdHI8Q1NQRGlyZWN0
aXZlPiBtX2RlZmF1bHRTcmM7Ci0gICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9zY3JpcHRTcmM7
Ci0gICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9vYmplY3RTcmM7Ci0gICAgT3duUHRyPENTUERp
cmVjdGl2ZT4gbV9mcmFtZVNyYzsKLSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX2ltZ1NyYzsK
LSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX3N0eWxlU3JjOwotICAgIE93blB0cjxDU1BEaXJl
Y3RpdmU+IG1fZm9udFNyYzsKLSAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX21lZGlhU3JjOwot
ICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fY29ubmVjdFNyYzsKLSAgICBib29sIG1faGF2ZVNh
bmRib3hQb2xpY3k7CiAgICAgYm9vbCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkOwotICAg
IFZlY3RvcjxLVVJMPiBtX3JlcG9ydFVSTHM7CisgICAgT3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+
IG1fcG9saWN5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA0MDk0ZTNiMWZmOGU0NDZk
MzNlNzdhNTFiYzI0NmE2ZjFlYjE0NGU2Li43Njc0YWQyOGE4MDkxMDYzZjJlN2Q1ZTBjNTkwN2Jm
YTg5ODQzZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtMzIyLDcgKzMyMiw3IEBAIHZvaWQgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQobV93b3JrZXItPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKICAgICAgICAgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6Omluc3Rh
bmNlKCkud29ya2VyU2NyaXB0TG9hZGVkKCptX3Byb3h5LCBtX3dvcmtlci0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT5wb2xpY3koKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXIoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5oZWFkZXJUeXBlKCkpOwogICAgIH0KICAgICBtX3dvcmtlci0+dW5zZXRQZW5kaW5nQWN0
aXZpdHkobV93b3JrZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ZThlNWRhMTkyODUzNDBjMWEwNjI5NGM2ZmZjZjUx
MDczZTFlY2IxLi41OWQ0YmEzNTEyMzEyY2JmOTE3ZDU2ZDA0NWU3ZjE1MzBmZDdiZmFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
MjcyLDcgKzI3Miw3IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJv
eHkoKQogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0
IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKICAgICBSZWZQ
dHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6
OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBz
dGFydE1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+cG9saWN5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyKCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+aGVhZGVyVHlwZSgpKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7CiAg
ICAgdGhyZWFkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCBlN2FhZTQyNjNiZGVlMzMxZDAwYTRh
ZDI1MjkyOGQzZjJkMzg1ZmYwLi44OGFjYmUxMTYzMDVhZTE4M2UzNTc2MTM3MTA1ODc2ZDA3NWRi
MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgU2hhcmVkV29ya2VyU2Ny
aXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c2NyaXB0SW1wb3J0ZWQobV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
bV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsK
ICAgICAgICAgLy8gUGFzcyB0aGUgc2NyaXB0IG9mZiB0byB0aGUgd29ya2VyLCB0aGVuIHNlbmQg
YSBjb25uZWN0IGV2ZW50LgogICAgICAgICBtX3dlYldvcmtlci0+c3RhcnRXb3JrZXJDb250ZXh0
KG1fdXJsLCBtX25hbWUsIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJB
Z2VudChtX3VybCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+cG9saWN5KCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlcigpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6V2ViQ29udGVudFNlY3VyaXR5
UG9saWN5VHlwZT4obV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmhlYWRlclR5cGUoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9yZXNwb25zZUFwcENhY2hlSUQpOwogICAgICAgICBzZW5kQ29ubmVj
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJ
bXBsLmNwcAppbmRleCA3ZGI1NDQ1MWEwYzI3ZDA0MDA3NjBhNWUwNWQ3MDViZjY0NDU4NGNkLi5m
YjEwMDA1ZWY4OTlkNzU5NmVmZjUzMzEwNTI2OGUyN2ZhNzRkNjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcApAQCAtODcsNyAr
ODcsNyBAQCBXb3JrZXJDb250ZXh0UHJveHkqIFdlYldvcmtlckNsaWVudEltcGw6OmNyZWF0ZVdv
cmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdvcmtlcgogdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBs
OjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlKQogewogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVh
ZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5wb2xpY3koKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT5oZWFkZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXJUeXBlKCkpOwogICAgIG1fcHJv
eHktPndvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>