<?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>127278</bug_id>
          
          <creation_ts>2014-01-20 02:44:48 -0800</creation_ts>
          <short_desc>Move the webdatabase module source code to std::unique_ptr</short_desc>
          <delta_ts>2014-02-03 11:02:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969785</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 02:44:48 -0800</bug_when>
    <thetext>Move the webdatabase module source code to std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969786</commentid>
    <comment_count>1</comment_count>
      <attachid>221641</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 02:46:16 -0800</bug_when>
    <thetext>Created attachment 221641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969787</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-20 02:48:25 -0800</bug_when>
    <thetext>Attachment 221641 did not pass style-queue:


ERROR: Source/WebCore/Modules/webdatabase/SQLStatementBackend.cpp:86:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970173</commentid>
    <comment_count>3</comment_count>
      <attachid>221722</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-20 22:57:46 -0800</bug_when>
    <thetext>Created attachment 221722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970174</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-20 23:00:05 -0800</bug_when>
    <thetext>Attachment 221722 did not pass style-queue:


ERROR: Source/WebCore/Modules/webdatabase/SQLStatementBackend.cpp:85:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970363</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-01-21 12:11:17 -0800</bug_when>
    <thetext>This looks fine to me. I think a C++11 expert should confirm before we land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975854</commentid>
    <comment_count>6</comment_count>
      <attachid>222984</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 06:59:43 -0800</bug_when>
    <thetext>Created attachment 222984
Patch for landing

Running the patch through EWS one more time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975855</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 07:09:47 -0800</bug_when>
    <thetext>Attachment 222984 did not pass style-queue:


ERROR: Source/WebCore/Modules/webdatabase/SQLStatementBackend.cpp:85:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975906</commentid>
    <comment_count>8</comment_count>
      <attachid>221722</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-02-03 09:59:15 -0800</bug_when>
    <thetext>Comment on attachment 221722
Patch

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

&gt; Source/WebCore/Modules/webdatabase/SQLStatement.h:52
&gt; +    SQLStatement(Database*, PassRefPtr&lt;SQLStatementCallback&gt;, PassRefPtr&lt;SQLStatementErrorCallback&gt;);

Seems like this should take a Database&amp; rather than a Database*.

&gt; Source/WebCore/Modules/webdatabase/SQLStatementBackend.h:71
&gt; +    std::unique_ptr&lt;AbstractSQLStatement&gt; m_frontend;

Annoying that this smushes two words “front end” into one word “frontend”. Should be m_frontEnd. Class name should be BackEnd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975933</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 10:57:31 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 221722 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221722&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webdatabase/SQLStatement.h:52
&gt; &gt; +    SQLStatement(Database*, PassRefPtr&lt;SQLStatementCallback&gt;, PassRefPtr&lt;SQLStatementErrorCallback&gt;);
&gt; 
&gt; Seems like this should take a Database&amp; rather than a Database*.

Bug #128111.

&gt; 
&gt; &gt; Source/WebCore/Modules/webdatabase/SQLStatementBackend.h:71
&gt; &gt; +    std::unique_ptr&lt;AbstractSQLStatement&gt; m_frontend;
&gt; 
&gt; Annoying that this smushes two words “front end” into one word “frontend”. Should be m_frontEnd. Class name should be BackEnd.

Bug #128113.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975934</commentid>
    <comment_count>10</comment_count>
      <attachid>222984</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 11:02:43 -0800</bug_when>
    <thetext>Comment on attachment 222984
Patch for landing

Clearing flags on attachment: 222984

Committed r163317: &lt;http://trac.webkit.org/changeset/163317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975935</commentid>
    <comment_count>11</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-02-03 11:02:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221641</attachid>
            <date>2014-01-20 02:46:16 -0800</date>
            <delta_ts>2014-01-20 22:57:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127278-20140120024615.patch</filename>
            <type>text/plain</type>
            <size>25662</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZkZTgxZTZiNDQ5ZDcw
