<?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>130256</bug_id>
          
          <creation_ts>2014-03-14 12:42:28 -0700</creation_ts>
          <short_desc>AX: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed&lt;T&gt;</short_desc>
          <delta_ts>2014-06-04 00:51:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>130185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mario</cc>
    
    <cc>philipj</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>990611</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-14 12:42:28 -0700</bug_when>
    <thetext>AX: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed&lt;T&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990612</commentid>
    <comment_count>1</comment_count>
      <attachid>226751</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-14 12:43:10 -0700</bug_when>
    <thetext>Created attachment 226751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990621</commentid>
    <comment_count>2</comment_count>
      <attachid>226751</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-03-14 13:02:03 -0700</bug_when>
    <thetext>Comment on attachment 226751
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1535
&gt; -    DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, invalidStatusFalse, (&quot;false&quot;, AtomicString::ConstructFromLiteral));
&gt; -    DEPRECATED_DEFINE_STATIC_LOCAL(const AtomicString, invalidStatusTrue, (&quot;true&quot;, AtomicString::ConstructFromLiteral));
&gt; +    static NeverDestroyed&lt;const AtomicString&gt; invalidStatusFalse(&quot;false&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;const AtomicString&gt; invalidStatusTrue(&quot;true&quot;, AtomicString::ConstructFromLiteral);

Please remove the invalidStatus changes from this patch. It&apos;s being handled in bug 130071 and your patch will cause conflicts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990626</commentid>
    <comment_count>3</comment_count>
      <attachid>226751</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-14 13:12:31 -0700</bug_when>
    <thetext>Comment on attachment 226751
Patch

I don&apos;t think we should be using NeverDestroyed for Strings, and definitely not AtomicStrings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991236</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-17 09:09:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 226751 [details])
&gt; I don&apos;t think we should be using NeverDestroyed for Strings, and definitely not AtomicStrings.

Should we leave them as they are then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991253</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-17 09:38:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 226751 [details])
&gt; I don&apos;t think we should be using NeverDestroyed for Strings, and definitely not AtomicStrings.

BTW I changed them also because I saw a similar usage in many different places, from platform/ to html/. Maybe we should fix those too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996342</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-01 10:17:43 -0700</bug_when>
    <thetext>It&apos;s also confusing that we now have a DEPRECATED_DEFINE_STATIC_LOCAL macro, if we should still be using it for AtomicStrings.

I think we need some Style Guide guidance on this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996427</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-01 13:54:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; It&apos;s also confusing that we now have a DEPRECATED_DEFINE_STATIC_LOCAL macro, if we should still be using it for AtomicStrings.

We should not be using DEPRECATED_DEFINE_STATIC_LOCAL at all, definitely not for AtomicString. It can always be replaced by NeverDestroyed.

But, as a separate related issue, Anders thinks that we are overusing static locals for AtomicString, and thinks we should cut down on this overuse during the process of converting from DEPRECATED_DEFINE_STATIC_LOCAL to NeverDestroyed, by not converting some and instead making them not use a static local AtomicString at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006974</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-05-06 09:34:03 -0700</bug_when>
    <thetext>This was overruled by an exact same bug reported later but that landed before</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013259</commentid>
    <comment_count>9</comment_count>
      <attachid>226751</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-04 00:51:40 -0700</bug_when>
    <thetext>Comment on attachment 226751
Patch

Cleared review? from attachment 226751 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226751</attachid>
            <date>2014-03-14 12:43:10 -0700</date>
            <delta_ts>2014-06-04 00:51:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130256-20140314204246.patch</filename>
            <type>text/plain</type>
            <size>18548</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwYzY1YTZmNjk3YzAw
