<?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>148783</bug_id>
          
          <creation_ts>2015-09-03 21:16:35 -0700</creation_ts>
          <short_desc>Unify symbolTableGet and Put in JSLexicalEnvironment and JSSymbolTableObject</short_desc>
          <delta_ts>2015-09-08 18:33:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123326</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-03 21:16:35 -0700</bug_when>
    <thetext>They are almost identical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124443</commentid>
    <comment_count>1</comment_count>
      <attachid>260804</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-08 16:14:30 -0700</bug_when>
    <thetext>Created attachment 260804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124449</commentid>
    <comment_count>2</comment_count>
      <attachid>260804</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-08 16:18:21 -0700</bug_when>
    <thetext>Comment on attachment 260804
Patch

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

&gt; Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:-55
&gt; -    slot.setValue(this, DontEnum, result);

The only difference is here. JSLexicalEnvironment::symbolTableGet always produced the slot with DontEnum.
But I don&apos;t think it is intentionally used behavior.

&gt; Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:-111
&gt; -inline bool JSLexicalEnvironment::symbolTablePutWithAttributes(VM&amp; vm, PropertyName propertyName, JSValue value, unsigned attributes)

Not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124478</commentid>
    <comment_count>3</comment_count>
      <attachid>260804</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-08 17:14:43 -0700</bug_when>
    <thetext>Comment on attachment 260804
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124485</commentid>
    <comment_count>4</comment_count>
      <attachid>260804</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-08 17:22:19 -0700</bug_when>
    <thetext>Comment on attachment 260804
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124503</commentid>
    <comment_count>5</comment_count>
      <attachid>260804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 18:33:01 -0700</bug_when>
    <thetext>Comment on attachment 260804
Patch

Clearing flags on attachment: 260804

Committed r189525: &lt;http://trac.webkit.org/changeset/189525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124504</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 18:33:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260804</attachid>
            <date>2015-09-08 16:14:30 -0700</date>
            <delta_ts>2015-09-08 18:33:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148783-20150908161424.patch</filename>
            <type>text/plain</type>
            <size>23632</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