NDIxYTc5NTA3YjVhZTgzYzc5MDA1ZTRiNy4uYmZkODg4MjI5MmEzMzZlZmJhMjI0YjM5OTk3N2U4
MjhmZTg4M2IxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTAxLTIwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSB3ZWJk
YXRhYmFzZSBtb2R1bGUgc291cmNlIGNvZGUgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcyNzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBtYWpvcml0
eSBvZiBPd25QdHIgdXNlcyBpbiB0aGUgd2ViZGF0YWJhc2UgbW9kdWxlIHdpdGggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBUaGUgb25seSByZW1haW5pbmcgdXNlcyBhcmUgZHVlIHRvIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OkRhdGFi
YXNlVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFk
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRl
bWVudEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50QmFja2VuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRl
bWVudEJhY2tlbmQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50
QmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTUUwpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y29tcHV0ZU5leHRTdGF0ZUFuZENs
ZWFudXBJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpv
cGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb25CYWNrZW5kOjpjbGVhbnVwQWZ0ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6OlNRTFRyYW5zYWN0
aW9uQmFja2VuZFN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5k
U3luYzo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3lu
Yzo6Y29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6
OnJvbGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
QmFja2VuZFN5bmMuaDoKKwogMjAxNC0wMS0yMCAgTW9ydGVuIFN0ZW5zaG9ybmUgIDxtc3RlbnNo
b0BvcGVyYS5jb20+CiAKICAgICAgICAgUmVnaW9uIGJhc2VkIG11bHRpY29sOiB0YWxsIGxpbmUg
Y2F1c2VzIHRhbGxlciBtdWx0aWNvbCBjb250YWluZXIgdGhhbiBuZWNlc3NhcnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJh
Y3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAppbmRleCAwMWQ5Yzk1ZGQwYjA2MTQ5YjQwNzZkZGE4
MjRlNGMwYTYyYjU1MTg0Li5mMjQ4MDk3MjNkNmVkMjBlMjBjZTI4Y2U4MTM1MWEzZmVkMTg2NmY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0
U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9BYnN0cmFjdFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW5jbHVkZSAiU1FMRXJyb3IuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvblN0YXRlLmgi
CiAjaW5jbHVkZSAiU1FMVmFsdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFic3RyYWN0U1FMU3RhdGVtZW50
KiBjdXJyZW50U3RhdGVtZW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRy
eUN1cnJlbnRTdGF0ZW1lbnQoYm9vbCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVT
UUwoUGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3RhdGVt
ZW50LAorICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFj
dFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LAogICAgICAgICBjb25zdCBW
ZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBwZXJtaXNzaW9ucykgPSAwOwogCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAppbmRl
eCBlMTgyNzk1YmU5YTgxOGYzYjQyMGU1MGRjZTg0Y2QxNGYxYjk4MDRkLi4xODg1Mzg3ZDdjZTM4
YjI1NzlmNThiYjg1MmI4ZTE5ZDQ5MDY3MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUYXNrLmgKaW5kZXggMWVkYWY4NjYxYWJhMmYzMTU0ZDExM2Q0NzVmZjQ4
MmY4Mzc3MTVjNC4uM2Y4YWJhNWM1NzI1ZTg3NTMzOWI4Mjc4MmQ0Y2E4YmMxNTk0ZDNhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
CkBAIC0zNCw4ICszNCw2IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VCYXNpY1R5cGVzLmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uQmFja2VuZC5o
IgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAKaW5kZXggN2VlNzY0Y2EwZWRlY2UyNWE5
NmE3Y2Y1OGFiMDM0YTA2MmNiNGZhYS4uZTQ0MDMzNjEyYjZhMjVkYjY0ZjI0Yjc0OTNlYzlhMjBi
MDQwNWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRocmVhZC5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgRGF0YWJhc2VUaHJlYWQ6OkRh
dGFiYXNlVGhyZWFkKCkKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCBtX3BhdXNlZChmYWxzZSkK
ICNlbmRpZgotICAgICwgbV90cmFuc2FjdGlvbkNsaWVudChhZG9wdFB0cihuZXcgU1FMVHJhbnNh
Y3Rpb25DbGllbnQoKSkpCi0gICAgLCBtX3RyYW5zYWN0aW9uQ29vcmRpbmF0b3IoYWRvcHRQdHIo
bmV3IFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKSkpCisgICAgLCBtX3RyYW5zYWN0aW9uQ2xp
ZW50KHN0ZDo6bWFrZV91bmlxdWU8U1FMVHJhbnNhY3Rpb25DbGllbnQ+KCkpCisgICAgLCBtX3Ry
YW5zYWN0aW9uQ29vcmRpbmF0b3Ioc3RkOjptYWtlX3VuaXF1ZTxTUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yPigpKQogICAgICwgbV9jbGVhbnVwU3luYygwKQogewogICAgIG1fc2VsZlJlZiA9IHRo
aXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VGhyZWFkLmgKaW5kZXggYzA1OTc5ZTVhZGE1YmE5NmU3OGUzMmU4NjhjMjRiYTRmZjg1Y2VlOS4u
YjI2MTdhZGFkNjM1NjhlOTFkMGY4MTQyZWRjZDViNzkyNThjOTI0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaApAQCAtMzAs
MTIgKzMwLDExIEBACiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogCisjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+Ci0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtOTUsOCArOTQsOCBAQCBwcml2YXRlOgogICAgIHR5cGVk
ZWYgSGFzaFNldDxSZWZQdHI8RGF0YWJhc2VCYWNrZW5kPj4gRGF0YWJhc2VTZXQ7CiAgICAgRGF0
YWJhc2VTZXQgbV9vcGVuRGF0YWJhc2VTZXQ7CiAKLSAgICBPd25QdHI8U1FMVHJhbnNhY3Rpb25D
bGllbnQ+IG1fdHJhbnNhY3Rpb25DbGllbnQ7Ci0gICAgT3duUHRyPFNRTFRyYW5zYWN0aW9uQ29v
cmRpbmF0b3I+IG1fdHJhbnNhY3Rpb25Db29yZGluYXRvcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U1FMVHJhbnNhY3Rpb25DbGllbnQ+IG1fdHJhbnNhY3Rpb25DbGllbnQ7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I+IG1fdHJhbnNhY3Rpb25Db29yZGluYXRv
cjsKICAgICBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIG1fY2xlYW51cFN5bmM7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAKaW5kZXggMWRlMTY0Nzg0ODY1ZjVkMGZlNTA1NmJmMmI0OWY4ODMzNjUzNjJiOC4u
NGU1ZTExYzllNDkxZTE4NTExMmQ4NDY4MmE4NmQ5N2Y4MzVjZTg3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApA
QCAtNTYzLDcgKzU2Myw3IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2Uo
RGF0YWJhc2VCYWNrZW5kQmFzZSogZGF0YWJhc2UpCiAgICAgICAgIE11dGV4TG9ja2VyIG9wZW5E
YXRhYmFzZU1hcExvY2sobV9vcGVuRGF0YWJhc2VNYXBHdWFyZCk7CiAKICAgICAgICAgaWYgKCFt
X29wZW5EYXRhYmFzZU1hcCkKLSAgICAgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwID0gYWRvcHRQ
dHIobmV3IERhdGFiYXNlT3JpZ2luTWFwKTsKKyAgICAgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFw
ID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZU9yaWdpbk1hcD4oKTsKIAogICAgICAgICBTdHJp
bmcgbmFtZShkYXRhYmFzZS0+c3RyaW5nSWRlbnRpZmllcigpKTsKICAgICAgICAgRGF0YWJhc2VO
YW1lTWFwKiBuYW1lTWFwID0gbV9vcGVuRGF0YWJhc2VNYXAtPmdldChkYXRhYmFzZS0+c2VjdXJp
dHlPcmlnaW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuaAppbmRleCBmOGE1ZDEyNjZhYWE4NTU3YmZlOWYxN2U1OTY1NzVm
ODFmZjVjMGJhLi4wZDEzZmEyMDhiNDRkZjQ5MjI5MzU1NWJjMmRlYzQ2ODA5N2YwNTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmgKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTUzLDcgKzE1Miw3IEBAIHByaXZh
dGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIERhdGFiYXNl
TmFtZU1hcCo+IERhdGFiYXNlT3JpZ2luTWFwOwogCiAgICAgTXV0ZXggbV9vcGVuRGF0YWJhc2VN
YXBHdWFyZDsKLSAgICBtdXRhYmxlIE93blB0cjxEYXRhYmFzZU9yaWdpbk1hcD4gbV9vcGVuRGF0
YWJhc2VNYXA7CisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VPcmlnaW5NYXA+
IG1fb3BlbkRhdGFiYXNlTWFwOwogCiAgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIG1fZGF0YWJh
c2UsIG1fb3JpZ2luTG9ja01hcCwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsIG1fb3JpZ2luc0Jl
aW5nRGVsZXRlZCwgbV9iZWluZ0NyZWF0ZWQsIGFuZCBtX2JlaW5nRGVsZXRlZC4KICAgICBNdXRl
eCBtX2RhdGFiYXNlR3VhcmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCA3MzYxZTM2NjNiOTRmMjRiZGM3Mzg3MWVmMzY3NDhm
ZjI4NmFkNGM3Li5iOTQzOTNhYjkzNGM1MWE1MjY2YjE0NjgzZTlkMjc5NjQzNGIxMDg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5jcHAK
QEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxTdGF0ZW1lbnQuY3BwCmluZGV4IDkyYzdmNGY0NjFkNTBhMDRjZDI2MTA2MjM4YWVlMmVmYmFl
OGYxZWEuLmEyOWM4NTM1MGU4ZmI0MWNkNmFiOTNhNDQ3YjRiNDI0NGM3Y2I4MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAK
QEAgLTQ1LDEyICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxT
UUxTdGF0ZW1lbnQ+IFNRTFN0YXRlbWVudDo6Y3JlYXRlKERhdGFiYXNlKiBkYXRhYmFzZSwKLSAg
ICBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxT
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQotewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgU1FMU3RhdGVtZW50KGRhdGFiYXNlLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFj
aykpOwotfQotCiBTUUxTdGF0ZW1lbnQ6OlNRTFN0YXRlbWVudChEYXRhYmFzZSogZGF0YWJhc2Us
IFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+IGNhbGxiYWNrLAogICAgIFBhc3NSZWZQ
dHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKICAgICA6IG1fc3Rh
dGVtZW50Q2FsbGJhY2tXcmFwcGVyKGNhbGxiYWNrLCBkYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
U3RhdGVtZW50LmgKaW5kZXggNGZkYjJkYWIxYTlkNDUzY2YyOTM0Y2Y4M2Q1NWY4Njg3YjQwNzIy
Zi4uY2U3ZDJmZTg4NTY2YWI5ZDAyNDRkYjQxZDY4NDhlNWVjNDhlYmU4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5oCkBAIC00OSw4
ICs0OSw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogCiBjbGFzcyBTUUxTdGF0ZW1lbnQgOiBw
dWJsaWMgQWJzdHJhY3RTUUxTdGF0ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFNRTFN0YXRlbWVudD4gY3JlYXRlKERhdGFiYXNlKiwKLSAgICAgICAgUGFzc1JlZlB0cjxT
UUxTdGF0ZW1lbnRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
az4pOworICAgIFNRTFN0YXRlbWVudChEYXRhYmFzZSosIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50
Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+KTsKIAogICAg
IGJvb2wgcGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9uKik7CiAKQEAgLTYwLDggKzU5LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNFcnJvckNhbGxiYWNrKCk7CiAKIHByaXZh
dGU6Ci0gICAgU1FMU3RhdGVtZW50KERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRD
YWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4pOwotCiAgICAg
Ly8gVGhlIEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZCBvd25zIHRoZSBTUUxTdGF0ZW1lbnQu
IEhlbmNlLCB0aGUgYmFja2VuZCBpcwogICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgb3V0bGl2ZSB0
aGUgU1FMU3RhdGVtZW50LCBhbmQgaXQgaXMgc2FmZSBmb3IgdXMgdG8gcmVmZXIKICAgICAvLyB0
byB0aGUgYmFja2VuZCB1c2luZyBhIHJhdyBwb2ludGVyIGhlcmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNw
cAppbmRleCAzODczZTIyMzc0MWI0YTMxNWRkMDA4ZDNiMjc2OTA2N2RlMzNmNTg0Li44ZWRjOGI3
ZTA4MzM3ZWU3ZDVhZDMyYmJjNTZmMjI2NWQ1ODNlMTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5jcHAK
QEAgLTQ3LDEzICs0NywxMyBAQAogLy8gICAgIEF0IGJpcnRoIChpbiBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQ6OmV4ZWN1dGVTUUwoKSk6CiAvLyAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCAgICAg
ICAgICAgLy8gRGVxdWU8UmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+PiBtX3N0YXRlbWVudFF1
ZXVlIHBvaW50cyB0byAuLi4KLS8vICAgICAtLT4gU1FMU3RhdGVtZW50QmFja2VuZCAgICAgICAg
IC8vIE93blB0cjxTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRzIHRvIC4uLgorLy8gICAg
IC0tPiBTUUxTdGF0ZW1lbnRCYWNrZW5kICAgICAgICAgLy8gc3RkOjp1bmlxdWVfcHRyPFNRTFN0
YXRlbWVudD4gbV9mcm9udGVuZCBwb2ludHMgdG8gLi4uCiAvLyAgICAgICAgIC0tPiBTUUxTdGF0
ZW1lbnQKIC8vCiAvLyAgICAgQWZ0ZXIgZ3JhYmJpbmcgdGhlIHN0YXRlbWVudCBmb3IgZXhlY3V0
aW9uIChpbiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1lbnQoKSk6CiAvLyAg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vICAgICBTUUxUcmFuc2FjdGlv
bkJhY2tlbmQgICAgICAgICAgIC8vIFJlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBtX2N1cnJl
bnRTdGF0ZW1lbnRCYWNrZW5kIHBvaW50cyB0byAuLi4KLS8vICAgICAtLT4gU1FMU3RhdGVtZW50
QmFja2VuZCAgICAgICAgIC8vIE93blB0cjxTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRz
IHRvIC4uLgorLy8gICAgIC0tPiBTUUxTdGF0ZW1lbnRCYWNrZW5kICAgICAgICAgLy8gc3RkOjp1
bmlxdWVfcHRyPFNRTFN0YXRlbWVudD4gbV9mcm9udGVuZCBwb2ludHMgdG8gLi4uCiAvLyAgICAg
ICAgIC0tPiBTUUxTdGF0ZW1lbnQKIC8vCiAvLyAgICAgVGhlbiB3ZSBleGVjdXRlIHRoZSBzdGF0
ZW1lbnQgaW4gU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpydW5DdXJyZW50U3RhdGVtZW50QW5kR2V0
TmV4dFN0YXRlKCkuCkBAIC03NCwxNSArNzQsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNy
ZWF0ZShQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBmcm9udGVuZCwKK1Bhc3NSZWZQ
dHI8U1FMU3RhdGVtZW50QmFja2VuZD4gU1FMU3RhdGVtZW50QmFja2VuZDo6Y3JlYXRlKHN0ZDo6
dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gZnJvbnRlbmQsCiAgICAgY29uc3QgU3Ry
aW5nJiBzdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBl
cm1pc3Npb25zKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1FMU3RhdGVtZW50QmFja2Vu
ZChmcm9udGVuZCwgc3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTUUxTdGF0ZW1lbnRCYWNrZW5kKHN0ZDo6Zm9yd2FyZDxzdGQ6OnVu
aXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+Pihmcm9udGVuZCksCisgICAgICAgIHN0YXRl
bWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucykpOwogfQogCi1TUUxTdGF0ZW1lbnRCYWNrZW5k
OjpTUUxTdGF0ZW1lbnRCYWNrZW5kKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZy
b250ZW5kLAorU1FMU3RhdGVtZW50QmFja2VuZDo6U1FMU3RhdGVtZW50QmFja2VuZChzdGQ6OnVu
aXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZyb250ZW5kLAogICAgIGNvbnN0IFN0cmlu
ZyYgc3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBwZXJt
aXNzaW9ucykKLSAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpCisgICAgOiBtX2Zyb250ZW5kKHN0
ZDo6bW92ZShmcm9udGVuZCkpCiAgICAgLCBtX3N0YXRlbWVudChzdGF0ZW1lbnQuaXNvbGF0ZWRD
b3B5KCkpCiAgICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVudHMpCiAgICAgLCBtX2hhc0NhbGxiYWNr
KG1fZnJvbnRlbmQtPmhhc0NhbGxiYWNrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5oCmluZGV4IGEyZDI2OTBk
OTkwMzRmYjg2MmMzNTM1Njk5NzMzMjkzOWZhZjgwODUuLjU1NTYxMWZjOTQ0NWFhYjZiNTUxY2Vk
OGMyNWFlYTljMDA3Yzg1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5oCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmgiCiAjaW5jbHVkZSAiU1FMVmFs
dWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC00Niw3ICs0NSw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0aW9uQmFja2VuZDsKIAog
Y2xhc3MgU1FMU3RhdGVtZW50QmFja2VuZCA6IHB1YmxpYyBBYnN0cmFjdFNRTFN0YXRlbWVudEJh
Y2tlbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tl
bmQ+IGNyZWF0ZShQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiwKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPEFi
c3RyYWN0U1FMU3RhdGVtZW50PiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQs
IGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKTsKIAog
ICAgIGJvb2wgZXhlY3V0ZShEYXRhYmFzZUJhY2tlbmQqKTsKQEAgLTYzLDEzICs2MiwxMyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gc3FsUmVzdWx0U2V0
KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU1FMU3RhdGVtZW50QmFja2VuZChQYXNzT3duUHRy
PEFic3RyYWN0U1FMU3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsCisgICAgU1FM
U3RhdGVtZW50QmFja2VuZChzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBj
b25zdCBTdHJpbmcmIHN0YXRlbWVudCwKICAgICAgICAgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYg
YXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpOwogCiAgICAgdm9pZCBzZXRGYWlsdXJlRHVlVG9R
dW90YSgpOwogICAgIHZvaWQgY2xlYXJGYWlsdXJlRHVlVG9RdW90YSgpOwogCi0gICAgT3duUHRy
PEFic3RyYWN0U1FMU3RhdGVtZW50PiBtX2Zyb250ZW5kOworICAgIHN0ZDo6dW5pcXVlX3B0cjxB
YnN0cmFjdFNRTFN0YXRlbWVudD4gbV9mcm9udGVuZDsKICAgICBTdHJpbmcgbV9zdGF0ZW1lbnQ7
CiAgICAgVmVjdG9yPFNRTFZhbHVlPiBtX2FyZ3VtZW50czsKICAgICBib29sIG1faGFzQ2FsbGJh
Y2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJh
bnNhY3Rpb24uY3BwCmluZGV4IDJiNGY3YmIyMjBmMDkxZjdmYTQ1MzAzZTg1OWZiYTE5YzBiMTIx
NjAuLmEzZGZkZmVhZjQyNTIyMzFlNjFiMzJmNGNiN2M5MjE4MDg1OTU4ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3Bw
CkBAIC0yNjEsOCArMjYxLDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZXhlY3V0ZVNRTChjb25z
dCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHUKICAgICBlbHNlIGlm
IChtX3JlYWRPbmx5KQogICAgICAgICBwZXJtaXNzaW9ucyB8PSBEYXRhYmFzZUF1dGhvcml6ZXI6
OlJlYWRPbmx5TWFzazsKIAotICAgIE93blB0cjxTUUxTdGF0ZW1lbnQ+IHN0YXRlbWVudCA9IFNR
TFN0YXRlbWVudDo6Y3JlYXRlKG1fZGF0YWJhc2UuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja0Vy
cm9yKTsKLSAgICBtX2JhY2tlbmQtPmV4ZWN1dGVTUUwoc3RhdGVtZW50LnJlbGVhc2UoKSwgc3Fs
U3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKKyAgICBhdXRvIHN0YXRlbWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8U1FMU3RhdGVtZW50PihtX2RhdGFiYXNlLmdldCgpLCBjYWxsYmFj
aywgY2FsbGJhY2tFcnJvcik7CisgICAgbV9iYWNrZW5kLT5leGVjdXRlU1FMKHN0ZDo6bW92ZShz
dGF0ZW1lbnQpLCBzcWxTdGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpOwogfQogCiBi
b29sIFNRTFRyYW5zYWN0aW9uOjpjb21wdXRlTmV4dFN0YXRlQW5kQ2xlYW51cElmTmVlZGVkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCAyNDRmMjg1NjZmN2ZlM2E3NDM4OGQxYWVlMjMy
YjZmNDY4OWU3NGFhLi42YjVlYjljNGRlNTRkOWQ3YWQ0ZDQ0OTllZWRmM2YxOTZiNzY5Y2E2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAKIC8vCiAvLyAgICAg
V2hlbiBleGVjdXRpbmcgdGhlIHRyYW5zYWN0aW9uIChpbiBEYXRhYmFzZVRocmVhZDo6ZGF0YWJh
c2VUaHJlYWQoKSk6CiAvLyAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vICAgICBPd25QdHI8RGF0YWJhc2VU
YXNrPiB0YXNrOyAgICAgICAgICAgICAvLyBwb2ludHMgdG8gLi4uCisvLyAgICAgc3RkOjp1bmlx
dWVfcHRyPERhdGFiYXNlVGFzaz4gdGFzazsgICAgLy8gcG9pbnRzIHRvIC4uLgogLy8gICAgIC0t
PiBEYXRhYmFzZVRyYW5zYWN0aW9uVGFzayAgICAgICAgICAgIC8vIFJlZlB0cjxTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ+IG1fdHJhbnNhY3Rpb24gcG9pbnRzIHRvIC4uLgogLy8gICAgICAgICAtLT4g
U1FMVHJhbnNhY3Rpb25CYWNrZW5kICAgICAgICAgIC8vIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4g
bV9mcm9udGVuZDsKIC8vICAgICAgICAgICAgIC0tPiBTUUxUcmFuc2FjdGlvbiAgICAgICAgICAg
ICAvLyBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBtX2JhY2tlbmQgcG9pbnRzIHRvIC4u
LgpAQCAtMjg0LDcgKzI4NCw3IEBACiAvLyAgICAgSG93ZXZlciwgdGhlcmUgd2lsbCBzdGlsbCBi
ZSBhIERhdGFiYXNlVGFzayBwb2ludGluZyB0byB0aGUgU1FMVHJhbnNhY3Rpb25CYWNrZW5kIChz
ZWUKIC8vICAgICB0aGUgIldoZW4gZXhlY3V0aW5nIHRoZSB0cmFuc2FjdGlvbiIgY2hhaW4gYWJv
dmUpLiBUaGlzIHdpbGwga2VlcCB0aGUKIC8vICAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgYWxp
dmUgdW50aWwgRGF0YWJhc2VUaHJlYWQ6OmRhdGFiYXNlVGhyZWFkKCkgcmVsZWFzZXMgaXRzCi0v
LyAgICAgdGFzayBPd25QdHIuCisvLyAgICAgdGFzayBzdGQ6OnVuaXF1ZV9wdHIuCiAvLwogLy8g
ICAgIFdoYXQgaGFwcGVucyBpZiBhIHRyYW5zYWN0aW9uIGlzIGludGVycnVwdGVkPwogLy8gICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0zOTMsNyAr
MzkzLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCgpCiAgICAgICAg
IC8vIG1fc3FsaXRlVHJhbnNhY3Rpb24gaW52b2tlcyBTUUxpdGVUcmFuc2FjdGlvbidzIGRlc3Ry
dWN0b3Igd2hpY2ggZG9lcwogICAgICAgICAvLyBqdXN0IHRoYXQuIFdlIG1pZ2h0IGFzIHdlbGwg
ZG8gdGhpcyB1bmNvbmRpdGlvbmFsbHkgYW5kIGZyZWUgdXAgaXRzCiAgICAgICAgIC8vIHJlc291
cmNlcyBiZWNhdXNlIHdlJ3JlIGFscmVhZHkgdGVybWluYXRpbmcuCi0gICAgICAgIG1fc3FsaXRl
VHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5yZXNldCgp
OwogICAgIH0KIAogICAgIC8vIFJlbGVhc2UgdGhlIGxvY2sgb24gdGhpcyBkYXRhYmFzZQpAQCAt
NTAwLDcgKzUwMCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjb21wdXRlTmV4dFN0
YXRlQW5kQ2xlYW51cElmTmVlZGVkKCkKICAgICAvLyBUaGUgY3VycmVudCBTUUxpdGUgdHJhbnNh
Y3Rpb24gc2hvdWxkIGJlIHN0b3BwZWQsIGFzIHdlbGwKICAgICBpZiAobV9zcWxpdGVUcmFuc2Fj
dGlvbikgewogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5zdG9wKCk7Ci0gICAgICAgIG1f
c3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5y
ZXNldCgpOwogICAgIH0KIAogICAgIC8vIFRlcm1pbmF0ZSB0aGUgZnJvbnRlbmQgc3RhdGUgbWFj
aGluZS4gVGhpcyBhbHNvIGdldHMgdGhlIGZyb250ZW5kIHRvCkBAIC01MjYsMTEgKzUyNiwxMiBA
QCBib29sIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6c2hvdWxkUGVyZm9ybVdoaWxlUGF1c2VkKCkg
Y29uc3QKIH0KICNlbmRpZgogCi12b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZXhlY3V0ZVNR
TChQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBzdGF0ZW1lbnQsCit2b2lkIFNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6ZXhlY3V0ZVNRTChzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxT
dGF0ZW1lbnQ+IHN0YXRlbWVudCwKICAgICBjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29u
c3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpCiB7CiAgICAg
UmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IHN0YXRlbWVudEJhY2tlbmQ7Ci0gICAgc3RhdGVt
ZW50QmFja2VuZCA9IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShzdGF0ZW1lbnQsIHNxbFN0
YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7CisgICAgc3RhdGVtZW50QmFja2VuZCA9
IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShzdGQ6OmZvcndhcmQ8c3RkOjp1bmlxdWVfcHRy
PEFic3RyYWN0U1FMU3RhdGVtZW50Pj4oc3RhdGVtZW50KSwKKyAgICAgICAgc3FsU3RhdGVtZW50
LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKIAogICAgIGlmIChEYXRhYmFzZTo6ZnJvbShtX2Rh
dGFiYXNlLmdldCgpKS0+ZGVsZXRlZCgpKQogICAgICAgICBzdGF0ZW1lbnRCYWNrZW5kLT5zZXRE
YXRhYmFzZURlbGV0ZWRFcnJvcigpOwpAQCAtNTgyLDcgKzU4Myw3IEBAIFNRTFRyYW5zYWN0aW9u
U3RhdGUgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQo
KQogICAgIH0KIAogICAgIEFTU0VSVCghbV9zcWxpdGVUcmFuc2FjdGlvbik7Ci0gICAgbV9zcWxp
dGVUcmFuc2FjdGlvbiA9IGFkb3B0UHRyKG5ldyBTUUxpdGVUcmFuc2FjdGlvbihtX2RhdGFiYXNl
LT5zcWxpdGVEYXRhYmFzZSgpLCBtX3JlYWRPbmx5KSk7CisgICAgbV9zcWxpdGVUcmFuc2FjdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8U1FMaXRlVHJhbnNhY3Rpb24+KG1fZGF0YWJhc2UtPnNxbGl0
ZURhdGFiYXNlKCksIG1fcmVhZE9ubHkpOwogCiAgICAgbV9kYXRhYmFzZS0+cmVzZXREZWxldGVz
KCk7CiAgICAgbV9kYXRhYmFzZS0+ZGlzYWJsZUF1dGhvcml6ZXIoKTsKQEAgLTU5NCw3ICs1OTUs
NyBAQCBTUUxUcmFuc2FjdGlvblN0YXRlIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6b3BlblRyYW5z
YWN0aW9uQW5kUHJlZmxpZ2h0KCkKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVE
YXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxl
IHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yTXNnKCkpOwotICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAg
IG1fc3FsaXRlVHJhbnNhY3Rpb24ucmVzZXQoKTsKICAgICAgICAgcmV0dXJuIG5leHRTdGF0ZUZv
clRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICB9CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBTUUxUcmFu
c2FjdGlvblN0YXRlIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6b3BlblRyYW5zYWN0aW9uQW5kUHJl
ZmxpZ2h0KCkKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCiAgICAgICAg
ICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNl
LT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9kYXRhYmFzZS0+
ZGlzYWJsZUF1dGhvcml6ZXIoKTsKLSAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigp
OworICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLnJlc2V0KCk7CiAgICAgICAgIG1fZGF0YWJh
c2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgcmV0dXJuIG5leHRTdGF0ZUZvclRyYW5z
YWN0aW9uRXJyb3IoKTsKICAgICB9CkBAIC02MTUsNyArNjE2LDcgQEAgU1FMVHJhbnNhY3Rpb25T
dGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgp
CiAgICAgLy8gU3BlYyA0LjMuMi4zOiBQZXJmb3JtIHByZWZsaWdodCBzdGVwcywganVtcGluZyB0
byB0aGUgZXJyb3IgY2FsbGJhY2sgaWYgdGhleSBmYWlsCiAgICAgaWYgKG1fd3JhcHBlciAmJiAh
bV93cmFwcGVyLT5wZXJmb3JtUHJlZmxpZ2h0KHRoaXMpKSB7CiAgICAgICAgIG1fZGF0YWJhc2Ut
PmRpc2FibGVBdXRob3JpemVyKCk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIo
KTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5yZXNldCgpOwogICAgICAgICBtX2RhdGFi
YXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1f
d3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCkBA
IC03OTksNyArODAwLDcgQEAgU1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ6OmNsZWFudXBBZnRlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygKICAgICAgICAgbV9zcWxp
dGVUcmFuc2FjdGlvbi0+cm9sbGJhY2soKTsKIAogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2Ut
PnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwotICAgICAgICBtX3Nx
bGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24ucmVz
ZXQoKTsKICAgICB9CiAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
QmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbkJhY2tlbmQuaAppbmRleCAxN2E0YzY1ZjIxMzk4NTkwYWQwMjdkY2RkYTU0ZThmMzc2MjM1
MDMzLi5jZTNkZmI4NzU3YmUxZTAxNjUwZjFiMDdhZWZlMGI5YzIwZDBiNzQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b25CYWNrZW5kLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBYnN0cmFjdFNRTFRyYW5z
YWN0aW9uQmFja2VuZC5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBlcy5oIgogI2luY2x1
ZGUgIlNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmgiCisjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04NSw3ICs4Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNRTEVycm9yPiB0cmFuc2FjdGlvbkVycm9yKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBBYnN0cmFjdFNRTFN0YXRlbWVudCogY3VycmVudFN0YXRlbWVudCgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRyeUN1cnJlbnRTdGF0ZW1lbnQoYm9v
bCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVTUUwoUGFzc093blB0cjxBYnN0
cmFjdFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LAorICAgIHZpcnR1YWwg
dm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sIGNv
bnN0IFN0cmluZyYgc3RhdGVtZW50LAogICAgICAgICBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBh
cmd1bWVudHMsIGludCBwZXJtaXNzaW9ucykgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRvQ2xlYW51
cCgpOwpAQCAtMTM1LDcgKzEzNiw3IEBAIHByaXZhdGU6CiAgICAgTXV0ZXggbV9zdGF0ZW1lbnRN
dXRleDsKICAgICBEZXF1ZTxSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4+IG1fc3RhdGVtZW50
UXVldWU7CiAKLSAgICBPd25QdHI8U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3FsaXRlVHJhbnNhY3Rp
b247CisgICAgc3RkOjp1bmlxdWVfcHRyPFNRTGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5z
YWN0aW9uOwogICAgIFJlZlB0cjxPcmlnaW5Mb2NrPiBtX29yaWdpbkxvY2s7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
QmFja2VuZFN5bmMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcAppbmRleCA1NTIyMjY0MDVkNmU0MzFlNzBjOTI4MDBh
NDhkZjE2Y2UxZjJkOWQzLi5mNjUzZDkwNjc0NTFiOWNhYjk5YmQzNzMwOGE5OTYwNzg1YmUzN2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uQmFja2VuZFN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYy5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgU1FM
VHJhbnNhY3Rpb25CYWNrZW5kU3luYzo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYyhEYXRhYmFz
ZVN5bmMqIGRiLCBQYXNzUmVmUHQKICAgICAsIG1fcmVhZE9ubHkocmVhZE9ubHkpCiAgICAgLCBt
X2hhc1ZlcnNpb25NaXNtYXRjaChmYWxzZSkKICAgICAsIG1fbW9kaWZpZWREYXRhYmFzZShmYWxz
ZSkKLSAgICAsIG1fdHJhbnNhY3Rpb25DbGllbnQoYWRvcHRQdHIobmV3IFNRTFRyYW5zYWN0aW9u
Q2xpZW50KCkpKQorICAgICwgbV90cmFuc2FjdGlvbkNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFNR
TFRyYW5zYWN0aW9uQ2xpZW50PigpKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKIH0KQEAgLTE0Miw3ICsxNDIs
NyBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6OmJlZ2luKCkKICAg
ICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5zZXRNYXhpbXVtU2l6ZShtX2RhdGFi
YXNlLT5tYXhpbXVtU2l6ZSgpKTsKIAogICAgIEFTU0VSVCghbV9zcWxpdGVUcmFuc2FjdGlvbik7
Ci0gICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IGFkb3B0UHRyKG5ldyBTUUxpdGVUcmFuc2FjdGlv
bihtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLCBtX3JlYWRPbmx5KSk7CisgICAgbV9zcWxp
dGVUcmFuc2FjdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U1FMaXRlVHJhbnNhY3Rpb24+KG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCksIG1fcmVhZE9ubHkpOwogCiAgICAgbV9kYXRhYmFzZS0+
cmVzZXREZWxldGVzKCk7CiAgICAgbV9kYXRhYmFzZS0+ZGlzYWJsZUF1dGhvcml6ZXIoKTsKQEAg
LTE1NCw3ICsxNTQsNyBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6
OmJlZ2luKCkKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRy
YW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNs
ZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24ucmVzZXQoKTsKICAgICAgICAgcmV0
dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KIApAQCAtMjA3LDcgKzIwNyw3
IEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYzo6Y29tbWl0KCkKICAg
ICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KIAotICAgIG1f
c3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLnJlc2V0
KCk7CiAKICAgICAvLyBWYWN1dW0gdGhlIGRhdGFiYXNlIGlmIGFueXRoaW5nIHdhcyBkZWxldGVk
LgogICAgIGlmIChtX2RhdGFiYXNlLT5oYWREZWxldGVzKCkpCkBAIC0yMjUsNyArMjI1LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jOjpyb2xsYmFjaygpCiAgICAgbV9kYXRhYmFz
ZS0+ZGlzYWJsZUF1dGhvcml6ZXIoKTsKICAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbikgewog
ICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5yb2xsYmFjaygpOwotICAgICAgICBtX3NxbGl0
ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24ucmVzZXQo
KTsKICAgICB9CiAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFj
a2VuZFN5bmMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kU3luYy5oCmluZGV4IDczYWI0OGRlMDc0ZmZmZDhhZmIxNmZhZmM2ZDEwYjhm
ZjgxMzY3OGQuLjI1YTY1MjZlMDcwODFiMTY5Yjk0OTUzZDU1MTcwZDJiNjUyZjgwZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kU3luYy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBlcy5oIgorI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNzMsOCArNzQsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXNWZXJzaW9uTWlzbWF0Y2g7CiAKICAgICBib29sIG1fbW9kaWZpZWRE
YXRhYmFzZTsKLSAgICBPd25QdHI8U1FMVHJhbnNhY3Rpb25DbGllbnQ+IG1fdHJhbnNhY3Rpb25D
bGllbnQ7Ci0gICAgT3duUHRyPFNRTGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5zYWN0aW9u
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxUcmFuc2FjdGlvbkNsaWVudD4gbV90cmFuc2FjdGlv
bkNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3FsaXRl
VHJhbnNhY3Rpb247CiAKICAgICBmcmllbmQgY2xhc3MgU1FMVHJhbnNhY3Rpb25TeW5jOyAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgb25jZSB0aGUgZnJvbnQtZW5kIGhhcyBiZWVuIHByb3Blcmx5IGlz
b2xhdGVkLgogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221722</attachid>
            <date>2014-01-20 22:57:46 -0800</date>
            <delta_ts>2014-02-03 09:59:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127278-20140120225744.patch</filename>
            <type>text/plain</type>
            <size>25531</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdjNDc4N2MyYjA0Yzg0