ZmIxZDY0NWUzNDE5OTc3OTMwYTU4ZDlkMS4uMjhlNTNjNWI5MDI0NmZjYjM4ZjJiMjQ0YTUzOTk3
NGU0ODZlZmJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTE0ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIEFYOiBSZXBs
YWNlIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTCBieSBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MDI1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjb250cm9sVHlwZU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6dGl0bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmVsZW1lbnRU
eXBlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZTo6
aGVscFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3Bs
YXk6OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6aW52YWxpZFN0YXR1cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmluaGVyaXRzUHJlc2VudGF0aW9uYWxSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFMaXZlUmVnaW9uU3RhdHVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFMaXZlUmVnaW9uUmVsZXZh
bnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWN0aW9u
VmVyYik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZSk6CisKIDIw
MTQtMDMtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
YWNdIFJlbW92ZSBOU1VSTENhY2hlIGxvZ2ljIGZyb20gV2ViQ29yZSBwcmVzc3VyZSByZWxpZWYg
Y29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAKaW5kZXggNDhjMzcxNjU2MTIzMzIxNTBkMGM2YzBh
OTE4NDEwYmJhOGE4MmU2Zi4uMDAzNTdlZjk0MTI0ZTJkZjUzMDk3MGM1YjE5Y2Q3ZGY1OTE3MzA3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlJlbmRlclNsaWRlci5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgyLDIxICs4MywyMSBAQCBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjb250cm9sVHlwZSgpIGNvbnN0CiAK
IFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sOjpjb250cm9sVHlwZU5hbWUoKSBjb25z
dAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1l
ZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiRW50ZXJGdWxsc2Ny
ZWVuQnV0dG9uIikpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBtZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiRXhp
dEZ1bGxzY3JlZW5CdXR0b24iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIG1lZGlhTXV0ZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIk11dGVC
dXR0b24iKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIG1lZGlhUGxheUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlBsYXlCdXR0b24iKSkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vl
a0JhY2tCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVrQmFja0J1dHRvbiIpKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFTZWVrRm9y
d2FyZEJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlNlZWtGb3J3YXJkQnV0dG9uIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVJld2lu
ZEJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlJld2luZEJ1dHRvbiIpKSk7Ci0gICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKSk7
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFV
bk11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJVbk11dGVCdXR0b24iKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGF1c2VCdXR0
b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJQYXVzZUJ1dHRvbiIpKSk7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFTdGF0dXNEaXNwbGF5TmFtZSwg
KEFTQ0lJTGl0ZXJhbCgiU3RhdHVzRGlzcGxheSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFDdXJyZW50VGltZURpc3BsYXksIChBU0NJ
SUxpdGVyYWwoIkN1cnJlbnRUaW1lRGlzcGxheSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwgKEFT
Q0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKSkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0
dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikpKTsKLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYUhpZGVD
bG9zZWRDYXB0aW9uc0J1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIkhpZGVDbG9zZWRDYXB0aW9u
c0J1dHRvbiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVk
aWFFbnRlckZ1bGxzY3JlZW5CdXR0b25OYW1lKEFTQ0lJTGl0ZXJhbCgiRW50ZXJGdWxsc2NyZWVu
QnV0dG9uIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG1lZGlh
RXhpdEZ1bGxzY3JlZW5CdXR0b25OYW1lKEFTQ0lJTGl0ZXJhbCgiRXhpdEZ1bGxzY3JlZW5CdXR0
b24iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVkaWFNdXRl
QnV0dG9uTmFtZShBU0NJSUxpdGVyYWwoIk11dGVCdXR0b24iKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVkaWFQbGF5QnV0dG9uTmFtZShBU0NJSUxpdGVyYWwo
IlBsYXlCdXR0b24iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4g
bWVkaWFTZWVrQmFja0J1dHRvbk5hbWUoQVNDSUlMaXRlcmFsKCJTZWVrQmFja0J1dHRvbiIpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZWRpYVNlZWtGb3J3YXJk
QnV0dG9uTmFtZShBU0NJSUxpdGVyYWwoIlNlZWtGb3J3YXJkQnV0dG9uIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG1lZGlhUmV3aW5kQnV0dG9uTmFtZShBU0NJ
SUxpdGVyYWwoIlJld2luZEJ1dHRvbiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgU3RyaW5nPiBtZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25OYW1lKEFTQ0lJTGl0ZXJhbCgi
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgU3RyaW5nPiBtZWRpYVVuTXV0ZUJ1dHRvbk5hbWUoQVNDSUlMaXRlcmFsKCJVbk11dGVCdXR0
b24iKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVkaWFQYXVz
ZUJ1dHRvbk5hbWUoQVNDSUlMaXRlcmFsKCJQYXVzZUJ1dHRvbiIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZWRpYVN0YXR1c0Rpc3BsYXlOYW1lKEFTQ0lJTGl0
ZXJhbCgiU3RhdHVzRGlzcGxheSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBtZWRpYUN1cnJlbnRUaW1lRGlzcGxheShBU0NJSUxpdGVyYWwoIkN1cnJlbnRUaW1l
RGlzcGxheSIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZWRp
YVRpbWVSZW1haW5pbmdEaXNwbGF5KEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXki
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gbWVkaWFTaG93Q2xv
c2VkQ2FwdGlvbnNCdXR0b25OYW1lKEFTQ0lJTGl0ZXJhbCgiU2hvd0Nsb3NlZENhcHRpb25zQnV0
dG9uIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IG1lZGlhSGlk
ZUNsb3NlZENhcHRpb25zQnV0dG9uTmFtZShBU0NJSUxpdGVyYWwoIkhpZGVDbG9zZWRDYXB0aW9u
c0J1dHRvbiIpKTsKIAogICAgIHN3aXRjaCAoY29udHJvbFR5cGUoKSkgewogICAgIGNhc2UgTWVk
aWFFbnRlckZ1bGxzY3JlZW5CdXR0b246CkBAIC0xNTUsNyArMTU2LDcgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9sOjphY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0
eVRleHQ+JiB0ZXgKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OnRpdGxlKCkg
Y29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBjb250cm9sc1BhbmVsLCAoQVNDSUlMaXRlcmFsKCJDb250cm9sc1BhbmVsIikpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250cm9sc1BhbmVsKEFTQ0lJTGl0
ZXJhbCgiQ29udHJvbHNQYW5lbCIpKTsKIAogICAgIGlmIChjb250cm9sVHlwZSgpID09IE1lZGlh
Q29udHJvbHNQYW5lbCkKICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmcoY29udHJvbHNQYW5lbCk7CkBAIC0yNDQsMTIgKzI0NSwxMCBAQCBib29sIEFjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpjb250cm9sbGluZ1ZpZGVvRWxlbWVudCgp
IGNvbnN0CiAKIGNvbnN0IFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5l
cjo6ZWxlbWVudFR5cGVOYW1lKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aWRlb0VsZW1lbnQsIChBU0NJSUxpdGVyYWwoIlZpZGVv
RWxlbWVudCIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgYXVkaW9FbGVtZW50LCAoQVNDSUlMaXRlcmFsKCJBdWRpb0VsZW1lbnQiKSkpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHZpZGVvRWxlbWVudChBU0NJSUxp
dGVyYWwoIlZpZGVvRWxlbWVudCIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
U3RyaW5nPiBhdWRpb0VsZW1lbnQoQVNDSUlMaXRlcmFsKCJBdWRpb0VsZW1lbnQiKSk7CiAKLSAg
ICBpZiAoY29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHZpZGVvRWxl
bWVudDsKLSAgICByZXR1cm4gYXVkaW9FbGVtZW50OworICAgIHJldHVybiBjb250cm9sbGluZ1Zp
ZGVvRWxlbWVudCgpID8gdmlkZW9FbGVtZW50IDogYXVkaW9FbGVtZW50OwogfQogCiBib29sIEFj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0CkBAIC0yODIsNyArMjgxLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlN
ZWRpYVRpbWVsaW5lOjp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2li
aWxpdHlNZWRpYVRpbWVsaW5lOjpoZWxwVGV4dCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2xpZGVyLCAoQVNDSUlMaXRlcmFsKCJT
bGlkZXIiKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHNsaWRl
cihBU0NJSUxpdGVyYWwoIlNsaWRlciIpKTsKICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudEhlbHBUZXh0KHNsaWRlcik7CiB9CiAKQEAgLTMxMyw4ICszMTIsOCBAQCBib29s
IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNj
ZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjdXJyZW50VGltZURpc3BsYXksIChBU0NJSUxpdGVy
YWwoIkN1cnJlbnRUaW1lRGlzcGxheSIpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZVJlbWFpbmluZ0Rpc3BsYXksIChBU0NJSUxpdGVyYWwo
IlRpbWVSZW1haW5pbmdEaXNwbGF5IikpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgU3RyaW5nPiBjdXJyZW50VGltZURpc3BsYXkoQVNDSUlMaXRlcmFsKCJDdXJyZW50VGltZURp
c3BsYXkiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdGltZVJl
bWFpbmluZ0Rpc3BsYXkoQVNDSUlMaXRlcmFsKCJUaW1lUmVtYWluaW5nRGlzcGxheSIpKTsKIAog
ICAgIGlmIChjb250cm9sVHlwZSgpID09IE1lZGlhQ3VycmVudFRpbWVEaXNwbGF5KQogICAgICAg
ICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjdXJyZW50VGltZURp
c3BsYXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggMzhkMDgxMGM5ZWIzZjIzYzYzNWFhZjI4YWQ4NWU3NTNkMDI3
YzIyOS4uYTZlMDFhNTUzNjAyMGVlNmJhYjlhOTBjYjdlZmEyNTc0ZjlhN2RhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNp
bmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CkBAIC0xNDg0LDE1ICsxNDg1LDE1IEBAIGNvbnN0IFN0cmluZyYgQWNjZXNz
aWJpbGl0eU9iamVjdDo6YWN0aW9uVmVyYigpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgdmVyYnMgZm9yIHNlbGVjdCBlbGVtZW50cy4KLSAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBidXR0b25BY3Rp
b24sIChBWEJ1dHRvbkFjdGlvblZlcmIoKSkpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHRleHRGaWVsZEFjdGlvbiwgKEFYVGV4dEZpZWxkQWN0aW9u
VmVyYigpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgcmFkaW9CdXR0b25BY3Rpb24sIChBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpKSk7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2hlY2tlZENoZWNr
Qm94QWN0aW9uLCAoQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKLSAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1bmNoZWNrZWRDaGVja0JveEFj
dGlvbiwgKEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKLSAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsaW5rQWN0aW9uLCAoQVhMaW5rQWN0
aW9uVmVyYigpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgbWVudUxpc3RBY3Rpb24sIChBWE1lbnVMaXN0QWN0aW9uVmVyYigpKSk7Ci0gICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVudUxpc3RQb3B1cEFj
dGlvbiwgKEFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKSkpOwotICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxpc3RJdGVtQWN0aW9uLCAoQVhMaXN0SXRl
bUFjdGlvblZlcmIoKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IGJ1dHRvbkFjdGlvbihBWEJ1dHRvbkFjdGlvblZlcmIoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gdGV4dEZpZWxkQWN0aW9uKEFYVGV4dEZpZWxkQWN0aW9uVmVy
YigpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiByYWRpb0J1dHRv
bkFjdGlvbihBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgU3RyaW5nPiBjaGVja2VkQ2hlY2tCb3hBY3Rpb24oQVhDaGVja2VkQ2hlY2tC
b3hBY3Rpb25WZXJiKCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IHVuY2hlY2tlZENoZWNrQm94QWN0aW9uKEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGxpbmtBY3Rpb24oQVhM
aW5rQWN0aW9uVmVyYigpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBtZW51TGlzdEFjdGlvbihBWE1lbnVMaXN0QWN0aW9uVmVyYigpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBtZW51TGlzdFBvcHVwQWN0aW9uKEFYTWVudUxpc3RQ
b3B1cEFjdGlvblZlcmIoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmlu
Zz4gbGlzdEl0ZW1BY3Rpb24oQVhMaXN0SXRlbUFjdGlvblZlcmIoKSk7CiAKICAgICBzd2l0Y2gg
KHJvbGVWYWx1ZSgpKSB7CiAgICAgY2FzZSBCdXR0b25Sb2xlOgpAQCAtMTUzMCw4ICsxNTMxLDgg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhSXNNdWx0aWxpbmUoKSBjb25zdAogCiBj
b25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmludmFsaWRTdGF0dXMoKSBj
b25zdAogewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGludmFsaWRTdGF0dXNGYWxzZSwgKCJmYWxzZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBpbnZhbGlkU3RhdHVzVHJ1ZSwgKCJ0cnVlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9taWNTdHJpbmc+IGludmFsaWRTdGF0dXNGYWxzZSgiZmFsc2UiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiBpbnZhbGlkU3RhdHVzVHJ1ZSgidHJ1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIC8vIGFyaWEtaW52YWxpZCBjYW4gcmV0dXJu
IGZhbHNlIChkZWZhdWx0KSwgZ3JhbW1lciwgc3BlbGxpbmcsIG9yIHRydWUuCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBhcmlhSW52YWxpZCA9IGdldEF0dHJpYnV0ZShhcmlhX2ludmFsaWRBdHRy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDI3OWRjMTM1ZTQ5MzU5MzZmMzdhNzZhMmIzZmRj
OTJmMjdhNzE1ZjQuLjgxMDMxNzBkODU5YjQzYjdiZGY3ODYwZDM1ZGYwNGJiNDVkNDU0NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTAwLDYgKzEwMCw3IEBACiAjaW5jbHVkZSAiVGV4dEl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CkBAIC0yNjQ0LDE4ICsyNjQ1LDE4IEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5oZXJpdHNQcmVzZW50YXRpb25hbFJv
bGUoKSBjb25zdAogICAgIC8vIEFSSUEgc3BlYyBzYXlzIHRoYXQgd2hlbiBhIHBhcmVudCBvYmpl
Y3QgaXMgcHJlc2VudGF0aW9uYWwsIGFuZCBpdCBoYXMgcmVxdWlyZWQgY2hpbGQgZWxlbWVudHMs
CiAgICAgLy8gdGhvc2UgY2hpbGQgZWxlbWVudHMgYXJlIGFsc28gcHJlc2VudGF0aW9uYWwuIEZv
ciBleGFtcGxlLCA8bGk+IGJlY29tZXMgcHJlc2VudGF0aW9uYWwgZnJvbSA8dWw+LgogICAgIC8v
IGh0dHA6Ly93d3cudzMub3JnL1dBSS9QRi9hcmlhL2NvbXBsZXRlI3ByZXNlbnRhdGlvbgotICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBs
aXN0SXRlbVBhcmVudHMsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxR
dWFsaWZpZWROYW1lPj4gbGlzdEl0ZW1QYXJlbnRzOwogCiAgICAgSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiogcG9zc2libGVQYXJlbnRUYWdOYW1lcyA9IDA7CiAgICAgc3dpdGNoIChyb2xlVmFsdWUo
KSkgewogICAgIGNhc2UgTGlzdEl0ZW1Sb2xlOgogICAgIGNhc2UgTGlzdE1hcmtlclJvbGU6Ci0g
ICAgICAgIGlmIChsaXN0SXRlbVBhcmVudHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBsaXN0
SXRlbVBhcmVudHMuYWRkKHVsVGFnKTsKLSAgICAgICAgICAgIGxpc3RJdGVtUGFyZW50cy5hZGQo
b2xUYWcpOwotICAgICAgICAgICAgbGlzdEl0ZW1QYXJlbnRzLmFkZChkbFRhZyk7CisgICAgICAg
IGlmIChsaXN0SXRlbVBhcmVudHMuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBsaXN0
SXRlbVBhcmVudHMuZ2V0KCkuYWRkKHVsVGFnKTsKKyAgICAgICAgICAgIGxpc3RJdGVtUGFyZW50
cy5nZXQoKS5hZGQob2xUYWcpOworICAgICAgICAgICAgbGlzdEl0ZW1QYXJlbnRzLmdldCgpLmFk
ZChkbFRhZyk7CiAgICAgICAgIH0KLSAgICAgICAgcG9zc2libGVQYXJlbnRUYWdOYW1lcyA9ICZs
aXN0SXRlbVBhcmVudHM7CisgICAgICAgIHBvc3NpYmxlUGFyZW50VGFnTmFtZXMgPSAmbGlzdEl0
ZW1QYXJlbnRzLmdldCgpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKQEAgLTMwMjcsOSArMzAyOCw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGl2ZVJlZ2lvblN0YXR1cygpIGNvbnN0CiB7Ci0gICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGl2ZVJl
Z2lvblN0YXR1c0Fzc2VydGl2ZSwgKCJhc3NlcnRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgbGl2ZVJlZ2lvblN0YXR1c1BvbGl0ZSwgKCJwb2xpdGUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGl2ZVJlZ2lvblN0YXR1c09mZiwgKCJvZmYi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbGl2ZVJlZ2lvblN0YXR1c0Fzc2VydGl2ZSgi
YXNzZXJ0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbGl2ZVJlZ2lvblN0YXR1c1Bv
bGl0ZSgicG9saXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gbGl2ZVJlZ2lvblN0YXR1
c09mZigib2ZmIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgCiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBsaXZlUmVnaW9uU3RhdHVzID0gZ2V0QXR0cmlidXRlKGFy
aWFfbGl2ZUF0dHIpOwogICAgIC8vIFRoZXNlIHJvbGVzIGhhdmUgaW1wbGljaXQgbGl2ZSByZWdp
b24gc3RhdHVzLgpAQCAtMzA1NCw3ICszMDU1LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGl2ZVJlZ2lvblN0YXR1cygpIGNvbnN0CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpdmVSZWdp
b25SZWxldmFudCgpIGNvbnN0CiB7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCwgKCJhZGRpdGlv
bnMgdGV4dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJl
bGV2YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVsZXZhbnQgPSBnZXRBdHRyaWJ1dGUoYXJp
YV9yZWxldmFudEF0dHIpOwogCiAgICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0
aW9ucyB0ZXh0Ii4KQEAgLTMxNjYsMTIgKzMxNjcsMTIgQEAgY29uc3QgU3RyaW5nJiBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjphY3Rpb25WZXJiKCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFkZCB2ZXJicyBmb3Igc2VsZWN0IGVsZW1lbnRz
LgotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJ1dHRv
bkFjdGlvbiwgKEFYQnV0dG9uQWN0aW9uVmVyYigpKSk7Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGV4dEZpZWxkQWN0aW9uLCAoQVhUZXh0RmllbGRB
Y3Rpb25WZXJiKCkpKTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCByYWRpb0J1dHRvbkFjdGlvbiwgKEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkpKTsK
LSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjaGVja2Vk
Q2hlY2tCb3hBY3Rpb24sIChBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKSkpOwotICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVuY2hlY2tlZENoZWNr
Qm94QWN0aW9uLCAoQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKSkpOwotICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxpbmtBY3Rpb24sIChBWExp
bmtBY3Rpb25WZXJiKCkpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBidXR0b25BY3Rpb24oQVhCdXR0b25BY3Rpb25WZXJiKCkpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBTdHJpbmc+IHRleHRGaWVsZEFjdGlvbihBWFRleHRGaWVsZEFjdGlvblZl
cmIoKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcmFkaW9CdXR0
b25BY3Rpb24oQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gY2hlY2tlZENoZWNrQm94QWN0aW9uKEFYQ2hlY2tlZENoZWNr
Qm94QWN0aW9uVmVyYigpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiB1bmNoZWNrZWRDaGVja0JveEFjdGlvbihBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBsaW5rQWN0aW9uKEFY
TGlua0FjdGlvblZlcmIoKSk7CiAKICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CiAgICAgY2Fz
ZSBCdXR0b25Sb2xlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9BWE9iamVjdENhY2hlQXRrLmNwcAppbmRleCBjNTQ0NDc0ZmUwNmFmNjA5YTAyZTk4MDJkMTQ1
ZWE3MDEyNGVhNjIyLi41ZDYyYTk4MTRhMWVjN2JhYzZkZWJmNDEyZjU0NzUxNWE1YmQ3NzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hl
QXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENh
Y2hlQXRrLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsu
aCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0xMTksOCAr
MTIwLDggQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAgIC8vIGZvY3VzZWQgb2JqZWN0IGFuZCBpdHMgYXNz
b2NpYXRlZCBsaXN0IG9iamVjdCwgYXMgcGVyIHByZXZpb3VzCiAgICAgLy8gY2FsbHMgdG8gdGhp
cyBmdW5jdGlvbiwgaW4gb3JkZXIgdG8gcHJvcGVybHkgZGVjaWRlIHdoZXRoZXIgdG8KICAgICAv
LyBlbWl0IHNvbWUgc2lnbmFscyBvciBub3QuCi0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xkTGlzdE9iamVjdCwgKCkpOwot
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4sIG9sZEZvY3VzZWRPYmplY3QsICgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBvbGRMaXN0T2JqZWN0OworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG9sZEZvY3VzZWRPYmpl
Y3Q7CiAKICAgICAvLyBPbmx5IGxpc3QgYm94ZXMgYW5kIG1lbnUgbGlzdHMgc3VwcG9ydGVkIHNv
IGZhci4KICAgICBpZiAoIW9iamVjdCB8fCAhKG9iamVjdC0+aXNMaXN0Qm94KCkgfHwgb2JqZWN0
LT5pc01lbnVMaXN0KCkpKQpAQCAtMTQyLDcgKzE0Myw3IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNo
aWxkcmVuU2VsZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIAogICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RPYmplY3QgPSBnZXRMaXN0T2JqZWN0KG9iamVjdCk7
CiAgICAgaWYgKCFsaXN0T2JqZWN0KSB7Ci0gICAgICAgIG9sZExpc3RPYmplY3QgPSAwOworICAg
ICAgICBvbGRMaXN0T2JqZWN0LmdldCgpID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTU0LDExICsxNTUsMTEgQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25D
aGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAgIC8vIEVuc3VyZSB0aGUgY3Vy
cmVudCBsaXN0IG9iamVjdCBpcyB0aGUgc2FtZSB0aGFuIHRoZSBvbGQgb25lIHNvCiAgICAgLy8g
ZnVydGhlciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBPdGhlcndpc2UsIGp1c3QgcmVzZXQKICAg
ICAvLyBvbGRGb2N1c2VkT2JqZWN0IHNvIGl0IHdvbid0IGJlIHRha2VuIGludG8gYWNjb3VudC4K
LSAgICBpZiAob2xkTGlzdE9iamVjdCAhPSBsaXN0T2JqZWN0KQotICAgICAgICBvbGRGb2N1c2Vk
T2JqZWN0ID0gMDsKKyAgICBpZiAob2xkTGlzdE9iamVjdC5nZXQoKSAhPSBsaXN0T2JqZWN0KQor
ICAgICAgICBvbGRGb2N1c2VkT2JqZWN0LmdldCgpID0gMDsKIAogICAgIEF0a09iamVjdCogYXhJ
dGVtID0gaXRlbSA/IGl0ZW0tPndyYXBwZXIoKSA6IDA7Ci0gICAgQXRrT2JqZWN0KiBheE9sZEZv
Y3VzZWRPYmplY3QgPSBvbGRGb2N1c2VkT2JqZWN0ID8gb2xkRm9jdXNlZE9iamVjdC0+d3JhcHBl
cigpIDogMDsKKyAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9sZEZvY3VzZWRP
YmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkgOiAwOwogCiAg
ICAgLy8gT2xkIGZvY3VzZWQgb2JqZWN0IGp1c3QgbG9zdCBmb2N1cywgc28gZW1pdCB0aGUgZXZl
bnRzLgogICAgIGlmIChheE9sZEZvY3VzZWRPYmplY3QgJiYgYXhJdGVtICE9IGF4T2xkRm9jdXNl
ZE9iamVjdCkgewpAQCAtMTc1LDggKzE3Niw4IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVu
U2VsZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKICAgICB9CiAKICAg
ICAvLyBVcGRhdGUgcG9pbnRlcnMgdG8gdGhlIHByZXZpb3VzbHkgaW52b2x2ZWQgb2JqZWN0cy4K
LSAgICBvbGRMaXN0T2JqZWN0ID0gbGlzdE9iamVjdDsKLSAgICBvbGRGb2N1c2VkT2JqZWN0ID0g
aXRlbTsKKyAgICBvbGRMaXN0T2JqZWN0LmdldCgpID0gbGlzdE9iamVjdDsKKyAgICBvbGRGb2N1
c2VkT2JqZWN0LmdldCgpID0gaXRlbTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>