OGRiMGU5MDI3Yzc4Y2Q1YjhjMjllYjAyMGFiZjdlYjVjZDFhYjMxLi5kNjczZTEzOGY4NzUwM2Y2
ODU2NTNkYzkzZmFhNDgzOTBlZjc5NTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNS0wOS0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVbmlmeSBzeW1ib2xUYWJsZUdldCBhbmQgUHV0IGluIEpTTGV4aWNh
bEVudmlyb25tZW50IGFuZCBKU1N5bWJvbFRhYmxlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg3ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmlmeSB0aGUgc3ltYm9sVGFibGVHZXQgYW5k
IHN5bWJvbFRhYmxlUHV0IGludG8gSlNTeW1ib2xUYWJsZU9iamVjdCdzIG9uZS4KKyAgICAgICAg
U2luY2Ugc3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlcyBpbiBKU0xleGljYWxFbnZpcm9ubWVu
dCBpcyBub3QgdXNlZCwgd2UgZHJvcCB0aGF0IGZ1bmN0aW9uLgorCisgICAgICAgICogcnVudGlt
ZS9KU0Vudmlyb25tZW50UmVjb3JkLmg6CisgICAgICAgIChKU0M6OkpTRW52aXJvbm1lbnRSZWNv
cmQ6OmlzVmFsaWRTY29wZU9mZnNldCk6CisgICAgICAgIChKU0M6OkpTRW52aXJvbm1lbnRSZWNv
cmQ6OnZhcmlhYmxlQXQpOgorICAgICAgICAoSlNDOjpKU0Vudmlyb25tZW50UmVjb3JkOjppc1Zh
bGlkKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25t
ZW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQ6OnB1dCk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1l
bnQuY3BwOgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6Z2V0T3duTm9uSW5k
ZXhQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50Ojpw
dXQpOgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6c3ltYm9sVGFibGVHZXQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6c3ltYm9sVGFi
bGVQdXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6c3lt
Ym9sVGFibGVQdXRXaXRoQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9K
U0xleGljYWxFbnZpcm9ubWVudC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVSZWNvcmQu
Y3BwOgorICAgICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVEZWNsYXJhdGlv
bnMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oOgorICAg
ICAgICAoSlNDOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0Ojppc1ZhbGlkU2NvcGVPZmZzZXQp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNTeW1ib2xUYWJsZU9iamVjdC5oOgorICAgICAgICAoSlND
OjpzeW1ib2xUYWJsZUdldCk6CisgICAgICAgIChKU0M6OnN5bWJvbFRhYmxlUHV0KToKKyAgICAg
ICAgKEpTQzo6c3ltYm9sVGFibGVQdXRUb3VjaFdhdGNocG9pbnRTZXQpOgorICAgICAgICAoSlND
OjpzeW1ib2xUYWJsZVB1dEludmFsaWRhdGVXYXRjaHBvaW50U2V0KToKKyAgICAgICAgKEpTQzo6
c3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlc1RvdWNoV2F0Y2hwb2ludFNldCk6CisgICAgICAg
IChKU0M6OnN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE1LTA5
LTA4ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAg
IEltcGxlbWVudCBhbGwgdGhlIGFyaXRobWV0aWMgYW5kIGxvZ2ljYWwgaW5zdHJ1Y3Rpb25zIGlu
IFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIwNzI4NjQxNzQwMmY3NzU2MDZkNWQ3Zjk3OTVk
Y2MyZTc0ZjZjZS4uMTVlMTNmM2UzNzMyMTA4NTcyNGZkM2ZkMzg3ZGUwMTY5ZjYwMDMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA5LTA4ICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVuaWZ5IHN5bWJvbFRhYmxlUHV0IGluIEpT
TGV4aWNhbEVudmlyb25tZW50IGFuZCBKU1N5bWJvbFRhYmxlT2JqZWN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg3ODMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjp1cGRhdGVEb2N1bWVudCk6CisKIDIwMTUtMDktMDggIFBl
ciBBcm5lIFZvbGxhbiAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5dW0hpZ2hE
UEldIFZpZGVvIHdpbmRvdyBwbGFjZW1lbnQgaXMgaW5jb3JyZWN0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNFbnZpcm9ubWVudFJlY29yZC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNFbnZpcm9ubWVudFJlY29yZC5oCmluZGV4IGZhZThm
NmFjZmJiMjA2YmNjYjQwNDc2ZGU2ZmJlOWUwYzNmNGE2YjcuLjhjYjNkZDAyOTk0MDJlNmU2OTgz
NGJlZmQxYmUzYzM3YjAxZDhkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRW52aXJvbm1lbnRSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Vudmlyb25tZW50UmVjb3JkLmgKQEAgLTUyLDE0ICs1MiwxNCBAQCBjbGFzcyBK
U0Vudmlyb25tZW50UmVjb3JkIDogcHVibGljIEpTU3ltYm9sVGFibGVPYmplY3QgewogICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qPihiaXR3aXNl
X2Nhc3Q8Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZWYXJpYWJsZXMoKSk7CiAgICAgfQogICAgIAot
ICAgIGJvb2wgaXNWYWxpZChTY29wZU9mZnNldCBvZmZzZXQpCisgICAgYm9vbCBpc1ZhbGlkU2Nv
cGVPZmZzZXQoU2NvcGVPZmZzZXQgb2Zmc2V0KQogICAgIHsKICAgICAgICAgcmV0dXJuICEhb2Zm
c2V0ICYmIG9mZnNldC5vZmZzZXQoKSA8IHN5bWJvbFRhYmxlKCktPnNjb3BlU2l6ZSgpOwogICAg
IH0KICAgICAKICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+JiB2YXJpYWJsZUF0KFNjb3Bl
T2Zmc2V0IG9mZnNldCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkKG9mZnNldCkpOwor
ICAgICAgICBBU1NFUlQoaXNWYWxpZFNjb3BlT2Zmc2V0KG9mZnNldCkpOwogICAgICAgICByZXR1
cm4gdmFyaWFibGVzKClbb2Zmc2V0Lm9mZnNldCgpXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25t
ZW50LmNwcAppbmRleCBmNWZmMGNmYThhNjdkNDA4MDRjM2Y1NzA3OTQyOTU1YjUwMDkyZTE0Li42
ZDE3NjA4NmVhZDM5MzNkYzAxY2I3NzJmN2QzYTE1OTQyZmJkMGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQ6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lCiAgICAg
QVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpo
ZWFwKHRoaXNPYmplY3QpKTsKICAgICBib29sIGFsd2F5c1Rocm93V2hlbkFzc2lnbmluZ1RvQ29u
c3RQcm9wZXJ0eSA9IHRydWU7CiAgICAgYm9vbCBpZ25vcmVDb25zdEFzc2lnbm1lbnRFcnJvciA9
IHNsb3QuaXNJbml0aWFsaXphdGlvbigpOwotICAgIHN5bWJvbFRhYmxlUHV0KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGFsd2F5c1Rocm93V2hlbkFzc2lnbmluZ1RvQ29u
c3RQcm9wZXJ0eSwgaWdub3JlQ29uc3RBc3NpZ25tZW50RXJyb3IpOworICAgIHN5bWJvbFRhYmxl
UHV0VG91Y2hXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIGFsd2F5c1Rocm93V2hlbkFzc2lnbmluZ1RvQ29uc3RQcm9wZXJ0eSwgaWdub3JlQ29uc3RB
c3NpZ25tZW50RXJyb3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAwM2U4OWI5ZDFk
NTRhMDRlMDZmMDVjYzFiZGM4MzM0YzE0NGFkMTZkLi4yOTkxMDY0OTgyODdkZjI4OTA2NTE4ZDNk
YTI3MTIyZmI4YzdjMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCkBAIC01NTcsNyArNTU3LDkgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW0KICAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dsb2JhbE9i
amVjdCo+KGNlbGwpOwogICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVh
cCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7CiAKLSAgICBpZiAoc3ltYm9sVGFi
bGVQdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdC5pc1N0cmlj
dE1vZGUoKSwgZmFsc2UpKQorICAgIGJvb2wgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yID0gc2xv
dC5pc1N0cmljdE1vZGUoKTsKKyAgICBib29sIGlnbm9yZVJlYWRPbmx5RXJyb3JzID0gZmFsc2U7
CisgICAgaWYgKHN5bWJvbFRhYmxlUHV0VG91Y2hXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3Jl
UmVhZE9ubHlFcnJvcnMpKQogICAgICAgICByZXR1cm47CiAgICAgQmFzZTo6cHV0KHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwCmluZGV4
IDQ3YTgxYjVmMzcwYTJlMDY4YjJmYzIyZDJkMGU2N2Q2NGQxMmRhMjUuLmU5OWJiYmE4OWQ5ZGQ2
OTQzOTc3YzEyMjg1MjEwNDdkZDVkNzQyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAKQEAgLTM5LDU0ICszOSw2
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNMZXhpY2FsRW52aXJvbm1l
bnQ6OnNfaW5mbyA9IHsgIkpTTGV4aWNhbEVudmlyb25tZW50IiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0xleGljYWxFbnZpcm9ubWVudCkgfTsKIAotaW5saW5lIGJv
b2wgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OnN5bWJvbFRhYmxlR2V0KFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBTeW1ib2xUYWJsZUVudHJ5IGVu
dHJ5ID0gc3ltYm9sVGFibGUoKS0+aW5saW5lR2V0KHByb3BlcnR5TmFtZS51aWQoKSk7Ci0gICAg
aWYgKGVudHJ5LmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTY29wZU9m
ZnNldCBvZmZzZXQgPSBlbnRyeS5zY29wZU9mZnNldCgpOwotCi0gICAgLy8gRGVmZW5kIGFnYWlu
c3QgdGhlIGluc3BlY3RvciBhc2tpbmcgZm9yIGEgdmFyIGFmdGVyIGl0IGhhcyBiZWVuIG9wdGlt
aXplZCBvdXQuCi0gICAgaWYgKCFpc1ZhbGlkKG9mZnNldCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIEpTVmFsdWUgcmVzdWx0ID0gdmFyaWFibGVBdChvZmZzZXQpLmdldCgpOwotICAg
IHNsb3Quc2V0VmFsdWUodGhpcywgRG9udEVudW0sIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLWlubGluZSBib29sIEpTTGV4aWNhbEVudmlyb25tZW50OjpzeW1ib2xUYWJsZVB1dChF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IGJvb2wgc2hvdWxkVGhyb3cpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBBU1NF
UlQoIUhlYXA6OmhlYXAodmFsdWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAo
dGhpcykpOwotICAgIAotICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIHJlZzsKLSAgICBX
YXRjaHBvaW50U2V0KiBzZXQ7Ci0gICAgewotICAgICAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihzeW1ib2xUYWJsZSgpLT5tX2xvY2ssIGV4ZWMtPnZtKCkuaGVhcCk7Ci0gICAg
ICAgIFN5bWJvbFRhYmxlOjpNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBzeW1ib2xUYWJsZSgpLT5maW5k
KGxvY2tlciwgcHJvcGVydHlOYW1lLnVpZCgpKTsKLSAgICAgICAgaWYgKGl0ZXIgPT0gc3ltYm9s
VGFibGUoKS0+ZW5kKGxvY2tlcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IEFTU0VSVCghaXRlci0+dmFsdWUuaXNOdWxsKCkpOwotICAgICAgICBpZiAoaXRlci0+dmFsdWUu
aXNSZWFkT25seSgpKSB7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkVGhyb3cgfHwgaXNMZXhpY2Fs
U2NvcGUoKSkKLSAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2Rl
UmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgU2NvcGVPZmZzZXQgb2Zmc2V0ID0gaXRlci0+dmFsdWUuc2NvcGVP
ZmZzZXQoKTsKLSAgICAgICAgLy8gRGVmZW5kIGFnYWluc3QgdGhlIGluc3BlY3RvciBhc2tpbmcg
Zm9yIGEgdmFyIGFmdGVyIGl0IGhhcyBiZWVuIG9wdGltaXplZCBvdXQuCi0gICAgICAgIGlmICgh
aXNWYWxpZChvZmZzZXQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBzZXQg
PSBpdGVyLT52YWx1ZS53YXRjaHBvaW50U2V0KCk7Ci0gICAgICAgIHJlZyA9ICZ2YXJpYWJsZUF0
KG9mZnNldCk7Ci0gICAgfQotICAgIHJlZy0+c2V0KHZtLCB0aGlzLCB2YWx1ZSk7Ci0gICAgaWYg
KHNldCkKLSAgICAgICAgc2V0LT5pbnZhbGlkYXRlKFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsKHRo
aXMsIHByb3BlcnR5TmFtZSkpOyAvLyBEb24ndCBtZXNzIGFyb3VuZCAtIGlmIHdlIGhhZCBmb3Vu
ZCB0aGlzIHN0YXRpY2FsbHksIHdlIHdvdWxkIGhhdmUgaW52YWxpZGF0ZWQgaXQuCi0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KIHZvaWQgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmdldE93bk5vbkluZGV4
UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBK
U0xleGljYWxFbnZpcm9ubWVudCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0xleGljYWxFbnZpcm9u
bWVudCo+KG9iamVjdCk7CkBAIC05Nyw3ICs0OSw3IEBAIHZvaWQgSlNMZXhpY2FsRW52aXJvbm1l
bnQ6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
CiAgICAgICAgIGZvciAoU3ltYm9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgaXQgPSB0aGlzT2JqZWN0
LT5zeW1ib2xUYWJsZSgpLT5iZWdpbihsb2NrZXIpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAg
ICAgICAgIGlmIChpdC0+dmFsdWUuZ2V0QXR0cmlidXRlcygpICYgRG9udEVudW0gJiYgIW1vZGUu
aW5jbHVkZURvbnRFbnVtUHJvcGVydGllcygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc1ZhbGlkKGl0LT52YWx1ZS5zY29wZU9mZnNl
dCgpKSkKKyAgICAgICAgICAgIGlmICghdGhpc09iamVjdC0+aXNWYWxpZFNjb3BlT2Zmc2V0KGl0
LT52YWx1ZS5zY29wZU9mZnNldCgpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIGlmIChpdC0+a2V5LT5pc1N5bWJvbCgpICYmICFwcm9wZXJ0eU5hbWVzLmluY2x1ZGVT
eW1ib2xQcm9wZXJ0aWVzKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0xMDgsMzUg
KzYwLDExIEBAIHZvaWQgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmdldE93bk5vbkluZGV4UHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhCiAgICAgSlNPYmplY3Q6OmdldE93bk5v
bkluZGV4UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAotaW5saW5lIGJvb2wgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OnN5bWJvbFRhYmxlUHV0
V2l0aEF0dHJpYnV0ZXMoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQotewotICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2
YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0aGlzKSk7Ci0gICAgCi0g
ICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogcmVnOwotICAgIHsKLSAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIoc3ltYm9sVGFibGUoKS0+bV9sb2NrKTsKLSAgICAgICAgU3lt
Ym9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgaXRlciA9IHN5bWJvbFRhYmxlKCktPmZpbmQobG9ja2Vy
LCBwcm9wZXJ0eU5hbWUudWlkKCkpOwotICAgICAgICBpZiAoaXRlciA9PSBzeW1ib2xUYWJsZSgp
LT5lbmQobG9ja2VyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgU3ltYm9s
VGFibGVFbnRyeSYgZW50cnkgPSBpdGVyLT52YWx1ZTsKLSAgICAgICAgQVNTRVJUKCFlbnRyeS5p
c051bGwoKSk7Ci0gICAgICAgIAotICAgICAgICBTY29wZU9mZnNldCBvZmZzZXQgPSBlbnRyeS5z
Y29wZU9mZnNldCgpOwotICAgICAgICBpZiAoIWlzVmFsaWQob2Zmc2V0KSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIGVudHJ5LnNldEF0dHJpYnV0ZXMoYXR0
cmlidXRlcyk7Ci0gICAgICAgIHJlZyA9ICZ2YXJpYWJsZUF0KG9mZnNldCk7Ci0gICAgfQotICAg
IHJlZy0+c2V0KHZtLCB0aGlzLCB2YWx1ZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGJvb2wg
SlNMZXhpY2FsRW52aXJvbm1lbnQ6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICBKU0xleGljYWxFbnZpcm9ubWVudCogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU0xleGljYWxFbnZpcm9ubWVudCo+KG9iamVjdCk7CiAKLSAgICBpZiAodGhpc09iamVjdC0+
c3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoc3ltYm9sVGFibGVH
ZXQodGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwpAQCAtMTU3LDcgKzg1LDkgQEAgdm9pZCBKU0xl
eGljYWxFbnZpcm9ubWVudDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGUKICAgICBKU0xleGljYWxFbnZpcm9ubWVudCogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU0xleGljYWxFbnZpcm9ubWVudCo+KGNlbGwpOwogICAgIEFTU0VSVCghSGVhcDo6aGVh
cCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7
CiAKLSAgICBpZiAodGhpc09iamVjdC0+c3ltYm9sVGFibGVQdXQoZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSkpCisgICAgYm9vbCBzaG91bGRUaHJvd1JlYWRP
bmx5RXJyb3IgPSBzbG90LmlzU3RyaWN0TW9kZSgpIHx8IHRoaXNPYmplY3QtPmlzTGV4aWNhbFNj
b3BlKCk7CisgICAgYm9vbCBpZ25vcmVSZWFkT25seUVycm9ycyA9IGZhbHNlOworICAgIGlmIChz
eW1ib2xUYWJsZVB1dEludmFsaWRhdGVXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3JlUmVhZE9u
bHlFcnJvcnMpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBXZSBkb24ndCBjYWxsIHRocm91
Z2ggdG8gSlNPYmplY3QgYmVjYXVzZSBfX3Byb3RvX18gYW5kIGdldHRlci9zZXR0ZXIgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQu
aAppbmRleCBiYmUzMTYxODI0MWEzOTZlMzZmMDUyNGY1YzBhMjFlYmQxNjQ2NDFkLi45OWMzNTMz
YjI4NTE4OGM5Nzk0YzRmNWQ1ZjU5Yjk5OTZjMjUzMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKQEAgLTc2LDExICs3
Niw2IEBAIGNsYXNzIEpTTGV4aWNhbEVudmlyb25tZW50IDogcHVibGljIEpTRW52aXJvbm1lbnRS
ZWNvcmQgewogICAgIERFQ0xBUkVfSU5GTzsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIHsgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIGpzTnVsbCgpLCBUeXBlSW5mbyhD
bG9zdXJlT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyB9Ci0KLXByaXZhdGU6
Ci0gICAgYm9vbCBzeW1ib2xUYWJsZUdldChQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwot
ICAgIGJvb2wgc3ltYm9sVGFibGVQdXQoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBib29sIHNob3VsZFRocm93KTsKLSAgICBib29sIHN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0
ZXMoVk0mLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogfTsK
IAogaW5saW5lIEpTTGV4aWNhbEVudmlyb25tZW50OjpKU0xleGljYWxFbnZpcm9ubWVudChWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1Njb3BlKiBjdXJyZW50U2NvcGUsIFN5bWJvbFRh
YmxlKiBzeW1ib2xUYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcAppbmRleCA2NWRhODJmOWNhMTdlMTJmMGQ4YWE4YzY4ZmUyMmZjOGM5
ZDBjNzdjLi5mYjM2NDI4ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC01
NTEsNyArNTUxLDcgQEAgdm9pZCBKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVEZWNsYXJhdGlv
bnMoRXhlY1N0YXRlKiBleGVjLCBNb2R1bGVQcm9ncmFtRXhlY3UKICAgICAgICAgICAgIEpTTW9k
dWxlTmFtZXNwYWNlT2JqZWN0KiBuYW1lc3BhY2VPYmplY3QgPSBpbXBvcnRlZE1vZHVsZS0+Z2V0
TW9kdWxlTmFtZXNwYWNlKGV4ZWMpOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHN5bWJvbFRhYmxlUHV0
KG1vZHVsZUVudmlyb25tZW50LCBleGVjLCBpbXBvcnRFbnRyeS5sb2NhbE5hbWUsIG5hbWVzcGFj
ZU9iamVjdCwgLyogc2hvdWxkVGhyb3dSZWFkT25seUVycm9yICovIGZhbHNlLCAvKiBpZ25vcmVS
ZWFkT25seUVycm9ycyAqLyB0cnVlKTsKKyAgICAgICAgICAgIHN5bWJvbFRhYmxlUHV0VG91Y2hX
YXRjaHBvaW50U2V0KG1vZHVsZUVudmlyb25tZW50LCBleGVjLCBpbXBvcnRFbnRyeS5sb2NhbE5h
bWUsIG5hbWVzcGFjZU9iamVjdCwgLyogc2hvdWxkVGhyb3dSZWFkT25seUVycm9yICovIGZhbHNl
LCAvKiBpZ25vcmVSZWFkT25seUVycm9ycyAqLyB0cnVlKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlvbiA9IGltcG9ydGVkTW9kdWxlLT5yZXNvbHZl
RXhwb3J0KGV4ZWMsIGltcG9ydEVudHJ5LmltcG9ydE5hbWUpOwogICAgICAgICAgICAgc3dpdGNo
IChyZXNvbHV0aW9uLnR5cGUpIHsKQEAgLTU4Miw3ICs1ODIsNyBAQCB2b2lkIEpTTW9kdWxlUmVj
b3JkOjppbnN0YW50aWF0ZURlY2xhcmF0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIE1vZHVsZVByb2dy
YW1FeGVjdQogICAgICAgICBTeW1ib2xUYWJsZUVudHJ5IGVudHJ5ID0gc3ltYm9sVGFibGUtPmdl
dCh2YXJpYWJsZS5rZXkuZ2V0KCkpOwogICAgICAgICBWYXJPZmZzZXQgb2Zmc2V0ID0gZW50cnku
dmFyT2Zmc2V0KCk7CiAgICAgICAgIGlmICghb2Zmc2V0LmlzU3RhY2soKSkKLSAgICAgICAgICAg
IHN5bWJvbFRhYmxlUHV0KG1vZHVsZUVudmlyb25tZW50LCBleGVjLCBJZGVudGlmaWVyOjpmcm9t
VWlkKGV4ZWMsIHZhcmlhYmxlLmtleS5nZXQoKSksIGpzVW5kZWZpbmVkKCksIC8qIHNob3VsZFRo
cm93UmVhZE9ubHlFcnJvciAqLyBmYWxzZSwgLyogaWdub3JlUmVhZE9ubHlFcnJvcnMgKi8gdHJ1
ZSk7CisgICAgICAgICAgICBzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNldChtb2R1bGVF
bnZpcm9ubWVudCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbVVpZChleGVjLCB2YXJpYWJsZS5rZXku
Z2V0KCkpLCBqc1VuZGVmaW5lZCgpLCAvKiBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IgKi8gZmFs
c2UsIC8qIGlnbm9yZVJlYWRPbmx5RXJyb3JzICovIHRydWUpOwogICAgIH0KIAogICAgIC8vIGh0
dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1tb2R1bGVk
ZWNsYXJhdGlvbmluc3RhbnRpYXRpb24KQEAgLTYwMiw3ICs2MDIsNyBAQCB2b2lkIEpTTW9kdWxl
UmVjb3JkOjppbnN0YW50aWF0ZURlY2xhcmF0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIE1vZHVsZVBy
b2dyYW1FeGVjdQogICAgICAgICAgICAgICAgICAgICB1bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZS0+dHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB1bmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZS0+bGluayh2bSwgbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUtPnNvdXJj
ZSgpKSwgbW9kdWxlRW52aXJvbm1lbnQpOwotICAgICAgICAgICAgc3ltYm9sVGFibGVQdXQobW9k
dWxlRW52aXJvbm1lbnQsIGV4ZWMsIHVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLT5uYW1lKCks
IGZ1bmN0aW9uLCAvKiBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IgKi8gZmFsc2UsIC8qIGlnbm9y
ZVJlYWRPbmx5RXJyb3JzICovIHRydWUpOworICAgICAgICAgICAgc3ltYm9sVGFibGVQdXRUb3Vj
aFdhdGNocG9pbnRTZXQobW9kdWxlRW52aXJvbm1lbnQsIGV4ZWMsIHVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLT5uYW1lKCksIGZ1bmN0aW9uLCAvKiBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3Ig
Ki8gZmFsc2UsIC8qIGlnbm9yZVJlYWRPbmx5RXJyb3JzICovIHRydWUpOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21l
bnRlZFZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZDhmNjE0YWQ1MWYyMjhiZmEwMDA0Y2I3ODI4
ODE2ZGRmMjEyY2I5OC4uNDc2YzI4OGYxMzdhMGU3NGZhNDVmNGJmNWY5MDU5ZGRiZjRkOWRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJp
YWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVu
dGVkVmFyaWFibGVPYmplY3QuaApAQCAtNTcsNiArNTcsMTEgQEAgY2xhc3MgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCA6IHB1YmxpYyBKU1N5bWJvbFRhYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTU3ltYm9sVGFibGVPYmplY3QgQmFzZTsKIAorICAgIGJvb2wgaXNWYWxpZFNj
b3BlT2Zmc2V0KFNjb3BlT2Zmc2V0IG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiAhIW9m
ZnNldCAmJiBvZmZzZXQub2Zmc2V0KCkgPCBtX3ZhcmlhYmxlcy5zaXplKCk7CisgICAgfQorCiAg
ICAgLy8gVGhpcyBpcyBub3QgdGhyZWFkLXNhZmUsIHNpbmNlIG1fdmFyaWFibGVzIGlzIGEgc2Vn
bWVudGVkIHZlY3RvciwgYW5kIGl0cyBzcGluZSBjYW4gcmVzaXplIHdpdGgKICAgICAvLyBtYWxs
b2MvZnJlZSBpZiBuZXcgdmFyaWFibGVzIC0gdW5yZWxhdGVkIHRvIHRoZSBvbmUgeW91IGFyZSBh
Y2Nlc3NpbmcgLSBhcmUgYWRkZWQuIFlvdSBjYW4gZ2V0CiAgICAgLy8gYXJvdW5kIHRoaXMgYnkg
Z3JhYmJpbmcgbV9sb2NrLCBvciBmaW5kaW5nIHNvbWUgb3RoZXIgd2F5IHRvIGdldCB0byB0aGUg
dmFyaWFibGUgcG9pbnRlciAoZ2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmgKaW5kZXggNzdiZDhmMGM0YjkwNjk1MTM5MTYy
YTZiN2JhZDAwNmQxOTdmMThhZi4uMzY4Y2VkY2I4MGIzYTc0YmI1YWMyMzZmNzZhYmFiODFlMjk1
OTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTeW1ib2xU
YWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9s
VGFibGVPYmplY3QuaApAQCAtODcsNyArODcsMTMgQEAgaW5saW5lIGJvb2wgc3ltYm9sVGFibGVH
ZXQoCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBTeW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVu
dHJ5ID0gaXRlci0+dmFsdWU7CiAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7Ci0gICAgc2xv
dC5zZXRWYWx1ZShvYmplY3QsIGVudHJ5LmdldEF0dHJpYnV0ZXMoKSB8IERvbnREZWxldGUsIG9i
amVjdC0+dmFyaWFibGVBdChlbnRyeS5zY29wZU9mZnNldCgpKS5nZXQoKSk7CisKKyAgICBTY29w
ZU9mZnNldCBvZmZzZXQgPSBlbnRyeS5zY29wZU9mZnNldCgpOworICAgIC8vIERlZmVuZCBhZ2Fp
bnN0IHRoZSBpbnNwZWN0b3IgYXNraW5nIGZvciBhIHZhciBhZnRlciBpdCBoYXMgYmVlbiBvcHRp
bWl6ZWQgb3V0LgorICAgIGlmICghb2JqZWN0LT5pc1ZhbGlkU2NvcGVPZmZzZXQob2Zmc2V0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2xvdC5zZXRWYWx1ZShvYmplY3QsIGVudHJ5
LmdldEF0dHJpYnV0ZXMoKSB8IERvbnREZWxldGUsIG9iamVjdC0+dmFyaWFibGVBdChvZmZzZXQp
LmdldCgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTAyLDggKzEwOCwxMyBAQCBpbmxp
bmUgYm9vbCBzeW1ib2xUYWJsZUdldCgKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFN5bWJv
bFRhYmxlRW50cnk6OkZhc3QgZW50cnkgPSBpdGVyLT52YWx1ZTsKICAgICBBU1NFUlQoIWVudHJ5
LmlzTnVsbCgpKTsKLSAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IoCi0gICAgICAgIG9iamVj
dC0+dmFyaWFibGVBdChlbnRyeS5zY29wZU9mZnNldCgpKS5nZXQoKSwgZW50cnkuZ2V0QXR0cmli
dXRlcygpIHwgRG9udERlbGV0ZSk7CisKKyAgICBTY29wZU9mZnNldCBvZmZzZXQgPSBlbnRyeS5z
Y29wZU9mZnNldCgpOworICAgIC8vIERlZmVuZCBhZ2FpbnN0IHRoZSBpbnNwZWN0b3IgYXNraW5n
IGZvciBhIHZhciBhZnRlciBpdCBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0LgorICAgIGlmICghb2Jq
ZWN0LT5pc1ZhbGlkU2NvcGVPZmZzZXQob2Zmc2V0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKG9iamVjdC0+dmFyaWFibGVBdChvZmZzZXQp
LmdldCgpLCBlbnRyeS5nZXRBdHRyaWJ1dGVzKCkgfCBEb250RGVsZXRlKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTE5LDI2ICsxMzAsMzcgQEAgaW5saW5lIGJvb2wgc3ltYm9sVGFibGVH
ZXQoCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBTeW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVu
dHJ5ID0gaXRlci0+dmFsdWU7CiAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7Ci0gICAgc2xv
dC5zZXRWYWx1ZShvYmplY3QsIGVudHJ5LmdldEF0dHJpYnV0ZXMoKSB8IERvbnREZWxldGUsIG9i
amVjdC0+dmFyaWFibGVBdChlbnRyeS5zY29wZU9mZnNldCgpKS5nZXQoKSk7CisKKyAgICBTY29w
ZU9mZnNldCBvZmZzZXQgPSBlbnRyeS5zY29wZU9mZnNldCgpOworICAgIC8vIERlZmVuZCBhZ2Fp
bnN0IHRoZSBpbnNwZWN0b3IgYXNraW5nIGZvciBhIHZhciBhZnRlciBpdCBoYXMgYmVlbiBvcHRp
bWl6ZWQgb3V0LgorICAgIGlmICghb2JqZWN0LT5pc1ZhbGlkU2NvcGVPZmZzZXQob2Zmc2V0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2xvdC5zZXRWYWx1ZShvYmplY3QsIGVudHJ5
LmdldEF0dHJpYnV0ZXMoKSB8IERvbnREZWxldGUsIG9iamVjdC0+dmFyaWFibGVBdChvZmZzZXQp
LmdldCgpKTsKICAgICBzbG90SXNXcml0ZWFibGUgPSAhZW50cnkuaXNSZWFkT25seSgpOwogICAg
IHJldHVybiB0cnVlOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBTeW1ib2xUYWJsZU9iamVjdFR5
cGU+CitlbnVtIGNsYXNzIFN5bWJvbFRhYmxlUHV0TW9kZSB7CisgICAgV2l0aEF0dHJpYnV0ZXMs
CisgICAgV2l0aG91dEF0dHJpYnV0ZXMKK307CisKK3RlbXBsYXRlPFN5bWJvbFRhYmxlUHV0TW9k
ZSBzeW1ib2xUYWJsZVB1dE1vZGUsIHR5cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KIGlu
bGluZSBib29sIHN5bWJvbFRhYmxlUHV0KAotICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsCi0gICAgYm9vbCBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IsIGJvb2wgaWdub3JlUmVh
ZE9ubHlFcnJvcnMpCisgICAgU3ltYm9sVGFibGVPYmplY3RUeXBlKiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcywKKyAgICBib29sIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgYm9vbCBp
Z25vcmVSZWFkT25seUVycm9ycywgV2F0Y2hwb2ludFNldComIHNldCkKIHsKLSAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVh
cCh2YWx1ZSkgPT0gSGVhcDo6aGVhcChvYmplY3QpKTsKLSAgICAKKworICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CisKICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiByZWc7Ci0gICAgV2F0
Y2hwb2ludFNldCogc2V0OwogICAgIHsKICAgICAgICAgU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxl
ID0gKm9iamVjdC0+c3ltYm9sVGFibGUoKTsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgdmVy
eSBzdXNwaWNpb3VzLiBXZSBzaG91bGRuJ3QgbmVlZCBhIEdDLXNhZmUgbG9jayBoZXJlLgogICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NjAxCi0g
ICAgICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLm1fbG9j
aywgZXhlYy0+dm0oKS5oZWFwKTsKKyAgICAgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIoc3ltYm9sVGFibGUubV9sb2NrLCB2bS5oZWFwKTsKICAgICAgICAgU3ltYm9sVGFibGU6
Ok1hcDo6aXRlcmF0b3IgaXRlciA9IHN5bWJvbFRhYmxlLmZpbmQobG9ja2VyLCBwcm9wZXJ0eU5h
bWUudWlkKCkpOwogICAgICAgICBpZiAoaXRlciA9PSBzeW1ib2xUYWJsZS5lbmQobG9ja2VyKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE1MCw0MyArMTcyLDYzIEBAIGlubGluZSBi
b29sIHN5bWJvbFRhYmxlUHV0KAogICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMs
IFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQorCisgICAgICAgIFNjb3BlT2Zmc2V0IG9mZnNldCA9IGZhc3RF
bnRyeS5zY29wZU9mZnNldCgpOworCisgICAgICAgIC8vIERlZmVuZCBhZ2FpbnN0IHRoZSBpbnNw
ZWN0b3IgYXNraW5nIGZvciBhIHZhciBhZnRlciBpdCBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0Lgor
ICAgICAgICBpZiAoIW9iamVjdC0+aXNWYWxpZFNjb3BlT2Zmc2V0KG9mZnNldCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgc2V0ID0gaXRlci0+dmFsdWUud2F0Y2hwb2lu
dFNldCgpOwotICAgICAgICByZWcgPSAmb2JqZWN0LT52YXJpYWJsZUF0KGZhc3RFbnRyeS5zY29w
ZU9mZnNldCgpKTsKKyAgICAgICAgaWYgKHN5bWJvbFRhYmxlUHV0TW9kZSA9PSBTeW1ib2xUYWJs
ZVB1dE1vZGU6OldpdGhBdHRyaWJ1dGVzKQorICAgICAgICAgICAgaXRlci0+dmFsdWUuc2V0QXR0
cmlidXRlcyhhdHRyaWJ1dGVzKTsKKyAgICAgICAgcmVnID0gJm9iamVjdC0+dmFyaWFibGVBdChv
ZmZzZXQpOwogICAgIH0KICAgICAvLyBJJ2QgcHJlZmVyIHdlIG5vdCBob2xkIGxvY2sgd2hpbGUg
ZXhlY3V0aW5nIGJhcnJpZXJzLCBzaW5jZSBJIHByZWZlciB0byByZXNlcnZlCiAgICAgLy8gdGhl
IHJpZ2h0IGZvciBiYXJyaWVycyB0byBiZSBhYmxlIHRvIHRyaWdnZXIgR0MuIEFuZCBJIGRvbid0
IHdhbnQgdG8gaG9sZCBWTQogICAgIC8vIGxvY2tzIHdoaWxlIEdDJ2luZy4KICAgICByZWctPnNl
dCh2bSwgb2JqZWN0LCB2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFN5bWJvbFRhYmxlT2JqZWN0VHlwZT4KK2lubGluZSBib29sIHN5bWJvbFRhYmxlUHV0
VG91Y2hXYXRjaHBvaW50U2V0KAorICAgIFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
CisgICAgYm9vbCBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IsIGJvb2wgaWdub3JlUmVhZE9ubHlF
cnJvcnMpCit7CisgICAgV2F0Y2hwb2ludFNldCogc2V0ID0gbnVsbHB0cjsKKyAgICB1bnNpZ25l
ZCBhdHRyaWJ1dGVzID0gMDsKKyAgICBib29sIHJlc3VsdCA9IHN5bWJvbFRhYmxlUHV0PFN5bWJv
bFRhYmxlUHV0TW9kZTo6V2l0aG91dEF0dHJpYnV0ZXM+KG9iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yLCBpZ25vcmVS
ZWFkT25seUVycm9ycywgc2V0KTsKICAgICBpZiAoc2V0KQogICAgICAgICBWYXJpYWJsZVdyaXRl
RmlyZURldGFpbDo6dG91Y2goc2V0LCBvYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3ltYm9s
VGFibGVPYmplY3RUeXBlPgotaW5saW5lIGJvb2wgc3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRl
cygKLSAgICBTeW1ib2xUYWJsZU9iamVjdFR5cGUqIG9iamVjdCwgVk0mIHZtLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLAotICAgIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMp
CitpbmxpbmUgYm9vbCBzeW1ib2xUYWJsZVB1dEludmFsaWRhdGVXYXRjaHBvaW50U2V0KAorICAg
IFN5bWJvbFRhYmxlT2JqZWN0VHlwZSogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsCisgICAgYm9vbCBzaG91bGRUaHJvd1Jl
YWRPbmx5RXJyb3IsIGJvb2wgaWdub3JlUmVhZE9ubHlFcnJvcnMpCiB7Ci0gICAgQVNTRVJUKCFI
ZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKG9iamVj
dCkpOworICAgIFdhdGNocG9pbnRTZXQqIHNldCA9IG51bGxwdHI7CisgICAgdW5zaWduZWQgYXR0
cmlidXRlcyA9IDA7CisgICAgYm9vbCByZXN1bHQgPSBzeW1ib2xUYWJsZVB1dDxTeW1ib2xUYWJs
ZVB1dE1vZGU6OldpdGhvdXRBdHRyaWJ1dGVzPihvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIGF0dHJpYnV0ZXMsIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3JlUmVhZE9u
bHlFcnJvcnMsIHNldCk7CisgICAgaWYgKHNldCkKKyAgICAgICAgc2V0LT5pbnZhbGlkYXRlKFZh
cmlhYmxlV3JpdGVGaXJlRGV0YWlsKG9iamVjdCwgcHJvcGVydHlOYW1lKSk7IC8vIERvbid0IG1l
c3MgYXJvdW5kIC0gaWYgd2UgaGFkIGZvdW5kIHRoaXMgc3RhdGljYWxseSwgd2Ugd291bGQgaGF2
ZSBpbnZhbGlkYXRlZCBpdC4KKyAgICByZXR1cm4gcmVzdWx0OworfQogCi0gICAgV3JpdGVCYXJy
aWVyQmFzZTxVbmtub3duPiogcmVnOwotICAgIFdhdGNocG9pbnRTZXQqIHNldDsKLSAgICB7Ci0g
ICAgICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9ICpvYmplY3QtPnN5bWJvbFRhYmxlKCk7
Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLm1fbG9jayk7
Ci0gICAgICAgIFN5bWJvbFRhYmxlOjpNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBzeW1ib2xUYWJsZS5m
aW5kKGxvY2tlciwgcHJvcGVydHlOYW1lLnVpZCgpKTsKLSAgICAgICAgaWYgKGl0ZXIgPT0gc3lt
Ym9sVGFibGUuZW5kKGxvY2tlcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IFN5bWJvbFRhYmxlRW50cnkmIGVudHJ5ID0gaXRlci0+dmFsdWU7Ci0gICAgICAgIEFTU0VSVCgh
ZW50cnkuaXNOdWxsKCkpOwotICAgICAgICBzZXQgPSBlbnRyeS53YXRjaHBvaW50U2V0KCk7Ci0g
ICAgICAgIGVudHJ5LnNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0gICAgICAgIHJlZyA9ICZv
YmplY3QtPnZhcmlhYmxlQXQoZW50cnkuc2NvcGVPZmZzZXQoKSk7Ci0gICAgfQotICAgIHJlZy0+
c2V0KHZtLCBvYmplY3QsIHZhbHVlKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFN5bWJvbFRhYmxlT2Jq
ZWN0VHlwZT4KK2lubGluZSBib29sIHN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXNUb3VjaFdh
dGNocG9pbnRTZXQoCisgICAgU3ltYm9sVGFibGVPYmplY3RUeXBlKiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwKKyAgICBKU1ZhbHVlIHZhbHVlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKQoreworICAgIFdhdGNocG9pbnRTZXQqIHNldCA9IG51bGxwdHI7
CisgICAgYm9vbCBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IgPSBmYWxzZTsKKyAgICBib29sIGln
bm9yZVJlYWRPbmx5RXJyb3JzID0gdHJ1ZTsKKyAgICBib29sIHJlc3VsdCA9IHN5bWJvbFRhYmxl
UHV0PFN5bWJvbFRhYmxlUHV0TW9kZTo6V2l0aEF0dHJpYnV0ZXM+KG9iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yLCBp
Z25vcmVSZWFkT25seUVycm9ycywgc2V0KTsKICAgICBpZiAoc2V0KQogICAgICAgICBWYXJpYWJs
ZVdyaXRlRmlyZURldGFpbDo6dG91Y2goc2V0LCBvYmplY3QsIHByb3BlcnR5TmFtZSk7Ci0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRl
eCBhMjkwZGRjOWU1ODFhY2Q2MzQzMDE3MDBiYWY4MjdjYTFhNGVmZDAyLi5kNGYwMDFkMjhmYmQz
ZTk4OTNmMzE5YjhiMzAwMmQxYzAxMjllYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBKU0RPTVdp
bmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50KCkKIHsKICAgICBBU1NFUlQobV9pbXBsLT5kb2N1bWVu
dCgpKTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxFeGVjKCk7Ci0gICAgc3ltYm9sVGFi
bGVQdXRXaXRoQXR0cmlidXRlcyh0aGlzLCBleGVjLT52bSgpLCBleGVjLT52bSgpLnByb3BlcnR5
TmFtZXMtPmRvY3VtZW50LCB0b0pTKGV4ZWMsIHRoaXMsIG1faW1wbC0+ZG9jdW1lbnQoKSksIERv
bnREZWxldGUgfCBSZWFkT25seSk7CisgICAgc3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlc1Rv
dWNoV2F0Y2hwb2ludFNldCh0aGlzLCBleGVjLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmRv
Y3VtZW50LCB0b0pTKGV4ZWMsIHRoaXMsIG1faW1wbC0+ZG9jdW1lbnQoKSksIERvbnREZWxldGUg
fCBSZWFkT25seSk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NV2luZG93QmFz
ZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>