OTEyM2I2YjFiNjdkYjkzYmQ3ZmM4NzJkZS4uMmU2YWU0YjEyMDU5NjE1MTlmNTg1NjMyOTdhNzE1
MDlhODIwYTM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTAxLTIwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSB3ZWJk
YXRhYmFzZSBtb2R1bGUgc291cmNlIGNvZGUgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcyNzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRoZSBtYWpvcml0
eSBvZiBPd25QdHIgdXNlcyBpbiB0aGUgd2ViZGF0YWJhc2UgbW9kdWxlIHdpdGggc3RkOjp1bmlx
dWVfcHRyLgorICAgICAgICBUaGUgb25seSByZW1haW5pbmcgdXNlcyBhcmUgZHVlIHRvIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OkRhdGFi
YXNlVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFk
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRl
bWVudEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50QmFja2VuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRl
bWVudEJhY2tlbmQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50
QmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTUUwpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y29tcHV0ZU5leHRTdGF0ZUFuZENs
ZWFudXBJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpv
cGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb25CYWNrZW5kOjpjbGVhbnVwQWZ0ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmg6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6OlNRTFRyYW5zYWN0
aW9uQmFja2VuZFN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5k
U3luYzo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3lu
Yzo6Y29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6
OnJvbGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
QmFja2VuZFN5bmMuaDoKKwogMjAxNC0wMS0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhbiB1bnVzZWQgUGFnZUdyb3VwIGZ1bmN0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0
U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0Fic3RyYWN0U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKaW5kZXggMDFkOWM5NWRkMGIwNjE0
OWI0MDc2ZGRhODI0ZTRjMGE2MmI1NTE4NC4uZjI0ODA5NzIzZDZlZDIwZTIwY2UyOGNlODEzNTFh
M2ZlZDE4NjZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9BYnN0cmFjdFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaApAQCAtMzIs
NyArMzIsNyBAQAogI2luY2x1ZGUgIlNRTEVycm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rp
b25TdGF0ZS5oIgogI2luY2x1ZGUgIlNRTFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBBYnN0cmFjdFNR
TFN0YXRlbWVudCogY3VycmVudFN0YXRlbWVudCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvdWxkUmV0cnlDdXJyZW50U3RhdGVtZW50KGJvb2wpID0gMDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBleGVjdXRlU1FMKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBjb25zdCBTdHJp
bmcmIHN0YXRlbWVudCwKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNRTChzdGQ6OnVuaXF1ZV9w
dHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwKICAgICAg
ICAgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpID0g
MDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKaW5kZXggZTE4Mjc5NWJlOWE4MThmM2I0MjBlNTBkY2U4NGNkMTRmMWI5ODA0ZC4uMTg4
NTM4N2Q3Y2UzOGIyNTc5ZjU4YmI4NTJiOGUxOWQ0OTA2NzE3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTUzLDcgKzUzLDYgQEAK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCmluZGV4IDFlZGFmODY2MWFiYTJmMzE1NGQx
MTNkNDc1ZmY0ODJmODM3NzE1YzQuLjNmOGFiYTVjNTcyNWU4NzUzMzliODI3ODJkNGNhOGJjMTU5
NGQzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUYXNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suaApAQCAtMzQsOCArMzQsNiBAQAogI2luY2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBl
cy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlv
bkJhY2tlbmQuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDdlZTc2NGNh
MGVkZWNlMjVhOTZhN2NmNThhYjAzNGEwNjJjYjRmYWEuLmU0NDAzMzYxMmI2YTI1ZGI2NGYyNGI3
NDkzZWM5YTIwYjA0MDViOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC00NSw4ICs0NSw4IEBAIERhdGFiYXNl
VGhyZWFkOjpEYXRhYmFzZVRocmVhZCgpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICwgbV9wYXVz
ZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fdHJhbnNhY3Rpb25DbGllbnQoYWRvcHRQdHIobmV3
IFNRTFRyYW5zYWN0aW9uQ2xpZW50KCkpKQotICAgICwgbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9y
KGFkb3B0UHRyKG5ldyBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkpKQorICAgICwgbV90cmFu
c2FjdGlvbkNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFNRTFRyYW5zYWN0aW9uQ2xpZW50PigpKQor
ICAgICwgbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yKHN0ZDo6bWFrZV91bmlxdWU8U1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvcj4oKSkKICAgICAsIG1fY2xlYW51cFN5bmMoMCkKIHsKICAgICBtX3Nl
bGZSZWYgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRocmVhZC5oCmluZGV4IGMwNTk3OWU1YWRhNWJhOTZlNzhlMzJlODY4YzI0YmE0
ZmY4NWNlZTkuLmIyNjE3YWRhZDYzNTY4ZTkxZDBmODE0MmVkY2Q1Yjc5MjU4YzkyNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFk
LmgKQEAgLTMwLDEyICszMCwxMSBAQAogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKIAorI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VR
dWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTk1LDggKzk0LDggQEAgcHJpdmF0ZToK
ICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPERhdGFiYXNlQmFja2VuZD4+IERhdGFiYXNlU2V0
OwogICAgIERhdGFiYXNlU2V0IG1fb3BlbkRhdGFiYXNlU2V0OwogCi0gICAgT3duUHRyPFNRTFRy
YW5zYWN0aW9uQ2xpZW50PiBtX3RyYW5zYWN0aW9uQ2xpZW50OwotICAgIE93blB0cjxTUUxUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yPiBtX3RyYW5zYWN0aW9uQ29vcmRpbmF0b3I7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFNRTFRyYW5zYWN0aW9uQ2xpZW50PiBtX3RyYW5zYWN0aW9uQ2xpZW50OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yPiBtX3RyYW5zYWN0aW9u
Q29vcmRpbmF0b3I7CiAgICAgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBtX2NsZWFudXBTeW5j
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDFkZTE2NDc4NDg2NWY1ZDBmZTUwNTZiZjJiNDlmODgz
MzY1MzYyYjguLjRlNWUxMWM5ZTQ5MWUxODUxMTJkODQ2ODJhODZkOTdmODM1Y2U4NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6YWRkT3Bl
bkRhdGFiYXNlKERhdGFiYXNlQmFja2VuZEJhc2UqIGRhdGFiYXNlKQogICAgICAgICBNdXRleExv
Y2tlciBvcGVuRGF0YWJhc2VNYXBMb2NrKG1fb3BlbkRhdGFiYXNlTWFwR3VhcmQpOwogCiAgICAg
ICAgIGlmICghbV9vcGVuRGF0YWJhc2VNYXApCi0gICAgICAgICAgICBtX29wZW5EYXRhYmFzZU1h
cCA9IGFkb3B0UHRyKG5ldyBEYXRhYmFzZU9yaWdpbk1hcCk7CisgICAgICAgICAgICBtX29wZW5E
YXRhYmFzZU1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8RGF0YWJhc2VPcmlnaW5NYXA+KCk7CiAKICAg
ICAgICAgU3RyaW5nIG5hbWUoZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSk7CiAgICAgICAg
IERhdGFiYXNlTmFtZU1hcCogbmFtZU1hcCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQoZGF0YWJh
c2UtPnNlY3VyaXR5T3JpZ2luKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKaW5kZXggZjhhNWQxMjY2YWFhODU1N2JmZTlm
MTdlNTk2NTc1ZjgxZmY1YzBiYS4uMGQxM2ZhMjA4YjQ0ZGY0OTIyOTM1NTViYzJkZWM0NjgwOTdm
MDU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW5IYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE1Myw3ICsxNTIs
NyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
LCBEYXRhYmFzZU5hbWVNYXAqPiBEYXRhYmFzZU9yaWdpbk1hcDsKIAogICAgIE11dGV4IG1fb3Bl
bkRhdGFiYXNlTWFwR3VhcmQ7Ci0gICAgbXV0YWJsZSBPd25QdHI8RGF0YWJhc2VPcmlnaW5NYXA+
IG1fb3BlbkRhdGFiYXNlTWFwOworICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNl
T3JpZ2luTWFwPiBtX29wZW5EYXRhYmFzZU1hcDsKIAogICAgIC8vIFRoaXMgbG9jayBwcm90ZWN0
cyBtX2RhdGFiYXNlLCBtX29yaWdpbkxvY2tNYXAsIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBt
X29yaWdpbnNCZWluZ0RlbGV0ZWQsIG1fYmVpbmdDcmVhdGVkLCBhbmQgbV9iZWluZ0RlbGV0ZWQu
CiAgICAgTXV0ZXggbV9kYXRhYmFzZUd1YXJkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5jcHAKaW5kZXggNzM2MWUzNjYzYjk0ZjI0YmRjNzM4
NzFlZjM2NzQ4ZmYyODZhZDRjNy4uYjk0MzkzYWI5MzRjNTFhNTI2NmIxNDY4M2U5ZDI3OTY0MzRi
MTA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9Pcmln
aW5Mb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdp
bkxvY2suY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKIAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAppbmRleCA5MmM3ZjRmNDYxZDUwYTA0Y2QyNjEwNjIz
OGFlZTJlZmJhZThmMWVhLi5hMjljODUzNTBlOGZiNDFjZDZhYjkzYTQ0N2I0YjQyNDRjN2NiODBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnQuY3BwCkBAIC00NSwxMiArNDUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NPd25QdHI8U1FMU3RhdGVtZW50PiBTUUxTdGF0ZW1lbnQ6OmNyZWF0ZShEYXRhYmFzZSogZGF0
YWJhc2UsCi0gICAgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxsYmFjaz4gY2FsbGJhY2ssIFBh
c3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFNRTFN0YXRlbWVudChkYXRhYmFzZSwgY2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spKTsKLX0KLQogU1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQoRGF0YWJhc2Uq
IGRhdGFiYXNlLCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiBjYWxsYmFjaywKICAg
ICBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCiAg
ICAgOiBtX3N0YXRlbWVudENhbGxiYWNrV3JhcHBlcihjYWxsYmFjaywgZGF0YWJhc2UtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5oCmluZGV4IDRmZGIyZGFiMWE5ZDQ1M2NmMjkzNGNmODNkNTVm
ODY4N2I0MDcyMmYuLmNlN2QyZmU4ODU2NmFiOWQwMjQ0ZGI0MWQ2ODQ4ZTVlYzQ4ZWJlODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQu
aApAQCAtNDksOCArNDksNyBAQCBjbGFzcyBTUUxUcmFuc2FjdGlvbjsKIAogY2xhc3MgU1FMU3Rh
dGVtZW50IDogcHVibGljIEFic3RyYWN0U1FMU3RhdGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxTUUxTdGF0ZW1lbnQ+IGNyZWF0ZShEYXRhYmFzZSosCi0gICAgICAgIFBh
c3NSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVy
cm9yQ2FsbGJhY2s+KTsKKyAgICBTUUxTdGF0ZW1lbnQoRGF0YWJhc2UqLCBQYXNzUmVmUHRyPFNR
TFN0YXRlbWVudENhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
Pik7CiAKICAgICBib29sIHBlcmZvcm1DYWxsYmFjayhTUUxUcmFuc2FjdGlvbiopOwogCkBAIC02
MCw4ICs1OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzRXJyb3JDYWxsYmFjaygp
OwogCiBwcml2YXRlOgotICAgIFNRTFN0YXRlbWVudChEYXRhYmFzZSosIFBhc3NSZWZQdHI8U1FM
U3RhdGVtZW50Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+
KTsKLQogICAgIC8vIFRoZSBBYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQgb3ducyB0aGUgU1FM
U3RhdGVtZW50LiBIZW5jZSwgdGhlIGJhY2tlbmQgaXMKICAgICAvLyBndWFyYW50ZWVkIHRvIGJl
IG91dGxpdmUgdGhlIFNRTFN0YXRlbWVudCwgYW5kIGl0IGlzIHNhZmUgZm9yIHVzIHRvIHJlZmVy
CiAgICAgLy8gdG8gdGhlIGJhY2tlbmQgdXNpbmcgYSByYXcgcG9pbnRlciBoZXJlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50
QmFja2VuZC5jcHAKaW5kZXggMzg3M2UyMjM3NDFiNGEzMTVkZDAwOGQzYjI3NjkwNjdkZTMzZjU4
NC4uMGMzZWI2ZjBjNGY3M2JkNTFkMTRlOWEyYjNkYzc1MDRkMTY0OTdmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJh
Y2tlbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAKIC8vICAgICBBdCBiaXJ0aCAoaW4gU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpleGVjdXRlU1FMKCkpOgogLy8gICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vICAgICBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQgICAgICAgICAgIC8vIERlcXVlPFJlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPj4gbV9z
dGF0ZW1lbnRRdWV1ZSBwb2ludHMgdG8gLi4uCi0vLyAgICAgLS0+IFNRTFN0YXRlbWVudEJhY2tl
bmQgICAgICAgICAvLyBPd25QdHI8U1FMU3RhdGVtZW50PiBtX2Zyb250ZW5kIHBvaW50cyB0byAu
Li4KKy8vICAgICAtLT4gU1FMU3RhdGVtZW50QmFja2VuZCAgICAgICAgIC8vIHN0ZDo6dW5pcXVl
X3B0cjxTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRzIHRvIC4uLgogLy8gICAgICAgICAt
LT4gU1FMU3RhdGVtZW50CiAvLwogLy8gICAgIEFmdGVyIGdyYWJiaW5nIHRoZSBzdGF0ZW1lbnQg
Zm9yIGV4ZWN1dGlvbiAoaW4gU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpnZXROZXh0U3RhdGVtZW50
KCkpOgogLy8gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyAgICAgU1FM
VHJhbnNhY3Rpb25CYWNrZW5kICAgICAgICAgICAvLyBSZWZQdHI8U1FMU3RhdGVtZW50QmFja2Vu
ZD4gbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZCBwb2ludHMgdG8gLi4uCi0vLyAgICAgLS0+IFNR
TFN0YXRlbWVudEJhY2tlbmQgICAgICAgICAvLyBPd25QdHI8U1FMU3RhdGVtZW50PiBtX2Zyb250
ZW5kIHBvaW50cyB0byAuLi4KKy8vICAgICAtLT4gU1FMU3RhdGVtZW50QmFja2VuZCAgICAgICAg
IC8vIHN0ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRzIHRvIC4u
LgogLy8gICAgICAgICAtLT4gU1FMU3RhdGVtZW50CiAvLwogLy8gICAgIFRoZW4gd2UgZXhlY3V0
ZSB0aGUgc3RhdGVtZW50IGluIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6cnVuQ3VycmVudFN0YXRl
bWVudEFuZEdldE5leHRTdGF0ZSgpLgpAQCAtNzQsMTUgKzc0LDE1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBTUUxTdGF0ZW1lbnRC
YWNrZW5kOjpjcmVhdGUoUGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gZnJvbnRlbmQs
CitQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZyb250ZW5kLAogICAg
IGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVu
dHMsIGludCBwZXJtaXNzaW9ucykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNRTFN0YXRl
bWVudEJhY2tlbmQoZnJvbnRlbmQsIHN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucykp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1FMU3RhdGVtZW50QmFja2VuZChzdGQ6Om1vdmUo
ZnJvbnRlbmQpLCBzdGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpKTsKIH0KIAotU1FM
U3RhdGVtZW50QmFja2VuZDo6U1FMU3RhdGVtZW50QmFja2VuZChQYXNzT3duUHRyPEFic3RyYWN0
U1FMU3RhdGVtZW50PiBmcm9udGVuZCwKK1NRTFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRlbWVu
dEJhY2tlbmQoc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBmcm9udGVuZCwK
ICAgICBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJn
dW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpCi0gICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKQorICAg
IDogbV9mcm9udGVuZChzdGQ6Om1vdmUoZnJvbnRlbmQpKQogICAgICwgbV9zdGF0ZW1lbnQoc3Rh
dGVtZW50Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRzKQogICAg
ICwgbV9oYXNDYWxsYmFjayhtX2Zyb250ZW5kLT5oYXNDYWxsYmFjaygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQu
aAppbmRleCBhMmQyNjkwZDk5MDM0ZmI4NjJjMzUzNTY5OTczMzI5MzlmYWY4MDg1Li41NTU2MTFm
Yzk0NDVhYWI2YjU1MWNlZDhjMjVhZWE5YzAwN2M4NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuaApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZC5oIgog
I2luY2x1ZGUgIlNRTFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDYsNyArNDUsNyBAQCBjbGFzcyBTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ7CiAKIGNsYXNzIFNRTFN0YXRlbWVudEJhY2tlbmQgOiBwdWJsaWMgQWJzdHJh
Y3RTUUxTdGF0ZW1lbnRCYWNrZW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
UUxTdGF0ZW1lbnRCYWNrZW5kPiBjcmVhdGUoUGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVu
dD4sCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4gY3JlYXRlKHN0
ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sCiAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBw
ZXJtaXNzaW9ucyk7CiAKICAgICBib29sIGV4ZWN1dGUoRGF0YWJhc2VCYWNrZW5kKik7CkBAIC02
MywxMyArNjIsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTUUxSZXN1bHRT
ZXQ+IHNxbFJlc3VsdFNldCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNRTFN0YXRlbWVudEJh
Y2tlbmQoUGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3Rh
dGVtZW50LAorICAgIFNRTFN0YXRlbWVudEJhY2tlbmQoc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0
U1FMU3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsCiAgICAgICAgIGNvbnN0IFZl
Y3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKTsKIAogICAgIHZvaWQg
c2V0RmFpbHVyZUR1ZVRvUXVvdGEoKTsKICAgICB2b2lkIGNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEo
KTsKIAotICAgIE93blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gbV9mcm9udGVuZDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQ7CiAgICAgU3Ry
aW5nIG1fc3RhdGVtZW50OwogICAgIFZlY3RvcjxTUUxWYWx1ZT4gbV9hcmd1bWVudHM7CiAgICAg
Ym9vbCBtX2hhc0NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCAyYjRmN2JiMjIwZjA5MWY3ZmE0NTMw
M2U4NTlmYmExOWMwYjEyMTYwLi5hM2RmZGZlYWY0MjUyMjMxZTYxYjMyZjRjYjdjOTIxODA4NTk1
OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uLmNwcApAQCAtMjYxLDggKzI2MSw4IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246
OmV4ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxW
YWx1CiAgICAgZWxzZSBpZiAobV9yZWFkT25seSkKICAgICAgICAgcGVybWlzc2lvbnMgfD0gRGF0
YWJhc2VBdXRob3JpemVyOjpSZWFkT25seU1hc2s7CiAKLSAgICBPd25QdHI8U1FMU3RhdGVtZW50
PiBzdGF0ZW1lbnQgPSBTUUxTdGF0ZW1lbnQ6OmNyZWF0ZShtX2RhdGFiYXNlLmdldCgpLCBjYWxs
YmFjaywgY2FsbGJhY2tFcnJvcik7Ci0gICAgbV9iYWNrZW5kLT5leGVjdXRlU1FMKHN0YXRlbWVu
dC5yZWxlYXNlKCksIHNxbFN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7CisgICAg
YXV0byBzdGF0ZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNRTFN0YXRlbWVudD4obV9kYXRhYmFz
ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrRXJyb3IpOworICAgIG1fYmFja2VuZC0+ZXhlY3V0
ZVNRTChzdGQ6Om1vdmUoc3RhdGVtZW50KSwgc3FsU3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1p
c3Npb25zKTsKIH0KIAogYm9vbCBTUUxUcmFuc2FjdGlvbjo6Y29tcHV0ZU5leHRTdGF0ZUFuZENs
ZWFudXBJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKaW5kZXggMjQ0ZjI4NTY2Zjdm
ZTNhNzQzODhkMWFlZTIzMmI2ZjQ2ODllNzRhYS4uZmU1ZjZkYmQ3NGIwNWZlOTI5MTQxN2U2OTMw
ZDkxMGU5N2I3NmJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3
IEBACiAvLwogLy8gICAgIFdoZW4gZXhlY3V0aW5nIHRoZSB0cmFuc2FjdGlvbiAoaW4gRGF0YWJh
c2VUaHJlYWQ6OmRhdGFiYXNlVGhyZWFkKCkpOgogLy8gICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyAgICAg
T3duUHRyPERhdGFiYXNlVGFzaz4gdGFzazsgICAgICAgICAgICAgLy8gcG9pbnRzIHRvIC4uLgor
Ly8gICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRhc2s+IHRhc2s7ICAgIC8vIHBvaW50cyB0
byAuLi4KIC8vICAgICAtLT4gRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgICAgICAgICAgICAvLyBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBtX3RyYW5zYWN0aW9uIHBvaW50cyB0byAuLi4K
IC8vICAgICAgICAgLS0+IFNRTFRyYW5zYWN0aW9uQmFja2VuZCAgICAgICAgICAvLyBSZWZQdHI8
U1FMVHJhbnNhY3Rpb24+IG1fZnJvbnRlbmQ7CiAvLyAgICAgICAgICAgICAtLT4gU1FMVHJhbnNh
Y3Rpb24gICAgICAgICAgICAgLy8gUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gbV9iYWNr
ZW5kIHBvaW50cyB0byAuLi4KQEAgLTI4NCw3ICsyODQsNyBAQAogLy8gICAgIEhvd2V2ZXIsIHRo
ZXJlIHdpbGwgc3RpbGwgYmUgYSBEYXRhYmFzZVRhc2sgcG9pbnRpbmcgdG8gdGhlIFNRTFRyYW5z
YWN0aW9uQmFja2VuZCAoc2VlCiAvLyAgICAgdGhlICJXaGVuIGV4ZWN1dGluZyB0aGUgdHJhbnNh
Y3Rpb24iIGNoYWluIGFib3ZlKS4gVGhpcyB3aWxsIGtlZXAgdGhlCiAvLyAgICAgU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kIGFsaXZlIHVudGlsIERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgp
IHJlbGVhc2VzIGl0cwotLy8gICAgIHRhc2sgT3duUHRyLgorLy8gICAgIHRhc2sgc3RkOjp1bmlx
dWVfcHRyLgogLy8KIC8vICAgICBXaGF0IGhhcHBlbnMgaWYgYSB0cmFuc2FjdGlvbiBpcyBpbnRl
cnJ1cHRlZD8KIC8vICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0Ns
ZWFudXAoKQogICAgICAgICAvLyBtX3NxbGl0ZVRyYW5zYWN0aW9uIGludm9rZXMgU1FMaXRlVHJh
bnNhY3Rpb24ncyBkZXN0cnVjdG9yIHdoaWNoIGRvZXMKICAgICAgICAgLy8ganVzdCB0aGF0LiBX
ZSBtaWdodCBhcyB3ZWxsIGRvIHRoaXMgdW5jb25kaXRpb25hbGx5IGFuZCBmcmVlIHVwIGl0cwog
ICAgICAgICAvLyByZXNvdXJjZXMgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IHRlcm1pbmF0aW5nLgot
ICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJh
bnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIC8vIFJlbGVhc2UgdGhlIGxvY2sgb24g
dGhpcyBkYXRhYmFzZQpAQCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kOjpjb21wdXRlTmV4dFN0YXRlQW5kQ2xlYW51cElmTmVlZGVkKCkKICAgICAvLyBUaGUgY3Vy
cmVudCBTUUxpdGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIHN0b3BwZWQsIGFzIHdlbGwKICAgICBp
ZiAobV9zcWxpdGVUcmFuc2FjdGlvbikgewogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5z
dG9wKCk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9z
cWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8gVGVybWluYXRlIHRo
ZSBmcm9udGVuZCBzdGF0ZSBtYWNoaW5lLiBUaGlzIGFsc28gZ2V0cyB0aGUgZnJvbnRlbmQgdG8K
QEAgLTUyNiwxMSArNTI2LDExIEBAIGJvb2wgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpzaG91bGRQ
ZXJmb3JtV2hpbGVQYXVzZWQoKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpleGVjdXRlU1FMKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IHN0
YXRlbWVudCwKK3ZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpleGVjdXRlU1FMKHN0ZDo6dW5p
cXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gc3RhdGVtZW50LAogICAgIGNvbnN0IFN0cmlu
ZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBw
ZXJtaXNzaW9ucykKIHsKICAgICBSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4gc3RhdGVtZW50
QmFja2VuZDsKLSAgICBzdGF0ZW1lbnRCYWNrZW5kID0gU1FMU3RhdGVtZW50QmFja2VuZDo6Y3Jl
YXRlKHN0YXRlbWVudCwgc3FsU3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKKyAg
ICBzdGF0ZW1lbnRCYWNrZW5kID0gU1FMU3RhdGVtZW50QmFja2VuZDo6Y3JlYXRlKHN0ZDo6bW92
ZShzdGF0ZW1lbnQpLCBzcWxTdGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpOwogCiAg
ICAgaWYgKERhdGFiYXNlOjpmcm9tKG1fZGF0YWJhc2UuZ2V0KCkpLT5kZWxldGVkKCkpCiAgICAg
ICAgIHN0YXRlbWVudEJhY2tlbmQtPnNldERhdGFiYXNlRGVsZXRlZEVycm9yKCk7CkBAIC01ODIs
NyArNTgyLDcgQEAgU1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6Om9w
ZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgfQogCiAgICAgQVNTRVJUKCFtX3NxbGl0
ZVRyYW5zYWN0aW9uKTsKLSAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gYWRvcHRQdHIobmV3IFNR
TGl0ZVRyYW5zYWN0aW9uKG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCksIG1fcmVhZE9ubHkp
KTsKKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVUcmFu
c2FjdGlvbj4obV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKSwgbV9yZWFkT25seSk7CiAKICAg
ICBtX2RhdGFiYXNlLT5yZXNldERlbGV0ZXMoKTsKICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0
aG9yaXplcigpOwpAQCAtNTk0LDcgKzU5NCw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQogICAgICAgICBB
U1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNz
KCkpOwogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rpb24iLAogICAgICAg
ICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFz
ZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIG1fc3FsaXRlVHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybiBuZXh0U3RhdGVGb3JUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgfQog
CkBAIC02MDYsNyArNjA2LDcgQEAgU1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQ6Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgICAgIG1fdHJhbnNhY3Rp
b25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJs
ZSB0byByZWFkIHZlcnNpb24iLAogICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJh
c2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7Ci0gICAgICAg
IG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlv
biA9IG51bGxwdHI7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAg
ICAgICAgcmV0dXJuIG5leHRTdGF0ZUZvclRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICB9CkBAIC02
MTUsNyArNjE1LDcgQEAgU1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgLy8gU3BlYyA0LjMuMi4zOiBQZXJm
b3JtIHByZWZsaWdodCBzdGVwcywganVtcGluZyB0byB0aGUgZXJyb3IgY2FsbGJhY2sgaWYgdGhl
eSBmYWlsCiAgICAgaWYgKG1fd3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUHJlZmxpZ2h0
KHRoaXMpKSB7CiAgICAgICAgIG1fZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7Ci0gICAg
ICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2Fj
dGlvbiA9IG51bGxwdHI7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsK
ICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAg
ICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKQEAgLTc5OSw3ICs3OTksNyBAQCBTUUxUcmFu
c2FjdGlvblN0YXRlIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y2xlYW51cEFmdGVyVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrKAogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5yb2xsYmFjaygp
OwogCiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2Fj
dGlvbkluUHJvZ3Jlc3MoKSk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsK
KyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogICAgIG1fZGF0
YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKaW5kZXggMTdh
NGM2NWYyMTM5ODU5MGFkMDI3ZGNkZGE1NGU4ZjM3NjIzNTAzMy4uY2UzZGZiODc1N2JlMWUwMTY1
MGYxYjA3YWVmZTBiOWMyMGQwYjc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCIKICNpbmNs
dWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvblN0YXRl
TWFjaGluZS5oIgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtODUsNyArODYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTUUxFcnJv
cj4gdHJhbnNhY3Rpb25FcnJvcigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWJzdHJhY3RTUUxT
dGF0ZW1lbnQqIGN1cnJlbnRTdGF0ZW1lbnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkUmV0cnlDdXJyZW50U3RhdGVtZW50KGJvb2wpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBleGVjdXRlU1FMKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBjb25z
dCBTdHJpbmcmIHN0YXRlbWVudCwKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNRTChzdGQ6OnVu
aXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwK
ICAgICAgICAgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lv
bnMpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkb0NsZWFudXAoKTsKQEAgLTEzNSw3ICsxMzYsNyBA
QCBwcml2YXRlOgogICAgIE11dGV4IG1fc3RhdGVtZW50TXV0ZXg7CiAgICAgRGVxdWU8UmVmUHRy
PFNRTFN0YXRlbWVudEJhY2tlbmQ+PiBtX3N0YXRlbWVudFF1ZXVlOwogCi0gICAgT3duUHRyPFNR
TGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5zYWN0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFuc2FjdGlvbjsKICAgICBSZWZQdHI8T3Jp
Z2luTG9jaz4gbV9vcmlnaW5Mb2NrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYy5j
cHAKaW5kZXggNTUyMjI2NDA1ZDZlNDMxZTcwYzkyODAwYTQ4ZGYxNmNlMWYyZDlkMy4uN2M3NmI4
YTQ2ZjhiYzE5OWRlMGFlZDFhNWZmODc2MWUwYWE5NzNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFj
a2VuZFN5bmMuY3BwCkBAIC01OCw3ICs1OCw3IEBAIFNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6
OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmMoRGF0YWJhc2VTeW5jKiBkYiwgUGFzc1JlZlB0CiAg
ICAgLCBtX3JlYWRPbmx5KHJlYWRPbmx5KQogICAgICwgbV9oYXNWZXJzaW9uTWlzbWF0Y2goZmFs
c2UpCiAgICAgLCBtX21vZGlmaWVkRGF0YWJhc2UoZmFsc2UpCi0gICAgLCBtX3RyYW5zYWN0aW9u
Q2xpZW50KGFkb3B0UHRyKG5ldyBTUUxUcmFuc2FjdGlvbkNsaWVudCgpKSkKKyAgICAsIG1fdHJh
bnNhY3Rpb25DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxTUUxUcmFuc2FjdGlvbkNsaWVudD4oKSkK
IHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0Nv
bnRleHRUaHJlYWQoKSk7CiB9CkBAIC0xNDIsNyArMTQyLDcgQEAgRXhjZXB0aW9uQ29kZSBTUUxU
cmFuc2FjdGlvbkJhY2tlbmRTeW5jOjpiZWdpbigpCiAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0
ZURhdGFiYXNlKCkuc2V0TWF4aW11bVNpemUobV9kYXRhYmFzZS0+bWF4aW11bVNpemUoKSk7CiAK
ICAgICBBU1NFUlQoIW1fc3FsaXRlVHJhbnNhY3Rpb24pOwotICAgIG1fc3FsaXRlVHJhbnNhY3Rp
b24gPSBhZG9wdFB0cihuZXcgU1FMaXRlVHJhbnNhY3Rpb24obV9kYXRhYmFzZS0+c3FsaXRlRGF0
YWJhc2UoKSwgbV9yZWFkT25seSkpOworICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBzdGQ6Om1h
a2VfdW5pcXVlPFNRTGl0ZVRyYW5zYWN0aW9uPihtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
LCBtX3JlYWRPbmx5KTsKIAogICAgIG1fZGF0YWJhc2UtPnJlc2V0RGVsZXRlcygpOwogICAgIG1f
ZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7CkBAIC0xNTQsNyArMTU0LDcgQEAgRXhjZXB0
aW9uQ29kZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jOjpiZWdpbigpCiAgICAgICAgIEFTU0VS
VCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7
CiAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBiZWdp
biB0cmFuc2FjdGlvbiIsCiAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygp
KTsKLSAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3NxbGl0
ZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSOwogICAgIH0KIApAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbkNvZGUgU1FM
VHJhbnNhY3Rpb25CYWNrZW5kU3luYzo6Y29tbWl0KCkKICAgICAgICAgcmV0dXJuIFNRTEV4Y2Vw
dGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KIAotICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xl
YXIoKTsKKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKIAogICAgIC8vIFZhY3V1
bSB0aGUgZGF0YWJhc2UgaWYgYW55dGhpbmcgd2FzIGRlbGV0ZWQuCiAgICAgaWYgKG1fZGF0YWJh
c2UtPmhhZERlbGV0ZXMoKSkKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9u
QmFja2VuZFN5bmM6OnJvbGxiYWNrKCkKICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXpl
cigpOwogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CiAgICAgICAgIG1fc3FsaXRlVHJh
bnNhY3Rpb24tPnJvbGxiYWNrKCk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIo
KTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogICAgIG1f
ZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmMu
aAppbmRleCA3M2FiNDhkZTA3NGZmZmQ4YWZiMTZmYWZjNmQxMGI4ZmY4MTM2NzhkLi4yNWE2NTI2
ZTA3MDgxYjE2OWI5NDk1M2Q1NTE3MGQyYjY1MmY4MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2Vu
ZFN5bmMuaApAQCAtMzUsNiArMzUsNyBAQAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTczLDggKzc0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFz
VmVyc2lvbk1pc21hdGNoOwogCiAgICAgYm9vbCBtX21vZGlmaWVkRGF0YWJhc2U7Ci0gICAgT3du
UHRyPFNRTFRyYW5zYWN0aW9uQ2xpZW50PiBtX3RyYW5zYWN0aW9uQ2xpZW50OwotICAgIE93blB0
cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9zcWxpdGVUcmFuc2FjdGlvbjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U1FMVHJhbnNhY3Rpb25DbGllbnQ+IG1fdHJhbnNhY3Rpb25DbGllbnQ7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNRTGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5zYWN0aW9uOwogCiAg
ICAgZnJpZW5kIGNsYXNzIFNRTFRyYW5zYWN0aW9uU3luYzsgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG9uY2UgdGhlIGZyb250LWVuZCBoYXMgYmVlbiBwcm9wZXJseSBpc29sYXRlZC4KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222984</attachid>
            <date>2014-02-03 06:59:43 -0800</date>
            <delta_ts>2014-02-03 11:02:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-127278-20140203065938.patch</filename>
            <type>text/plain</type>
            <size>24105</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTAyLTAzICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIHRoZSB3ZWJkYXRh
