<?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>204730</bug_id>
          
          <creation_ts>2019-12-01 10:23:00 -0800</creation_ts>
          <short_desc>Rename CSSCalcPrimitiveValue to CSSCalcPrimitiveValueNode, and CSSCalcOperation to CSSCalcOperationNode</short_desc>
          <delta_ts>2019-12-01 15:52:18 -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>
          <dependson>204729</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594431</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 10:23:00 -0800</bug_when>
    <thetext>Rename CSSCalcPrimitiveValue to CSSCalcPrimitiveValueNode, and CSSCalcOperation to CSSCalcOperationNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594432</commentid>
    <comment_count>1</comment_count>
      <attachid>384576</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 10:23:48 -0800</bug_when>
    <thetext>Created attachment 384576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594454</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 15:51:57 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/252971/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594456</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-01 15:52:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/57546777&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384576</attachid>
            <date>2019-12-01 10:23:48 -0800</date>
            <delta_ts>2019-12-01 10:36:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204730-20191201102347.patch</filename>
            <type>text/plain</type>
            <size>26927</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmNmI1MjgwZGIxMGMx
YzE4MDI0Y2M4YTQzNjcyYmQ1YWRiNDg3MS4uMWFkY2RjMmRjNTQ0OTk2NjBmZWNkMjM1YjZkODJi
NDM5ZGVlMDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE5LTEyLTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBDU1ND
YWxjUHJpbWl0aXZlVmFsdWUgdG8gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZSwgYW5kIENTU0Nh
bGNPcGVyYXRpb24gdG8gQ1NTQ2FsY09wZXJhdGlvbk5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDczMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1cmUgcmVuYW1lLiBUaGVzZSBhcmUgYm90aCBz
dWJjbGFzc2VzIG9mIENTU0NhbGNFeHByZXNzaW9uTm9kZSwgc28gYXJlIGJldHRlciB3aXRoIE5v
ZGUgaW4gdGhlIG5hbWUuCisKKyAgICAgICAgKiBjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGVDYWxj
RXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFs
dWVOb2RlOjpkb3VibGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJp
bWl0aXZlVmFsdWVOb2RlOjpjb21wdXRlTGVuZ3RoUHggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxE
ZXBlbmRlbmNpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1ByaW1pdGl2ZVZh
bHVlTm9kZTo6Y29sbGVjdERpcmVjdFJvb3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmVxdWFscyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpkdW1w
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0ZU1pbk9yTWF4
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVTaW1wbGlm
aWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpwcmltaXRpdmVU
eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVh
dGVDYWxjRXhwcmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0
aW9uTm9kZTo6ZG91YmxlVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09w
ZXJhdGlvbk5vZGU6OmNvbXB1dGVMZW5ndGhQeCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDYWxjT3BlcmF0aW9uTm9kZTo6Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNp
ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNvbGxl
Y3REaXJlY3RSb290Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6YnVpbGRDc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpkdW1wIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OmV2YWx1YXRlT3BlcmF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZU11
bHRpcGxpY2F0aXZlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjRXhwcmVz
c2lvbk5vZGVQYXJzZXI6OnBhcnNlQWRkaXRpdmVWYWx1ZUV4cHJlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZU1pbk1heEV4cHJlc3Np
b24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmxlbmRIYWxmKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUNTUyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZUNhbGNFeHByZXNzaW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU0NhbGNQcmltaXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoUHggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpj
b2xsZWN0RGlyZWN0Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmNvbGxlY3REaXJlY3RSb290
Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmVxdWFscyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmR1bXAgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbjo6Y3JlYXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb246OmNyZWF0ZU1pbk9yTWF4KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb246OmNyZWF0ZVNpbXBsaWZp
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbjo6cHJpbWl0
aXZlVHlwZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0
aW9uOjpjcmVhdGVDYWxjRXhwcmVzc2lvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NDYWxjT3BlcmF0aW9uOjpkb3VibGVWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uOjpjb21wdXRlTGVuZ3RoUHggY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbjo6Y29sbGVjdERpcmVj
dENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ2FsY09wZXJhdGlvbjo6Y29sbGVjdERpcmVjdFJvb3RDb21wdXRhdGlvbmFsRGVw
ZW5kZW5jaWVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVy
YXRpb246OmJ1aWxkQ3NzVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxj
T3BlcmF0aW9uOjpjdXN0b21DU1NUZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0NhbGNPcGVyYXRpb246OmR1bXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ2FsY09wZXJhdGlvbjo6ZXF1YWxzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb246OmV2YWx1YXRlT3BlcmF0b3IpOiBEZWxldGVkLgor
CiAyMDE5LTEyLTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhIENhbGMgbG9nIGNoYW5uZWwsIGFuZCBzdXBwb3J0IHR5cGUgdHJhaXRzIGZv
ciBjYWxjLXJlbGF0ZWQgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9u
VmFsdWUuY3BwCmluZGV4IGJkOTVkODJhMTlmMTk1N2ViNjkxOTk4YmEzM2ZkMjhmYTdiOTJiZmQu
LmIzMDQ4YmY5MjI4NDllNjFiZDUwZjA1ZjNlNDU1MzVjYWYyMTY0YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTQ0LDEyICs0NCwxMiBAQAogc3Rh
dGljIGNvbnN0IGludCBtYXhFeHByZXNzaW9uRGVwdGggPSAxMDA7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLWNsYXNzIENTU0NhbGNQcmltaXRpdmVWYWx1ZTsKLWNsYXNzIENTU0NhbGNPcGVyYXRp
b247CitjbGFzcyBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOworY2xhc3MgQ1NTQ2FsY09wZXJh
dGlvbk5vZGU7CiB9CiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTQ0FMQ0VYUFJFU1NJT05f
Tk9ERShDU1NDYWxjUHJpbWl0aXZlVmFsdWUsIHR5cGUoKSA9PSBXZWJDb3JlOjpDU1NDYWxjRXhw
cmVzc2lvbk5vZGU6OlR5cGU6OkNzc0NhbGNQcmltaXRpdmVWYWx1ZSkKLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQ1NTQ0FMQ0VYUFJFU1NJT05fTk9ERShDU1NDYWxjT3BlcmF0aW9uLCB0eXBlKCkg
PT0gV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlOjpUeXBlOjpDc3NDYWxjT3BlcmF0aW9u
KQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NDQUxDRVhQUkVTU0lPTl9OT0RFKENTU0NhbGNQ
cmltaXRpdmVWYWx1ZU5vZGUsIHR5cGUoKSA9PSBXZWJDb3JlOjpDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU6OlR5cGU6OkNzc0NhbGNQcmltaXRpdmVWYWx1ZSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q1NTQ0FMQ0VYUFJFU1NJT05fTk9ERShDU1NDYWxjT3BlcmF0aW9uTm9kZSwgdHlwZSgpID09IFdl
YkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZTo6VHlwZTo6Q3NzQ2FsY09wZXJhdGlvbikKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNzcsMTkgKzE3NywxOSBAQCBzdGF0aWMgU3RyaW5n
IHByZXR0eVByaW50Tm9kZXMoY29uc3QgVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
PiYgbm9kZXMpCiB9CiAjZW5kaWYKIAotY2xhc3MgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlIGZpbmFs
IDogcHVibGljIENTU0NhbGNFeHByZXNzaW9uTm9kZSB7CitjbGFzcyBDU1NDYWxjUHJpbWl0aXZl
VmFsdWVOb2RlIGZpbmFsIDogcHVibGljIENTU0NhbGNFeHByZXNzaW9uTm9kZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NDYWxjUHJp
bWl0aXZlVmFsdWU+IGNyZWF0ZShSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgdmFsdWUsIGJvb2wg
aXNJbnRlZ2VyKQorICAgIHN0YXRpYyBSZWY8Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZT4gY3Jl
YXRlKFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4mJiB2YWx1ZSwgYm9vbCBpc0ludGVnZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NDYWxjUHJpbWl0aXZlVmFsdWUoV1RG
TW92ZSh2YWx1ZSksIGlzSW50ZWdlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlKFdURk1vdmUodmFsdWUpLCBpc0ludGVnZXIpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNQcmltaXRpdmVWYWx1ZT4gY3JlYXRlKGRv
dWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdHlwZSwgYm9vbCBpc0ludGVnZXIpCisgICAgc3RhdGlj
IFJlZlB0cjxDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlPiBjcmVhdGUoZG91YmxlIHZhbHVlLCBD
U1NVbml0VHlwZSB0eXBlLCBib29sIGlzSW50ZWdlcikKICAgICB7CiAgICAgICAgIGlmICghc3Rk
Ojppc2Zpbml0ZSh2YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NDYWxjUHJpbWl0aXZlVmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgdHlwZSksIGlzSW50ZWdlcikpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgdHlwZSksIGlzSW50ZWdlcikpOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTIy
MSw3ICsyMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJikgY29uc3Qg
ZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlKFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4mJiB2YWx1ZSwgYm9vbCBpc0ludGVnZXIpCisgICAgZXhwbGlj
aXQgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZShSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgdmFs
dWUsIGJvb2wgaXNJbnRlZ2VyKQogICAgICAgICA6IENTU0NhbGNFeHByZXNzaW9uTm9kZShjYWxj
VW5pdENhdGVnb3J5KHZhbHVlLT5wcmltaXRpdmVUeXBlKCkpLCBpc0ludGVnZXIpCiAgICAgICAg
ICwgbV92YWx1ZShXVEZNb3ZlKHZhbHVlKSkKICAgICB7CkBAIC0yMzAsNyArMjMwLDcgQEAgcHJp
dmF0ZToKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdmFsdWU7CiB9OwogCi1zdGQ6OnVu
aXF1ZV9wdHI8Q2FsY0V4cHJlc3Npb25Ob2RlPiBDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZUNhbGNFeHByZXNzaW9uKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNp
b25EYXRhKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2Fs
Y1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRlQ2FsY0V4cHJlc3Npb24oY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lvbkRhdGEpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChj
YXRlZ29yeSgpKSB7CiAgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXI6CkBAIC0y
NTQsNyArMjU0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2Fs
Y1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVDYWxjRXhwcmVzc2lvbigKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotZG91YmxlIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWUoKSBjb25z
dAorZG91YmxlIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmRvdWJsZVZhbHVlKCkgY29uc3QK
IHsKICAgICBpZiAoaGFzRG91YmxlVmFsdWUocHJpbWl0aXZlVHlwZSgpKSkKICAgICAgICAgcmV0
dXJuIG1fdmFsdWUtPmRvdWJsZVZhbHVlKCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgZG91YmxlIENT
U0NhbGNQcmltaXRpdmVWYWx1ZTo6ZG91YmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiAwOwog
fQogCi1kb3VibGUgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoUHgoY29uc3Qg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lvbkRhdGEpIGNvbnN0Citkb3VibGUg
Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y29tcHV0ZUxlbmd0aFB4KGNvbnN0IENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhKSBjb25zdAogewogICAgIHN3aXRjaCAo
Y2F0ZWdvcnkoKSkgewogICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoOgpAQCAt
MjgzLDI1ICsyODMsMjUgQEAgZG91YmxlIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxl
bmd0aFB4KGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGMKICAgICByZXR1cm4gMDsK
IH0KIAotdm9pZCBDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmNvbGxlY3REaXJlY3RDb21wdXRhdGlv
bmFsRGVwZW5kZW5jaWVzKEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIHZhbHVlcykgY29uc3QKK3Zv
aWQgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxE
ZXBlbmRlbmNpZXMoSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgdmFsdWVzKSBjb25zdAogewogICAg
IG1fdmFsdWUtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKHZhbHVlcyk7
CiB9CiAKLXZvaWQgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjb2xsZWN0RGlyZWN0Um9vdENvbXB1
dGF0aW9uYWxEZXBlbmRlbmNpZXMoSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgdmFsdWVzKSBjb25z
dAordm9pZCBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjb2xsZWN0RGlyZWN0Um9vdENvbXB1
dGF0aW9uYWxEZXBlbmRlbmNpZXMoSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiYgdmFsdWVzKSBjb25z
dAogewogICAgIG1fdmFsdWUtPmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERlcGVuZGVu
Y2llcyh2YWx1ZXMpOwogfQogCi1ib29sIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKGNv
bnN0IENTU0NhbGNFeHByZXNzaW9uTm9kZSYgb3RoZXIpIGNvbnN0Citib29sIENTU0NhbGNQcmlt
aXRpdmVWYWx1ZU5vZGU6OmVxdWFscyhjb25zdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGUmIG90aGVy
KSBjb25zdAogewogICAgIGlmICh0eXBlKCkgIT0gb3RoZXIudHlwZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlKG1fdmFsdWUsIHN0YXRpY19j
YXN0PGNvbnN0IENTU0NhbGNQcmltaXRpdmVWYWx1ZSY+KG90aGVyKS5tX3ZhbHVlKTsKKyAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlKG1fdmFsdWUsIHN0YXRpY19jYXN0PGNvbnN0IENTU0NhbGNQ
cmltaXRpdmVWYWx1ZU5vZGUmPihvdGhlcikubV92YWx1ZSk7CiB9CiAKLXZvaWQgQ1NTQ2FsY1By
aW1pdGl2ZVZhbHVlOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAordm9pZCBDU1NDYWxjUHJp
bWl0aXZlVmFsdWVOb2RlOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogewogICAgIHRzIDw8
ICJ2YWx1ZSAiIDw8IG1fdmFsdWUtPmN1c3RvbUNTU1RleHQoKTsKIH0KQEAgLTQwMCwxNSArNDAw
LDE1IEBAIHN0YXRpYyBib29sIGlzU2FtZVBhaXIoQ2FsY3VsYXRpb25DYXRlZ29yeSBhLCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGIsIENhbGN1bGF0aW9uCiAgICAgcmV0dXJuIChhID09IHggJiYgYiA9
PSB5KSB8fCAoYSA9PSB5ICYmIGIgPT0geCk7CiB9CiAKLWNsYXNzIENTU0NhbGNPcGVyYXRpb24g
ZmluYWwgOiBwdWJsaWMgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlIHsKK2NsYXNzIENTU0NhbGNPcGVy
YXRpb25Ob2RlIGZpbmFsIDogcHVibGljIENTU0NhbGNFeHByZXNzaW9uTm9kZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxDU1NDYWxj
T3BlcmF0aW9uPiBjcmVhdGUoQ2FsY09wZXJhdG9yLCBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25O
b2RlPiYmIGxlZnRTaWRlLCBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYmIHJpZ2h0U2lk
ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uPiBjcmVhdGVNaW5Pck1heChD
YWxjT3BlcmF0b3IsIFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMs
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgc3RhdGljIFJl
ZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gY3JlYXRlKENhbGNPcGVyYXRvciwgUmVmUHRyPENT
U0NhbGNFeHByZXNzaW9uTm9kZT4mJiBsZWZ0U2lkZSwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9u
Tm9kZT4mJiByaWdodFNpZGUpOworICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5v
ZGU+IGNyZWF0ZU1pbk9yTWF4KENhbGNPcGVyYXRvciwgVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVz
c2lvbk5vZGU+PiYmIHZhbHVlcywgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0aW5hdGlvbkNhdGVn
b3J5KTsKICAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gY3JlYXRlU2lt
cGxpZmllZChDYWxjT3BlcmF0b3IsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiYgbGVm
dFNpZGUsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiYgcmlnaHRTaWRlKTsKIAogcHJp
dmF0ZToKLSAgICBDU1NDYWxjT3BlcmF0aW9uKENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdvcnks
IENhbGNPcGVyYXRvciBvcCwgUmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mJiBsZWZ0U2lkZSwg
UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mJiByaWdodFNpZGUpCisgICAgQ1NTQ2FsY09wZXJh
dGlvbk5vZGUoQ2FsY3VsYXRpb25DYXRlZ29yeSBjYXRlZ29yeSwgQ2FsY09wZXJhdG9yIG9wLCBS
ZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYmIGxlZnRTaWRlLCBSZWY8Q1NTQ2FsY0V4cHJlc3Np
b25Ob2RlPiYmIHJpZ2h0U2lkZSkKICAgICAgICAgOiBDU1NDYWxjRXhwcmVzc2lvbk5vZGUoY2F0
ZWdvcnksIGlzSW50ZWdlclJlc3VsdChvcCwgbGVmdFNpZGUuZ2V0KCksIHJpZ2h0U2lkZS5nZXQo
KSkpCiAgICAgICAgICwgbV9vcGVyYXRvcihvcCkKICAgICB7CkBAIC00MTcsNyArNDE3LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgbV9jaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShyaWdo
dFNpZGUpKTsKICAgICB9CiAKLSAgICBDU1NDYWxjT3BlcmF0aW9uKENhbGN1bGF0aW9uQ2F0ZWdv
cnkgY2F0ZWdvcnksIENhbGNPcGVyYXRvciBvcCwgVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lv
bk5vZGU+PiYmIGNoaWxkcmVuKQorICAgIENTU0NhbGNPcGVyYXRpb25Ob2RlKENhbGN1bGF0aW9u
Q2F0ZWdvcnkgY2F0ZWdvcnksIENhbGNPcGVyYXRvciBvcCwgVmVjdG9yPFJlZjxDU1NDYWxjRXhw
cmVzc2lvbk5vZGU+PiYmIGNoaWxkcmVuKQogICAgICAgICA6IENTU0NhbGNFeHByZXNzaW9uTm9k
ZShjYXRlZ29yeSwgaXNJbnRlZ2VyUmVzdWx0KG9wLCBjaGlsZHJlbikpCiAgICAgICAgICwgbV9v
cGVyYXRvcihvcCkKICAgICAgICAgLCBtX2NoaWxkcmVuKFdURk1vdmUoY2hpbGRyZW4pKQpAQCAt
NDY3LDcgKzQ2Nyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lv
bk5vZGU+PiBtX2NoaWxkcmVuOwogfTsKIAotUmVmUHRyPENTU0NhbGNPcGVyYXRpb24+IENTU0Nh
bGNPcGVyYXRpb246OmNyZWF0ZShDYWxjT3BlcmF0b3Igb3AsIFJlZlB0cjxDU1NDYWxjRXhwcmVz
c2lvbk5vZGU+JiYgbGVmdFNpZGUsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiYgcmln
aHRTaWRlKQorUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBDU1NDYWxjT3BlcmF0aW9uTm9k
ZTo6Y3JlYXRlKENhbGNPcGVyYXRvciBvcCwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4m
JiBsZWZ0U2lkZSwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4mJiByaWdodFNpZGUpCiB7
CiAgICAgaWYgKCFsZWZ0U2lkZSB8fCAhcmlnaHRTaWRlKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKQEAgLTQ3NywxNCArNDc3LDE0IEBAIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uPiBDU1NDYWxj
T3BlcmF0aW9uOjpjcmVhdGUoQ2FsY09wZXJhdG9yIG9wLCBSZWZQdHI8Q1NTQ2FsCiAKICAgICBh
dXRvIG5ld0NhdGVnb3J5ID0gZGV0ZXJtaW5lQ2F0ZWdvcnkoKmxlZnRTaWRlLCAqcmlnaHRTaWRl
LCBvcCk7CiAgICAgaWYgKG5ld0NhdGVnb3J5ID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVy
KSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwgIkZhaWxlZCB0byBj
cmVhdGUgQ1NTQ2FsY09wZXJhdGlvbiAiIDw8IG9wIDw8ICIgbm9kZSBiZWNhdXNlIHVuYWJsZSB0
byBkZXRlcm1pbmUgY2F0ZWdvcnkgZnJvbSAiIDw8IHByZXR0eVByaW50Tm9kZSgqbGVmdFNpZGUp
IDw8ICIgYW5kICIgPDwgKnJpZ2h0U2lkZSk7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShDYWxj
LCBzdHJlYW0gPDwgIkZhaWxlZCB0byBjcmVhdGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGUgIiA8PCBv
cCA8PCAiIG5vZGUgYmVjYXVzZSB1bmFibGUgdG8gZGV0ZXJtaW5lIGNhdGVnb3J5IGZyb20gIiA8
PCBwcmV0dHlQcmludE5vZGUoKmxlZnRTaWRlKSA8PCAiIGFuZCAiIDw8ICpyaWdodFNpZGUpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IENTU0NhbGNPcGVyYXRpb24obmV3Q2F0ZWdvcnksIG9wLCBsZWZ0U2lkZS5yZWxlYXNlTm9uTnVs
bCgpLCByaWdodFNpZGUucmVsZWFzZU5vbk51bGwoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ1NTQ2FsY09wZXJhdGlvbk5vZGUobmV3Q2F0ZWdvcnksIG9wLCBsZWZ0U2lkZS5yZWxlYXNl
Tm9uTnVsbCgpLCByaWdodFNpZGUucmVsZWFzZU5vbk51bGwoKSkpOwogfQogCi1SZWZQdHI8Q1NT
Q2FsY09wZXJhdGlvbj4gQ1NTQ2FsY09wZXJhdGlvbjo6Y3JlYXRlTWluT3JNYXgoQ2FsY09wZXJh
dG9yIG9wLCBWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFsdWVzLCBDYWxj
dWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnkpCitSZWZQdHI8Q1NTQ2FsY09wZXJh
dGlvbk5vZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVNaW5Pck1heChDYWxjT3BlcmF0
b3Igb3AsIFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMsIENhbGN1
bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSkKIHsKICAgICBBU1NFUlQob3AgPT0g
Q2FsY09wZXJhdG9yOjpNaW4gfHwgb3AgPT0gQ2FsY09wZXJhdG9yOjpNYXgpOwogCkBAIC00OTUs
NyArNDk1LDcgQEAgUmVmUHRyPENTU0NhbGNPcGVyYXRpb24+IENTU0NhbGNPcGVyYXRpb246OmNy
ZWF0ZU1pbk9yTWF4KENhbGNPcGVyYXRvciBvcCwgVmVjdG8KICAgICAgICAgQVNTRVJUKHZhbHVl
Q2F0ZWdvcnkgPCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcik7CiAgICAgICAgIGlmICghY2F0
ZWdvcnkpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZUNhdGVnb3J5ID09IENhbGN1bGF0aW9uQ2F0
ZWdvcnk6Ok90aGVyKSB7Ci0gICAgICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMsIHN0
cmVhbSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBDU1NDYWxjT3BlcmF0aW9uICIgPDwgb3AgPDwgIiBu
b2RlIGJlY2F1c2UgdW5hYmxlIHRvIGRldGVybWluZSBjYXRlZ29yeSBmcm9tICIgPDwgcHJldHR5
UHJpbnROb2Rlcyh2YWx1ZXMpKTsKKyAgICAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ2Fs
Yywgc3RyZWFtIDw8ICJGYWlsZWQgdG8gY3JlYXRlIENTU0NhbGNPcGVyYXRpb25Ob2RlICIgPDwg
b3AgPDwgIiBub2RlIGJlY2F1c2UgdW5hYmxlIHRvIGRldGVybWluZSBjYXRlZ29yeSBmcm9tICIg
PDwgcHJldHR5UHJpbnROb2Rlcyh2YWx1ZXMpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhdGVnb3J5ID0gdmFsdWVDYXRlZ29y
eTsKQEAgLTUxNCwxMCArNTE0LDEwIEBAIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uPiBDU1NDYWxj
T3BlcmF0aW9uOjpjcmVhdGVNaW5Pck1heChDYWxjT3BlcmF0b3Igb3AsIFZlY3RvCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0NhbGNPcGVyYXRpb24oY2F0
ZWdvcnkudmFsdWUoKSwgb3AsIFdURk1vdmUodmFsdWVzKSkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ1NTQ2FsY09wZXJhdGlvbk5vZGUoY2F0ZWdvcnkudmFsdWUoKSwgb3AsIFdURk1vdmUo
dmFsdWVzKSkpOwogfQogCi1SZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBDU1NDYWxjT3Bl
cmF0aW9uOjpjcmVhdGVTaW1wbGlmaWVkKENhbGNPcGVyYXRvciBvcCwgUmVmUHRyPENTU0NhbGNF
eHByZXNzaW9uTm9kZT4mJiBsZWZ0U2lkZSwgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4m
JiByaWdodFNpZGUpCitSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBDU1NDYWxjT3BlcmF0
aW9uTm9kZTo6Y3JlYXRlU2ltcGxpZmllZChDYWxjT3BlcmF0b3Igb3AsIFJlZlB0cjxDU1NDYWxj
RXhwcmVzc2lvbk5vZGU+JiYgbGVmdFNpZGUsIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
JiYgcmlnaHRTaWRlKQogewogICAgIGlmICghbGVmdFNpZGUgfHwgIXJpZ2h0U2lkZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC01MzIsNyArNTMyLDcgQEAgUmVmUHRyPENTU0NhbGNFeHBy
ZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbjo6Y3JlYXRlU2ltcGxpZmllZChDYWxjT3BlcmF0
b3Igb3AKICAgICAvLyBTaW1wbGlmeSBudW1iZXJzLgogICAgIGlmIChsZWZ0Q2F0ZWdvcnkgPT0g
Q2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyICYmIHJpZ2h0Q2F0ZWdvcnkgPT0gQ2FsY3VsYXRp
b25DYXRlZ29yeTo6TnVtYmVyKSB7CiAgICAgICAgIENTU1VuaXRUeXBlIGV2YWx1YXRpb25UeXBl
ID0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7Ci0gICAgICAgIHJldHVybiBDU1NDYWxjUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShldmFsdWF0ZU9wZXJhdG9yKG9wLCB7IGxlZnRTaWRlLT5kb3VibGVW
YWx1ZSgpLCByaWdodFNpZGUtPmRvdWJsZVZhbHVlKCkgfSksIGV2YWx1YXRpb25UeXBlLCBpc0lu
dGVnZXIpOworICAgICAgICByZXR1cm4gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRl
KGV2YWx1YXRlT3BlcmF0b3Iob3AsIHsgbGVmdFNpZGUtPmRvdWJsZVZhbHVlKCksIHJpZ2h0U2lk
ZS0+ZG91YmxlVmFsdWUoKSB9KSwgZXZhbHVhdGlvblR5cGUsIGlzSW50ZWdlcik7CiAgICAgfQog
CiAgICAgLy8gU2ltcGxpZnkgYWRkaXRpb24gYW5kIHN1YnRyYWN0aW9uIGJldHdlZW4gc2FtZSB0
eXBlcy4KQEAgLTU0MiwxNCArNTQyLDE0IEBAIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZVNpbXBsaWZpZWQoQ2FsY09wZXJhdG9yIG9wCiAgICAg
ICAgICAgICBpZiAoaGFzRG91YmxlVmFsdWUobGVmdFR5cGUpKSB7CiAgICAgICAgICAgICAgICAg
Q1NTVW5pdFR5cGUgcmlnaHRUeXBlID0gcmlnaHRTaWRlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKGxlZnRUeXBlID09IHJpZ2h0VHlwZSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGV2YWx1YXRlT3BlcmF0b3Io
b3AsIHsgbGVmdFNpZGUtPmRvdWJsZVZhbHVlKCksIHJpZ2h0U2lkZS0+ZG91YmxlVmFsdWUoKSB9
KSwgbGVmdFR5cGUsIGlzSW50ZWdlcik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1ND
YWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUoZXZhbHVhdGVPcGVyYXRvcihvcCwgeyBsZWZ0
U2lkZS0+ZG91YmxlVmFsdWUoKSwgcmlnaHRTaWRlLT5kb3VibGVWYWx1ZSgpIH0pLCBsZWZ0VHlw
ZSwgaXNJbnRlZ2VyKTsKICAgICAgICAgICAgICAgICBDU1NVbml0Q2F0ZWdvcnkgbGVmdFVuaXRD
YXRlZ29yeSA9IHVuaXRDYXRlZ29yeShsZWZ0VHlwZSk7CiAgICAgICAgICAgICAgICAgaWYgKGxl
ZnRVbml0Q2F0ZWdvcnkgIT0gQ1NTVW5pdENhdGVnb3J5OjpPdGhlciAmJiBsZWZ0VW5pdENhdGVn
b3J5ID09IHVuaXRDYXRlZ29yeShyaWdodFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIENT
U1VuaXRUeXBlIGNhbm9uaWNhbFR5cGUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5p
dFR5cGVGb3JDYXRlZ29yeShsZWZ0VW5pdENhdGVnb3J5KTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKGNhbm9uaWNhbFR5cGUgIT0gQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBkb3VibGUgbGVmdFZhbHVlID0gbGVmdFNpZGUtPmRvdWJsZVZhbHVl
KCkgKiBDU1NQcmltaXRpdmVWYWx1ZTo6Y29udmVyc2lvblRvQ2Fub25pY2FsVW5pdHNTY2FsZUZh
Y3RvcihsZWZ0VHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmlnaHRWYWx1
ZSA9IHJpZ2h0U2lkZS0+ZG91YmxlVmFsdWUoKSAqIENTU1ByaW1pdGl2ZVZhbHVlOjpjb252ZXJz
aW9uVG9DYW5vbmljYWxVbml0c1NjYWxlRmFjdG9yKHJpZ2h0VHlwZSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoZXZhbHVhdGVP
cGVyYXRvcihvcCwgeyBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUgfSksIGNhbm9uaWNhbFR5cGUsIGlz
SW50ZWdlcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTQ2FsY1ByaW1pdGl2
ZVZhbHVlTm9kZTo6Y3JlYXRlKGV2YWx1YXRlT3BlcmF0b3Iob3AsIHsgbGVmdFZhbHVlLCByaWdo
dFZhbHVlIH0pLCBjYW5vbmljYWxUeXBlLCBpc0ludGVnZXIpOwogICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNTcyLDEzICs1NzIsMTMg
QEAgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbjo6Y3JlYXRl
U2ltcGxpZmllZChDYWxjT3BlcmF0b3Igb3AKIAogICAgICAgICBhdXRvIG90aGVyVHlwZSA9IG90
aGVyU2lkZS5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgIGlmIChoYXNEb3VibGVWYWx1ZShvdGhl
clR5cGUpKQotICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KGV2YWx1YXRlT3BlcmF0b3Iob3AsIHsgb3RoZXJTaWRlLmRvdWJsZVZhbHVlKCksIG51bWJlciB9
KSwgb3RoZXJUeXBlLCBpc0ludGVnZXIpOworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNQcmlt
aXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShldmFsdWF0ZU9wZXJhdG9yKG9wLCB7IG90aGVyU2lkZS5k
b3VibGVWYWx1ZSgpLCBudW1iZXIgfSksIG90aGVyVHlwZSwgaXNJbnRlZ2VyKTsKICAgICB9CiAK
ICAgICByZXR1cm4gY3JlYXRlKG9wLCBsZWZ0U2lkZS5yZWxlYXNlTm9uTnVsbCgpLCByaWdodFNp
ZGUucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKLUNTU1VuaXRUeXBlIENTU0NhbGNPcGVyYXRpb246
OnByaW1pdGl2ZVR5cGUoKSBjb25zdAorQ1NTVW5pdFR5cGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6
OnByaW1pdGl2ZVR5cGUoKSBjb25zdAogewogICAgIHN3aXRjaCAoY2F0ZWdvcnkoKSkgewogICAg
IGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyOgpAQCAtNjE5LDcgKzYxOSw3IEBAIENT
U1VuaXRUeXBlIENTU0NhbGNPcGVyYXRpb246OnByaW1pdGl2ZVR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBDU1NVbml0VHlwZTo6Q1NTX1VOS05PV047CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDYWxj
RXhwcmVzc2lvbk5vZGU+IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZUNhbGNFeHByZXNzaW9uKGNv
bnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhKSBjb25zdAorc3Rk
Ojp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNy
ZWF0ZUNhbGNFeHByZXNzaW9uKGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZl
cnNpb25EYXRhKSBjb25zdAogewogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q2FsY0V4cHJl
c3Npb25Ob2RlPj4gbm9kZXM7CiAgICAgbm9kZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2No
aWxkcmVuLnNpemUoKSk7CkBAIC02MzMsNyArNjMzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPENhbGNF
eHByZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbjo6Y3JlYXRlQ2FsY0V4cHJlc3Npb24oY29u
c3QKICAgICByZXR1cm4gbWFrZVVuaXF1ZTxDYWxjRXhwcmVzc2lvbk9wZXJhdGlvbj4oV1RGTW92
ZShub2RlcyksIG1fb3BlcmF0b3IpOwogfQogCi1kb3VibGUgQ1NTQ2FsY09wZXJhdGlvbjo6ZG91
YmxlVmFsdWUoKSBjb25zdAorZG91YmxlIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpkb3VibGVWYWx1
ZSgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPGRvdWJsZT4gZG91YmxlVmFsdWVzOwogICAgIGZvciAo
YXV0byYgY2hpbGQgOiBtX2NoaWxkcmVuKQpAQCAtNjQxLDcgKzY0MSw3IEBAIGRvdWJsZSBDU1ND
YWxjT3BlcmF0aW9uOjpkb3VibGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGV2YWx1YXRlKGRv
dWJsZVZhbHVlcyk7CiB9CiAKLWRvdWJsZSBDU1NDYWxjT3BlcmF0aW9uOjpjb21wdXRlTGVuZ3Ro
UHgoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29udmVyc2lvbkRhdGEpIGNvbnN0
Citkb3VibGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNvbXB1dGVMZW5ndGhQeChjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSkgY29uc3QKIHsKICAgICBWZWN0
b3I8ZG91YmxlPiBkb3VibGVWYWx1ZXM7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IG1fY2hpbGRy
ZW4pCkBAIC02NDksMTkgKzY0OSwxOSBAQCBkb3VibGUgQ1NTQ2FsY09wZXJhdGlvbjo6Y29tcHV0
ZUxlbmd0aFB4KGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcgogICAgIHJl
dHVybiBldmFsdWF0ZShkb3VibGVWYWx1ZXMpOwogfQogCi12b2lkIENTU0NhbGNPcGVyYXRpb246
OmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKEhhc2hTZXQ8Q1NTUHJvcGVy
dHlJRD4mIHZhbHVlcykgY29uc3QKK3ZvaWQgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNvbGxlY3RE
aXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIHZh
bHVlcykgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogbV9jaGlsZHJlbikKICAgICAg
ICAgY2hpbGQtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKHZhbHVlcyk7
CiB9CiAKLXZvaWQgQ1NTQ2FsY09wZXJhdGlvbjo6Y29sbGVjdERpcmVjdFJvb3RDb21wdXRhdGlv
bmFsRGVwZW5kZW5jaWVzKEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4mIHZhbHVlcykgY29uc3QKK3Zv
aWQgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERl
cGVuZGVuY2llcyhIYXNoU2V0PENTU1Byb3BlcnR5SUQ+JiB2YWx1ZXMpIGNvbnN0CiB7CiAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4pCiAgICAgICAgIGNoaWxkLT5jb2xsZWN0RGly
ZWN0Um9vdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXModmFsdWVzKTsKIH0KIAotU3RyaW5nIENT
U0NhbGNPcGVyYXRpb246OmJ1aWxkQ3NzVGV4dChWZWN0b3I8U3RyaW5nPiBjaGlsZEV4cHJlc3Np
b25zLCBDYWxjT3BlcmF0b3Igb3ApCitTdHJpbmcgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmJ1aWxk
Q3NzVGV4dChWZWN0b3I8U3RyaW5nPiBjaGlsZEV4cHJlc3Npb25zLCBDYWxjT3BlcmF0b3Igb3Ap
CiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOwpA
QCAtNjk1LDcgKzY5NSw3IEBAIFN0cmluZyBDU1NDYWxjT3BlcmF0aW9uOjpidWlsZENzc1RleHQo
VmVjdG9yPFN0cmluZz4gY2hpbGRFeHByZXNzaW9ucywgQ2FsY09wZXJhCiAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOwogfQogCi1TdHJpbmcgQ1NTQ2FsY09wZXJhdGlvbjo6Y3VzdG9tQ1NT
VGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAogewogICAgIFZlY3RvcjxTdHJpbmc+IGNzc1RleHRzOwogICAgIGZvciAoYXV0byYg
Y2hpbGQgOiBtX2NoaWxkcmVuKQpAQCAtNzAzLDcgKzcwMyw3IEBAIFN0cmluZyBDU1NDYWxjT3Bl
cmF0aW9uOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gYnVpbGRDc3NUZXh0KGNz
c1RleHRzLCBtX29wZXJhdG9yKTsKIH0KIAotdm9pZCBDU1NDYWxjT3BlcmF0aW9uOjpkdW1wKFRl
eHRTdHJlYW0mIHRzKSBjb25zdAordm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZHVtcChUZXh0
U3RyZWFtJiB0cykgY29uc3QKIHsKICAgICB0cyA8PCAiY2FsYyBvcGVyYXRpb24gIiA8PCBtX29w
ZXJhdG9yIDw8ICIgY2F0ZWdvcnkgIiA8PCBjYXRlZ29yeSgpOwogCkBAIC03MTMsMTIgKzcxMywx
MiBAQCB2b2lkIENTU0NhbGNPcGVyYXRpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0CiAg
ICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibm9kZSIsIGNoaWxkKTsKIH0KIAotYm9vbCBDU1NDYWxj
T3BlcmF0aW9uOjplcXVhbHMoY29uc3QgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlJiBleHApIGNvbnN0
Citib29sIENTU0NhbGNPcGVyYXRpb25Ob2RlOjplcXVhbHMoY29uc3QgQ1NTQ2FsY0V4cHJlc3Np
b25Ob2RlJiBleHApIGNvbnN0CiB7CiAgICAgaWYgKHR5cGUoKSAhPSBleHAudHlwZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb25zdCBDU1NDYWxjT3BlcmF0aW9uJiBvdGhlciA9
IHN0YXRpY19jYXN0PGNvbnN0IENTU0NhbGNPcGVyYXRpb24mPihleHApOworICAgIGNvbnN0IENT
U0NhbGNPcGVyYXRpb25Ob2RlJiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0NhbGNPcGVy
YXRpb25Ob2RlJj4oZXhwKTsKIAogICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSAhPSBvdGhlci5t
X2NoaWxkcmVuLnNpemUoKSB8fCBtX29wZXJhdG9yICE9IG90aGVyLm1fb3BlcmF0b3IpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTczMCw3ICs3MzAsNyBAQCBib29sIENTU0NhbGNPcGVyYXRp
b246OmVxdWFscyhjb25zdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGUmIGV4cCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotZG91YmxlIENTU0NhbGNPcGVyYXRpb246OmV2YWx1YXRlT3BlcmF0
b3IoQ2FsY09wZXJhdG9yIG9wLCBjb25zdCBWZWN0b3I8ZG91YmxlPiYgY2hpbGRyZW4pCitkb3Vi
bGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmV2YWx1YXRlT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9w
LCBjb25zdCBWZWN0b3I8ZG91YmxlPiYgY2hpbGRyZW4pCiB7CiAgICAgc3dpdGNoIChvcCkgewog
ICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpBZGQ6CkBAIC04MjgsNyArODI4LDcgQEAgYm9vbCBDU1ND
YWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
dG9rZW5zLCBWYWx1ZSoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIGJvb2wgaXNJ
bnRlZ2VyID0gdG9rZW4ubnVtZXJpY1ZhbHVlVHlwZSgpID09IEludGVnZXJWYWx1ZVR5cGUgfHwg
KHRva2VuLm51bWVyaWNWYWx1ZVR5cGUoKSA9PSBOdW1iZXJWYWx1ZVR5cGUgJiYgdG9rZW4ubnVt
ZXJpY1ZhbHVlKCkgPT0gdHJ1bmModG9rZW4ubnVtZXJpY1ZhbHVlKCkpKTsKLSAgICByZXN1bHQt
PnZhbHVlID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgdHlwZSksIGlzSW50ZWdlcik7CisgICAgcmVz
dWx0LT52YWx1ZSA9IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCB0eXBlKSwgaXNJbnRlZ2VyKTsK
ICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg5MSw3ICs4OTEsNyBAQCBib29sIENTU0Nh
bGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZU11bHRpcGxpY2F0aXZlRXhwcmVzc2lv
bihDU1NQYXJzZXJUbwogICAgICAgICBpZiAoIXBhcnNlVmFsdWVUZXJtKHRva2VucywgZGVwdGgs
ICZyaHMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAgcmVz
dWx0LT52YWx1ZSA9IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZVNpbXBsaWZpZWQoc3RhdGljX2Nh
c3Q8Q2FsY09wZXJhdG9yPihvcGVyYXRvckNoYXJhY3RlciksIFdURk1vdmUocmVzdWx0LT52YWx1
ZSksIFdURk1vdmUocmhzLnZhbHVlKSk7CisgICAgICAgIHJlc3VsdC0+dmFsdWUgPSBDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y3JlYXRlU2ltcGxpZmllZChzdGF0aWNfY2FzdDxDYWxjT3BlcmF0b3I+
KG9wZXJhdG9yQ2hhcmFjdGVyKSwgV1RGTW92ZShyZXN1bHQtPnZhbHVlKSwgV1RGTW92ZShyaHMu
dmFsdWUpKTsKIAogICAgICAgICBpZiAoIXJlc3VsdC0+dmFsdWUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC05MjMsNyArOTIzLDcgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQ
YXJzZXI6OnBhcnNlQWRkaXRpdmVWYWx1ZUV4cHJlc3Npb24oQ1NTUGFyc2VyVG9rZW5SYW4KICAg
ICAgICAgaWYgKCFwYXJzZVZhbHVlTXVsdGlwbGljYXRpdmVFeHByZXNzaW9uKHRva2VucywgZGVw
dGgsICZyaHMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICAgICAg
cmVzdWx0LT52YWx1ZSA9IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZVNpbXBsaWZpZWQoc3RhdGlj
X2Nhc3Q8Q2FsY09wZXJhdG9yPihvcGVyYXRvckNoYXJhY3RlciksIFdURk1vdmUocmVzdWx0LT52
YWx1ZSksIFdURk1vdmUocmhzLnZhbHVlKSk7CisgICAgICAgIHJlc3VsdC0+dmFsdWUgPSBDU1ND
YWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlU2ltcGxpZmllZChzdGF0aWNfY2FzdDxDYWxjT3BlcmF0
b3I+KG9wZXJhdG9yQ2hhcmFjdGVyKSwgV1RGTW92ZShyZXN1bHQtPnZhbHVlKSwgV1RGTW92ZShy
aHMudmFsdWUpKTsKICAgICAgICAgaWYgKCFyZXN1bHQtPnZhbHVlKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTk1Nyw3ICs5NTcsNyBAQCBib29sIENTU0NhbGNFeHByZXNz
aW9uTm9kZVBhcnNlcjo6cGFyc2VNaW5NYXhFeHByZXNzaW9uKENTU1BhcnNlclRva2VuUmFuZ2Um
IHRvawogICAgICAgICBub2Rlcy5hcHBlbmQodmFsdWUudmFsdWUucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgfQogCi0gICAgcmVzdWx0LT52YWx1ZSA9IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZU1p
bk9yTWF4KG9wLCBXVEZNb3ZlKG5vZGVzKSwgbV9kZXN0aW5hdGlvbkNhdGVnb3J5KTsKKyAgICBy
ZXN1bHQtPnZhbHVlID0gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0ZU1pbk9yTWF4KG9wLCBX
VEZNb3ZlKG5vZGVzKSwgbV9kZXN0aW5hdGlvbkNhdGVnb3J5KTsKICAgICByZXR1cm4gcmVzdWx0
LT52YWx1ZTsKIH0KIApAQCAtOTY3LDEwICs5NjcsMTAgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXI6OnBhcnNlVmFsdWVFeHByZXNzaW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHRv
a2UKIH0KIAogCi1zdGF0aWMgaW5saW5lIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uPiBjcmVhdGVC
bGVuZEhhbGYoY29uc3QgTGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
ZmxvYXQgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9k
ZT4gY3JlYXRlQmxlbmRIYWxmKGNvbnN0IExlbmd0aCYgbGVuZ3RoLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGZsb2F0IHByb2dyZXNzKQogewotICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9u
OjpjcmVhdGUoQ2FsY09wZXJhdG9yOjpNdWx0aXBseSwgY3JlYXRlQ1NTKGxlbmd0aCwgc3R5bGUp
LAotICAgICAgICBDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHByb2dyZXNzLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiksICFwcm9ncmVzcyB8
fCBwcm9ncmVzcyA9PSAxKSk7CisgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVh
dGUoQ2FsY09wZXJhdG9yOjpNdWx0aXBseSwgY3JlYXRlQ1NTKGxlbmd0aCwgc3R5bGUpLAorICAg
ICAgICBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUoQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZShwcm9ncmVzcywgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpLCAhcHJvZ3Jlc3MgfHwg
cHJvZ3Jlc3MgPT0gMSkpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9k
ZT4gY3JlYXRlQ1NTKGNvbnN0IENhbGNFeHByZXNzaW9uTm9kZSYgbm9kZSwgY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKQpAQCAtOTc4LDcgKzk3OCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4
cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlLCBj
CiAgICAgc3dpdGNoIChub2RlLnR5cGUoKSkgewogICAgIGNhc2UgQ2FsY0V4cHJlc3Npb25Ob2Rl
VHlwZTo6TnVtYmVyOiB7CiAgICAgICAgIGZsb2F0IHZhbHVlID0gZG93bmNhc3Q8Q2FsY0V4cHJl
c3Npb25OdW1iZXI+KG5vZGUpLnZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBDU1NDYWxjUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0
VHlwZTo6Q1NTX05VTUJFUiksIHZhbHVlID09IHN0ZDo6dHJ1bmModmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiksIHZhbHVlID09IHN0ZDo6
dHJ1bmModmFsdWUpKTsKICAgICB9CiAgICAgY2FzZSBDYWxjRXhwcmVzc2lvbk5vZGVUeXBlOjpM
ZW5ndGg6CiAgICAgICAgIHJldHVybiBjcmVhdGVDU1MoZG93bmNhc3Q8Q2FsY0V4cHJlc3Npb25M
ZW5ndGg+KG5vZGUpLmxlbmd0aCgpLCBzdHlsZSk7CkBAIC05OTUsMTEgKzk5NSwxMSBAQCBzdGF0
aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gY3JlYXRlQ1NTKGNvbnN0IENhbGNFeHBy
ZXNzaW9uTm9kZSYgbm9kZSwgYwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgICAgICAgICB2YWx1ZXMudW5jaGVja2VkQXBwZW5kKCpjc3NOb2RlKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9uOjpjcmVhdGVNaW5P
ck1heChvcGVyYXRpb25Ob2RlLmdldE9wZXJhdG9yKCksIFdURk1vdmUodmFsdWVzKSwgQ2FsY3Vs
YXRpb25DYXRlZ29yeTo6T3RoZXIpOworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRp
b25Ob2RlOjpjcmVhdGVNaW5Pck1heChvcGVyYXRpb25Ob2RlLmdldE9wZXJhdG9yKCksIFdURk1v
dmUodmFsdWVzKSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKG9wZXJhdGlvbkNoaWxkcmVuLnNpemUoKSA9PSAyKQotICAgICAgICAgICAgcmV0
dXJuIENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZShvcGVyYXRpb25Ob2RlLmdldE9wZXJhdG9yKCks
IGNyZWF0ZUNTUygqb3BlcmF0aW9uQ2hpbGRyZW5bMF0sIHN0eWxlKSwgY3JlYXRlQ1NTKCpvcGVy
YXRpb25DaGlsZHJlblsxXSwgc3R5bGUpKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NDYWxjT3Bl
cmF0aW9uTm9kZTo6Y3JlYXRlKG9wZXJhdGlvbk5vZGUuZ2V0T3BlcmF0b3IoKSwgY3JlYXRlQ1NT
KCpvcGVyYXRpb25DaGlsZHJlblswXSwgc3R5bGUpLCBjcmVhdGVDU1MoKm9wZXJhdGlvbkNoaWxk
cmVuWzFdLCBzdHlsZSkpOwogCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTEw
MDcsNyArMTAwNyw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVh
dGVDU1MoY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlLCBjCiAgICAgICAgIC8vIEZJWE1F
OiAoaHR0cDovL3dlYmtpdC5vcmcvYi8xMjIwMzYpIENyZWF0ZSBhIENTU0NhbGNFeHByZXNzaW9u
Tm9kZSBlcXVpdmFsZW50IG9mIENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGguCiAgICAgICAgIGF1
dG8mIGJsZW5kID0gZG93bmNhc3Q8Q2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aD4obm9kZSk7CiAg
ICAgICAgIGZsb2F0IHByb2dyZXNzID0gYmxlbmQucHJvZ3Jlc3MoKTsKLSAgICAgICAgcmV0dXJu
IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZShDYWxjT3BlcmF0b3I6OkFkZCwgY3JlYXRlQmxlbmRI
YWxmKGJsZW5kLmZyb20oKSwgc3R5bGUsIDEgLSBwcm9ncmVzcyksIGNyZWF0ZUJsZW5kSGFsZihi
bGVuZC50bygpLCBzdHlsZSwgcHJvZ3Jlc3MpKTsKKyAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVy
YXRpb25Ob2RlOjpjcmVhdGUoQ2FsY09wZXJhdG9yOjpBZGQsIGNyZWF0ZUJsZW5kSGFsZihibGVu
ZC5mcm9tKCksIHN0eWxlLCAxIC0gcHJvZ3Jlc3MpLCBjcmVhdGVCbGVuZEhhbGYoYmxlbmQudG8o
KSwgc3R5bGUsIHByb2dyZXNzKSk7CiAgICAgfQogICAgIGNhc2UgQ2FsY0V4cHJlc3Npb25Ob2Rl
VHlwZTo6VW5kZWZpbmVkOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwMjAs
NyArMTAyMCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVD
U1MoY29uc3QgTGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlCiAgICAgc3dpdGNoIChsZW5ndGgu
dHlwZSgpKSB7CiAgICAgY2FzZSBQZXJjZW50OgogICAgIGNhc2UgRml4ZWQ6Ci0gICAgICAgIHJl
dHVybiBDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKGxlbmd0aCwgc3R5bGUpLCBsZW5ndGgudmFsdWUoKSA9PSB0cnVuYyhsZW5ndGgudmFsdWUo
KSkpOworICAgICAgICByZXR1cm4gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRlKENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobGVuZ3RoLCBzdHlsZSksIGxlbmd0aC52YWx1ZSgpID09
IHRydW5jKGxlbmd0aC52YWx1ZSgpKSk7CiAgICAgY2FzZSBDYWxjdWxhdGVkOgogICAgICAgICBy
ZXR1cm4gY3JlYXRlQ1NTKGxlbmd0aC5jYWxjdWxhdGlvblZhbHVlKCkuZXhwcmVzc2lvbigpLCBz
dHlsZSk7CiAgICAgY2FzZSBBdXRvOgo=
</data>
<flag name="review"
          id="400371"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>