<?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>117262</bug_id>
          
          <creation_ts>2013-06-05 10:12:26 -0700</creation_ts>
          <short_desc>Disambiguate between CallFrame bytecodeOffset and codeOriginIndex</short_desc>
          <delta_ts>2013-06-06 11:18:10 -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>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>
          <dependson>117312</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>897455</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-05 10:12:26 -0700</bug_when>
    <thetext>We should be able to discern whether a CallFrame (once fully reified) ArgumentCount tag is a bytecodeOffset or a codeOriginIndex.  This change will flag the codeOriginIndex by encoding it as a handle which always has the high bit set.  If the ArgumentCount tag word has its high bit set, then we have a codeOriginIndex, else we have a bytecodeOffset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897616</commentid>
    <comment_count>1</comment_count>
      <attachid>203896</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-05 18:27:14 -0700</bug_when>
    <thetext>Created attachment 203896
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897617</commentid>
    <comment_count>2</comment_count>
      <attachid>203896</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-05 18:27:54 -0700</bug_when>
    <thetext>Comment on attachment 203896
the patch.

Forgot the ChangeLogs.  Will re-upload with ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897619</commentid>
    <comment_count>3</comment_count>
      <attachid>203897</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-05 18:43:42 -0700</bug_when>
    <thetext>Created attachment 203897
corrected patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897620</commentid>
    <comment_count>4</comment_count>
      <attachid>203897</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-06-05 18:56:00 -0700</bug_when>
    <thetext>Comment on attachment 203897
corrected patch. 

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

r=me

&gt; Source/JavaScriptCore/interpreter/CallFrame.cpp:45
&gt; +unsigned CallFrame::locationAsBytecodeOffset() const

This should ASSERT hasLocationAsBytecodeOffset().

&gt; Source/JavaScriptCore/interpreter/CallFrame.cpp:51
&gt; +void CallFrame::setLocationAsBytecodeOffset(unsigned offset)

This should ASSERT hasLocationAsBytecodeOffset() after the set -- or ASSERT that offset is not a CodeOrigin handle.

&gt; Source/JavaScriptCore/interpreter/CallFrameInlines.h:62
&gt; +inline void CallFrame::setLocationAsBytecodeOffset(unsigned offset)

This should ASSERT hasLocationAsBytecodeOffset() after the set -- or ASSERT that offset is not a CodeOrigin handle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897622</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-06-05 19:14:03 -0700</bug_when>
    <thetext>Landed in r151250: &lt;http://trac.webkit.org/changeset/151250&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203896</attachid>
            <date>2013-06-05 18:27:14 -0700</date>
            <delta_ts>2013-06-05 18:27:54 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-117262.patch</filename>
            <type>text/plain</type>
            <size>9817</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkocmV2
