<?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>125549</bug_id>
          
          <creation_ts>2013-12-10 16:08:14 -0800</creation_ts>
          <short_desc>Move number and geometry classes into the API namespace</short_desc>
          <delta_ts>2013-12-10 16:16:24 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>958550</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-10 16:08:14 -0800</bug_when>
    <thetext>Move number and geometry classes into the API namespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958552</commentid>
    <comment_count>1</comment_count>
      <attachid>218917</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-10 16:10:00 -0800</bug_when>
    <thetext>Created attachment 218917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958553</commentid>
    <comment_count>2</comment_count>
      <attachid>218917</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-10 16:11:21 -0800</bug_when>
    <thetext>Comment on attachment 218917
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958556</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-10 16:16:24 -0800</bug_when>
    <thetext>Committed r160395: &lt;http://trac.webkit.org/changeset/160395&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218917</attachid>
            <date>2013-12-10 16:10:00 -0800</date>
            <delta_ts>2013-12-10 16:11:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125549-20131210160959.patch</filename>
            <type>text/plain</type>
            <size>41681</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2RkNDI1ZTc1NDU3NGEw
M2FlNjJmYTU0NTU3NDMwZDgzNDIyMWY5Ni4uOGE2NjdhMDRlYWVhNDEyMThmODE3NmU0NWE4NWM3
NTI5MzZiZDEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg1IEBACiAyMDEzLTEyLTEwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBudW1iZXIg
YW5kIGdlb21ldHJ5IGNsYXNzZXMgaW50byB0aGUgQVBJIG5hbWVzcGFjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dL
UmVtb3RlT2JqZWN0Q29kZXIubW06CisgICAgICAgICgtW1dLUmVtb3RlT2JqZWN0RW5jb2RlciBl
bmNvZGVCb29sOmZvcktleTpdKToKKyAgICAgICAgKC1bV0tSZW1vdGVPYmplY3RFbmNvZGVyIGVu
Y29kZUludDY0OmZvcktleTpdKToKKyAgICAgICAgKC1bV0tSZW1vdGVPYmplY3RFbmNvZGVyIGVu
Y29kZURvdWJsZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dLUmVtb3RlT2JqZWN0RGVjb2RlciBk
ZWNvZGVCb29sRm9yS2V5Ol0pOgorICAgICAgICAoLVtXS1JlbW90ZU9iamVjdERlY29kZXIgZGVj
b2RlSW50NjRGb3JLZXk6XSk6CisgICAgICAgICgtW1dLUmVtb3RlT2JqZWN0RGVjb2RlciBkZWNv
ZGVEb3VibGVGb3JLZXk6XSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuY3Bw
OgorICAgICAgICAoV0tTaXplR2V0VHlwZUlEKToKKyAgICAgICAgKFdLUG9pbnRHZXRUeXBlSUQp
OgorICAgICAgICAoV0tSZWN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLUG9pbnRDcmVhdGUpOgor
ICAgICAgICAoV0tTaXplQ3JlYXRlKToKKyAgICAgICAgKFdLUmVjdENyZWF0ZSk6CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmNwcDoKKyAgICAgICAgKFdLQm9vbGVhbkdldFR5cGVJ
RCk6CisgICAgICAgIChXS0Jvb2xlYW5DcmVhdGUpOgorICAgICAgICAoV0tEb3VibGVHZXRUeXBl
SUQpOgorICAgICAgICAoV0tEb3VibGVDcmVhdGUpOgorICAgICAgICAoV0tVSW50NjRHZXRUeXBl
SUQpOgorICAgICAgICAoV0tVSW50NjRDcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJR2VvbWV0cnkuY3BwOgorICAg
ICAgICAoQVBJOjpQb2ludDo6ZW5jb2RlKToKKyAgICAgICAgKEFQSTo6UG9pbnQ6OmRlY29kZSk6
CisgICAgICAgIChBUEk6OlNpemU6OmVuY29kZSk6CisgICAgICAgIChBUEk6OlNpemU6OmRlY29k
ZSk6CisgICAgICAgIChBUEk6OlJlY3Q6OmVuY29kZSk6CisgICAgICAgIChBUEk6OlJlY3Q6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSUdlb21ldHJ5Lmg6CisgICAgICAgIChBUEk6OlNp
emU6OmNyZWF0ZSk6CisgICAgICAgIChBUEk6OlNpemU6OlNpemUpOgorICAgICAgICAoQVBJOjpQ
b2ludDo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6UG9pbnQ6OlBvaW50KToKKyAgICAgICAgKEFQ
STo6UmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6UmVjdDo6UmVjdCk6CisgICAgICAgICog
U2hhcmVkL0FQSU51bWJlci5oOgorICAgICAgICAoQVBJOjpOdW1iZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChBUEk6Ok51bWJlcjo6ZGVjb2RlKToKKyAgICAgICAgKEFQSTo6TnVtYmVyOjpOdW1iZXIp
OgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lu
cy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldFBs
dWdpbk1vZHVsZUluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlUGx1Z2luSW5m
b3JtYXRpb25EaWN0aW9uYXJ5KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9t
YWMvUGx1Z2luSW5mb3JtYXRpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmdldFBsYXRmb3Jt
UGx1Z2luTW9kdWxlSW5mb3JtYXRpb24pOgorICAgICAgICAqIFNoYXJlZC9Vc2VyRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnBvcHVsYXRlQ29w
eU9mTm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjbGVhck5vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3Zp
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmF1dG9T
dGFydE9yaWdpbnNUYWJsZUNvcHkpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQ
cm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U3RhdGlzdGljc1JlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjphZGRUb0RpY3Rpb25hcnlG
cm9tSGFzaE1hcCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZEdldERh
dGFiYXNlc0J5T3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5kU3RyaW5nTWF0Y2hlcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
VUlDbGllbnQ6OmNyZWF0ZU5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0Lm1tOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpmb3JQYXJhbWV0ZXI6XSk6CisKKzIwMTMtMTItMTAg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgZW5j
b2RlIGFuZCBkZWNvZGUgZnVuY3Rpb25zIHRvIFdlYk51bWJlcgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTQ3CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbQppbmRleCA1
NjUzMjgxOWZjYmE5YTE5MmUwMWMyZDBlNTM0ODc5YTYzNGQ5MmNmLi40YTU2OGM5YjFhYWI2MTdl
MjcwN2M3YTJlMWJiYzFkMjU1OWJkMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCkBAIC0yNDIsMTcgKzI0Miwx
NyBAQCBzdGF0aWMgTlNTdHJpbmcgKmVzY2FwZUtleShOU1N0cmluZyAqa2V5KQogCiAtICh2b2lk
KWVuY29kZUJvb2w6KEJPT0wpdmFsdWUgZm9yS2V5OihOU1N0cmluZyAqKWtleQogewotICAgIF9j
dXJyZW50RGljdGlvbmFyeS0+c2V0KGVzY2FwZUtleShrZXkpLCBXZWJCb29sZWFuOjpjcmVhdGUo
dmFsdWUpKTsKKyAgICBfY3VycmVudERpY3Rpb25hcnktPnNldChlc2NhcGVLZXkoa2V5KSwgQVBJ
OjpCb29sZWFuOjpjcmVhdGUodmFsdWUpKTsKIH0KIAogLSAodm9pZCllbmNvZGVJbnQ2NDooaW50
NjRfdCl2YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopa2V5CiB7Ci0gICAgX2N1cnJlbnREaWN0aW9u
YXJ5LT5zZXQoZXNjYXBlS2V5KGtleSksIFdlYlVJbnQ2NDo6Y3JlYXRlKHZhbHVlKSk7CisgICAg
X2N1cnJlbnREaWN0aW9uYXJ5LT5zZXQoZXNjYXBlS2V5KGtleSksIEFQSTo6VUludDY0OjpjcmVh
dGUodmFsdWUpKTsKIH0KIAogLSAodm9pZCllbmNvZGVEb3VibGU6KGRvdWJsZSl2YWx1ZSBmb3JL
ZXk6KE5TU3RyaW5nICopa2V5CiB7Ci0gICAgX2N1cnJlbnREaWN0aW9uYXJ5LT5zZXQoZXNjYXBl
S2V5KGtleSksIFdlYkRvdWJsZTo6Y3JlYXRlKHZhbHVlKSk7CisgICAgX2N1cnJlbnREaWN0aW9u
YXJ5LT5zZXQoZXNjYXBlS2V5KGtleSksIEFQSTo6RG91YmxlOjpjcmVhdGUodmFsdWUpKTsKIH0K
IAogLSAoQk9PTClyZXF1aXJlc1NlY3VyZUNvZGluZwpAQCAtNDgxLDcgKzQ4MSw3IEBAIHN0YXRp
YyBpZCBkZWNvZGVPYmplY3QoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNvZGVyLCBjb25zdCBJ
bW11dGFibGVEaWN0aW9uYXJ5CiAKIC0gKEJPT0wpZGVjb2RlQm9vbEZvcktleTooTlNTdHJpbmcg
KilrZXkKIHsKLSAgICBjb25zdCBXZWJCb29sZWFuKiB2YWx1ZSA9IF9jdXJyZW50RGljdGlvbmFy
eS0+Z2V0PFdlYkJvb2xlYW4+KGVzY2FwZUtleShrZXkpKTsKKyAgICBjb25zdCBBUEk6OkJvb2xl
YW4qIHZhbHVlID0gX2N1cnJlbnREaWN0aW9uYXJ5LT5nZXQ8QVBJOjpCb29sZWFuPihlc2NhcGVL
ZXkoa2V5KSk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJl
dHVybiB2YWx1ZS0+dmFsdWUoKTsKQEAgLTQ4OSw3ICs0ODksNyBAQCBzdGF0aWMgaWQgZGVjb2Rl
T2JqZWN0KFdLUmVtb3RlT2JqZWN0RGVjb2RlciAqZGVjb2RlciwgY29uc3QgSW1tdXRhYmxlRGlj
dGlvbmFyeQogCiAtIChpbnQ2NF90KWRlY29kZUludDY0Rm9yS2V5OihOU1N0cmluZyAqKWtleQog
ewotICAgIGNvbnN0IFdlYlVJbnQ2NCogdmFsdWUgPSBfY3VycmVudERpY3Rpb25hcnktPmdldDxX
ZWJVSW50NjQ+KGVzY2FwZUtleShrZXkpKTsKKyAgICBjb25zdCBBUEk6OlVJbnQ2NCogdmFsdWUg
PSBfY3VycmVudERpY3Rpb25hcnktPmdldDxBUEk6OlVJbnQ2ND4oZXNjYXBlS2V5KGtleSkpOwog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB2YWx1ZS0+dmFs
dWUoKTsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3Rl
T2JqZWN0RGVjb2RlciAqZGVjb2RlciwgY29uc3QgSW1tdXRhYmxlRGljdGlvbmFyeQogCiAtIChk
b3VibGUpZGVjb2RlRG91YmxlRm9yS2V5OihOU1N0cmluZyAqKWtleQogewotICAgIGNvbnN0IFdl
YkRvdWJsZSogdmFsdWUgPSBfY3VycmVudERpY3Rpb25hcnktPmdldDxXZWJEb3VibGU+KGVzY2Fw
ZUtleShrZXkpKTsKKyAgICBjb25zdCBBUEk6OkRvdWJsZSogdmFsdWUgPSBfY3VycmVudERpY3Rp
b25hcnktPmdldDxBUEk6OkRvdWJsZT4oZXNjYXBlS2V5KGtleSkpOwogICAgIGlmICghdmFsdWUp
CiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB2YWx1ZS0+dmFsdWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmNwcAppbmRleCBmY2IxY2M1MjdkYjkwOGE0
NTU3YmI0MjZkZWVjOTczNDYzMGU4ZWZlLi45NmMzZjE5ZjdmZjJkN2RiZWYyYjllMTRlMDIxNzhj
MDQ3MmRiNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tHZW9t
ZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuY3Bw
CkBAIC0zMywzNSArMzMsMzIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQg
V0tTaXplR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViU2l6ZTo6QVBJVHlwZSk7
CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6U2l6ZTo6QVBJVHlwZSk7CiB9CiAKIFdLVHlwZUlEIFdL
UG9pbnRHZXRUeXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShXZWJQb2ludDo6QVBJVHlwZSk7
CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6UG9pbnQ6OkFQSVR5cGUpOwogfQogCiBXS1R5cGVJRCBX
S1JlY3RHZXRUeXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShXZWJSZWN0OjpBUElUeXBlKTsK
KyAgICByZXR1cm4gdG9BUEkoQVBJOjpSZWN0OjpBUElUeXBlKTsKIH0KIAogV0tQb2ludFJlZiBX
S1BvaW50Q3JlYXRlKFdLUG9pbnQgcG9pbnQpCiB7Ci0gICAgUmVmUHRyPFdlYlBvaW50PiB3ZWJQ
b2ludCA9IFdlYlBvaW50OjpjcmVhdGUocG9pbnQpOwotICAgIHJldHVybiB0b0FQSSh3ZWJQb2lu
dC5yZWxlYXNlKCkubGVha1JlZigpKTsKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpQb2ludDo6Y3Jl
YXRlKHBvaW50KS5sZWFrUmVmKCkpOwogfQogCiBXS1NpemVSZWYgV0tTaXplQ3JlYXRlKFdLU2l6
ZSBzaXplKQogewotICAgIFJlZlB0cjxXZWJTaXplPiB3ZWJTaXplID0gV2ViU2l6ZTo6Y3JlYXRl
KHNpemUpOwotICAgIHJldHVybiB0b0FQSSh3ZWJTaXplLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwor
ICAgIHJldHVybiB0b0FQSShBUEk6OlNpemU6OmNyZWF0ZShzaXplKS5sZWFrUmVmKCkpOwogfQog
CiBXS1JlY3RSZWYgV0tSZWN0Q3JlYXRlKFdLUmVjdCByZWN0KQogewotICAgIFJlZlB0cjxXZWJS
ZWN0PiB3ZWJSZWN0ID0gV2ViUmVjdDo6Y3JlYXRlKHJlY3QpOwotICAgIHJldHVybiB0b0FQSSh3
ZWJSZWN0LnJlbGVhc2UoKS5sZWFrUmVmKCkpOworICAgIHJldHVybiB0b0FQSShBUEk6OlJlY3Q6
OmNyZWF0ZShyZWN0KS5sZWFrUmVmKCkpOwogfQogCiBXS1NpemUgV0tTaXplR2V0VmFsdWUoV0tT
aXplUmVmIHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tO
dW1iZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmNwcAppbmRl
eCA5MjgzM2NlMjY2MGFiNTYzMjBkODQ1ZmY5ZWI2NmY1OTM3NWNlOWQ1Li4xMTMwMDYzMmNmMGZi
ZTI0ZGEyMDE1NGU4MzJiYjgzYmQyYTQ5NDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tOdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS051bWJlci5jcHAKQEAgLTMzLDEyICszMywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCiBXS1R5cGVJRCBXS0Jvb2xlYW5HZXRUeXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShX
ZWJCb29sZWFuOjpBUElUeXBlKTsKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpCb29sZWFuOjpBUElU
eXBlKTsKIH0KIAogV0tCb29sZWFuUmVmIFdLQm9vbGVhbkNyZWF0ZShib29sIHZhbHVlKQogewot
ICAgIFJlZlB0cjxXZWJCb29sZWFuPiBib29sZWFuT2JqZWN0ID0gV2ViQm9vbGVhbjo6Y3JlYXRl
KHZhbHVlKTsKKyAgICBSZWZQdHI8QVBJOjpCb29sZWFuPiBib29sZWFuT2JqZWN0ID0gQVBJOjpC
b29sZWFuOjpjcmVhdGUodmFsdWUpOwogICAgIHJldHVybiB0b0FQSShib29sZWFuT2JqZWN0LnJl
bGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCkBAIC00OSwxMiArNDksMTIgQEAgYm9vbCBXS0Jvb2xl
YW5HZXRWYWx1ZShXS0Jvb2xlYW5SZWYgYm9vbGVhblJlZikKIAogV0tUeXBlSUQgV0tEb3VibGVH
ZXRUeXBlSUQoKQogewotICAgIHJldHVybiB0b0FQSShXZWJEb3VibGU6OkFQSVR5cGUpOworICAg
IHJldHVybiB0b0FQSShBUEk6OkRvdWJsZTo6QVBJVHlwZSk7CiB9CiAKIFdLRG91YmxlUmVmIFdL
RG91YmxlQ3JlYXRlKGRvdWJsZSB2YWx1ZSkKIHsKLSAgICBSZWZQdHI8V2ViRG91YmxlPiBkb3Vi
bGVPYmplY3QgPSBXZWJEb3VibGU6OmNyZWF0ZSh2YWx1ZSk7CisgICAgUmVmUHRyPEFQSTo6RG91
YmxlPiBkb3VibGVPYmplY3QgPSBBUEk6OkRvdWJsZTo6Y3JlYXRlKHZhbHVlKTsKICAgICByZXR1
cm4gdG9BUEkoZG91YmxlT2JqZWN0LnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCkBAIC02NSwx
MiArNjUsMTIgQEAgZG91YmxlIFdLRG91YmxlR2V0VmFsdWUoV0tEb3VibGVSZWYgZG91YmxlUmVm
KQogCiBXS1R5cGVJRCBXS1VJbnQ2NEdldFR5cGVJRCgpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKFdl
YlVJbnQ2NDo6QVBJVHlwZSk7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6VUludDY0OjpBUElUeXBl
KTsKIH0KIAogV0tVSW50NjRSZWYgV0tVSW50NjRDcmVhdGUodWludDY0X3QgdmFsdWUpCiB7Ci0g
ICAgUmVmUHRyPFdlYlVJbnQ2ND4gdWludDY0T2JqZWN0ID0gV2ViVUludDY0OjpjcmVhdGUodmFs
dWUpOworICAgIFJlZlB0cjxBUEk6OlVJbnQ2ND4gdWludDY0T2JqZWN0ID0gQVBJOjpVSW50NjQ6
OmNyZWF0ZSh2YWx1ZSk7CiAgICAgcmV0dXJuIHRvQVBJKHVpbnQ2NE9iamVjdC5yZWxlYXNlKCku
bGVha1JlZigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVk
QVBJQ2FzdC5oCmluZGV4IDVhMWIwYzVkY2M0OTg0NWIyZDA5MTQ3MjcxODdlNjEwZTA0NjUzOGIu
LjkwZDMzNGU2NDlhZTBkYTVhMjM4ODA2NjExZjEzMzI1M2ZhOWYxZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTYwLDYgKzYwLDkgQEAK
IAogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKK2NsYXNzIFBvaW50OworY2xhc3MgUmVj
dDsKK2NsYXNzIFNpemU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzUsMTEgKzc4LDgg
QEAgY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtOwogY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdlYkdy
YXBoaWNzQ29udGV4dDsKIGNsYXNzIFdlYkltYWdlOwotY2xhc3MgV2ViUG9pbnQ7Ci1jbGFzcyBX
ZWJSZWN0OwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7Ci1jbGFzcyBXZWJTaXplOwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdl
YlVSTFJlc3BvbnNlOwogY2xhc3MgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwpAQCAtOTIsMjUg
KzkyLDI1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEltcGxUeXBlPiBzdHJ1Y3QgSW1wbFR5cGVJbmZv
IHsgfTsKICAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88VGhlSW1wbFR5cGUqPiB7
IHR5cGVkZWYgVGhlQVBJVHlwZSBBUElUeXBlOyB9OwogCiBXS19BRERfQVBJX01BUFBJTkcoV0tB
cnJheVJlZiwgQVBJOjpBcnJheSkKLVdLX0FERF9BUElfTUFQUElORyhXS0Jvb2xlYW5SZWYsIFdl
YkJvb2xlYW4pCitXS19BRERfQVBJX01BUFBJTkcoV0tCb29sZWFuUmVmLCBBUEk6OkJvb2xlYW4p
CiBXS19BRERfQVBJX01BUFBJTkcoV0tDZXJ0aWZpY2F0ZUluZm9SZWYsIFdlYkNlcnRpZmljYXRl
SW5mbykKIFdLX0FERF9BUElfTUFQUElORyhXS0Nvbm5lY3Rpb25SZWYsIFdlYkNvbm5lY3Rpb24p
CiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0TWVudUl0ZW1SZWYsIFdlYkNvbnRleHRNZW51
SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFSZWYsIFdlYkRhdGEpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tEaWN0aW9uYXJ5UmVmLCBJbW11dGFibGVEaWN0aW9uYXJ5KQotV0tfQUREX0FQ
SV9NQVBQSU5HKFdLRG91YmxlUmVmLCBXZWJEb3VibGUpCitXS19BRERfQVBJX01BUFBJTkcoV0tE
b3VibGVSZWYsIEFQSTo6RG91YmxlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRXJyb3JSZWYsIFdl
YkVycm9yKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLR3JhcGhpY3NDb250ZXh0UmVmLCBXZWJHcmFw
aGljc0NvbnRleHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbWFnZVJlZiwgV2ViSW1hZ2UpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tNdXRhYmxlRGljdGlvbmFyeVJlZiwgTXV0YWJsZURpY3Rpb25h
cnkpCi1XS19BRERfQVBJX01BUFBJTkcoV0tQb2ludFJlZiwgV2ViUG9pbnQpCi1XS19BRERfQVBJ
X01BUFBJTkcoV0tSZWN0UmVmLCBXZWJSZWN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLUG9pbnRS
ZWYsIEFQSTo6UG9pbnQpCitXS19BRERfQVBJX01BUFBJTkcoV0tSZWN0UmVmLCBBUEk6OlJlY3Qp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tTZWN1cml0eU9yaWdpblJlZiwgV2ViU2VjdXJpdHlPcmln
aW4pCiBXS19BRERfQVBJX01BUFBJTkcoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSkKLVdLX0FERF9BUElfTUFQUElORyhXS1NpemVSZWYsIFdlYlNp
emUpCitXS19BRERfQVBJX01BUFBJTkcoV0tTaXplUmVmLCBBUEk6OlNpemUpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tTdHJpbmdSZWYsIFdlYlN0cmluZykKIFdLX0FERF9BUElfTUFQUElORyhXS1R5
cGVSZWYsIEFQSTo6T2JqZWN0KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLVUludDY0UmVmLCBXZWJV
SW50NjQpCitXS19BRERfQVBJX01BUFBJTkcoV0tVSW50NjRSZWYsIEFQSTo6VUludDY0KQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLVVJMUmVmLCBXZWJVUkwpCiBXS19BRERfQVBJX01BUFBJTkcoV0tV
UkxSZXF1ZXN0UmVmLCBXZWJVUkxSZXF1ZXN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVVJMUmVz
cG9uc2VSZWYsIFdlYlVSTFJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSUdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElHZW9tZXRyeS5j
cHAKaW5kZXggMjJkZjgzYzcxZTg4ODk3Nzk0YmNhZTc0ZjQ2MjRhMDVmOTFiOGJiMC4uNjEwYjk3
ODcxZjU2ODRiMWZiMzkyZDNmOGMxMTQ2ZDJhYWY1MzFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSUdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJR2VvbWV0cnkuY3BwCkBAIC0yOSwxNSArMjksMTUgQEAKICNpbmNsdWRlICJBcmd1bWVudERl
Y29kZXIuaCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKIAotbmFtZXNwYWNlIFdlYktp
dCB7CituYW1lc3BhY2UgQVBJIHsKIAotdm9pZCBXZWJQb2ludDo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgUG9pbnQ6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3Bv
aW50Lng7CiAgICAgZW5jb2RlciA8PCBtX3BvaW50Lnk7CiB9CiAKLWJvb2wgV2ViUG9pbnQ6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVj
dD4mIHJlc3VsdCkKK2Jvb2wgUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKIHsKICAgICBXS1BvaW50IHBv
aW50OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9pbnQueCkpCkBAIC00NSwxOCArNDUsMTgg
QEAgYm9vbCBXZWJQb2ludDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvaW50
LnkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXN1bHQgPSBXZWJQb2ludDo6Y3Jl
YXRlKHBvaW50KTsKKyAgICByZXN1bHQgPSBQb2ludDo6Y3JlYXRlKHBvaW50KTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogCi12b2lkIFdlYlNpemU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNpemU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3NpemUud2lkdGg7
CiAgICAgZW5jb2RlciA8PCBtX3NpemUuaGVpZ2h0OwogfQogCi1ib29sIFdlYlNpemU6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4m
IHJlc3VsdCkKK2Jvb2wgU2l6ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmVzdWx0KQogewogICAgIFdLU2l6ZSBzaXplOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZS53aWR0aCkpCkBAIC02NCwxMiArNjQsMTIgQEAg
Ym9vbCBXZWJTaXplOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBS
ZWZQdHI8QVBJOjpPYmplY3Q+JiByZXMKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUuaGVp
Z2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gV2ViU2l6ZTo6Y3Jl
YXRlKHNpemUpOworICAgIHJlc3VsdCA9IFNpemU6OmNyZWF0ZShzaXplKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogCi12b2lkIFdlYlJlY3Q6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFJlY3Q6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3JlY3Qub3JpZ2luLng7
CiAgICAgZW5jb2RlciA8PCBtX3JlY3Qub3JpZ2luLnk7CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQg
V2ViUmVjdDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IG1fcmVjdC5zaXplLmhlaWdodDsKIH0KIAotYm9vbCBXZWJSZWN0Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+JiByZXN1bHQpCitib29sIFJlY3Q6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKIHsKICAgICBXS1JlY3QgcmVj
dDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlY3Qub3JpZ2luLngpKQpAQCAtODksOSArODks
OCBAQCBib29sIFdlYlJlY3Q6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlcwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVj
dC5zaXplLmhlaWdodCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJlc3VsdCA9IFdl
YlJlY3Q6OmNyZWF0ZShyZWN0KTsKKyAgICByZXN1bHQgPSBSZWN0OjpjcmVhdGUocmVjdCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCit9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElHZW9tZXRyeS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUdlb21ldHJ5LmgKaW5kZXggZjUwNGFhZjY1MzRi
OWQ4MTkwYjZiYmNhN2EzYWIzNzk2NTdjNDM5NC4uOTA3ZDcwNDc5YjVkNzI1NGI4ZGU1Y2EwZjFj
MjAxYTQzMTljMWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUdlb21l
dHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUdlb21ldHJ5LmgKQEAgLTM2LDEz
ICszNiwxMyBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBBcmd1bWVudEVuY29kZXI7
CiB9CiAKLW5hbWVzcGFjZSBXZWJLaXQgeworbmFtZXNwYWNlIEFQSSB7CiAKLWNsYXNzIFdlYlNp
emUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTaXplPiB7Citj
bGFzcyBTaXplIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6U2l6
ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNpemU+IGNyZWF0ZShjb25z
dCBXS1NpemUmIHNpemUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2l6ZT4gY3JlYXRlKGNvbnN0
IFdLU2l6ZSYgc2l6ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2l6
ZShzaXplKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2l6ZShzaXplKSk7CiAgICAg
fQogCiAgICAgY29uc3QgV0tTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CkBA
IC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IFdlYlNpemUoY29uc3QgV0tTaXplJiBzaXplKQorICAgIGV4cGxpY2l0IFNpemUo
Y29uc3QgV0tTaXplJiBzaXplKQogICAgICAgICA6IG1fc2l6ZShzaXplKQogICAgIHsKICAgICB9
CkBAIC01OSwxMSArNTksMTEgQEAgcHJpdmF0ZToKICAgICBXS1NpemUgbV9zaXplOwogfTsKIAot
Y2xhc3MgV2ViUG9pbnQgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpQb2ludD4geworY2xhc3MgUG9pbnQgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpQb2ludD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBv
aW50PiBjcmVhdGUoY29uc3QgV0tQb2ludCYgcG9pbnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UG9pbnQ+IGNyZWF0ZShjb25zdCBXS1BvaW50JiBwb2ludCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViUG9pbnQocG9pbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBQb2ludChwb2ludCkpOwogICAgIH0KIAogICAgIGNvbnN0IFdLUG9pbnQmIHBvaW50KCkg
Y29uc3QgeyByZXR1cm4gbV9wb2ludDsgfQpAQCAtNzIsMTggKzcyLDE4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQ
STo6T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYlBvaW50KGNvbnN0IFdL
UG9pbnQmIHBvaW50KQorICAgIGV4cGxpY2l0IFBvaW50KGNvbnN0IFdLUG9pbnQmIHBvaW50KQog
ICAgICAgICA6IG1fcG9pbnQocG9pbnQpCiAgICAgeyB9CiAKICAgICBXS1BvaW50IG1fcG9pbnQ7
CiB9OwogCi1jbGFzcyBXZWJSZWN0IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVj
dDo6VHlwZTo6UmVjdD4geworY2xhc3MgUmVjdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlJlY3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJSZWN0PiBjcmVhdGUoY29uc3QgV0tSZWN0JiByZWN0KQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlY3Q+IGNyZWF0ZShjb25zdCBXS1JlY3QmIHJlY3QpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlJlY3QocmVjdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFJlY3QocmVjdCkpOwogICAgIH0KIAogICAgIGNvbnN0IFdLUmVjdCYgcmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVjdDsgfQpAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUEk6Ok9iamVjdD4m
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJSZWN0KGNvbnN0IFdLUmVjdCYgcmVjdCkK
KyAgICBleHBsaWNpdCBSZWN0KGNvbnN0IFdLUmVjdCYgcmVjdCkKICAgICAgICAgOiBtX3JlY3Qo
cmVjdCkKICAgICB7CiAgICAgfQpAQCAtMTAwLDYgKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgV0tS
ZWN0IG1fcmVjdDsKIH07CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAorfSAvLyBuYW1lc3BhY2Ug
QVBJCiAKICNlbmRpZiAvLyBBUElHZW9tZXRyeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJTnVtYmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJTnVtYmVyLmgK
aW5kZXggODk5OGZjYjQ1ZTZhNTZkMTMxOTNmMzA0MTExMzk5MWYxMTlhNzljYS4uNWMxMDEwMDMx
NDcyOGViZTM0NjA5MTRiNGRkODEwZjA1ZTJkOTVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElOdW1i
ZXIuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAotbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3Bh
Y2UgQVBJIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTnVtYmVyVHlwZSwgQVBJOjpPYmplY3Q6OlR5
cGUgQVBJT2JqZWN0VHlwZT4KLWNsYXNzIFdlYk51bWJlciA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJT2JqZWN0VHlwZT4geworY2xhc3MgTnVtYmVyIDogcHVibGljIE9iamVjdEltcGw8QVBJ
T2JqZWN0VHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk51bWJlcj4g
Y3JlYXRlKE51bWJlclR5cGUgdmFsdWUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8TnVtYmVyPiBj
cmVhdGUoTnVtYmVyVHlwZSB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViTnVtYmVyKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTnVtYmVy
KHZhbHVlKSk7CiAgICAgfQogCiAgICAgTnVtYmVyVHlwZSB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWU7IH0KQEAgLTQ4LDE4ICs0OCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIGVuY29kZXIg
PDwgbV92YWx1ZTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVm
UHRyPE9iamVjdD4mIHJlc3VsdCkKICAgICB7CiAgICAgICAgIE51bWJlclR5cGUgdmFsdWU7CiAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIHJlc3VsdCA9IFdlYk51bWJlcjo6Y3JlYXRlKHZhbHVlKTsKKyAgICAg
ICAgcmVzdWx0ID0gTnVtYmVyOjpjcmVhdGUodmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViTnVtYmVyKE51bWJlclR5cGUgdmFs
dWUpCisgICAgZXhwbGljaXQgTnVtYmVyKE51bWJlclR5cGUgdmFsdWUpCiAgICAgICAgIDogbV92
YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQpAQCAtNjcsMTAgKzY3LDEwIEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgTnVtYmVyVHlwZSBtX3ZhbHVlOwogfTsKIAotdHlwZWRlZiBXZWJOdW1iZXI8Ym9v
bCwgQVBJOjpPYmplY3Q6OlR5cGU6OkJvb2xlYW4+IFdlYkJvb2xlYW47Ci10eXBlZGVmIFdlYk51
bWJlcjxkb3VibGUsIEFQSTo6T2JqZWN0OjpUeXBlOjpEb3VibGU+IFdlYkRvdWJsZTsKLXR5cGVk
ZWYgV2ViTnVtYmVyPHVpbnQ2NF90LCBBUEk6Ok9iamVjdDo6VHlwZTo6VUludDY0PiBXZWJVSW50
NjQ7Cit0eXBlZGVmIE51bWJlcjxib29sLCBBUEk6Ok9iamVjdDo6VHlwZTo6Qm9vbGVhbj4gQm9v
bGVhbjsKK3R5cGVkZWYgTnVtYmVyPGRvdWJsZSwgQVBJOjpPYmplY3Q6OlR5cGU6OkRvdWJsZT4g
RG91YmxlOwordHlwZWRlZiBOdW1iZXI8dWludDY0X3QsIEFQSTo6T2JqZWN0OjpUeXBlOjpVSW50
NjQ+IFVJbnQ2NDsKIAotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVzcGFjZSBBUEkK
IAogI2VuZGlmIC8vIEFQSU51bWJlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXgg
YjZmOTg0ZTYwZWIxNmU1ZjMyOTBlYmNlMTUzOWRjNzBjY2FiOGMwYi4uMDA0ZWIwY2NhMTFiYjEw
ZmJmMWFiODJmZWQ1YTZlNDYxY2MxOTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApA
QCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVycm9yLAogICAgICAgICBGcmFtZUhh
bmRsZSwKICAgICAgICAgSW1hZ2UsCisgICAgICAgIFBhZ2VHcm91cERhdGEsCiAgICAgICAgIFBh
Z2VIYW5kbGUsCiAgICAgICAgIFByb3RlY3Rpb25TcGFjZSwKICAgICAgICAgUmVuZGVyTGF5ZXIs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVn
aW5JbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKaW5kZXggYmRmNzAxNmQwOGU3NTZlMjUwMGNmNjVkOGI4
MGM1MGExODA2ODY0YS4uZWI1NjlkOGU2MTI5YjU1ZmM2ODc2ZGU4ZmE3NWFkNjIzZjkxOTI5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2lu
SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgZ2V0UGx1
Z2luTW9kdWxlSW5mb3JtYXRpb24oY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBJbW11
dGFibGVEaWN0aW9uCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgbWFwLnNl
dChwbHVnaW5JbmZvcm1hdGlvblBhdGhLZXkoKSwgV2ViU3RyaW5nOjpjcmVhdGUocGx1Z2luLnBh
dGgpKTsKICAgICBtYXAuc2V0KHBsdWdpbkluZm9ybWF0aW9uRGlzcGxheU5hbWVLZXkoKSwgV2Vi
U3RyaW5nOjpjcmVhdGUocGx1Z2luLmluZm8ubmFtZSkpOwotICAgIG1hcC5zZXQocGx1Z2luSW5m
b3JtYXRpb25EZWZhdWx0TG9hZFBvbGljeUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZSh0b1dLUGx1
Z2luTG9hZFBvbGljeShQbHVnaW5JbmZvU3RvcmU6OmRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2lu
KHBsdWdpbikpKSk7CisgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvbkRlZmF1bHRMb2FkUG9s
aWN5S2V5KCksIEFQSTo6VUludDY0OjpjcmVhdGUodG9XS1BsdWdpbkxvYWRQb2xpY3koUGx1Z2lu
SW5mb1N0b3JlOjpkZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihwbHVnaW4pKSkpOwogCiAgICAg
Z2V0UGxhdGZvcm1QbHVnaW5Nb2R1bGVJbmZvcm1hdGlvbihwbHVnaW4sIG1hcCk7CiAjZWxzZQpA
QCAtMTQ1LDcgKzE0NSw3IEBAIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gY3JlYXRl
UGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFBsdWdpbk1vCiAgICAgICAgIG1hcC5z
ZXQocGx1Z2luSW5mb3JtYXRpb25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpLCBXZWJVUkw6
OmNyZWF0ZShwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZykpOwogICAgIGlmICghcGx1Z2lu
VVJMU3RyaW5nLmlzRW1wdHkoKSkKICAgICAgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvblBs
dWdpblVSTEtleSgpLCBXZWJVUkw6OmNyZWF0ZShwbHVnaW5VUkxTdHJpbmcpKTsKLSAgICBtYXAu
c2V0KHBsdWdJbkluZm9ybWF0aW9uUmVwbGFjZW1lbnRPYnNjdXJlZEtleSgpLCBXZWJCb29sZWFu
OjpjcmVhdGUocmVwbGFjZW1lbnRPYnNjdXJlZCkpOworICAgIG1hcC5zZXQocGx1Z0luSW5mb3Jt
YXRpb25SZXBsYWNlbWVudE9ic2N1cmVkS2V5KCksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHJlcGxh
Y2VtZW50T2JzY3VyZWQpKTsKIAogICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjphZG9w
dChtYXApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL1BsdWdpbkluZm9ybWF0aW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpbkluZm9ybWF0aW9uTWFjLm1tCmluZGV4IDY1NzAy
MTgxMmZmNGM2NmQ2MjgxN2U3ZmJlNWRjN2M3ZDY5NmU5NjAuLjVmNmU0NGI1NjA3MmU5NWI3YmVi
NDE5OWFjZjFlMDdmZjliNDcyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5JbmZvcm1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luSW5mb3JtYXRpb25NYWMu
bW0KQEAgLTQyLDggKzQyLDggQEAgdm9pZCBnZXRQbGF0Zm9ybVBsdWdpbk1vZHVsZUluZm9ybWF0
aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbiwgSW1tdXRhYmwKICAgICBtYXAuc2V0
KHBsdWdpbkluZm9ybWF0aW9uQnVuZGxlSWRlbnRpZmllcktleSgpLCBXZWJTdHJpbmc6OmNyZWF0
ZShwbHVnaW4uYnVuZGxlSWRlbnRpZmllcikpOwogICAgIG1hcC5zZXQocGx1Z2luSW5mb3JtYXRp
b25CdW5kbGVWZXJzaW9uS2V5KCksIFdlYlN0cmluZzo6Y3JlYXRlKHBsdWdpbi52ZXJzaW9uU3Ry
aW5nKSk7CiAgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvbkJ1bmRsZVNob3J0VmVyc2lvbktl
eSgpLCBXZWJTdHJpbmc6OmNyZWF0ZShwbHVnaW4uc2hvcnRWZXJzaW9uU3RyaW5nKSk7Ci0gICAg
bWFwLnNldChwbHVnaW5JbmZvcm1hdGlvblVwZGF0ZVBhc3RMYXN0QmxvY2tlZFZlcnNpb25Jc0tu
b3duQXZhaWxhYmxlS2V5KCksIFdlYkJvb2xlYW46OmNyZWF0ZShXS0lzUGx1Z2luVXBkYXRlQXZh
aWxhYmxlKG5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcocGx1Z2luLmJ1bmRsZUlkZW50aWZpZXIp
KSkpOwotICAgIG1hcC5zZXQocGx1Z2luSW5mb3JtYXRpb25IYXNTYW5kYm94UHJvZmlsZUtleSgp
LCBXZWJCb29sZWFuOjpjcmVhdGUocGx1Z2luSGFzU2FuZGJveFByb2ZpbGUocGx1Z2luLmJ1bmRs
ZUlkZW50aWZpZXIpKSk7CisgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvblVwZGF0ZVBhc3RM
YXN0QmxvY2tlZFZlcnNpb25Jc0tub3duQXZhaWxhYmxlS2V5KCksIEFQSTo6Qm9vbGVhbjo6Y3Jl
YXRlKFdLSXNQbHVnaW5VcGRhdGVBdmFpbGFibGUobnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhw
bHVnaW4uYnVuZGxlSWRlbnRpZmllcikpKSk7CisgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlv
bkhhc1NhbmRib3hQcm9maWxlS2V5KCksIEFQSTo6Qm9vbGVhbjo6Y3JlYXRlKHBsdWdpbkhhc1Nh
bmRib3hQcm9maWxlKHBsdWdpbi5idW5kbGVJZGVudGlmaWVyKSkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCmluZGV4IDhiZTkwZThhM2Jm
YmM1NmVmZmVkOTVlYzg4NGQ2MDBiMTg2ZTYxOTEuLmRjYmFiZWY5MGZhZGQ1NzNlMTc2OGJjYTg0
MGZkMmZlN2I1NWM5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmNwcApAQCAtMTE1LDcg
KzExNSw3IEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEFQSTo6T2JqZWN0JiBvYmplCiAgICAgfQogCiAgICAgY2FzZSBBUEk6
Ok9iamVjdDo6VHlwZTo6Qm9vbGVhbjoKLSAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQm9v
bGVhbiY+KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBzdGF0aWNfY2FzdDxjb25z
dCBBUEk6OkJvb2xlYW4mPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpEaWN0aW9uYXJ5OiB7CkBAIC0xMzcsMTAg
KzEzNywxMCBAQCB2b2lkIFVzZXJEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBBUEk6Ok9iamVjdCYgb2JqZQogICAgIH0KIAogICAgIGNhc2UgQVBJ
OjpPYmplY3Q6OlR5cGU6OlBvaW50OgotICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBXZWJQb2lu
dCY+KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOworICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBB
UEk6OlBvaW50Jj4ob2JqZWN0KS5lbmNvZGUoZW5jb2Rlcik7CiAKICAgICBjYXNlIEFQSTo6T2Jq
ZWN0OjpUeXBlOjpSZWN0OgotICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBXZWJSZWN0Jj4ob2Jq
ZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6UmVj
dCY+KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOwogCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlw
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOiB7CiAgICAgICAgIGF1dG8mIHNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSY+KG9i
amVjdCk7CkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBVc2VyRGF0YTo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQVBJOjpPYmplY3QmIG9iamUKICAgICB9
CiAKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpTaXplOgotICAgICAgICBzdGF0aWNfY2Fz
dDxjb25zdCBXZWJTaXplJj4ob2JqZWN0KS5lbmNvZGUoZW5jb2Rlcik7CisgICAgICAgIHN0YXRp
Y19jYXN0PGNvbnN0IEFQSTo6U2l6ZSY+KG9iamVjdCkuZW5jb2RlKGVuY29kZXIpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlN0cmluZzogewpAQCAtMTY1
LDcgKzE2NSw3IEBAIHZvaWQgVXNlckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEFQSTo6T2JqZWN0JiBvYmplCiAgICAgfQogCiAgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6VUludDY0OgotICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBXZWJV
SW50NjQmPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29u
c3QgQVBJOjpVSW50NjQmPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7
CiAKICAgICBkZWZhdWx0OgpAQCAtMTk5LDcgKzE5OSw3IEBAIGJvb2wgVXNlckRhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4m
IHJlCiAgICAgfQogCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6Qm9vbGVhbjoKLSAgICAg
ICAgaWYgKCFXZWJCb29sZWFuOjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKKyAgICAgICAgaWYg
KCFBUEk6OkJvb2xlYW46OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKIApAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgVXNl
ckRhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxB
UEk6Ok9iamVjdD4mIHJlCiAgICAgfQogCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6RG91
YmxlOgotICAgICAgICBpZiAoIVdlYkRvdWJsZTo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCisg
ICAgICAgIGlmICghQVBJOjpEb3VibGU6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKIApAQCAtMjQ1LDEyICsyNDUsMTIg
QEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmUKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlBvaW50OgotICAgICAgICBpZiAoIVdlYlBvaW50Ojpk
ZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKKyAgICAgICAgaWYgKCFBUEk6OlBvaW50OjpkZWNvZGUo
ZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpSZWN0OgotICAgICAgICBpZiAoIVdl
YlJlY3Q6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQorICAgICAgICBpZiAoIUFQSTo6UmVjdDo6
ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGJyZWFrOwogCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmUK
ICAgICB9CiAKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpTaXplOgotICAgICAgICBpZiAo
IVdlYlNpemU6OmRlY29kZShkZWNvZGVyLCByZXN1bHQpKQorICAgICAgICBpZiAoIUFQSTo6U2l6
ZTo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIGJyZWFrOwogCkBAIC0yODcsNyArMjg3LDcgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYg
cmUKICAgICB9CiAKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpVSW50NjQ6Ci0gICAgICAg
IGlmICghV2ViVUludDY0OjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0KSkKKyAgICAgICAgaWYgKCFB
UEk6OlVJbnQ2NDo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2Fn
ZUNvZGVycy5oCmluZGV4IGYwNjI4YTU0YTlhZjhhM2RhZGRjZDUyNjBmZjdmODI0Mzg3MWMxYTYu
LjQzYTgxZTRjMjI4NmVjMzQyZmJlOGE5OWRjZjkxNGY2N2RjOTUyYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC01OCwxMSArNTgsMTEgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAvLyAgIC0gVXNlckNvbnRlbnRVUkxQYXR0ZXJuIC0+IFVzZXJDb250ZW50
VVJMUGF0dGVybgogLy8gICAtIFdlYkNlcnRpZmljYXRlSW5mbyAtPiBXZWJDZXJ0aWZpY2F0ZUlu
Zm8KIC8vICAgLSBXZWJEYXRhIC0+IFdlYkRhdGEKLS8vICAgLSBXZWJEb3VibGUgLT4gV2ViRG91
YmxlCisvLyAgIC0gQVBJOjpEb3VibGUgLT4gQVBJOjpEb3VibGUKIC8vICAgLSBXZWJJbWFnZSAt
PiBXZWJJbWFnZQogLy8gICAtIFdlYlJlbmRlckxheWVyIC0+IFdlYlJlbmRlckxheWVyCiAvLyAg
IC0gV2ViUmVuZGVyT2JqZWN0IC0+IFdlYlJlbmRlck9iamVjdAotLy8gICAtIFdlYlVJbnQ2NCAt
PiBXZWJVSW50NjQKKy8vICAgLSBBUEk6OlVJbnQ2NCAtPiBBUEk6OlVJbnQ2NAogLy8gICAtIFdl
YlVSTCAtPiBXZWJVUkwKIC8vICAgLSBXZWJVUkxSZXF1ZXN0IC0+IFdlYlVSTFJlcXVlc3QKIC8v
ICAgLSBXZWJVUkxSZXNwb25zZSAtPiBXZWJVUkxSZXNwb25zZQpAQCAtMTEzLDM0ICsxMTMsMzQg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6Qm9vbGVhbjogewotICAgICAgICAgICAgV2ViQm9vbGVh
biogYm9vbGVhbk9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkJvb2xlYW4qPihtX3Jvb3QpOworICAg
ICAgICAgICAgQVBJOjpCb29sZWFuKiBib29sZWFuT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QVBJOjpC
b29sZWFuKj4obV9yb290KTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgYm9vbGVhbk9iamVjdC0+
dmFsdWUoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkRvdWJsZTogewotICAgICAgICAgICAgV2ViRG91YmxlKiBk
b3VibGVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJEb3VibGUqPihtX3Jvb3QpOworICAgICAgICAg
ICAgQVBJOjpEb3VibGUqIGRvdWJsZU9iamVjdCA9IHN0YXRpY19jYXN0PEFQSTo6RG91YmxlKj4o
bV9yb290KTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgZG91YmxlT2JqZWN0LT52YWx1ZSgpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6Ok9i
amVjdDo6VHlwZTo6VUludDY0OiB7Ci0gICAgICAgICAgICBXZWJVSW50NjQqIHVpbnQ2NE9iamVj
dCA9IHN0YXRpY19jYXN0PFdlYlVJbnQ2NCo+KG1fcm9vdCk7CisgICAgICAgICAgICBBUEk6OlVJ
bnQ2NCogdWludDY0T2JqZWN0ID0gc3RhdGljX2Nhc3Q8QVBJOjpVSW50NjQqPihtX3Jvb3QpOwog
ICAgICAgICAgICAgZW5jb2RlciA8PCB1aW50NjRPYmplY3QtPnZhbHVlKCk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBl
OjpQb2ludDogewotICAgICAgICAgICAgV2ViUG9pbnQqIHBvaW50T2JqZWN0ID0gc3RhdGljX2Nh
c3Q8V2ViUG9pbnQqPihtX3Jvb3QpOworICAgICAgICAgICAgQVBJOjpQb2ludCogcG9pbnRPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxBUEk6OlBvaW50Kj4obV9yb290KTsKICAgICAgICAgICAgIGVuY29k
ZXIgPDwgcG9pbnRPYmplY3QtPnBvaW50KCkueDsKICAgICAgICAgICAgIGVuY29kZXIgPDwgcG9p
bnRPYmplY3QtPnBvaW50KCkueTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlNpemU6IHsKLSAgICAgICAgICAgIFdl
YlNpemUqIHNpemVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJTaXplKj4obV9yb290KTsKKyAgICAg
ICAgICAgIEFQSTo6U2l6ZSogc2l6ZU9iamVjdCA9IHN0YXRpY19jYXN0PEFQSTo6U2l6ZSo+KG1f
cm9vdCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHNpemVPYmplY3QtPnNpemUoKS53aWR0aDsK
ICAgICAgICAgICAgIGVuY29kZXIgPDwgc2l6ZU9iamVjdC0+c2l6ZSgpLmhlaWdodDsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6
OlR5cGU6OlJlY3Q6IHsKLSAgICAgICAgICAgIFdlYlJlY3QqIHJlY3RPYmplY3QgPSBzdGF0aWNf
Y2FzdDxXZWJSZWN0Kj4obV9yb290KTsKKyAgICAgICAgICAgIEFQSTo6UmVjdCogcmVjdE9iamVj
dCA9IHN0YXRpY19jYXN0PEFQSTo6UmVjdCo+KG1fcm9vdCk7CiAgICAgICAgICAgICBlbmNvZGVy
IDw8IHJlY3RPYmplY3QtPnJlY3QoKS5vcmlnaW4ueDsKICAgICAgICAgICAgIGVuY29kZXIgPDwg
cmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi55OwogICAgICAgICAgICAgZW5jb2RlciA8PCByZWN0
T2JqZWN0LT5yZWN0KCkuc2l6ZS53aWR0aDsKQEAgLTI0OSw5ICsyNDksOSBAQCBwcm90ZWN0ZWQ6
CiAvLyAgIC0gVXNlckNvbnRlbnRVUkxQYXR0ZXJuIC0+IFVzZXJDb250ZW50VVJMUGF0dGVybgog
Ly8gICAtIFdlYkNlcnRpZmljYXRlSW5mbyAtPiBXZWJDZXJ0aWZpY2F0ZUluZm8KIC8vICAgLSBX
ZWJEYXRhIC0+IFdlYkRhdGEKLS8vICAgLSBXZWJEb3VibGUgLT4gV2ViRG91YmxlCisvLyAgIC0g
QVBJOjpEb3VibGUgLT4gQVBJOjpEb3VibGUKIC8vICAgLSBXZWJJbWFnZSAtPiBXZWJJbWFnZQot
Ly8gICAtIFdlYlVJbnQ2NCAtPiBXZWJVSW50NjQKKy8vICAgLSBBUEk6OlVJbnQ2NCAtPiBBUEk6
OlVJbnQ2NAogLy8gICAtIFdlYlVSTCAtPiBXZWJVUkwKIC8vICAgLSBXZWJVUkxSZXF1ZXN0IC0+
IFdlYlVSTFJlcXVlc3QKIC8vICAgLSBXZWJVUkxSZXNwb25zZSAtPiBXZWJVUkxSZXNwb25zZQpA
QCAtMzMwLDIxICszMzAsMjEgQEAgcHVibGljOgogICAgICAgICAgICAgZG91YmxlIHZhbHVlOwog
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViRG91YmxlOjpjcmVh
dGUodmFsdWUpOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gQVBJOjpEb3VibGU6OmNyZWF0
ZSh2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
STo6T2JqZWN0OjpUeXBlOjpVSW50NjQ6IHsKICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlOwog
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViVUludDY0OjpjcmVh
dGUodmFsdWUpOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gQVBJOjpVSW50NjQ6OmNyZWF0
ZSh2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQ
STo6T2JqZWN0OjpUeXBlOjpCb29sZWFuOiB7CiAgICAgICAgICAgICBib29sIHZhbHVlOwogICAg
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViQm9vbGVhbjo6Y3JlYXRl
KHZhbHVlKTsKKyAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6Qm9vbGVhbjo6Y3JlYXRl
KHZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJ
OjpPYmplY3Q6OlR5cGU6OlNpemU6IHsKQEAgLTM1NCw3ICszNTQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShoZWlnaHQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGNv
ZGVyLm1fcm9vdCA9IFdlYlNpemU6OmNyZWF0ZShXS1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpKTsK
KyAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6U2l6ZTo6Y3JlYXRlKFdLU2l6ZU1ha2Uo
d2lkdGgsIGhlaWdodCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UG9pbnQ6IHsKQEAgLTM2NCw3ICszNjQsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICBjb2Rlci5tX3Jvb3QgPSBXZWJQb2ludDo6Y3JlYXRlKFdLUG9pbnRNYWtlKHgsIHkpKTsKKyAg
ICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6UG9pbnQ6OmNyZWF0ZShXS1BvaW50TWFrZSh4
LCB5KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6
T2JqZWN0OjpUeXBlOjpSZWN0OiB7CkBAIC0zODAsNyArMzgwLDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGVpZ2h0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBjb2Rl
ci5tX3Jvb3QgPSBXZWJSZWN0OjpjcmVhdGUoV0tSZWN0TWFrZSh4LCB5LCB3aWR0aCwgaGVpZ2h0
KSk7CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBBUEk6OlJlY3Q6OmNyZWF0ZShXS1JlY3RN
YWtlKHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlJlbmRlckxheWVyOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA1MDMwMmJmNThhNDIyZmVk
OWRlNTNlYTVkZTlkNmUwMWRkMzAxODc0Li45YjJhYzJmZmJmNjU3M2M1MzYxZGY1M2E1ZDlkOGE5
YTdhYTUzMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAK
QEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnBvcHVs
YXRlQ29weU9mTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSGFzaE1hcDwKICAgICBSZWZQdHI8QVBJ
OjpBcnJheT4ga25vd25PcmlnaW5zID0ga25vd25QZXJtaXNzaW9ucy0+a2V5cygpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwga25vd25PcmlnaW5zLT5zaXplKCk7ICsraSkgewogICAgICAg
ICBXZWJTdHJpbmcqIG9yaWdpbiA9IGtub3duT3JpZ2lucy0+YXQ8V2ViU3RyaW5nPihpKTsKLSAg
ICAgICAgcGVybWlzc2lvbnMuc2V0KG9yaWdpbi0+c3RyaW5nKCksIGtub3duUGVybWlzc2lvbnMt
PmdldDxXZWJCb29sZWFuPihvcmlnaW4tPnN0cmluZygpKS0+dmFsdWUoKSk7CisgICAgICAgIHBl
cm1pc3Npb25zLnNldChvcmlnaW4tPnN0cmluZygpLCBrbm93blBlcm1pc3Npb25zLT5nZXQ8QVBJ
OjpCb29sZWFuPihvcmlnaW4tPnN0cmluZygpKS0+dmFsdWUoKSk7CiAgICAgfQogfQogCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVy
RGlkQ2xvc2VOb3RpZmljYXRpb25zKEFQSTo6QXJyYXkqIGdsb2IKICAgICAKICAgICBzaXplX3Qg
c2l6ZSA9IGdsb2JhbE5vdGlmaWNhdGlvbklEcy0+c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIGF1dG8gaXQgPSBtX2dsb2JhbE5vdGlmaWNh
dGlvbk1hcC5maW5kKGdsb2JhbE5vdGlmaWNhdGlvbklEcy0+YXQ8V2ViVUludDY0PihpKS0+dmFs
dWUoKSk7CisgICAgICAgIGF1dG8gaXQgPSBtX2dsb2JhbE5vdGlmaWNhdGlvbk1hcC5maW5kKGds
b2JhbE5vdGlmaWNhdGlvbklEcy0+YXQ8QVBJOjpVSW50NjQ+KGkpLT52YWx1ZSgpKTsKICAgICAg
ICAgaWYgKGl0ID09IG1fZ2xvYmFsTm90aWZpY2F0aW9uTWFwLmVuZCgpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAppbmRleCBhOTUx
YzQ0OWFjYmRiOWRjNWNiYTc2ZGMzNWY1ZjQyN2ZiNDkyNzY3Li41NDVlNDE1M2Q5ZWEzYTg5NTgx
ZDMwZDQyZjY5YTU1YWQ1NzMwOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljCiAgICAgYXJyYXlJ
RHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShub3RpZmljYXRpb25JRHMuc2l6ZSgpKTsKIAogICAg
IGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uSUQgOiBub3RpZmljYXRpb25JRHMpCi0gICAg
ICAgIGFycmF5SURzLnVuY2hlY2tlZEFwcGVuZChXZWJVSW50NjQ6OmNyZWF0ZShub3RpZmljYXRp
b25JRCkpOworICAgICAgICBhcnJheUlEcy51bmNoZWNrZWRBcHBlbmQoQVBJOjpVSW50NjQ6OmNy
ZWF0ZShub3RpZmljYXRpb25JRCkpOwogCiAgICAgbV9jbGllbnQuY2xlYXJOb3RpZmljYXRpb25z
KHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoYXJyYXlJRHMpKS5nZXQoKSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHAKaW5kZXgg
MWQxYWJhNTNkZTM2Y2JiOTAwYTM2MzUxZGMzYTUwNTNmZWQyZDlhZS4uZmQxYTMxMDg2MGU0YzRj
ZTU2OWQ2MTRkNzg1MTQxMjA3OWMyODlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcApAQCAt
ODksNyArODksNyBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IFBsdWdJbkF1dG9T
dGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDbwogICAgICAgICBmb3IgKFBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2g6OmNvbnN0X2l0ZXJhdG9yIHZhbHVlSXQgPSBpdC0+dmFsdWUu
YmVnaW4oKTsgdmFsdWVJdCAhPSB2YWx1ZUVuZDsgKyt2YWx1ZUl0KSB7CiAgICAgICAgICAgICBp
ZiAobm93ID4gdmFsdWVJdC0+dmFsdWUpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICBoYXNoTWFwLnNldChTdHJpbmc6Om51bWJlcih2YWx1ZUl0LT5rZXkpLCBXZWJEb3Vi
bGU6OmNyZWF0ZSh2YWx1ZUl0LT52YWx1ZSkpOworICAgICAgICAgICAgaGFzaE1hcC5zZXQoU3Ry
aW5nOjpudW1iZXIodmFsdWVJdC0+a2V5KSwgQVBJOjpEb3VibGU6OmNyZWF0ZSh2YWx1ZUl0LT52
YWx1ZSkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGhhc2hNYXAuc2l6ZSgpKQpAQCAtMTE2
LDEwICsxMTYsMTAgQEAgdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0
T3JpZ2luc1RhYmxlKEltbXV0YWJsZURpY3Rpb25hcnkmIHRhYmwKICAgICAgICAgICAgIGlmICgh
b2spCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGlmIChoYXNoSXQt
PnZhbHVlLT50eXBlKCkgIT0gV2ViRG91YmxlOjpBUElUeXBlKQorICAgICAgICAgICAgaWYgKGhh
c2hJdC0+dmFsdWUtPnR5cGUoKSAhPSBBUEk6OkRvdWJsZTo6QVBJVHlwZSkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgZG91YmxlIGV4cGlyYXRpb25UaW1lID0gc3Rh
dGljX2Nhc3Q8V2ViRG91YmxlKj4oaGFzaEl0LT52YWx1ZS5nZXQoKSktPnZhbHVlKCk7CisgICAg
ICAgICAgICBkb3VibGUgZXhwaXJhdGlvblRpbWUgPSBzdGF0aWNfY2FzdDxBUEk6OkRvdWJsZSo+
KGhhc2hJdC0+dmFsdWUuZ2V0KCkpLT52YWx1ZSgpOwogICAgICAgICAgICAgaGFzaGVzLnNldCho
YXNoLCBleHBpcmF0aW9uVGltZSk7CiAgICAgICAgICAgICBoYXNoTWFwLnNldChoYXNoLCBleHBp
cmF0aW9uVGltZSk7CiAgICAgICAgICAgICBtX2hhc2hUb09yaWdpbk1hcC5zZXQoaGFzaCwgaXQt
PmtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1Jl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNw
cAppbmRleCA4ZWFhY2ZkN2ZhMDViZGRjMTU1ZTNkZGYwNWE0NDRmNDgyYzRmZTA0Li45YzVhYWQx
ZTA2MjE4OWU2Y2NmNDVlMjFhMzI3NzlkM2Y3NzI4YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGlj
IHZvaWQgYWRkVG9EaWN0aW9uYXJ5RnJvbUhhc2hNYXAoTXV0YWJsZURpY3Rpb25hcnkqIGRpY3Rp
b25hcnksIGNvbnN0IEhhc2gKIHsKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+Ojpjb25z
dF9pdGVyYXRvciBlbmQgPSBtYXAuZW5kKCk7CiAgICAgZm9yIChIYXNoTWFwPFN0cmluZywgdWlu
dDY0X3Q+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
Ci0gICAgICAgIGRpY3Rpb25hcnktPnNldChpdC0+a2V5LCBSZWZQdHI8V2ViVUludDY0PihXZWJV
SW50NjQ6OmNyZWF0ZShpdC0+dmFsdWUpKS5nZXQoKSk7CisgICAgICAgIGRpY3Rpb25hcnktPnNl
dChpdC0+a2V5LCBSZWZQdHI8QVBJOjpVSW50NjQ+KEFQSTo6VUludDY0OjpjcmVhdGUoaXQtPnZh
bHVlKSkuZ2V0KCkpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlRGljdGlvbmFyeT4g
Y3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCB1aW50NjRf
dD4mIG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IDYzM2Y2ZmJkZjJhNDkxODQxN2FkMDljYTE4YTA5YjJlZjQw
MWMwYTkuLmY3MTk2YzYzODBkNDFkZGI4MjU1MzI4MGJiNjc2ZDgzN2FmZGM3ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNw
cApAQCAtMTcwLDE2ICsxNzAsMTYgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlk
R2V0RGF0YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVjdG9yPE9yaWdpbkFuZERhdGEKIAogICAgICAg
ICAgICAgZGV0YWlsc01hcC5zZXQoZGF0YWJhc2VEZXRhaWxzTmFtZUtleSgpLCBXZWJTdHJpbmc6
OmNyZWF0ZShkYXRhYmFzZURldGFpbHMubmFtZSgpKSk7CiAgICAgICAgICAgICBkZXRhaWxzTWFw
LnNldChkYXRhYmFzZURldGFpbHNEaXNwbGF5TmFtZUtleSgpLCBXZWJTdHJpbmc6OmNyZWF0ZShk
YXRhYmFzZURldGFpbHMuZGlzcGxheU5hbWUoKSkpOwotICAgICAgICAgICAgZGV0YWlsc01hcC5z
ZXQoZGF0YWJhc2VEZXRhaWxzRXhwZWN0ZWRVc2FnZUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShk
YXRhYmFzZURldGFpbHMuZXhwZWN0ZWRVc2FnZSgpKSk7Ci0gICAgICAgICAgICBkZXRhaWxzTWFw
LnNldChkYXRhYmFzZURldGFpbHNDdXJyZW50VXNhZ2VLZXkoKSwgV2ViVUludDY0OjpjcmVhdGUo
ZGF0YWJhc2VEZXRhaWxzLmN1cnJlbnRVc2FnZSgpKSk7CisgICAgICAgICAgICBkZXRhaWxzTWFw
LnNldChkYXRhYmFzZURldGFpbHNFeHBlY3RlZFVzYWdlS2V5KCksIEFQSTo6VUludDY0OjpjcmVh
dGUoZGF0YWJhc2VEZXRhaWxzLmV4cGVjdGVkVXNhZ2UoKSkpOworICAgICAgICAgICAgZGV0YWls
c01hcC5zZXQoZGF0YWJhc2VEZXRhaWxzQ3VycmVudFVzYWdlS2V5KCksIEFQSTo6VUludDY0Ojpj
cmVhdGUoZGF0YWJhc2VEZXRhaWxzLmN1cnJlbnRVc2FnZSgpKSk7CiAKICAgICAgICAgICAgIGRh
dGFiYXNlcy51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQoZGV0YWls
c01hcCkpOwogICAgICAgICB9CiAKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6
Ok9iamVjdD4+IG9yaWdpbkFuZERhdGFiYXNlc01hcDsKICAgICAgICAgb3JpZ2luQW5kRGF0YWJh
c2VzTWFwLnNldChvcmlnaW5LZXkoKSwgb3JpZ2luKTsKLSAgICAgICAgb3JpZ2luQW5kRGF0YWJh
c2VzTWFwLnNldChvcmlnaW5RdW90YUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmRE
YXRhYmFzZXMub3JpZ2luUXVvdGEpKTsKLSAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNl
dChvcmlnaW5Vc2FnZUtleSgpLCBXZWJVSW50NjQ6OmNyZWF0ZShvcmlnaW5BbmREYXRhYmFzZXMu
b3JpZ2luVXNhZ2UpKTsKKyAgICAgICAgb3JpZ2luQW5kRGF0YWJhc2VzTWFwLnNldChvcmlnaW5R
dW90YUtleSgpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKG9yaWdpbkFuZERhdGFiYXNlcy5vcmlnaW5R
dW90YSkpOworICAgICAgICBvcmlnaW5BbmREYXRhYmFzZXNNYXAuc2V0KG9yaWdpblVzYWdlS2V5
KCksIEFQSTo6VUludDY0OjpjcmVhdGUob3JpZ2luQW5kRGF0YWJhc2VzLm9yaWdpblVzYWdlKSk7
CiAgICAgICAgIG9yaWdpbkFuZERhdGFiYXNlc01hcC5zZXQoZGF0YWJhc2VEZXRhaWxzS2V5KCks
IEFQSTo6QXJyYXk6OmNyZWF0ZShzdGQ6Om1vdmUoZGF0YWJhc2VzKSkpOwogCiAgICAgICAgIHJl
c3VsdC51bmNoZWNrZWRBcHBlbmQoSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQob3JpZ2luQW5k
RGF0YWJhc2VzTWFwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDNkZGM5ZGE0MDc5N2YwMDFhZjk5MzA4MWEyMmY1NDM5NTU0ODliYmIuLjVmNThkZjli
OWRlNTQ4ZTMyN2JiMDZjNjBjYmQ5Yzg4Y2ZhNWY2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMDMxLDcgKzMwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluZFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIFZlY3RvcjxW
ZWN0b3I8V2ViQwogICAgICAgICBhcGlSZWN0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlY3Rz
LnNpemUoKSk7CiAKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiByZWN0IDogcmVjdHMpCi0gICAg
ICAgICAgICBhcGlSZWN0cy51bmNoZWNrZWRBcHBlbmQoV2ViUmVjdDo6Y3JlYXRlKHRvQVBJKHJl
Y3QpKSk7CisgICAgICAgICAgICBhcGlSZWN0cy51bmNoZWNrZWRBcHBlbmQoQVBJOjpSZWN0Ojpj
cmVhdGUodG9BUEkocmVjdCkpKTsKIAogICAgICAgICBtYXRjaGVzLnVuY2hlY2tlZEFwcGVuZChB
UEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKGFwaVJlY3RzKSkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCmluZGV4IGQ3ZjFmZGY2Yjg1MzM1OWVhZTc3
MmE5ZDBiNGI4OWEzNDBmNGQ2NjIuLjVjZjdiZTllMWRlMjIyMGYxYzExN2VmY2Q1NzIzMzRlZTc5
ZWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtNTYs
MjEgKzU2LDIxIEBAIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJVSUNsaWVudDo6Y3JlYXRl
TmV3UGFnZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFJlCiAKICAgICBJbW11dGFibGVEaWN0
aW9uYXJ5OjpNYXBUeXBlIG1hcDsKICAgICBpZiAod2luZG93RmVhdHVyZXMueFNldCkKLSAgICAg
ICAgbWFwLnNldCgieCIsIFdlYkRvdWJsZTo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLngpKTsKKyAg
ICAgICAgbWFwLnNldCgieCIsIEFQSTo6RG91YmxlOjpjcmVhdGUod2luZG93RmVhdHVyZXMueCkp
OwogICAgIGlmICh3aW5kb3dGZWF0dXJlcy55U2V0KQotICAgICAgICBtYXAuc2V0KCJ5IiwgV2Vi
RG91YmxlOjpjcmVhdGUod2luZG93RmVhdHVyZXMueSkpOworICAgICAgICBtYXAuc2V0KCJ5Iiwg
QVBJOjpEb3VibGU6OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy55KSk7CiAgICAgaWYgKHdpbmRvd0Zl
YXR1cmVzLndpZHRoU2V0KQotICAgICAgICBtYXAuc2V0KCJ3aWR0aCIsIFdlYkRvdWJsZTo6Y3Jl
YXRlKHdpbmRvd0ZlYXR1cmVzLndpZHRoKSk7CisgICAgICAgIG1hcC5zZXQoIndpZHRoIiwgQVBJ
OjpEb3VibGU6OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy53aWR0aCkpOwogICAgIGlmICh3aW5kb3dG
ZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAgIG1hcC5zZXQoImhlaWdodCIsIFdlYkRvdWJsZTo6
Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmhlaWdodCkpOwotICAgIG1hcC5zZXQoIm1lbnVCYXJWaXNp
YmxlIiwgV2ViQm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLm1lbnVCYXJWaXNpYmxlKSk7
Ci0gICAgbWFwLnNldCgic3RhdHVzQmFyVmlzaWJsZSIsIFdlYkJvb2xlYW46OmNyZWF0ZSh3aW5k
b3dGZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlKSk7Ci0gICAgbWFwLnNldCgidG9vbEJhclZpc2li
bGUiLCBXZWJCb29sZWFuOjpjcmVhdGUod2luZG93RmVhdHVyZXMudG9vbEJhclZpc2libGUpKTsK
LSAgICBtYXAuc2V0KCJsb2NhdGlvbkJhclZpc2libGUiLCBXZWJCb29sZWFuOjpjcmVhdGUod2lu
ZG93RmVhdHVyZXMubG9jYXRpb25CYXJWaXNpYmxlKSk7Ci0gICAgbWFwLnNldCgic2Nyb2xsYmFy
c1Zpc2libGUiLCBXZWJCb29sZWFuOjpjcmVhdGUod2luZG93RmVhdHVyZXMuc2Nyb2xsYmFyc1Zp
c2libGUpKTsKLSAgICBtYXAuc2V0KCJyZXNpemFibGUiLCBXZWJCb29sZWFuOjpjcmVhdGUod2lu
ZG93RmVhdHVyZXMucmVzaXphYmxlKSk7Ci0gICAgbWFwLnNldCgiZnVsbHNjcmVlbiIsIFdlYkJv
b2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5mdWxsc2NyZWVuKSk7Ci0gICAgbWFwLnNldCgi
ZGlhbG9nIiwgV2ViQm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmRpYWxvZykpOworICAg
ICAgICBtYXAuc2V0KCJoZWlnaHQiLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVz
LmhlaWdodCkpOworICAgIG1hcC5zZXQoIm1lbnVCYXJWaXNpYmxlIiwgQVBJOjpCb29sZWFuOjpj
cmVhdGUod2luZG93RmVhdHVyZXMubWVudUJhclZpc2libGUpKTsKKyAgICBtYXAuc2V0KCJzdGF0
dXNCYXJWaXNpYmxlIiwgQVBJOjpCb29sZWFuOjpjcmVhdGUod2luZG93RmVhdHVyZXMuc3RhdHVz
QmFyVmlzaWJsZSkpOworICAgIG1hcC5zZXQoInRvb2xCYXJWaXNpYmxlIiwgQVBJOjpCb29sZWFu
OjpjcmVhdGUod2luZG93RmVhdHVyZXMudG9vbEJhclZpc2libGUpKTsKKyAgICBtYXAuc2V0KCJs
b2NhdGlvbkJhclZpc2libGUiLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5s
b2NhdGlvbkJhclZpc2libGUpKTsKKyAgICBtYXAuc2V0KCJzY3JvbGxiYXJzVmlzaWJsZSIsIEFQ
STo6Qm9vbGVhbjo6Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLnNjcm9sbGJhcnNWaXNpYmxlKSk7Cisg
ICAgbWFwLnNldCgicmVzaXphYmxlIiwgQVBJOjpCb29sZWFuOjpjcmVhdGUod2luZG93RmVhdHVy
ZXMucmVzaXphYmxlKSk7CisgICAgbWFwLnNldCgiZnVsbHNjcmVlbiIsIEFQSTo6Qm9vbGVhbjo6
Y3JlYXRlKHdpbmRvd0ZlYXR1cmVzLmZ1bGxzY3JlZW4pKTsKKyAgICBtYXAuc2V0KCJkaWFsb2ci
LCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5kaWFsb2cpKTsKICAgICBSZWZQ
dHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gZmVhdHVyZXNNYXAgPSBJbW11dGFibGVEaWN0aW9uYXJ5
OjphZG9wdChtYXApOwogCiAgICAgaWYgKCFtX2NsaWVudC5iYXNlLnZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTM3ZjIzNTZj
OThlZDUwOTdlZjBhYmY3MWIyNGYyYWY1MWU1YzY1Yi4uMWVmZTczOGMxODMwYTRmODkwNDk5OTIw
NGJiMTExNDM4MTM5Y2M3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNjkyLDcgKzY5Miw3IEBAIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4g
V2ViUGFnZTo6dHJhY2tlZFJlcGFpbnRSZWN0cygpCiAgICAgcmVwYWludFJlY3RzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodmlldy0+dHJhY2tlZFJlcGFpbnRSZWN0cygpLnNpemUoKSk7CiAKICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHJlcGFpbnRSZWN0IDogdmlldy0+dHJhY2tlZFJlcGFpbnRSZWN0
cygpKQotICAgICAgICByZXBhaW50UmVjdHMudW5jaGVja2VkQXBwZW5kKFdlYlJlY3Q6OmNyZWF0
ZSh0b0FQSShyZXBhaW50UmVjdCkpKTsKKyAgICAgICAgcmVwYWludFJlY3RzLnVuY2hlY2tlZEFw
cGVuZChBUEk6OlJlY3Q6OmNyZWF0ZSh0b0FQSShyZXBhaW50UmVjdCkpKTsKIAogICAgIHJldHVy
biBBUEk6OkFycmF5OjpjcmVhdGUoc3RkOjptb3ZlKHJlcGFpbnRSZWN0cykpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tCmluZGV4IDg3YWRhYzI0MzQ5YjZkMzQ5
NTU0ODg4MTliZjRhZjNhZmNjNGJlMGIuLjhhM2U1ZDU2MzM3OGM0YzRkNWNmYTU0OWE5MTQ2OGFm
MTAzYWFhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0KQEAg
LTIwOSw3ICsyMDksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIAogICAgIGlmICh0
b0ltcGwocmVzdWx0LmdldCgpKS0+dHlwZSgpID09IFdlYlN0cmluZzo6QVBJVHlwZSkKICAgICAg
ICAgcmV0dXJuIENGQnJpZGdpbmdSZWxlYXNlKFdLU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIChXS1N0cmluZ1JlZilyZXN1bHQuZ2V0KCkpKTsKLSAgICBlbHNlIGlmICh0
b0ltcGwocmVzdWx0LmdldCgpKS0+dHlwZSgpID09IFdlYkJvb2xlYW46OkFQSVR5cGUpCisgICAg
ZWxzZSBpZiAodG9JbXBsKHJlc3VsdC5nZXQoKSktPnR5cGUoKSA9PSBBUEk6OkJvb2xlYW46OkFQ
SVR5cGUpCiAgICAgICAgIHJldHVybiBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6V0tCb29sZWFu
R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihyZXN1bHQuZ2V0KCkpKV07CiAKICAg
ICByZXR1cm4gbmlsOwo=
</data>
<flag name="review"
          id="242479"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>