YmFzZSBtb2R1bGUgc291cmNlIGNvZGUgdG8gc3RkOjp1bmlxdWVfcHRyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcyNzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBSZXBsYWNlIHRoZSBtYWpvcml0eSBv
ZiBPd25QdHIgdXNlcyBpbiB0aGUgd2ViZGF0YWJhc2UgbW9kdWxlIHdpdGggc3RkOjp1bmlxdWVf
cHRyLgorICAgICAgICBUaGUgb25seSByZW1haW5pbmcgdXNlcyBhcmUgZHVlIHRvIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2sgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OkRhdGFiYXNl
VGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVu
dEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50QmFja2VuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRlbWVu
dEJhY2tlbmQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFj
a2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTUUwpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y29tcHV0ZU5leHRTdGF0ZUFuZENsZWFu
dXBJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmV4
ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpvcGVu
VHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpjbGVhbnVwQWZ0ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6OlNRTFRyYW5zYWN0aW9u
QmFja2VuZFN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3lu
Yzo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYzo6
Y29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZFN5bmM6OnJv
bGxiYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFj
a2VuZFN5bmMuaDoKKwogMjAxNC0wMi0wMyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIEZpeCBzZWxlY3Rpb24gYW5kIGhvdmVyIGVm
ZmVjdCBvZiBjb250ZW50IGluIHJlZ2lvbiB3aXRoIG92ZXJmbG93OmhpZGRlbgpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdFNRTFRyYW5zYWN0aW9uQmFj
a2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
QWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkocmV2aXNpb24gMTYzMzA4KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdFNRTFRyYW5zYWN0aW9uQmFj
a2VuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiU1FMRXJy
b3IuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAiU1FMVmFs
dWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OSw3ICs0OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEFic3RyYWN0U1FMU3RhdGVtZW50KiBjdXJyZW50U3RhdGVtZW50
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRyeUN1cnJlbnRTdGF0ZW1lbnQo
Ym9vbCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVTUUwoUGFzc093blB0cjxBYnN0
cmFjdFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LAorICAgIHZpcnR1YWwg
dm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sIGNv
bnN0IFN0cmluZyYgc3RhdGVtZW50LAogICAgICAgICBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBh
cmd1bWVudHMsIGludCBwZXJtaXNzaW9ucykgPSAwOwogCiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE2MzMw
OCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFz
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUYXNrLmgJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDYg
QEAKICNpbmNsdWRlICJEYXRhYmFzZUJhc2ljVHlwZXMuaCIKICNpbmNsdWRlICJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgiCi0jaW5jbHVkZSA8d3Rm
L093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRocmVhZC5jcHAJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw4ICs0NSw4IEBAIERhdGFiYXNlVGhyZWFkOjpEYXRhYmFzZVRocmVhZCgpCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICwgbV9wYXVzZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fdHJh
bnNhY3Rpb25DbGllbnQoYWRvcHRQdHIobmV3IFNRTFRyYW5zYWN0aW9uQ2xpZW50KCkpKQotICAg
ICwgbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yKGFkb3B0UHRyKG5ldyBTUUxUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yKCkpKQorICAgICwgbV90cmFuc2FjdGlvbkNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PFNRTFRyYW5zYWN0aW9uQ2xpZW50PigpKQorICAgICwgbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9y
KHN0ZDo6bWFrZV91bmlxdWU8U1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcj4oKSkKICAgICAsIG1f
Y2xlYW51cFN5bmMoMCkKIHsKICAgICBtX3NlbGZSZWYgPSB0aGlzOwpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAkocmV2
aXNpb24gMTYzMzA4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTEgQEAKIAogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCiAKKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBA
IC05NSw4ICs5NCw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxEYXRh
YmFzZUJhY2tlbmQ+PiBEYXRhYmFzZVNldDsKICAgICBEYXRhYmFzZVNldCBtX29wZW5EYXRhYmFz
ZVNldDsKIAotICAgIE93blB0cjxTUUxUcmFuc2FjdGlvbkNsaWVudD4gbV90cmFuc2FjdGlvbkNs
aWVudDsKLSAgICBPd25QdHI8U1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcj4gbV90cmFuc2FjdGlv
bkNvb3JkaW5hdG9yOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTUUxUcmFuc2FjdGlvbkNsaWVudD4g
bV90cmFuc2FjdGlvbkNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1FMVHJhbnNhY3Rpb25D
b29yZGluYXRvcj4gbV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yOwogICAgIERhdGFiYXNlVGFza1N5
bmNocm9uaXplciogbV9jbGVhbnVwU3luYzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAJKHJldmlz
aW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU3LDcgKzU1Nyw3IEBAIHZvaWQgRGF0
YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UoRGEKICAgICAgICAgTXV0ZXhMb2NrZXIgb3Bl
bkRhdGFiYXNlTWFwTG9jayhtX29wZW5EYXRhYmFzZU1hcEd1YXJkKTsKIAogICAgICAgICBpZiAo
IW1fb3BlbkRhdGFiYXNlTWFwKQotICAgICAgICAgICAgbV9vcGVuRGF0YWJhc2VNYXAgPSBhZG9w
dFB0cihuZXcgRGF0YWJhc2VPcmlnaW5NYXApOworICAgICAgICAgICAgbV9vcGVuRGF0YWJhc2VN
YXAgPSBzdGQ6Om1ha2VfdW5pcXVlPERhdGFiYXNlT3JpZ2luTWFwPigpOwogCiAgICAgICAgIFN0
cmluZyBuYW1lKGRhdGFiYXNlLT5zdHJpbmdJZGVudGlmaWVyKCkpOwogICAgICAgICBEYXRhYmFz
ZU5hbWVNYXAqIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KGRhdGFiYXNlLT5zZWN1
cml0eU9yaWdpbigpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAkocmV2aXNpb24gMTYzMzA4KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xNTIsNyArMTUxLDcgQEAgcHJpdmF0
ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgRGF0YWJhc2VO
YW1lTWFwKj4gRGF0YWJhc2VPcmlnaW5NYXA7CiAKICAgICBNdXRleCBtX29wZW5EYXRhYmFzZU1h
cEd1YXJkOwotICAgIG11dGFibGUgT3duUHRyPERhdGFiYXNlT3JpZ2luTWFwPiBtX29wZW5EYXRh
YmFzZU1hcDsKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZU9yaWdpbk1hcD4g
bV9vcGVuRGF0YWJhc2VNYXA7CiAKICAgICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgbV9kYXRhYmFz
ZSwgbV9vcmlnaW5Mb2NrTWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVp
bmdEZWxldGVkLCBtX2JlaW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgogICAgIE11dGV4
IG1fZGF0YWJhc2VHdWFyZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvT3JpZ2luTG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAkocmV2aXNpb24gMTYzMzA4KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKICNpbmNsdWRlICJG
aWxlU3lzdGVtLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxNjMzMDgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDEyICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxTUUxT
dGF0ZW1lbnQ+IFNRTFN0YXRlbWVudDo6Y3JlYXRlKERhdGFiYXNlKiBkYXRhYmFzZSwKLSAgICBQ
YXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgU1FMU3RhdGVtZW50KGRhdGFiYXNlLCBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaykp
OwotfQotCiBTUUxTdGF0ZW1lbnQ6OlNRTFN0YXRlbWVudChEYXRhYmFzZSogZGF0YWJhc2UsIFBh
c3NSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+IGNhbGxiYWNrLAogICAgIFBhc3NSZWZQdHI8
U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKICAgICA6IG1fc3RhdGVt
ZW50Q2FsbGJhY2tXcmFwcGVyKGNhbGxiYWNrLCBkYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFN0YXRlbWVudC5oCShyZXZpc2lvbiAxNjMzMDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw4ICs0
OSw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogCiBjbGFzcyBTUUxTdGF0ZW1lbnQgOiBwdWJs
aWMgQWJzdHJhY3RTUUxTdGF0ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PFNRTFN0YXRlbWVudD4gY3JlYXRlKERhdGFiYXNlKiwKLSAgICAgICAgUGFzc1JlZlB0cjxTUUxT
dGF0ZW1lbnRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4p
OworICAgIFNRTFN0YXRlbWVudChEYXRhYmFzZSosIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50Q2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+KTsKIAogICAgIGJv
b2wgcGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9uKik7CiAKQEAgLTYwLDggKzU5LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNFcnJvckNhbGxiYWNrKCk7CiAKIHByaXZhdGU6
Ci0gICAgU1FMU3RhdGVtZW50KERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxs
YmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4pOwotCiAgICAgLy8g
VGhlIEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZCBvd25zIHRoZSBTUUxTdGF0ZW1lbnQuIEhl
bmNlLCB0aGUgYmFja2VuZCBpcwogICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgb3V0bGl2ZSB0aGUg
U1FMU3RhdGVtZW50LCBhbmQgaXQgaXMgc2FmZSBmb3IgdXMgdG8gcmVmZXIKICAgICAvLyB0byB0
aGUgYmFja2VuZCB1c2luZyBhIHJhdyBwb2ludGVyIGhlcmUuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2Vu
ZC5jcHAJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEzICs0
NywxMyBAQAogLy8gICAgIEF0IGJpcnRoIChpbiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmV4ZWN1
dGVTUUwoKSk6CiAvLyAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQogLy8gICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCAgICAgICAgICAgLy8gRGVx
dWU8UmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+PiBtX3N0YXRlbWVudFF1ZXVlIHBvaW50cyB0
byAuLi4KLS8vICAgICAtLT4gU1FMU3RhdGVtZW50QmFja2VuZCAgICAgICAgIC8vIE93blB0cjxT
UUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRzIHRvIC4uLgorLy8gICAgIC0tPiBTUUxTdGF0
ZW1lbnRCYWNrZW5kICAgICAgICAgLy8gc3RkOjp1bmlxdWVfcHRyPFNRTFN0YXRlbWVudD4gbV9m
cm9udGVuZCBwb2ludHMgdG8gLi4uCiAvLyAgICAgICAgIC0tPiBTUUxTdGF0ZW1lbnQKIC8vCiAv
LyAgICAgQWZ0ZXIgZ3JhYmJpbmcgdGhlIHN0YXRlbWVudCBmb3IgZXhlY3V0aW9uIChpbiBTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1lbnQoKSk6CiAvLyAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vICAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgICAg
ICAgICAgIC8vIFJlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBtX2N1cnJlbnRTdGF0ZW1lbnRC
YWNrZW5kIHBvaW50cyB0byAuLi4KLS8vICAgICAtLT4gU1FMU3RhdGVtZW50QmFja2VuZCAgICAg
ICAgIC8vIE93blB0cjxTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQgcG9pbnRzIHRvIC4uLgorLy8g
ICAgIC0tPiBTUUxTdGF0ZW1lbnRCYWNrZW5kICAgICAgICAgLy8gc3RkOjp1bmlxdWVfcHRyPFNR
TFN0YXRlbWVudD4gbV9mcm9udGVuZCBwb2ludHMgdG8gLi4uCiAvLyAgICAgICAgIC0tPiBTUUxT
dGF0ZW1lbnQKIC8vCiAvLyAgICAgVGhlbiB3ZSBleGVjdXRlIHRoZSBzdGF0ZW1lbnQgaW4gU1FM
VHJhbnNhY3Rpb25CYWNrZW5kOjpydW5DdXJyZW50U3RhdGVtZW50QW5kR2V0TmV4dFN0YXRlKCku
CkBAIC03NCwxNSArNzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRy
PFNRTFN0YXRlbWVudEJhY2tlbmQ+IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShQYXNzT3du
UHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBmcm9udGVuZCwKK1Bhc3NSZWZQdHI8U1FMU3RhdGVt
ZW50QmFja2VuZD4gU1FMU3RhdGVtZW50QmFja2VuZDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxB
YnN0cmFjdFNRTFN0YXRlbWVudD4gZnJvbnRlbmQsCiAgICAgY29uc3QgU3RyaW5nJiBzdGF0ZW1l
bnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1FMU3RhdGVtZW50QmFja2VuZChmcm9udGVuZCwg
c3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTUUxTdGF0ZW1lbnRCYWNrZW5kKHN0ZDo6bW92ZShmcm9udGVuZCksIHN0YXRlbWVudCwg
YXJndW1lbnRzLCBwZXJtaXNzaW9ucykpOwogfQogCi1TUUxTdGF0ZW1lbnRCYWNrZW5kOjpTUUxT
dGF0ZW1lbnRCYWNrZW5kKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZyb250ZW5k
LAorU1FMU3RhdGVtZW50QmFja2VuZDo6U1FMU3RhdGVtZW50QmFja2VuZChzdGQ6OnVuaXF1ZV9w
dHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+IGZyb250ZW5kLAogICAgIGNvbnN0IFN0cmluZyYgc3Rh
dGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGludCBwZXJtaXNzaW9u
cykKLSAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpCisgICAgOiBtX2Zyb250ZW5kKHN0ZDo6bW92
ZShmcm9udGVuZCkpCiAgICAgLCBtX3N0YXRlbWVudChzdGF0ZW1lbnQuaXNvbGF0ZWRDb3B5KCkp
CiAgICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVudHMpCiAgICAgLCBtX2hhc0NhbGxiYWNrKG1fZnJv
bnRlbmQtPmhhc0NhbGxiYWNrKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuaAkocmV2aXNpb24gMTYz
MzA4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRC
YWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJBYnN0
cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaCIKICNpbmNsdWRlICJTUUxWYWx1ZS5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2
LDcgKzQ1LDcgQEAgY2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOwogCiBjbGFzcyBTUUxTdGF0
ZW1lbnRCYWNrZW5kIDogcHVibGljIEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4gY3JlYXRlKFBh
c3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNR
TFN0YXRlbWVudEJhY2tlbmQ+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJhY3RTUUxTdGF0
ZW1lbnQ+LAogICAgICAgICBjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29uc3QgVmVjdG9y
PFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpOwogCiAgICAgYm9vbCBleGVj
dXRlKERhdGFiYXNlQmFja2VuZCopOwpAQCAtNjMsMTMgKzYyLDEzIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBzcWxSZXN1bHRTZXQoKSBjb25zdDsKIAog
cHJpdmF0ZToKLSAgICBTUUxTdGF0ZW1lbnRCYWNrZW5kKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxT
dGF0ZW1lbnQ+LCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwKKyAgICBTUUxTdGF0ZW1lbnRCYWNr
ZW5kKHN0ZDo6dW5pcXVlX3B0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYg
c3RhdGVtZW50LAogICAgICAgICBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIGlu
dCBwZXJtaXNzaW9ucyk7CiAKICAgICB2b2lkIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAgICAg
dm9pZCBjbGVhckZhaWx1cmVEdWVUb1F1b3RhKCk7CiAKLSAgICBPd25QdHI8QWJzdHJhY3RTUUxT
dGF0ZW1lbnQ+IG1fZnJvbnRlbmQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U1FMU3Rh
dGVtZW50PiBtX2Zyb250ZW5kOwogICAgIFN0cmluZyBtX3N0YXRlbWVudDsKICAgICBWZWN0b3I8
U1FMVmFsdWU+IG1fYXJndW1lbnRzOwogICAgIGJvb2wgbV9oYXNDYWxsYmFjazsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b24uY3BwCShyZXZpc2lvbiAxNjMzMDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYxLDggKzI2MSw4
IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTUUwoY29uc3QgU3QKICAgICBlbHNlIGlm
IChtX3JlYWRPbmx5KQogICAgICAgICBwZXJtaXNzaW9ucyB8PSBEYXRhYmFzZUF1dGhvcml6ZXI6
OlJlYWRPbmx5TWFzazsKIAotICAgIE93blB0cjxTUUxTdGF0ZW1lbnQ+IHN0YXRlbWVudCA9IFNR
TFN0YXRlbWVudDo6Y3JlYXRlKG1fZGF0YWJhc2UuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja0Vy
cm9yKTsKLSAgICBtX2JhY2tlbmQtPmV4ZWN1dGVTUUwoc3RhdGVtZW50LnJlbGVhc2UoKSwgc3Fs
U3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKKyAgICBhdXRvIHN0YXRlbWVudCA9
IHN0ZDo6bWFrZV91bmlxdWU8U1FMU3RhdGVtZW50PihtX2RhdGFiYXNlLmdldCgpLCBjYWxsYmFj
aywgY2FsbGJhY2tFcnJvcik7CisgICAgbV9iYWNrZW5kLT5leGVjdXRlU1FMKHN0ZDo6bW92ZShz
dGF0ZW1lbnQpLCBzcWxTdGF0ZW1lbnQsIGFyZ3VtZW50cywgcGVybWlzc2lvbnMpOwogfQogCiBi
b29sIFNRTFRyYW5zYWN0aW9uOjpjb21wdXRlTmV4dFN0YXRlQW5kQ2xlYW51cElmTmVlZGVkKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYwLDcgKzI2MCw3IEBACiAvLwogLy8gICAgIFdoZW4gZXhlY3V0
aW5nIHRoZSB0cmFuc2FjdGlvbiAoaW4gRGF0YWJhc2VUaHJlYWQ6OmRhdGFiYXNlVGhyZWFkKCkp
OgogLy8gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0vLyAgICAgT3duUHRyPERhdGFiYXNlVGFzaz4gdGFzazsg
ICAgICAgICAgICAgLy8gcG9pbnRzIHRvIC4uLgorLy8gICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRhc2s+IHRhc2s7ICAgIC8vIHBvaW50cyB0byAuLi4KIC8vICAgICAtLT4gRGF0YWJhc2VU
cmFuc2FjdGlvblRhc2sgICAgICAgICAgICAvLyBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5k
PiBtX3RyYW5zYWN0aW9uIHBvaW50cyB0byAuLi4KIC8vICAgICAgICAgLS0+IFNRTFRyYW5zYWN0
aW9uQmFja2VuZCAgICAgICAgICAvLyBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IG1fZnJvbnRlbmQ7
CiAvLyAgICAgICAgICAgICAtLT4gU1FMVHJhbnNhY3Rpb24gICAgICAgICAgICAgLy8gUmVmUHRy
PFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gbV9iYWNrZW5kIHBvaW50cyB0byAuLi4KQEAgLTI4NCw3
ICsyODQsNyBAQAogLy8gICAgIEhvd2V2ZXIsIHRoZXJlIHdpbGwgc3RpbGwgYmUgYSBEYXRhYmFz
ZVRhc2sgcG9pbnRpbmcgdG8gdGhlIFNRTFRyYW5zYWN0aW9uQmFja2VuZCAoc2VlCiAvLyAgICAg
dGhlICJXaGVuIGV4ZWN1dGluZyB0aGUgdHJhbnNhY3Rpb24iIGNoYWluIGFib3ZlKS4gVGhpcyB3
aWxsIGtlZXAgdGhlCiAvLyAgICAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kIGFsaXZlIHVudGlsIERh
dGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpIHJlbGVhc2VzIGl0cwotLy8gICAgIHRhc2sg
T3duUHRyLgorLy8gICAgIHRhc2sgc3RkOjp1bmlxdWVfcHRyLgogLy8KIC8vICAgICBXaGF0IGhh
cHBlbnMgaWYgYSB0cmFuc2FjdGlvbiBpcyBpbnRlcnJ1cHRlZD8KIC8vICAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMzkzLDcgKzM5Myw3IEBAIHZv
aWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpkb0NsZWFudXAoKQogICAgICAgICAvLyBtX3NxbGl0
ZVRyYW5zYWN0aW9uIGludm9rZXMgU1FMaXRlVHJhbnNhY3Rpb24ncyBkZXN0cnVjdG9yIHdoaWNo
IGRvZXMKICAgICAgICAgLy8ganVzdCB0aGF0LiBXZSBtaWdodCBhcyB3ZWxsIGRvIHRoaXMgdW5j
b25kaXRpb25hbGx5IGFuZCBmcmVlIHVwIGl0cwogICAgICAgICAvLyByZXNvdXJjZXMgYmVjYXVz
ZSB3ZSdyZSBhbHJlYWR5IHRlcm1pbmF0aW5nLgotICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9u
LmNsZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0K
IAogICAgIC8vIFJlbGVhc2UgdGhlIGxvY2sgb24gdGhpcyBkYXRhYmFzZQpAQCAtNTAwLDcgKzUw
MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjb21wdXRlTmV4dFMKICAgICAvLyBU
aGUgY3VycmVudCBTUUxpdGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIHN0b3BwZWQsIGFzIHdlbGwK
ICAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbikgewogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0
aW9uLT5zdG9wKCk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAg
ICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8gVGVybWlu
YXRlIHRoZSBmcm9udGVuZCBzdGF0ZSBtYWNoaW5lLiBUaGlzIGFsc28gZ2V0cyB0aGUgZnJvbnRl
bmQgdG8KQEAgLTUyNiwxMSArNTI2LDExIEBAIGJvb2wgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpz
aG91bGRQZXJmb3IKIH0KICNlbmRpZgogCi12b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZXhl
Y3V0ZVNRTChQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBzdGF0ZW1lbnQsCit2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZXhlY3V0ZVNRTChzdGQ6OnVuaXF1ZV9wdHI8QWJzdHJh
Y3RTUUxTdGF0ZW1lbnQ+IHN0YXRlbWVudCwKICAgICBjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVu
dCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpCiB7
CiAgICAgUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IHN0YXRlbWVudEJhY2tlbmQ7Ci0gICAg
c3RhdGVtZW50QmFja2VuZCA9IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShzdGF0ZW1lbnQs
IHNxbFN0YXRlbWVudCwgYXJndW1lbnRzLCBwZXJtaXNzaW9ucyk7CisgICAgc3RhdGVtZW50QmFj
a2VuZCA9IFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNyZWF0ZShzdGQ6Om1vdmUoc3RhdGVtZW50KSwg
c3FsU3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKTsKIAogICAgIGlmIChEYXRhYmFz
ZTo6ZnJvbShtX2RhdGFiYXNlLmdldCgpKS0+ZGVsZXRlZCgpKQogICAgICAgICBzdGF0ZW1lbnRC
YWNrZW5kLT5zZXREYXRhYmFzZURlbGV0ZWRFcnJvcigpOwpAQCAtNTgyLDcgKzU4Miw3IEBAIFNR
TFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJhbnNhY3Rpb25CYWNrZW4KICAgICB9CiAKICAgICBBU1NF
UlQoIW1fc3FsaXRlVHJhbnNhY3Rpb24pOwotICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBhZG9w
dFB0cihuZXcgU1FMaXRlVHJhbnNhY3Rpb24obV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKSwg
bV9yZWFkT25seSkpOworICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVl
PFNRTGl0ZVRyYW5zYWN0aW9uPihtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLCBtX3JlYWRP
bmx5KTsKIAogICAgIG1fZGF0YWJhc2UtPnJlc2V0RGVsZXRlcygpOwogICAgIG1fZGF0YWJhc2Ut
PmRpc2FibGVBdXRob3JpemVyKCk7CkBAIC01OTQsNyArNTk0LDcgQEAgU1FMVHJhbnNhY3Rpb25T
dGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tlbgogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwogICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1
bmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rpb24iLAogICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3Fs
aXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAg
ICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBuZXh0
U3RhdGVGb3JUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgfQogCkBAIC02MDYsNyArNjA2LDcgQEAg
U1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbkJhY2tlbgogICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1
bmFibGUgdG8gcmVhZCB2ZXJzaW9uIiwKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwotICAg
ICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNh
Y3Rpb24gPSBudWxscHRyOwogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7
CiAgICAgICAgIHJldHVybiBuZXh0U3RhdGVGb3JUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgfQpA
QCAtNjE1LDcgKzYxNSw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJhbnNhY3Rpb25CYWNr
ZW4KICAgICAvLyBTcGVjIDQuMy4yLjM6IFBlcmZvcm0gcHJlZmxpZ2h0IHN0ZXBzLCBqdW1waW5n
IHRvIHRoZSBlcnJvciBjYWxsYmFjayBpZiB0aGV5IGZhaWwKICAgICBpZiAobV93cmFwcGVyICYm
ICFtX3dyYXBwZXItPnBlcmZvcm1QcmVmbGlnaHQodGhpcykpIHsKICAgICAgICAgbV9kYXRhYmFz
ZS0+ZGlzYWJsZUF1dGhvcml6ZXIoKTsKLSAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVh
cigpOworICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgbV9k
YXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3Ig
PSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9y
KQpAQCAtNzk5LDcgKzc5OSw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJhbnNhY3Rpb25C
YWNrZW4KICAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi0+cm9sbGJhY2soKTsKIAogICAgICAg
ICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dy
ZXNzKCkpOwotICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgICAgIG1f
c3FsaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KICAgICBtX2RhdGFiYXNlLT5lbmFi
bGVBdXRob3JpemVyKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkocmV2aXNpb24gMTYz
MzA4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkFi
c3RyYWN0U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VCYXNpY1R5
cGVzLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuaCIKKyNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg1LDcgKzg2LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U1FMRXJyb3I+IHRyYW5zYWN0aW9uRXJyb3Io
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEFic3RyYWN0U1FMU3RhdGVtZW50KiBjdXJyZW50U3Rh
dGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldHJ5Q3VycmVu
dFN0YXRlbWVudChib29sKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNRTChQ
YXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQs
CisgICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVTUUwoc3RkOjp1bmlxdWVfcHRyPEFic3RyYWN0U1FM
U3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsCiAgICAgICAgIGNvbnN0IFZlY3Rv
cjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZG9DbGVhbnVwKCk7CkBAIC0xMzUsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICBNdXRl
eCBtX3N0YXRlbWVudE11dGV4OwogICAgIERlcXVlPFJlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5k
Pj4gbV9zdGF0ZW1lbnRRdWV1ZTsKIAotICAgIE93blB0cjxTUUxpdGVUcmFuc2FjdGlvbj4gbV9z
cWxpdGVUcmFuc2FjdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1FMaXRlVHJhbnNhY3Rpb24+
IG1fc3FsaXRlVHJhbnNhY3Rpb247CiAgICAgUmVmUHRyPE9yaWdpbkxvY2s+IG1fb3JpZ2luTG9j
azsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJh
bnNhY3Rpb25CYWNrZW5kU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmNwcAkocmV2aXNpb24g
MTYzMzA4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbkJhY2tlbmRTeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBTUUxU
cmFuc2FjdGlvbkJhY2tlbmRTeW5jOjpTUUxUcmFuc2FjdGlvCiAgICAgLCBtX3JlYWRPbmx5KHJl
YWRPbmx5KQogICAgICwgbV9oYXNWZXJzaW9uTWlzbWF0Y2goZmFsc2UpCiAgICAgLCBtX21vZGlm
aWVkRGF0YWJhc2UoZmFsc2UpCi0gICAgLCBtX3RyYW5zYWN0aW9uQ2xpZW50KGFkb3B0UHRyKG5l
dyBTUUxUcmFuc2FjdGlvbkNsaWVudCgpKSkKKyAgICAsIG1fdHJhbnNhY3Rpb25DbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxTUUxUcmFuc2FjdGlvbkNsaWVudD4oKSkKIHsKICAgICBBU1NFUlQobV9k
YXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiB9
CkBAIC0xNDIsNyArMTQyLDcgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmRT
eW5jOgogICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnNldE1heGltdW1TaXpl
KG1fZGF0YWJhc2UtPm1heGltdW1TaXplKCkpOwogCiAgICAgQVNTRVJUKCFtX3NxbGl0ZVRyYW5z
YWN0aW9uKTsKLSAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gYWRvcHRQdHIobmV3IFNRTGl0ZVRy
YW5zYWN0aW9uKG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCksIG1fcmVhZE9ubHkpKTsKKyAg
ICBtX3NxbGl0ZVRyYW5zYWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVUcmFuc2FjdGlv
bj4obV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKSwgbV9yZWFkT25seSk7CiAKICAgICBtX2Rh
dGFiYXNlLT5yZXNldERlbGV0ZXMoKTsKICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXpl
cigpOwpAQCAtMTU0LDcgKzE1NCw3IEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kU3luYzoKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRy
YW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNs
ZWFyKCk7CisgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQogCkBAIC0yMDcsNyArMjA3
LDcgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jOgogICAgICAgICBy
ZXR1cm4gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQogCi0gICAgbV9zcWxpdGVU
cmFuc2FjdGlvbi5jbGVhcigpOworICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwog
CiAgICAgLy8gVmFjdXVtIHRoZSBkYXRhYmFzZSBpZiBhbnl0aGluZyB3YXMgZGVsZXRlZC4KICAg
ICBpZiAobV9kYXRhYmFzZS0+aGFkRGVsZXRlcygpKQpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYzo6cm9sbGJhY2sKICAgICBtX2RhdGFiYXNlLT5kaXNh
YmxlQXV0aG9yaXplcigpOwogICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uKSB7CiAgICAgICAg
IG1fc3FsaXRlVHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7Ci0gICAgICAgIG1fc3FsaXRlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAg
ICAgfQogICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmRTeW5jLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkJhY2tlbmRTeW5jLmgJKHJldmlzaW9uIDE2MzMwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kU3luYy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKIAogI2lu
Y2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBlcy5oIgorI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtNzMsOCArNzQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNW
ZXJzaW9uTWlzbWF0Y2g7CiAKICAgICBib29sIG1fbW9kaWZpZWREYXRhYmFzZTsKLSAgICBPd25Q
dHI8U1FMVHJhbnNhY3Rpb25DbGllbnQ+IG1fdHJhbnNhY3Rpb25DbGllbnQ7Ci0gICAgT3duUHRy
PFNRTGl0ZVRyYW5zYWN0aW9uPiBtX3NxbGl0ZVRyYW5zYWN0aW9uOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxTUUxUcmFuc2FjdGlvbkNsaWVudD4gbV90cmFuc2FjdGlvbkNsaWVudDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1FMaXRlVHJhbnNhY3Rpb24+IG1fc3FsaXRlVHJhbnNhY3Rpb247CiAKICAg
ICBmcmllbmQgY2xhc3MgU1FMVHJhbnNhY3Rpb25TeW5jOyAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
b25jZSB0aGUgZnJvbnQtZW5kIGhhcyBiZWVuIHByb3Blcmx5IGlzb2xhdGVkLgogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>