aXNpb24gMTUxMjQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmln
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsMjEgQEAgc3RydWN0IENvZGVPcmlnaW4g
ewogICAgIFZlY3RvcjxDb2RlT3JpZ2luPiBpbmxpbmVTdGFjaygpIGNvbnN0OwogICAgIAogICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworCisgICAgc3RhdGljIGlubGluZSBib29s
IGlzSGFuZGxlKHVpbnQzMl90IGJpdHMpIHsgcmV0dXJuICEhKGJpdHMgJiBoYW5kbGVGbGFnKTsg
fQorICAgIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgZW5jb2RlSGFuZGxlKHVpbnQzMl90IGJpdHMp
CisgICAgeworICAgICAgICBBU1NFUlQoIWlzSGFuZGxlKGJpdHMpKTsKKyAgICAgICAgcmV0dXJu
IGJpdHMgfCBoYW5kbGVGbGFnOworICAgIH0KKyAgICBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGRl
Y29kZUhhbmRsZSh1aW50MzJfdCBiaXRzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSGFuZGxl
KGJpdHMpKTsKKyAgICAgICAgcmV0dXJuIGJpdHMgJiB+aGFuZGxlRmxhZzsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGhhbmRsZUZsYWcgPSAoMSA8PCAzMSk7
CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEz
LDcgKzMxMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luQ2FsbChDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIENhbGxCZWdpblRva2VuJiB0b2tlbikKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGlu
ZGV4ID0gbV9leGNlcHRpb25DaGVja3Muc2l6ZSgpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMihpbmRleCksIHRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6
OkFyZ3VtZW50Q291bnQpKSk7CisgICAgICAgIHVuc2lnbmVkIGhhbmRsZSA9IENvZGVPcmlnaW46
OmVuY29kZUhhbmRsZShpbmRleCk7CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGhhbmRs
ZSksIHRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50
Q291bnQpKSk7CiAgICAgICAgIHRva2VuLnNldChjb2RlT3JpZ2luLCBpbmRleCk7CiAgICAgfQog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHJldmlzaW9u
IDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdf
SklUKQogCisjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0NDYWxs
SGVscGVycy5oIgogI2luY2x1ZGUgIkRGR1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2lu
Y2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCkBAIC00NjYsNyArNDY3LDcgQEAgc3RhdGljIGJv
b2wgdHJ5QnVpbGRHZXRCeUlETGlzdChFeGVjU3RhdAogICAgICAgICAgICAgLy8gcGxhY2UgdGhh
dCB3ZSBtYWRlIGl0IGZyb20uIEl0IGp1c3Qgc28gaGFwcGVucyB0byBiZSB0aGUgcGxhY2UgdGhh
dCB3ZSBhcmUgYXQKICAgICAgICAgICAgIC8vIHJpZ2h0IG5vdyEKICAgICAgICAgICAgIHN0dWJK
aXQuc3RvcmUzMigKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KGV4ZWMtPmNvZGVPcmlnaW5JbmRleEZvckRGRygpKSwKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKGV4ZWMtPmxvY2F0aW9uQXNSYXdCaXRzKCkpLAogICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rl
cj4oSlNTdGFjazo6QXJndW1lbnRDb3VudCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
b3BlcmF0aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE1MTI0OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPcGVyYXRp
b25zLmgiCkBAIC00MSwxMyArNDIsMTMgQEAgSlNTdGFjayogQ2FsbEZyYW1lOjpzdGFjaygpCiAj
ZW5kaWYKIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi11bnNpZ25lZCBDYWxsRnJhbWU6OmJ5dGVj
b2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgpIGNvbnN0Cit1bnNpZ25lZCBDYWxsRnJhbWU6OmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsK
ICAgICByZXR1cm4gY3VycmVudFZQQygpIC0gY29kZUJsb2NrKCktPmluc3RydWN0aW9ucygpLmJl
Z2luKCk7CiB9CiAKLXZvaWQgQ2FsbEZyYW1lOjpzZXRCeXRlY29kZU9mZnNldEZvck5vbkRGR0Nv
ZGUodW5zaWduZWQgb2Zmc2V0KQordm9pZCBDYWxsRnJhbWU6OnNldExvY2F0aW9uQXNCeXRlY29k
ZU9mZnNldCh1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsKICAg
ICBzZXRDdXJyZW50VlBDKGNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgb2Zm
c2V0KTsKQEAgLTU1LDExICs1NiwxMSBAQCB2b2lkIENhbGxGcmFtZTo6c2V0Qnl0ZWNvZGVPZmZz
ZXRGb3JOb25ECiAjZWxzZQogSW5zdHJ1Y3Rpb24qIENhbGxGcmFtZTo6Y3VycmVudFZQQygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsg
Ynl0ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCk7CisgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpICsgbG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CiB9CiB2
b2lkIENhbGxGcmFtZTo6c2V0Q3VycmVudFZQQyhJbnN0cnVjdGlvbiogdnBjKQogewotICAgIHNl
dEJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSh2cGMgLSBjb2RlQmxvY2soKS0+aW5zdHJ1Y3Rp
b25zKCkuYmVnaW4oKSk7CisgICAgc2V0TG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KHZwYyAtIGNv
ZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKIH0KICNlbmRpZgogICAgIApAQCAt
MTE5LDcgKzEyMCw3IEBAIENhbGxGcmFtZSogQ2FsbEZyYW1lOjp0cnVlQ2FsbEZyYW1lKEFic3QK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
dW5zaWduZWQgaW5kZXggPSBjb2RlT3JpZ2luSW5kZXhGb3JERkcoKTsKKyAgICAgICAgdW5zaWdu
ZWQgaW5kZXggPSBsb2NhdGlvbkFzQ29kZU9yaWdpbkluZGV4KCk7CiAgICAgICAgIEFTU0VSVCht
YWNoaW5lQ29kZUJsb2NrLT5jYW5HZXRDb2RlT3JpZ2luKGluZGV4KSk7CiAgICAgICAgIGlmICgh
bWFjaGluZUNvZGVCbG9jay0+Y2FuR2V0Q29kZU9yaWdpbihpbmRleCkpIHsKICAgICAgICAgICAg
IC8vIFNlZSBhYm92ZS4gSW4gcmVsZWFzZSBidWlsZHMsIHdlIHRyeSB0byBwcm90ZWN0IG91cnNl
bHZlcyBmcm9tIGNyYXNoaW5nIGV2ZW4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bw
b3N0LmNvbSkKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywg
MjAwOCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMTEzLDIyICsxMTMsMTYgQEAgbmFtZXNwYWNlIEpTQyAgewogICAg
ICAgICB2b2lkIGNsZWFyUmV0dXJuUEMoKSB7IHJlZ2lzdGVycygpW0pTU3RhY2s6OlJldHVyblBD
XSA9IHN0YXRpY19jYXN0PEluc3RydWN0aW9uKj4oMCk7IH0KICNlbmRpZgogICAgICAgICBBYnN0
cmFjdFBDIGFic3RyYWN0UmV0dXJuUEMoVk0mIHZtKSB7IHJldHVybiBBYnN0cmFjdFBDKHZtLCB0
aGlzKTsgfQotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2Rl
T2Zmc2V0Rm9yTm9uREZHQ29kZSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldEJ5dGVjb2RlT2Zm
c2V0Rm9yTm9uREZHQ29kZSh1bnNpZ25lZCBvZmZzZXQpOwotI2Vsc2UKLSAgICAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCkgY29uc3QKLSAgICAgICAgewotICAgICAg
ICAgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzW0pTU3Rh
Y2s6OkFyZ3VtZW50Q291bnRdLnRhZygpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2
b2lkIHNldEJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSh1bnNpZ25lZCBvZmZzZXQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChjb2RlQmxvY2soKSk7Ci0gICAgICAgICAgICB0aGlz
W0pTU3RhY2s6OkFyZ3VtZW50Q291bnRdLnRhZygpID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zm
c2V0KTsKLSAgICAgICAgfQotI2VuZGlmCisKKyAgICAgICAgYm9vbCBoYXNMb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgYm9vbCBoYXNMb2NhdGlvbkFzQ29kZU9yaWdp
bkluZGV4KCkgY29uc3Q7CisKKyAgICAgICAgdW5zaWduZWQgbG9jYXRpb25Bc1Jhd0JpdHMoKSBj
b25zdDsKKyAgICAgICAgdW5zaWduZWQgbG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkgY29uc3Q7
CisgICAgICAgIHVuc2lnbmVkIGxvY2F0aW9uQXNDb2RlT3JpZ2luSW5kZXgoKSBjb25zdDsKKwor
ICAgICAgICB2b2lkIHNldExvY2F0aW9uQXNSYXdCaXRzKHVuc2lnbmVkIG9mZnNldCk7CisgICAg
ICAgIHZvaWQgc2V0TG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIG9mZnNldCk7CiAK
ICAgICAgICAgUmVnaXN0ZXIqIGZyYW1lRXh0ZW50KCkKICAgICAgICAgewpAQCAtMTQxLDcgKzEz
NSw2IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAg
ICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUoKSBjb25zdCB7IHJldHVybiB0aGlz
W0pTU3RhY2s6OlJldHVyblBDXS5hc0lubGluZUNhbGxGcmFtZSgpOyB9Ci0gICAgICAgIHVuc2ln
bmVkIGNvZGVPcmlnaW5JbmRleEZvckRGRygpIGNvbnN0IHsgcmV0dXJuIHRoaXNbSlNTdGFjazo6
QXJndW1lbnRDb3VudF0udGFnKCk7IH0KICNlbHNlCiAgICAgICAgIC8vIFRoaXMgd2lsbCBuZXZl
ciBiZSBjYWxsZWQgaWYgIUVOQUJMRShERkdfSklUKSBzaW5jZSBhbGwgY2FsbHMgc2hvdWxkIGJl
IGd1YXJkZWQgYnkKICAgICAgICAgLy8gaXNJbmxpbmVDYWxsRnJhbWUoKS4gQnV0IHRvIG1ha2Ug
aXQgZWFzaWVyIHRvIHdyaXRlIGNvZGUgd2l0aG91dCBoYXZpbmcgYSBidW5jaCBvZgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CShyZXZpc2lvbiAxNTEyNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzMsOSArNTczLDkgQEAgc3RhdGlj
IHVuc2lnbmVkIGdldEJ5dGVjb2RlT2Zmc2V0Rm9yQ2FsbAogI2lmIEVOQUJMRShKSVQpCiAjaWYg
RU5BQkxFKERGR19KSVQpCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChjb2RlQmxv
Y2stPmppdFR5cGUoKSkpCi0gICAgICAgIHJldHVybiBjb2RlQmxvY2stPmNvZGVPcmlnaW4oY2Fs
bEZyYW1lLT5jb2RlT3JpZ2luSW5kZXhGb3JERkcoKSkuYnl0ZWNvZGVJbmRleDsKKyAgICAgICAg
cmV0dXJuIGNvZGVCbG9jay0+Y29kZU9yaWdpbihjYWxsRnJhbWUtPmxvY2F0aW9uQXNDb2RlT3Jp
Z2luSW5kZXgoKSkuYnl0ZWNvZGVJbmRleDsKICNlbmRpZgotICAgIHJldHVybiBjYWxsRnJhbWUt
PmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgpOworICAgIHJldHVybiBjYWxsRnJhbWUtPmxv
Y2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOwogI2VuZGlmCiB9CiAKQEAgLTYwMSwxNCArNjAxLDE0
IEBAIHN0YXRpYyBDYWxsRnJhbWUqIGdldENhbGxlckluZm8oVk0qIHZtLCAKICAgICBpZiAod2Fz
Q2FsbGVkQnlIb3N0KSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIGlmIChjYWxsZXJD
b2RlQmxvY2sgJiYgSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNhbGxlckNvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICAgICAgdW5zaWduZWQgY29kZU9yaWdpbkluZGV4ID0gY2FsbEZy
YW1lLT5jYWxsZXJGcmFtZSgpLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygpLT5jb2RlT3JpZ2lu
SW5kZXhGb3JERkcoKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNvZGVPcmlnaW5JbmRleCA9IGNh
bGxGcmFtZS0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZsYWcoKS0+bG9jYXRp
b25Bc0NvZGVPcmlnaW5JbmRleCgpOwogICAgICAgICAgICAgQ29kZU9yaWdpbiBvcmlnaW4gPSBj
YWxsZXJDb2RlQmxvY2stPmNvZGVPcmlnaW4oY29kZU9yaWdpbkluZGV4KTsKICAgICAgICAgICAg
IGJ5dGVjb2RlT2Zmc2V0ID0gb3JpZ2luLmJ5dGVjb2RlSW5kZXg7CiAgICAgICAgICAgICBpZiAo
SW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBvcmlnaW4uaW5saW5lQ2FsbEZyYW1l
KQogICAgICAgICAgICAgICAgIGNhbGxlckNvZGVCbG9jayA9IGlubGluZUNhbGxGcmFtZS0+YmFz
ZWxpbmVDb2RlQmxvY2soKTsKICAgICAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIGJ5
dGVjb2RlT2Zmc2V0ID0gdHJ1ZUNhbGxlckZyYW1lLT5ieXRlY29kZU9mZnNldEZvck5vbkRGR0Nv
ZGUoKTsKKyAgICAgICAgICAgIGJ5dGVjb2RlT2Zmc2V0ID0gdHJ1ZUNhbGxlckZyYW1lLT5sb2Nh
dGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKICAgICB9IGVsc2UgewogI2lmIEVOQUJMRShERkdfSklU
KQogICAgICAgICBpZiAoY2FsbEZyYW1lLT5pc0lubGluZUNhbGxGcmFtZSgpKSB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTUxMjQ5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2MjAsNyArMTYyMCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBv
cF8KICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAg
ICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKIAotICAgICAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldCA9IGNhbGxGcmFtZS0+Ynl0ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCk7CisgICAg
ICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1lLT5sb2NhdGlvbkFzQnl0ZWNv
ZGVPZmZzZXQoKTsKICAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgQnlW
YWxJbmZvJiBieVZhbEluZm8gPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8o
Ynl0ZWNvZGVPZmZzZXQgLSAxKTsKICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRp
bmUpOwpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3Bf
cHV0X2J5X3ZhbAogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVl
KTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1lLT5ieXRlY29kZU9mZnNldEZvck5vbkRGR0NvZGUo
KTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0aW9u
QXNCeXRlY29kZU9mZnNldCgpOwogICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwogICAg
ICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdldEJ5
VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwogICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5z
dHViUm91dGluZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203897</attachid>
            <date>2013-06-05 18:43:42 -0700</date>
            <delta_ts>2013-06-05 18:55:59 -0700</delta_ts>
            <desc>corrected patch. </desc>
            <filename>bug-117262.patch</filename>
            <type>text/plain</type>
            <size>26229</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUxMjQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDEzLTA2LTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBE
aXNhbWJpZ3VhdGUgYmV0d2VlbiBDYWxsRnJhbWUgYnl0ZWNvZGVPZmZzZXQgYW5kIGNvZGVPcmln
aW5JbmRleC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExNzI2Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIHdyaXRpbmcgdG8gdGhlIEFyZ3VtZW50Q291bnQgdGFnIGluIENhbGxGcmFtZSwgd2Ug
d2lsbCBzZXQgdGhlIGhpZ2gKKyAgICAgICAgYml0IGlmIHRoZSB3cml0dGVuIHZhbHVlIGlzIGEg
Y29kZU9yaWdpbkluZGV4LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAg
KENvZGVPcmlnaW4pOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjppc0hhbmRsZSk6CisgICAg
ICAgIChKU0M6OkNvZGVPcmlnaW46OmVuY29kZUhhbmRsZSk6CisgICAgICAgIChKU0M6OkNvZGVP
cmlnaW46OmRlY29kZUhhbmRsZSk6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6SklUQ29tcGlsZXI6OmJlZ2luQ2FsbCk6CisgICAgICAgICogZGZn
L0RGR1JlcGF0Y2guY3BwOgorICAgICAgICAoSlNDOjpERkc6OnRyeUJ1aWxkR2V0QnlJRExpc3Qp
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkNh
bGxGcmFtZTo6bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q2FsbEZy
YW1lOjpzZXRMb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpDYWxsRnJh
bWU6OmN1cnJlbnRWUEMpOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnNldEN1cnJlbnRWUEMp
OgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OnRydWVDYWxsRnJhbWUpOgorICAgICAgICAqIGlu
dGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAoRXhlY1N0YXRlKToKKyAgICAgICAgKEpT
Qzo6RXhlY1N0YXRlOjppbmxpbmVDYWxsRnJhbWUpOgorICAgICAgICAqIGludGVycHJldGVyL0Nh
bGxGcmFtZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6aGFzTG9j
YXRpb25Bc0J5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpoYXNMb2Nh
dGlvbkFzQ29kZU9yaWdpbkluZGV4KToKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpsb2NhdGlv
bkFzUmF3Qml0cyk6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6c2V0TG9jYXRpb25Bc1Jhd0Jp
dHMpOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWU6OmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6c2V0TG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KToK
KyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjpsb2NhdGlvbkFzQ29kZU9yaWdpbkluZGV4KToKKyAg
ICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OmdldEJ5
dGVjb2RlT2Zmc2V0Rm9yQ2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6Z2V0Q2FsbGVySW5mbyk6
CisgICAgICAgICogaml0L0pJVFN0dWJzLmNwcDoKKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJf
RlVOQ1RJT04pOgorCiAyMDEzLTA2LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgZm91cnRoVGllcjogQ2xlYW4gdXAgQWJzdHJhY3RWYWx1ZQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1MTI0OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC00MjksNiArNDI5LDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZUNsb3N1cmUuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAgXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZUlubGluZXMuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9KU1N0YWNrLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24gMTUxMjQ5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzOTgsNiArMjM5
OCwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxpbnRlcnByZXRlclxDYWxsRnJhbWVJbmxpbmVzLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGludGVycHJldGVyXENhbGxGcmFtZUNs
b3N1cmUuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTU0OSw2ICs1NDksNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW50
ZXJwcmV0ZXJcQWJzdHJhY3RQQy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGlu
dGVycHJldGVyXENhY2hlZENhbGwuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxp
bnRlcnByZXRlclxDYWxsRnJhbWUuaCIgLz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxp
bnRlcnByZXRlclxDYWxsRnJhbWVJbmxpbmVzLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW50ZXJwcmV0ZXJcQ2FsbEZyYW1lQ2xvc3VyZS5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGludGVycHJldGVyXEludGVycHJldGVyLmgiIC8+DQogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcSlNTdGFjay5oIiAvPg0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE1
MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtMTE5Niw2ICsx
MTk2LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXENhbGxGcmFt
ZS5oIj4NCiAgICAgICA8RmlsdGVyPmludGVycHJldGVyPC9GaWx0ZXI+DQogICAgIDwvQ2xJbmNs
dWRlPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXENhbGxGcmFtZUlu
bGluZXMuaCI+DQorICAgICAgPEZpbHRlcj5pbnRlcnByZXRlcjwvRmlsdGVyPg0KKyAgICA8L0Ns
SW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxDYWxsRnJh
bWVDbG9zdXJlLmgiPg0KICAgICAgIDxGaWx0ZXI+aW50ZXJwcmV0ZXI8L0ZpbHRlcj4NCiAgICAg
PC9DbEluY2x1ZGU+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05NTEsMTkgKzk1MSwyMCBAQAog
CQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJF
RjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFMjBDRTlEMTVGMDRBOTUwMERG
MzQzMCAvKiBMTEludENMb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMjBDRTlCMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCAq
LzsgfTsKIAkJRkUyMENFOUUxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMjBDRTlDMTVGMDRBOTUw
MERGMzQzMCAvKiBMTEludENMb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRkUyNDU5NjIxNzYwMUQ1ODAwNzRGQ0UwIC8qIENhbGxGcmFtZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
MjQ1OTYxMTc2MDFENTgwMDc0RkNFMCAvKiBDYWxsRnJhbWVJbmxpbmVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU0QTMzMUYxNUJEMkUwNzAw
NkY1NEYzIC8qIFZNSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFNEEzMzFEMTVCRDJFMDcwMDZGNTRGMyAvKiBWTUluc3BlY3Rvci5j
cHAgKi87IH07CiAJCUZFNEEzMzIwMTVCRDJFMDcwMDZGNTRGMyAvKiBWTUluc3BlY3Rvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QTMzMUUxNUJE
MkUwNzAwNkY1NEYzIC8qIFZNSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU5NDAzMjIxNzQ0NDI1OTAwNDdDRjZFIC8qIEpJVFN0
dWJzWDg2Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRTk0MDMyMTE3NDQ0MjU5MDA0N0NGNkUgLyogSklUU3R1YnNYODZDb21tb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUNFNzQ1NzE3
NDU0NTY1MDBGRjkzMDAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVDRTc0NTYxNzQ1NDU2NTAwRkY5
MzAwIC8qIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcCAqLzsgfTsKIAkJRkVEMjg3QjIxNUVD
OUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNv
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlG
RUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8q
IFdhdGNoZG9nLmNwcCAqLzsgfTsKKwkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNo
ZG9nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5
NEYyQzE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2dNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkVEOTRGMkQxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCAqLzsgfTsK
IAkJRkVFMzE0N0QxNzRBQUNBRjAwMTNCQ0FDIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVFMzE0N0MxNzRB
QUNBRjAwMTNCQ0FDIC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwICovOyB9OwogCQlGRUY2ODM1
RTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRjY4MzVBMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRT
dHVic0FSTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFRjY4MzVGMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic0FSTXY3LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUY2ODM1QjE3NDM0M0NDMDBB
MzJFMjUgLyogSklUU3R1YnNBUk12Ny5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZFRjY4MzYwMTc0MzQzQ0MwMEEzMkUyNSAvKiBKSVRTdHVic1g4
Nl82NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVG
NjgzNUMxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzWDg2XzY0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVGNjgzNjExNzQzNDNDQzAwQTMy
RTI1IC8qIEpJVFN0dWJzWDg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRUY2ODM1RDE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNYODYuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRUQ5NEYyRTE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9n
LmNwcCAqLzsgfTsKLQkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9O307Ci0JCUZFRDk0RjMwMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5
NEYyRDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovOyB9OwogLyogRW5kIFBC
WEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBz
ZWN0aW9uICovCkBAIC0xOTg2LDE5ICsxOTg3LDIwIEBACiAJCUY2OTJBODg3MDI1NTU5N0QwMUZG
NjBGNyAvKiBKU0NKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ0pTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUZFMjBDRTlCMTVGMDRBOTUwMERGMzQzMCAvKiBMTElu
dENMb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExMSW50Q0xv
b3AuY3BwOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMjBDRTlDMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMSW50Q0xvb3AuaDsgcGF0aCA9IGxsaW50L0xM
SW50Q0xvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkUyNDU5NjExNzYwMUQ1
ODAwNzRGQ0UwIC8qIENhbGxGcmFtZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FsbEZyYW1lSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRTRBMzMxRDE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVk1JbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTRBMzMxRTE1QkQyRTA3MDA2RjU0RjMgLyogVk1JbnNwZWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1JbnNwZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU5NDAzMjExNzQ0NDI1OTAwNDdDRjZFIC8qIEpJVFN0
dWJzWDg2Q29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVFN0dWJz
WDg2Q29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQ0U3NDU2MTc0NTQ1
NjUwMEZGOTMwMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTElu
dE9wY29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5o
OyBwYXRoID0gbGxpbnQvTExJbnRPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhdGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRkVEOTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUZFRDk0RjJEMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRjaGRvZ01hYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRTMxNDdDMTc0QUFDQUYwMDEzQkNBQyAvKiBN
YWNyb0Fzc2VtYmxlckFSTXY3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRUY2ODM1QTE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNBUk0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkVGNjgzNUIxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNBUk12Ny5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGRUY2ODM1QzE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNY
ODZfNjQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUU3R1YnNYODZfNjQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGNjgzNUQxNzQzNDNDQzAwQTMyRTI1
IC8qIEpJVFN0dWJzWDg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVFN0
dWJzWDg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFRDk0RjJCMTcxRTNFMjMw
MEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXYXRjaGRvZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFRDk0RjJD
MTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXYXRjaGRvZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRUQ5NEYy
RDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2F0Y2hkb2dNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0yMjczLDYgKzIyNzUsNyBAQAogCQkJ
CTE0MjlEOERCMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuY3BwICovLAogCQkJCTE0MjlE
OERDMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuaCAqLywKIAkJCQlBN0Y4NjlFQzBGOTVD
MkVDMDA1NTg2OTcgLyogQ2FsbEZyYW1lQ2xvc3VyZS5oICovLAorCQkJCUZFMjQ1OTYxMTc2MDFE
NTgwMDc0RkNFMCAvKiBDYWxsRnJhbWVJbmxpbmVzLmggKi8sCiAJCQkJMTQyOUQ3RDMwRUQyMTI4
MjAwQjg5NjE5IC8qIEludGVycHJldGVyLmNwcCAqLywKIAkJCQkxNDI5RDc3QjBFRDIwRDczMDBC
ODk2MTkgLyogSW50ZXJwcmV0ZXIuaCAqLywKIAkJCQkxNDI5RDg1QjBFRDIxOEU5MDBCODk2MTkg
LyogSlNTdGFjay5jcHAgKi8sCkBAIC0zMjU5LDYgKzMyNjIsNyBAQAogCQkJCTBGNjM5NDU1MTVE
MDcwNTcwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThD
M0U3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkVGNjgzNUYxNzQzNDNDQzAwQTMyRTI1IC8qIEpJVFN0dWJzQVJNdjcuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUZFMjQ1OTYyMTc2MDFENTgwMDc0RkNFMCAvKiBDYWxsRnJhbWVJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRUY2ODM2MDE3NDM0M0NDMDBBMzJFMjUgLyogSklUU3R1YnNY
ODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRjY4MzVFMTc0MzQzQ0MwMEEzMkUyNSAvKiBK
SVRTdHVic0FSTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU5NDAzMjIxNzQ0NDI1OTAwNDdDRjZF
IC8qIEpJVFN0dWJzWDg2Q29tbW9uLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkocmV2aXNpb24gMTUxMjQ5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAkod29ya2luZyBjb3B5
KQpAQCAtODgsNiArODgsMjEgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIFZlY3RvcjxDb2Rl
T3JpZ2luPiBpbmxpbmVTdGFjaygpIGNvbnN0OwogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OworCisgICAgc3RhdGljIGlubGluZSBib29sIGlzSGFuZGxlKHVpbnQzMl90
IGJpdHMpIHsgcmV0dXJuICEhKGJpdHMgJiBoYW5kbGVGbGFnKTsgfQorICAgIHN0YXRpYyBpbmxp
bmUgdWludDMyX3QgZW5jb2RlSGFuZGxlKHVpbnQzMl90IGJpdHMpCisgICAgeworICAgICAgICBB
U1NFUlQoIWlzSGFuZGxlKGJpdHMpKTsKKyAgICAgICAgcmV0dXJuIGJpdHMgfCBoYW5kbGVGbGFn
OworICAgIH0KKyAgICBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGRlY29kZUhhbmRsZSh1aW50MzJf
dCBiaXRzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSGFuZGxlKGJpdHMpKTsKKyAgICAgICAg
cmV0dXJuIGJpdHMgJiB+aGFuZGxlRmxhZzsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IGhhbmRsZUZsYWcgPSAoMSA8PCAzMSk7CiB9OwogCiBzdHJ1Y3QgSW5s
aW5lQ2FsbEZyYW1lIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmgJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGJlZ2luQ2FsbChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxCZWdpblRv
a2VuJiB0b2tlbikKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gbV9leGNlcHRpb25D
aGVja3Muc2l6ZSgpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihpbmRleCksIHRhZ0Zv
cihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7
CisgICAgICAgIHVuc2lnbmVkIGhhbmRsZSA9IENvZGVPcmlnaW46OmVuY29kZUhhbmRsZShpbmRl
eCk7CisgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGhhbmRsZSksIHRhZ0ZvcihzdGF0aWNf
Y2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7CiAgICAgICAg
IHRva2VuLnNldChjb2RlT3JpZ2luLCBpbmRleCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAi
Q2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0NDYWxsSGVscGVycy5oIgogI2luY2x1
ZGUgIkRGR1NjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0
aXZlSklULmgiCkBAIC00NjYsNyArNDY3LDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlE
TGlzdChFeGVjU3RhdAogICAgICAgICAgICAgLy8gcGxhY2UgdGhhdCB3ZSBtYWRlIGl0IGZyb20u
IEl0IGp1c3Qgc28gaGFwcGVucyB0byBiZSB0aGUgcGxhY2UgdGhhdCB3ZSBhcmUgYXQKICAgICAg
ICAgICAgIC8vIHJpZ2h0IG5vdyEKICAgICAgICAgICAgIHN0dWJKaXQuc3RvcmUzMigKLSAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKGV4ZWMtPmNvZGVPcmlnaW5J
bmRleEZvckRGRygpKSwKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKGV4ZWMtPmxvY2F0aW9uQXNSYXdCaXRzKCkpLAogICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1l
bnRDb3VudCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgb3BlcmF0aW9uQ2FsbCA9IHN0
dWJKaXQuY2FsbCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAKKyNp
bmNsdWRlICJDYWxsRnJhbWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkBAIC00MSwxMyAr
NDIsMTMgQEAgSlNTdGFjayogQ2FsbEZyYW1lOjpzdGFjaygpCiAjZW5kaWYKIAogI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi11bnNpZ25lZCBDYWxsRnJhbWU6OmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZH
Q29kZSgpIGNvbnN0Cit1bnNpZ25lZCBDYWxsRnJhbWU6OmxvY2F0aW9uQXNCeXRlY29kZU9mZnNl
dCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsKICAgICByZXR1cm4gY3VycmVu
dFZQQygpIC0gY29kZUJsb2NrKCktPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiB9CiAKLXZvaWQg
Q2FsbEZyYW1lOjpzZXRCeXRlY29kZU9mZnNldEZvck5vbkRGR0NvZGUodW5zaWduZWQgb2Zmc2V0
KQordm9pZCBDYWxsRnJhbWU6OnNldExvY2F0aW9uQXNCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBv
ZmZzZXQpCiB7CiAgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsKICAgICBzZXRDdXJyZW50VlBDKGNv
ZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgb2Zmc2V0KTsKQEAgLTU1LDExICs1
NiwxMSBAQCB2b2lkIENhbGxGcmFtZTo6c2V0Qnl0ZWNvZGVPZmZzZXRGb3JOb25ECiAjZWxzZQog
SW5zdHJ1Y3Rpb24qIENhbGxGcmFtZTo6Y3VycmVudFZQQygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVPZmZzZXRGb3JO
b25ERkdDb2RlKCk7CisgICAgcmV0dXJuIGNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgbG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CiB9CiB2b2lkIENhbGxGcmFtZTo6c2V0
Q3VycmVudFZQQyhJbnN0cnVjdGlvbiogdnBjKQogewotICAgIHNldEJ5dGVjb2RlT2Zmc2V0Rm9y
Tm9uREZHQ29kZSh2cGMgLSBjb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSk7Cisg
ICAgc2V0TG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KHZwYyAtIGNvZGVCbG9jaygpLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpKTsKIH0KICNlbmRpZgogICAgIApAQCAtMTE5LDcgKzEyMCw3IEBAIENh
bGxGcmFtZSogQ2FsbEZyYW1lOjp0cnVlQ2FsbEZyYW1lKEFic3QKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdW5zaWduZWQgaW5kZXggPSBj
b2RlT3JpZ2luSW5kZXhGb3JERkcoKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBsb2NhdGlv
bkFzQ29kZU9yaWdpbkluZGV4KCk7CiAgICAgICAgIEFTU0VSVChtYWNoaW5lQ29kZUJsb2NrLT5j
YW5HZXRDb2RlT3JpZ2luKGluZGV4KSk7CiAgICAgICAgIGlmICghbWFjaGluZUNvZGVCbG9jay0+
Y2FuR2V0Q29kZU9yaWdpbihpbmRleCkpIHsKICAgICAgICAgICAgIC8vIFNlZSBhYm92ZS4gSW4g
cmVsZWFzZSBidWlsZHMsIHdlIHRyeSB0byBwcm90ZWN0IG91cnNlbHZlcyBmcm9tIGNyYXNoaW5n
IGV2ZW4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZy
YW1lLmgJKHJldmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAq
ICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOCwgMjAxMSwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTEzLDIyICsxMTMsMTYgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICB2b2lkIGNsZWFyUmV0
dXJuUEMoKSB7IHJlZ2lzdGVycygpW0pTU3RhY2s6OlJldHVyblBDXSA9IHN0YXRpY19jYXN0PElu
c3RydWN0aW9uKj4oMCk7IH0KICNlbmRpZgogICAgICAgICBBYnN0cmFjdFBDIGFic3RyYWN0UmV0
dXJuUEMoVk0mIHZtKSB7IHJldHVybiBBYnN0cmFjdFBDKHZtLCB0aGlzKTsgfQotI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29k
ZSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldEJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSh1
bnNpZ25lZCBvZmZzZXQpOwotI2Vsc2UKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXRG
b3JOb25ERkdDb2RlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGNvZGVC
bG9jaygpKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzW0pTU3RhY2s6OkFyZ3VtZW50Q291bnRd
LnRhZygpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldEJ5dGVjb2RlT2Zm
c2V0Rm9yTm9uREZHQ29kZSh1bnNpZ25lZCBvZmZzZXQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChjb2RlQmxvY2soKSk7Ci0gICAgICAgICAgICB0aGlzW0pTU3RhY2s6OkFyZ3VtZW50
Q291bnRdLnRhZygpID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0KTsKLSAgICAgICAgfQot
I2VuZGlmCisKKyAgICAgICAgYm9vbCBoYXNMb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSBjb25z
dDsKKyAgICAgICAgYm9vbCBoYXNMb2NhdGlvbkFzQ29kZU9yaWdpbkluZGV4KCkgY29uc3Q7CisK
KyAgICAgICAgdW5zaWduZWQgbG9jYXRpb25Bc1Jhd0JpdHMoKSBjb25zdDsKKyAgICAgICAgdW5z
aWduZWQgbG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkgY29uc3Q7CisgICAgICAgIHVuc2lnbmVk
IGxvY2F0aW9uQXNDb2RlT3JpZ2luSW5kZXgoKSBjb25zdDsKKworICAgICAgICB2b2lkIHNldExv
Y2F0aW9uQXNSYXdCaXRzKHVuc2lnbmVkKTsKKyAgICAgICAgdm9pZCBzZXRMb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQodW5zaWduZWQpOwogCiAgICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudCgp
CiAgICAgICAgIHsKQEAgLTE0MSw3ICsxMzUsNiBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgCiAj
aWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZy
YW1lKCkgY29uc3QgeyByZXR1cm4gdGhpc1tKU1N0YWNrOjpSZXR1cm5QQ10uYXNJbmxpbmVDYWxs
RnJhbWUoKTsgfQotICAgICAgICB1bnNpZ25lZCBjb2RlT3JpZ2luSW5kZXhGb3JERkcoKSBjb25z
dCB7IHJldHVybiB0aGlzW0pTU3RhY2s6OkFyZ3VtZW50Q291bnRdLnRhZygpOyB9CiAjZWxzZQog
ICAgICAgICAvLyBUaGlzIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmICFFTkFCTEUoREZHX0pJVCkg
c2luY2UgYWxsIGNhbGxzIHNob3VsZCBiZSBndWFyZGVkIGJ5CiAgICAgICAgIC8vIGlzSW5saW5l
Q2FsbEZyYW1lKCkuIEJ1dCB0byBtYWtlIGl0IGVhc2llciB0byB3cml0ZSBjb2RlIHdpdGhvdXQg
aGF2aW5nIGEgYnVuY2ggb2YKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9DYWxsRnJhbWVJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZUlubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWVJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIENhbGxGcmFtZUlubGluZXNfaAorI2RlZmluZSBDYWxsRnJhbWVJ
bmxpbmVzX2gKKworI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4u
aCIKKworbmFtZXNwYWNlIEpTQyAgeworCitpbmxpbmUgYm9vbCBDYWxsRnJhbWU6Omhhc0xvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFDb2RlT3JpZ2luOjpp
c0hhbmRsZShsb2NhdGlvbkFzUmF3Qml0cygpKTsKK30KKworaW5saW5lIGJvb2wgQ2FsbEZyYW1l
OjpoYXNMb2NhdGlvbkFzQ29kZU9yaWdpbkluZGV4KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ29k
ZU9yaWdpbjo6aXNIYW5kbGUobG9jYXRpb25Bc1Jhd0JpdHMoKSk7Cit9CisKK2lubGluZSB1bnNp
Z25lZCBDYWxsRnJhbWU6OmxvY2F0aW9uQXNSYXdCaXRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
dGhpc1tKU1N0YWNrOjpBcmd1bWVudENvdW50XS50YWcoKTsKK30KKworaW5saW5lIHZvaWQgQ2Fs
bEZyYW1lOjpzZXRMb2NhdGlvbkFzUmF3Qml0cyh1bnNpZ25lZCBiaXRzKQoreworICAgIHRoaXNb
SlNTdGFjazo6QXJndW1lbnRDb3VudF0udGFnKCkgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihiaXRz
KTsKK30KKworI2lmIFVTRShKU1ZBTFVFNjQpCitpbmxpbmUgdW5zaWduZWQgQ2FsbEZyYW1lOjps
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNMb2NhdGlv
bkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgQVNTRVJUKGNvZGVCbG9jaygpKTsKKyAgICByZXR1
cm4gbG9jYXRpb25Bc1Jhd0JpdHMoKTsKK30KKworaW5saW5lIHZvaWQgQ2FsbEZyYW1lOjpzZXRM
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgb2Zmc2V0KQoreworICAgIEFTU0VSVChj
b2RlQmxvY2soKSk7CisgICAgc2V0TG9jYXRpb25Bc1Jhd0JpdHMob2Zmc2V0KTsKK30KKyNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTY0KQorCitpbmxpbmUgdW5zaWduZWQgQ2FsbEZyYW1lOjpsb2NhdGlv
bkFzQ29kZU9yaWdpbkluZGV4KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzTG9jYXRpb25Bc0Nv
ZGVPcmlnaW5JbmRleCgpKTsKKyAgICBBU1NFUlQoY29kZUJsb2NrKCkpOworICAgIHJldHVybiBD
b2RlT3JpZ2luOjpkZWNvZGVIYW5kbGUobG9jYXRpb25Bc1Jhd0JpdHMoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gQ2FsbEZyYW1lSW5saW5lc19oCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJl
dmlzaW9uIDE1MTI0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3Myw5ICs1NzMsOSBAQCBzdGF0aWMgdW5z
aWduZWQgZ2V0Qnl0ZWNvZGVPZmZzZXRGb3JDYWxsCiAjaWYgRU5BQkxFKEpJVCkKICNpZiBFTkFC
TEUoREZHX0pJVCkKICAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+
aml0VHlwZSgpKSkKLSAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+Y29kZU9yaWdpbihjYWxsRnJh
bWUtPmNvZGVPcmlnaW5JbmRleEZvckRGRygpKS5ieXRlY29kZUluZGV4OworICAgICAgICByZXR1
cm4gY29kZUJsb2NrLT5jb2RlT3JpZ2luKGNhbGxGcmFtZS0+bG9jYXRpb25Bc0NvZGVPcmlnaW5J
bmRleCgpKS5ieXRlY29kZUluZGV4OwogI2VuZGlmCi0gICAgcmV0dXJuIGNhbGxGcmFtZS0+Ynl0
ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCk7CisgICAgcmV0dXJuIGNhbGxGcmFtZS0+bG9jYXRp
b25Bc0J5dGVjb2RlT2Zmc2V0KCk7CiAjZW5kaWYKIH0KIApAQCAtNjAxLDE0ICs2MDEsMTQgQEAg
c3RhdGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhWTSogdm0sIAogICAgIGlmICh3YXNDYWxs
ZWRCeUhvc3QpIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgaWYgKGNhbGxlckNvZGVC
bG9jayAmJiBKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY2FsbGVyQ29kZUJsb2NrLT5qaXRUeXBl
KCkpKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjb2RlT3JpZ2luSW5kZXggPSBjYWxsRnJhbWUt
PmNhbGxlckZyYW1lKCktPnJlbW92ZUhvc3RDYWxsRnJhbWVGbGFnKCktPmNvZGVPcmlnaW5JbmRl
eEZvckRGRygpOworICAgICAgICAgICAgdW5zaWduZWQgY29kZU9yaWdpbkluZGV4ID0gY2FsbEZy
YW1lLT5jYWxsZXJGcmFtZSgpLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygpLT5sb2NhdGlvbkFz
Q29kZU9yaWdpbkluZGV4KCk7CiAgICAgICAgICAgICBDb2RlT3JpZ2luIG9yaWdpbiA9IGNhbGxl
ckNvZGVCbG9jay0+Y29kZU9yaWdpbihjb2RlT3JpZ2luSW5kZXgpOwogICAgICAgICAgICAgYnl0
ZWNvZGVPZmZzZXQgPSBvcmlnaW4uYnl0ZWNvZGVJbmRleDsKICAgICAgICAgICAgIGlmIChJbmxp
bmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IG9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCiAg
ICAgICAgICAgICAgICAgY2FsbGVyQ29kZUJsb2NrID0gaW5saW5lQ2FsbEZyYW1lLT5iYXNlbGlu
ZUNvZGVCbG9jaygpOwogICAgICAgICB9IGVsc2UKICNlbmRpZgotICAgICAgICAgICAgYnl0ZWNv
ZGVPZmZzZXQgPSB0cnVlQ2FsbGVyRnJhbWUtPmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgp
OworICAgICAgICAgICAgYnl0ZWNvZGVPZmZzZXQgPSB0cnVlQ2FsbGVyRnJhbWUtPmxvY2F0aW9u
QXNCeXRlY29kZU9mZnNldCgpOwogICAgIH0gZWxzZSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgICAgIGlmIChjYWxsRnJhbWUtPmlzSW5saW5lQ2FsbEZyYW1lKCkpIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiAxNTEyNDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYy
MCw3ICsxNjIwLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwog
ICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAg
Ym9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zm
c2V0ID0gY2FsbEZyYW1lLT5ieXRlY29kZU9mZnNldEZvck5vbkRGR0NvZGUoKTsKKyAgICAgICAg
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRlY29kZU9m
ZnNldCgpOwogICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBCeVZhbElu
Zm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRl
Y29kZU9mZnNldCAtIDEpOwogICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7
CkBAIC0xNzU0LDcgKzE3NTQsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkLCBvcF9wdXRf
YnlfdmFsCiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwog
ICAgICAgICBib29sIGRpZE9wdGltaXplID0gZmFsc2U7CiAKLSAgICAgICAgdW5zaWduZWQgYnl0
ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgpOwor
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5
dGVjb2RlT2Zmc2V0KCk7CiAgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CiAgICAgICAg
IEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJ
bmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CiAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJS
b3V0aW5lKTsK
</data>
<flag name="review"
          id="225360"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>