<?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>133425</bug_id>
          
          <creation_ts>2014-05-31 13:35:05 -0700</creation_ts>
          <short_desc>Add a LazyNeverDestroyed class template and use it</short_desc>
          <delta_ts>2014-06-01 15:31:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012760</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 13:35:05 -0700</bug_when>
    <thetext>Add a LazyNeverDestroyed class template and use it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012761</commentid>
    <comment_count>1</comment_count>
      <attachid>232321</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 13:42:16 -0700</bug_when>
    <thetext>Created attachment 232321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012765</commentid>
    <comment_count>2</comment_count>
      <attachid>232321</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-31 15:00:33 -0700</bug_when>
    <thetext>Comment on attachment 232321
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp:43
&gt; +        functionWhitelist.construct(Options::dfgFunctionWhitelistFile());

Bug in the Windows compiler?

     1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\include\private\wtf/NeverDestroyed.h(91): error C2248: &apos;JSC::DFG::FunctionWhitelist::FunctionWhitelist&apos; : cannot access private member declared in class &apos;JSC::DFG::FunctionWhitelist&apos; (..\dfg\DFGFunctionWhitelist.cpp)
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\dfg\DFGFunctionWhitelist.h(46) : see declaration of &apos;JSC::DFG::FunctionWhitelist::FunctionWhitelist&apos;
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\dfg\DFGFunctionWhitelist.h(38) : see declaration of &apos;JSC::DFG::FunctionWhitelist&apos;
                 ..\dfg\DFGFunctionWhitelist.cpp(43) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;JSC::DFG::FunctionWhitelist&gt;::construct&lt;JSC::optionString&amp;&gt;(JSC::optionString &amp;)&apos; being compiled
                 ..\dfg\DFGFunctionWhitelist.cpp(43) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;JSC::DFG::FunctionWhitelist&gt;::construct&lt;JSC::optionString&amp;&gt;(JSC::optionString &amp;)&apos; being compiled

&gt; Source/WTF/wtf/Forward.h:30
&gt; +template&lt;typename T&gt; class LazyNeverDestroyed;
&gt;  template&lt;typename T&gt; class NeverDestroyed;

Are these two forward declarations ever helpful?

&gt; Source/WTF/wtf/NeverDestroyed.h:126
&gt;  using WTF::NeverDestroyed;

Should the plain old NeverDestroyed be reimplemented using LazyNeverDestroyed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012767</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 15:31:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 232321 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232321&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGFunctionWhitelist.cpp:43
&gt; &gt; +        functionWhitelist.construct(Options::dfgFunctionWhitelistFile());
&gt; 
&gt; Bug in the Windows compiler?
&gt; 
&gt;      1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\include\private\wtf/NeverDestroyed.h(91): error C2248: &apos;JSC::DFG::FunctionWhitelist::FunctionWhitelist&apos; : cannot access private member declared in class &apos;JSC::DFG::FunctionWhitelist&apos; (..\dfg\DFGFunctionWhitelist.cpp)
&gt;                  c:\cygwin\home\buildbot\webkit\source\javascriptcore\dfg\DFGFunctionWhitelist.h(46) : see declaration of &apos;JSC::DFG::FunctionWhitelist::FunctionWhitelist&apos;
&gt;                  c:\cygwin\home\buildbot\webkit\source\javascriptcore\dfg\DFGFunctionWhitelist.h(38) : see declaration of &apos;JSC::DFG::FunctionWhitelist&apos;
&gt;                  ..\dfg\DFGFunctionWhitelist.cpp(43) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;JSC::DFG::FunctionWhitelist&gt;::construct&lt;JSC::optionString&amp;&gt;(JSC::optionString &amp;)&apos; being compiled
&gt;                  ..\dfg\DFGFunctionWhitelist.cpp(43) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;JSC::DFG::FunctionWhitelist&gt;::construct&lt;JSC::optionString&amp;&gt;(JSC::optionString &amp;)&apos; being compiled

Hmm, I&apos;ll see what I can do to fix it.

&gt; 
&gt; &gt; Source/WTF/wtf/Forward.h:30
&gt; &gt; +template&lt;typename T&gt; class LazyNeverDestroyed;
&gt; &gt;  template&lt;typename T&gt; class NeverDestroyed;
&gt; 
&gt; Are these two forward declarations ever helpful?

They are useful for friend declarations.

&gt; 
&gt; &gt; Source/WTF/wtf/NeverDestroyed.h:126
&gt; &gt;  using WTF::NeverDestroyed;
&gt; 
&gt; Should the plain old NeverDestroyed be reimplemented using LazyNeverDestroyed?

I had done that initially, but then I had to change all friend declarations to use LazyNeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012769</commentid>
    <comment_count>4</comment_count>
      <attachid>232323</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 15:35:34 -0700</bug_when>
    <thetext>Created attachment 232323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012770</commentid>
    <comment_count>5</comment_count>
      <attachid>232324</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 16:32:54 -0700</bug_when>
    <thetext>Created attachment 232324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012773</commentid>
    <comment_count>6</comment_count>
      <attachid>232326</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-31 16:53:31 -0700</bug_when>
    <thetext>Created attachment 232326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012792</commentid>
    <comment_count>7</comment_count>
      <attachid>232326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-31 20:52:37 -0700</bug_when>
    <thetext>Comment on attachment 232326
Patch

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

&gt; Source/WebCore/workers/DefaultSharedWorkerRepository.h:60
&gt; +        friend class LazyNeverDestroyed&lt;DefaultSharedWorkerRepository&gt;;

1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\include\private\wtf/NeverDestroyed.h(91): error C2248: &apos;WebCore::DefaultSharedWorkerRepository::DefaultSharedWorkerRepository&apos; : cannot access private member declared in class &apos;WebCore::DefaultSharedWorkerRepository&apos; (..\workers\DefaultSharedWorkerRepository.cpp)
                 c:\cygwin\home\buildbot\webkit\source\webcore\workers\DefaultSharedWorkerRepository.h(82) : see declaration of &apos;WebCore::DefaultSharedWorkerRepository::DefaultSharedWorkerRepository&apos;
                 c:\cygwin\home\buildbot\webkit\source\webcore\workers\DefaultSharedWorkerRepository.h(58) : see declaration of &apos;WebCore::DefaultSharedWorkerRepository&apos;
                 ..\workers\DefaultSharedWorkerRepository.cpp(337) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;WebCore::DefaultSharedWorkerRepository&gt;::construct&lt;&gt;(void)&apos; being compiled
                 ..\workers\DefaultSharedWorkerRepository.cpp(337) : see reference to function template instantiation &apos;void WTF::LazyNeverDestroyed&lt;WebCore::DefaultSharedWorkerRepository&gt;::construct&lt;&gt;(void)&apos; being compiled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012827</commentid>
    <comment_count>8</comment_count>
      <attachid>232344</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-01 08:36:50 -0700</bug_when>
    <thetext>Created attachment 232344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012835</commentid>
    <comment_count>9</comment_count>
      <attachid>232347</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-01 10:15:04 -0700</bug_when>
    <thetext>Created attachment 232347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012866</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-01 15:31:42 -0700</bug_when>
    <thetext>Committed r169518: &lt;http://trac.webkit.org/changeset/169518&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232321</attachid>
            <date>2014-05-31 13:42:16 -0700</date>
            <delta_ts>2014-05-31 15:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140531134152.patch</filename>
            <type>text/plain</type>
            <size>19950</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi5hNDRhYmI3
MTg3ZWRjNmU5ZTdjM2NlYjYzMmYzZjE0NjY1NWEwNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDE5
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBmdW5jdGlvbldoaXRl
bGlzdC5jb25zdHJ1Y3QoT3B0aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOwogICAg
IH0pOwotICAgIHJldHVybiAqZnVuY3Rpb25XaGl0ZWxpc3Q7CisgICAgcmV0dXJuIGZ1bmN0aW9u
V2hpdGVsaXN0OwogfQogCiBGdW5jdGlvbldoaXRlbGlzdDo6RnVuY3Rpb25XaGl0ZWxpc3QoY29u
c3QgY2hhciogZmlsZW5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1
bmN0aW9uV2hpdGVsaXN0LmgKaW5kZXggYjU4ZTFhNTAzMTg0ZmY2YzAwOTc4YWUzNjBjZDRiMWRi
ZjBjMTI2My4uNTdlZjdkYWE3YWIxNjQ5MDg1MTczYWI3MDI5MjU4NTM5Mzk1NDFiOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaApAQCAt
MzYsMTMgKzM2LDE0IEBAIGNsYXNzIENvZGVCbG9jazsKIG5hbWVzcGFjZSBERkcgewogCiBjbGFz
cyBGdW5jdGlvbldoaXRlbGlzdCB7CisgICAgZnJpZW5kIGNsYXNzIExhenlOZXZlckRlc3Ryb3ll
ZDxGdW5jdGlvbldoaXRlbGlzdD47CiBwdWJsaWM6CiAgICAgc3RhdGljIEZ1bmN0aW9uV2hpdGVs
aXN0JiBlbnN1cmVHbG9iYWxXaGl0ZWxpc3QoKTsKIAogICAgIGJvb2wgY29udGFpbnMoQ29kZUJs
b2NrKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRnVuY3Rpb25XaGl0ZWxpc3QoY29uc3QgY2hh
ciopOworICAgIGV4cGxpY2l0IEZ1bmN0aW9uV2hpdGVsaXN0KGNvbnN0IGNoYXIqKTsKICAgICB2
b2lkIHBhcnNlRnVuY3Rpb25OYW1lc0luRmlsZShjb25zdCBjaGFyKik7CiAKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9lbnRyaWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5o
IGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDIxNTI0N2ZhNzk0MjZmYzc3NDNhMTEy
ZWM1MThiNDAzOGVlNzc0ZmYuLjQ5YTkyYzUyOGUxNWZmOTk3ZWEzMzNmNjZlN2FhYmFiMmMwY2Y2
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Gb3J3YXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBGdW5jdGlvbjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIExhenlOZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVy
RGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0cjsKQEAgLTYwLDYgKzYxLDcgQEAgdXNpbmcgV1RG
OjpEZWNvZGVyOwogdXNpbmcgV1RGOjpFbmNvZGVyOwogdXNpbmcgV1RGOjpGdW5jdGlvbjsKIHVz
aW5nIFdURjo6RnVuY3Rpb25EaXNwYXRjaGVyOwordXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95
ZWQ7CiB1c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2lu
ZyBXVEY6OlBhc3NPd25QdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ry
b3llZC5oIGIvU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAppbmRleCA1NzE1MmJkNWQz
NGIxOWEzMmYxMWRlYWE4MTIwYTUyMjJhNjQyYTcxLi5jZjQzMTFmNjBhMWUzOWVjNzU3YmQzN2Y1
MmFmMjEwMjQ4NGIyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3ll
ZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJveWVkLmgKQEAgLTczLDggKzczLDU2
IEBAIHByaXZhdGU6CiAgICAgfTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExh
enlOZXZlckRlc3Ryb3llZCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6eU5ldmVyRGVz
dHJveWVkKTsKKworcHVibGljOgorICAgIExhenlOZXZlckRlc3Ryb3llZCgpID0gZGVmYXVsdDsK
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgdm9pZCBjb25zdHJ1Y3QoQXJn
cyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisK
KyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgICAgIG1faXNDb25zdHJ1Y3RlZCA9IHRydWU7Cisj
ZW5kaWYKKworICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoYXNQdHIoKSkgVChzdGQ6OmZvcndh
cmQ8QXJncz4oYXJncykuLi4pKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpIHsgcmV0dXJu
ICphc1B0cigpOyB9CisgICAgVCYgZ2V0KCkgeyByZXR1cm4gKmFzUHRyKCk7IH0KKworcHJpdmF0
ZToKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKiBQb2lu
dGVyVHlwZTsKKworICAgIFBvaW50ZXJUeXBlIGFzUHRyKCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX2lzQ29uc3RydWN0ZWQpOworCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBv
aW50ZXJUeXBlPigmbV9zdG9yYWdlKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdh
dGUgd2hldGhlciB3ZSBzaG91bGQgYWxsb2NhdGUgYSBodW5rIG9mIHZpcnR1YWwgbWVtb3J5Cisg
ICAgLy8gYW5kIGhhbmQgb3V0IGNodW5rcyBvZiBpdCB0byBOZXZlckRlc3Ryb3llZCBpbnN0ZWFk
LCB0byByZWR1Y2UgZnJhZ21lbnRhdGlvbi4KKyAgICB0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3Rv
cmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9y
YWdlOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXgg
PSBzdGQ6OmlzX2Jhc2Vfb2Y8UmVmQ291bnRlZDxQdHJUeXBlPiwgUHRyVHlwZT46OnZhbHVlPiBz
dHJ1Y3QgTWF5YmVSZWxheCB7CisgICAgICAgIGV4cGxpY2l0IE1heWJlUmVsYXgoUHRyVHlwZSop
IHsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGU+IHN0cnVjdCBNYXli
ZVJlbGF4PFB0clR5cGUsIHRydWU+IHsKKyAgICAgICAgZXhwbGljaXQgTWF5YmVSZWxheChQdHJU
eXBlKiBwdHIpIHsgcHRyLT5yZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsgfQorICAgIH07CisK
KyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lzQ29uc3RydWN0ZWQgPSBmYWxzZTsK
KyNlbmRpZgorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGOwogCit1c2luZyBXVEY6OkxhenlOZXZl
ckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiAKICNlbmRpZiAvLyBOZXZl
ckRlc3Ryb3llZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5
bWJvbHNVc2VkQnlTYWZhcmkubW0gYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJv
bHNVc2VkQnlTYWZhcmkubW0KaW5kZXggMGY4OTdkMTA2MmY5Y2JmMDVkZTY4NzhmY2UzYzQzZTA2
YmEwZmI3My4uZmU3MzBlNDM5Zjk5ZDY1ZDQzYzMyYzJkZjNjYzQyNzZhZTVmYjY2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1t
CisrKyBiL1NvdXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5t
bQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2luY2x1ZGUg
Ik1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJOZXZlckRlc3Ryb3llZC5oIgogI2luY2x1ZGUgIlN0
ZExpYkV4dHJhcy5oIgogI2luY2x1ZGUgPG11dGV4PgogCkBAIC00NywxMiArNDgsMTIgQEAgdm9p
ZCBjYWxsT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHN0
YXRpYyBzdGQ6Om11dGV4JiBhdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCiB7CiAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4
KiBtdXRleDsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6
Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25z
dHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4
OwogfQogCiB2b2lkIGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKaW5kZXggNjEyMzM1MTg0ZDFk
YzY2ODFkNzFiOTc0NjQ0YjhlMjU4YTk3ZDE5MC4uNDRmNzdmMWE5NzgyZDJjNTQwNGQ0ZjkzNzRl
NjM3NGZhYzUyNzFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29s
bGF0b3JJQ1UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNV
LmNwcApAQCAtMzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5p
Y29kZS91Y29sLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApA
QCAtNTIsMTEgKzUzLDEzIEBAIHN0YXRpYyBib29sIGNhY2hlZENvbGxhdG9yU2hvdWxkU29ydExv
d2VyY2FzZUZpcnN0Owogc3RhdGljIHN0ZDo6bXV0ZXgmIGNhY2hlZENvbGxhdG9yTXV0ZXgoKQog
ewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjpt
dXRleCogbXV0ZXg7CisKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+
IG11dGV4OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXgg
PSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRl
eC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKLSAgICByZXR1cm4gKm11dGV4OworCisgICAgcmV0dXJu
IG11dGV4OwogfQogCiAjaWYgIShPUyhEQVJXSU4pICYmIFVTRShDRikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRCYXNl
LmNwcAppbmRleCA1NmQzZDgxOTQyYTFlZGU3YWIzYjc1YTdlYzI0ZmJiMThhMTczNjk5Li4yZTUz
OGUwZWI1MTEzZTliZWQ0ZDAyY2E0Zjc1ZGMyZDkwMzI3ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5j
cHAKQEAgLTE0MSwxMyArMTQxLDEzIEBAIHN0YXRpYyBib29sIHNldFRleHRWYWx1ZUluRGF0YWJh
c2UoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zCiBzdGF0aWMg
c3RkOjptdXRleCYgZ3VpZE11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7Ci0gICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW117Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4Pigp
LnJlbGVhc2UoKTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICBy
ZXR1cm4gKm11dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPERh
dGFiYXNlR3VpZCwgU3RyaW5nPiBHdWlkVmVyc2lvbk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCmluZGV4IDk4NDIzMDY3Mzg5MjFm
MDVkMWIwNzAyZTFmNmFlZDBjNTQ5NDEzZmQuLjdmNGVlZTM0YTRjODljZGJmODYxOTkyYWQ5OTVj
MWEzZjE1ZDRhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5JiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkKIHN0YXRpYyBzdGQ6Om11dGV4
JiByZWdpc3RyeU11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7
Ci0gICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0
cm95ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
W117Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVh
c2UoKTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4g
Km11dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6
OkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2MTFjNTE5NjViNDViOTIxMTVmZjZlM2Fl
NDNhZDhmNDg4OWFjZjEwLi4wNDMzNjU3NDcxNmI4MGE1ZWZkZmMzZTRmZDE3OTllZmRmOTA4YWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQu
Y3BwCkBAIC01MSwxMyArNTEsMTMgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6bXV0ZXgmIHdvcmtlckRl
YnVnZ2VyQWdlbnRzTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVs
ZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVy
biAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0eXBlZGVmIEhhc2hNYXA8V29ya2Vy
VGhyZWFkKiwgV29ya2VyRGVidWdnZXJBZ2VudCo+IFdvcmtlckRlYnVnZ2VyQWdlbnRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApp
bmRleCA4NTJhYzZkOTE4YTY1YjM2MDdlYjhlNzAxZmNlM2M5MzU3M2NlYWNiLi4zNDVlN2Y1MmRi
ODA0OTQyYjdjZmY4MTQ5MGZkNjhmNTE1OTlhMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIApAQCAtNzgsMjAgKzc5LDIwIEBAIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdp
bkFjY2Vzc1JlcXVlc3QoY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAm
CiBib29sIGlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3Ry
aW5nJiBuYW1lKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBz
dGF0aWMgSFRUUEhlYWRlclNldCogYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzOwor
ICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SFRUUEhlYWRlclNldD4gYWxsb3dlZENyb3Nz
T3JpZ2luUmVzcG9uc2VIZWFkZXJzOwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
ewotICAgICAgICBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEhUVFBIZWFkZXJTZXQsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+Pih7Cisg
ICAgICAgIGFsbG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVycy5jb25zdHJ1Y3Q8c3RkOjpp
bml0aWFsaXplcl9saXN0PFN0cmluZz4+KHsKICAgICAgICAgICAgICJjYWNoZS1jb250cm9sIiwK
ICAgICAgICAgICAgICJjb250ZW50LWxhbmd1YWdlIiwKICAgICAgICAgICAgICJjb250ZW50LXR5
cGUiLAogICAgICAgICAgICAgImV4cGlyZXMiLAogICAgICAgICAgICAgImxhc3QtbW9kaWZpZWQi
LAogICAgICAgICAgICAgInByYWdtYSIKLSAgICAgICAgfSkucmVsZWFzZSgpOworICAgICAgICB9
KTsKICAgICB9KTsKIAotICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRl
cnMtPmNvbnRhaW5zKG5hbWUpOworICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25z
ZUhlYWRlcnMuZ2V0KCkuY29udGFpbnMobmFtZSk7CiB9CiAKIHZvaWQgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2woUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlm
aWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90
aWZpZXIuY3BwCmluZGV4IGI5ZTk4ZjhjNThkYjRhMTQ2YWI4ZmQ1NTczNWE4MDIwY2E0ZDRjMGYu
Ljc1NDBhNzg0MjZiMzI3ZjEyMzRlOTAxMTYxNzYxNzI5ZmExMjliNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIu
Y3BwCkBAIC0zMiwyMCArMzIsMjAgQEAKIAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtT
dGF0ZU5vdGlmaWVyJiBuZXR3b3JrU3RhdGVOb3RpZmllcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBOZXR3b3JrU3RhdGVOb3RpZmllciogbmV0
d29ya1N0YXRlTm90aWZpZXI7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxOZXR3b3Jr
U3RhdGVOb3RpZmllcj4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiAKICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW117Ci0gICAgICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyID0gc3RkOjptYWtl
X3VuaXF1ZTxOZXR3b3JrU3RhdGVOb3RpZmllcj4oKS5yZWxlYXNlKCk7CisgICAgICAgIG5ldHdv
cmtTdGF0ZU5vdGlmaWVyLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICpuZXR3
b3JrU3RhdGVOb3RpZmllcjsKKyAgICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiB9CiAK
IHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OmFkZE5ldHdvcmtTdGF0ZUNoYW5nZUxpc3RlbmVy
KHN0ZDo6ZnVuY3Rpb248dm9pZCAoYm9vbCk+IGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRl
eCAwOTc5MDY0NzZjNTcyODk2Njc5N2E4YjQ3MDQ0NDc1NzI0YjlkNTA4Li40YmQ4YzU3M2VmOTNl
ODhkYjg0MGVmMDdkNmI2NDhkYzkyMWM0ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNTgsNiAr
NTgsNyBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRl
IDxtdXRleD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtMzMxLDEyICszMzIsMTIgQEAgdm9pZCBTaGFyZWRXb3JrZXJT
Y3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0
b3J5JiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkqIGluc3RhbmNlOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8
RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk+IGluc3RhbmNlOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgaW5zdGFuY2UgPSBuZXcgRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnk7CisgICAgICAgIGluc3RhbmNlLmNvbnN0cnVjdCgpOwogICAgIH0pOwog
Ci0gICAgcmV0dXJuICppbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIGJvb2wg
RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OmlzQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaApp
bmRleCA4ODE4MzAzNzFhNmEyZTMwZWM5OWY0OGQ3OTZkNWZlY2ZhNWI2MDliLi42YWUxODAyMjc4
Y2Y3ZDU3MGYzMjJmMTI1NTkxY2YwZDc3M2ZkODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oCkBAIC01Nyw2ICs1
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgU2hhcmVkV29ya2VyUmVwb3NpdG9yeSBzdGF0aWMgaW50ZXJmYWNl
LgogICAgIGNsYXNzIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5IHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAgZnJpZW5kIGNsYXNzIExhenlOZXZlckRlc3Ryb3ll
ZDxEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeT47CisKICAgICBwdWJsaWM6CiAgICAgICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gc3VwcG9ydHMgU2hhcmVkV29ya2Vycywg
b3RoZXJ3aXNlIGZhbHNlLgogICAgICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDI2NGNmMWIxMzY3ZjJhNzRj
ZDE0Y2E2ZWI1MGMzNDMyODIxOWVmZGQuLmI2MDA3NzBlMDI2ZGUxZWUwMGZkMGE0MWI1NjAzMjk2
NDFlMmI4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTU0
LDEzICs1NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgc3RkOjptdXRleCYgdGhy
ZWFkU2V0TXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAg
ICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3ll
ZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsK
LSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgp
OworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0
ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiBzdGF0aWMgSGFzaFNldDxXb3JrZXJUaHJlYWQq
PiYgd29ya2VyVGhyZWFkcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCA0ZDI3ODQ1NzAyNzhjMTc2NWZkODMxZWVmNjExYTc3MTI0MDRiOWYzLi4zOTI2MGI4ZGIxNGI3
MzhhNWQxMmQzODM4YTJlMDNhODJjODg5YzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVy
Vmlldy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0xMTgsMTMgKzExOSwxMyBAQCBYTUxIdHRwUmVx
dWVzdFN0YXRpY0RhdGE6OlhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpCiBzdGF0aWMgY29uc3Qg
WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhJiBzdGF0aWNEYXRhKCkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIGNvbnN0IFhNTEh0dHBSZXF1ZXN0U3Rh
dGljRGF0YSogc3RhdGljRGF0YTsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFhNTEh0
dHBSZXF1ZXN0U3RhdGljRGF0YT4gc3RhdGljRGF0YTsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VGbGFnLCBbXSB7Ci0gICAgICAgIHN0YXRpY0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFhNTEh0
dHBSZXF1ZXN0U3RhdGljRGF0YT4oKS5yZWxlYXNlKCk7CisgICAgICAgIHN0YXRpY0RhdGEuY29u
c3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnN0YXRpY0RhdGE7CisgICAgcmV0dXJu
IHN0YXRpY0RhdGE7CiB9CiAKIHN0YXRpYyBib29sIGlzU2V0Q29va2llSGVhZGVyKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2VjSXRlbVNoaW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5j
cHAKaW5kZXggY2RhNzBhNWM0ZDQ1ZWI4MTRkOTM0ODg2OWJhNjE4YTQwOTg3YjFmYi4uYjRhMjkx
YmZiYmJiNTAwYjljOThkM2QxNjdjMzQyZDNiYmE2NWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAgLTM5LDE5ICszOSwyMCBAQAogI2luY2x1ZGUgPGF0
b21pYz4KICNpbmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIEJsb2Nr
aW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4mIHJlc3BvbnNlTWFwKCkKIHsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIEJsb2NraW5nUmVz
cG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4qIHJlc3BvbnNlTWFwOworICAgIHN0YXRpYyBM
YXp5TmV2ZXJEZXN0cm95ZWQ8QmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRh
Pj4gcmVzcG9uc2VNYXA7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAg
ICAgIHJlc3BvbnNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCbG9ja2luZ1Jlc3BvbnNlTWFwPFNl
Y0l0ZW1SZXNwb25zZURhdGE+PigpLnJlbGVhc2UoKTsKKyAgICAgICAgcmVzcG9uc2VNYXAuY29u
c3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnJlc3BvbnNlTWFwOworICAgIHJldHVy
biByZXNwb25zZU1hcDsKIH0KIAogc3RhdGljIENoaWxkUHJvY2Vzcyogc2hhcmVkUHJvY2VzczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232323</attachid>
            <date>2014-05-31 15:35:34 -0700</date>
            <delta_ts>2014-05-31 16:32:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140531153510.patch</filename>
            <type>text/plain</type>
            <size>20018</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi4wYmNiNGEw
MTEzM2JkNDVjYzRiZDczMjEwNzkyNjlhZWE4M2ZjYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDIw
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBjb25zdCBjaGFyKiBm
dW5jdGlvbldoaXRlbGlzdEZpbGUgPSBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KTsKKyAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QuY29uc3RydWN0KGZ1bmN0aW9uV2hpdGVsaXN0
RmlsZSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuICpmdW5jdGlvbldoaXRlbGlzdDsKKyAgICByZXR1
cm4gZnVuY3Rpb25XaGl0ZWxpc3Q7CiB9CiAKIEZ1bmN0aW9uV2hpdGVsaXN0OjpGdW5jdGlvbldo
aXRlbGlzdChjb25zdCBjaGFyKiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaAppbmRleCBiNThlMWE1MDMxODRmZjZjMDA5Nzhh
ZTM2MGNkNGIxZGJmMGMxMjYzLi41N2VmN2RhYTdhYjE2NDkwODUxNzNhYjcwMjkyNTg1MzkzOTU0
MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hp
dGVsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRl
bGlzdC5oCkBAIC0zNiwxMyArMzYsMTQgQEAgY2xhc3MgQ29kZUJsb2NrOwogbmFtZXNwYWNlIERG
RyB7CiAKIGNsYXNzIEZ1bmN0aW9uV2hpdGVsaXN0IHsKKyAgICBmcmllbmQgY2xhc3MgTGF6eU5l
dmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PjsKIHB1YmxpYzoKICAgICBzdGF0aWMgRnVu
Y3Rpb25XaGl0ZWxpc3QmIGVuc3VyZUdsb2JhbFdoaXRlbGlzdCgpOwogCiAgICAgYm9vbCBjb250
YWlucyhDb2RlQmxvY2sqKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBGdW5jdGlvbldoaXRlbGlz
dChjb25zdCBjaGFyKik7CisgICAgZXhwbGljaXQgRnVuY3Rpb25XaGl0ZWxpc3QoY29uc3QgY2hh
ciopOwogICAgIHZvaWQgcGFyc2VGdW5jdGlvbk5hbWVzSW5GaWxlKGNvbnN0IGNoYXIqKTsKIAog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2VudHJpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggMjE1MjQ3ZmE3OTQy
NmZjNzc0M2ExMTJlYzUxOGI0MDM4ZWU3NzRmZi4uNDlhOTJjNTI4ZTE1ZmY5OTdlYTMzM2Y2NmU3
YWFiYWIyYzBjZjZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtMjYsNiArMjYsNyBAQAogbmFtZXNwYWNlIFdU
RiB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZ1bmN0aW9uOwordGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPd25QdHI7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYXNzT3duUHRyOwpAQCAtNjAsNiArNjEsNyBA
QCB1c2luZyBXVEY6OkRlY29kZXI7CiB1c2luZyBXVEY6OkVuY29kZXI7CiB1c2luZyBXVEY6OkZ1
bmN0aW9uOwogdXNpbmcgV1RGOjpGdW5jdGlvbkRpc3BhdGNoZXI7Cit1c2luZyBXVEY6OkxhenlO
ZXZlckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok93
blB0cjsKIHVzaW5nIFdURjo6UGFzc093blB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L05ldmVyRGVzdHJveWVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCmluZGV4
IDU3MTUyYmQ1ZDM0YjE5YTMyZjExZGVhYTgxMjBhNTIyMmE2NDJhNzEuLmNmNDMxMWY2MGExZTM5
ZWM3NTdiZDM3ZjUyYWYyMTAyNDg0YjIwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL05l
dmVyRGVzdHJveWVkLmgKKysrIGIvU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaApAQCAt
NzMsOCArNzMsNTYgQEAgcHJpdmF0ZToKICAgICB9OwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShM
YXp5TmV2ZXJEZXN0cm95ZWQpOworCitwdWJsaWM6CisgICAgTGF6eU5ldmVyRGVzdHJveWVkKCkg
PSBkZWZhdWx0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICB2b2lkIGNv
bnN0cnVjdChBcmdzJiYuLi4gYXJncykKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc0NvbnN0
cnVjdGVkKTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICAgICAgbV9pc0NvbnN0cnVjdGVk
ID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgICAgIE1heWJlUmVsYXg8VD4obmV3IChhc1B0cigpKSBU
KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOworICAgIH0KKworICAgIG9wZXJhdG9yIFQm
KCkgeyByZXR1cm4gKmFzUHRyKCk7IH0KKyAgICBUJiBnZXQoKSB7IHJldHVybiAqYXNQdHIoKTsg
fQorCitwcml2YXRlOgorICAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VD46
OnR5cGUqIFBvaW50ZXJUeXBlOworCisgICAgUG9pbnRlclR5cGUgYXNQdHIoKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKG1faXNDb25zdHJ1Y3RlZCk7CisKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8UG9pbnRlclR5cGU+KCZtX3N0b3JhZ2UpOworICAgIH0KKworICAgIC8vIEZJWE1F
OiBJbnZlc3RpZ2F0ZSB3aGV0aGVyIHdlIHNob3VsZCBhbGxvY2F0ZSBhIGh1bmsgb2YgdmlydHVh
bCBtZW1vcnkKKyAgICAvLyBhbmQgaGFuZCBvdXQgY2h1bmtzIG9mIGl0IHRvIE5ldmVyRGVzdHJv
eWVkIGluc3RlYWQsIHRvIHJlZHVjZSBmcmFnbWVudGF0aW9uLgorICAgIHR5cGVuYW1lIHN0ZDo6
YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlPjo6
dHlwZSBtX3N0b3JhZ2U7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUHRyVHlwZSwgYm9vbCBT
aG91bGRSZWxheCA9IHN0ZDo6aXNfYmFzZV9vZjxSZWZDb3VudGVkPFB0clR5cGU+LCBQdHJUeXBl
Pjo6dmFsdWU+IHN0cnVjdCBNYXliZVJlbGF4IHsKKyAgICAgICAgZXhwbGljaXQgTWF5YmVSZWxh
eChQdHJUeXBlKikgeyB9CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgUHRyVHlwZT4g
c3RydWN0IE1heWJlUmVsYXg8UHRyVHlwZSwgdHJ1ZT4geworICAgICAgICBleHBsaWNpdCBNYXli
ZVJlbGF4KFB0clR5cGUqIHB0cikgeyBwdHItPnJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOyB9
CisgICAgfTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBib29sIG1faXNDb25zdHJ1Y3Rl
ZCA9IGZhbHNlOworI2VuZGlmCit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEY7CiAKK3VzaW5nIFdU
Rjo6TGF6eU5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpOZXZlckRlc3Ryb3llZDsKIAogI2Vu
ZGlmIC8vIE5ldmVyRGVzdHJveWVkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9E
ZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbSBiL1NvdXJjZS9XVEYvd3RmL21hYy9EZXBy
ZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbQppbmRleCAwZjg5N2QxMDYyZjljYmYwNWRlNjg3
OGZjZTNjNDNlMDZiYTBmYjczLi5mZTczMGU0MzlmOTlkNjVkNDNjMzJjMmRmM2NjNDI3NmFlNWZi
NjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2Vk
QnlTYWZhcmkubW0KKysrIGIvU291cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNl
ZEJ5U2FmYXJpLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJGdW5jdGlvbmFsLmgi
CiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgorI2luY2x1ZGUgIk5ldmVyRGVzdHJveWVkLmgiCiAj
aW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCiAjaW5jbHVkZSA8bXV0ZXg+CiAKQEAgLTQ3LDEyICs0
OCwxMiBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mIGZ1
bmN0aW9uKQogc3RhdGljIHN0ZDo6bXV0ZXgmIGF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpY011
dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGlj
IHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3RkOjpt
dXRleD4gbXV0ZXg7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAgICBt
dXRleCA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjptdXRleD4oKS5yZWxlYXNlKCk7CisgICAgICAg
IG11dGV4LmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICptdXRleDsKKyAgICBy
ZXR1cm4gbXV0ZXg7CiB9CiAKIHZvaWQgbG9ja0F0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpY011
dGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNV
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAppbmRleCA2
MTIzMzUxODRkMWRjNjY4MWQ3MWI5NzQ2NDRiOGUyNThhOTdkMTkwLi40NGY3N2YxYTk3ODJkMmM1
NDA0ZDRmOTM3NGU2Mzc0ZmFjNTI3MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmlj
b2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3Uv
Q29sbGF0b3JJQ1UuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlIDxtdXRleD4KICNp
bmNsdWRlIDx1bmljb2RlL3Vjb2wuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Vmlldy5oPgogCkBAIC01MiwxMSArNTMsMTMgQEAgc3RhdGljIGJvb2wgY2FjaGVkQ29sbGF0b3JT
aG91bGRTb3J0TG93ZXJjYXNlRmlyc3Q7CiBzdGF0aWMgc3RkOjptdXRleCYgY2FjaGVkQ29sbGF0
b3JNdXRleCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0
YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsKKworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8
c3RkOjptdXRleD4gbXV0ZXg7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAg
ICAgICBtdXRleCA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjptdXRleD4oKS5yZWxlYXNlKCk7Cisg
ICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOwogICAgIH0pOwotICAgIHJldHVybiAqbXV0ZXg7CisK
KyAgICByZXR1cm4gbXV0ZXg7CiB9CiAKICNpZiAhKE9TKERBUldJTikgJiYgVVNFKENGKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNr
ZW5kQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
QmFja2VuZEJhc2UuY3BwCmluZGV4IDU2ZDNkODE5NDJhMWVkZTdhYjNiNzVhN2VjMjRmYmIxOGEx
NzM2OTkuLjJlNTM4ZTBlYjUxMTNlOWJlZDRkMDJjYTRmNzVkYzJkOTAzMjdkYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJh
Y2tlbmRCYXNlLmNwcApAQCAtMTQxLDEzICsxNDEsMTMgQEAgc3RhdGljIGJvb2wgc2V0VGV4dFZh
bHVlSW5EYXRhYmFzZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNv
bnMKIHN0YXRpYyBzdGQ6Om11dGV4JiBndWlkTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3Rh
dGljIExhenlOZXZlckRlc3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9
KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0eXBlZGVm
IEhhc2hNYXA8RGF0YWJhc2VHdWlkLCBTdHJpbmc+IEd1aWRWZXJzaW9uTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKaW5kZXggOTg0
MjMwNjczODkyMWYwNWQxYjA3MDJlMWY2YWVkMGM1NDk0MTNmZC4uN2Y0ZWVlMzRhNGM4OWNkYmY4
NjE5OTJhZDk5NWMxYTNmMTVkNGFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCkBAIC00NCwxMyArNDQsMTMgQEAgQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkmIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaGFyZWQoKQogc3RhdGlj
IHN0ZDo6bXV0ZXgmIHJlZ2lzdHJ5TXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExh
enlOZXZlckRlc3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0
ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAot
ICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiBDcnlwdG9BbGdvcml0
aG1SZWdpc3RyeTo6Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDYxMWM1MTk2NWI0NWI5
MjExNWZmNmUzYWU0M2FkOGY0ODg5YWNmMTAuLjA0MzM2NTc0NzE2YjgwYTVlZmRmYzNlNGZkMTc5
OWVmZGY5MDhhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHAKQEAgLTUxLDEzICs1MSwxMyBAQCBuYW1lc3BhY2Ugewogc3RkOjptdXRl
eCYgd29ya2VyRGVidWdnZXJBZ2VudHNNdXRleCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsKKyAgICBzdGF0aWMg
TGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogCiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUZsYWcsIFtdewotICAgICAgICBtdXRleCA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpt
dXRleD4oKS5yZWxlYXNlKCk7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOwogICAgIH0pOwog
Ci0gICAgcmV0dXJuICptdXRleDsKKyAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHR5cGVkZWYgSGFz
aE1hcDxXb3JrZXJUaHJlYWQqLCBXb3JrZXJEZWJ1Z2dlckFnZW50Kj4gV29ya2VyRGVidWdnZXJB
Z2VudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCmluZGV4IDg1MmFjNmQ5MThhNjViMzYwN2ViOGU3MDFmY2UzYzkzNTczY2VhY2Iu
LjM0NWU3ZjUyZGI4MDQ5NDJiN2NmZjgxNDkwZmQ2OGY1MTU5OWEwYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC03OCwyMCArNzksMjAgQEAgYm9vbCBpc1NpbXBs
ZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRU
UEhlYWRlck1hcCYKIGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlz
dChjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VG
bGFnOwotICAgIHN0YXRpYyBIVFRQSGVhZGVyU2V0KiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25z
ZUhlYWRlcnM7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIVFRQSGVhZGVyU2V0PiBh
bGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnM7CiAKICAgICBzdGQ6OmNhbGxfb25jZShv
bmNlRmxhZywgW117Ci0gICAgICAgIGFsbG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVycyA9
IHN0ZDo6bWFrZV91bmlxdWU8SFRUUEhlYWRlclNldCwgc3RkOjppbml0aWFsaXplcl9saXN0PFN0
cmluZz4+KHsKKyAgICAgICAgYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzLmNvbnN0
cnVjdDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPj4oewogICAgICAgICAgICAgImNhY2hl
LWNvbnRyb2wiLAogICAgICAgICAgICAgImNvbnRlbnQtbGFuZ3VhZ2UiLAogICAgICAgICAgICAg
ImNvbnRlbnQtdHlwZSIsCiAgICAgICAgICAgICAiZXhwaXJlcyIsCiAgICAgICAgICAgICAibGFz
dC1tb2RpZmllZCIsCiAgICAgICAgICAgICAicHJhZ21hIgotICAgICAgICB9KS5yZWxlYXNlKCk7
CisgICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgcmV0dXJuIGFsbG93ZWRDcm9zc09yaWdpblJl
c3BvbnNlSGVhZGVycy0+Y29udGFpbnMobmFtZSk7CisgICAgcmV0dXJuIGFsbG93ZWRDcm9zc09y
aWdpblJlc3BvbnNlSGVhZGVycy5nZXQoKS5jb250YWlucyhuYW1lKTsKIH0KIAogdm9pZCB1cGRh
dGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50
aWFscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0YXRlTm90aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RhdGVOb3RpZmllci5jcHAKaW5kZXggYjllOThmOGM1OGRiNGExNDZhYjhmZDU1NzM1YTgw
MjBjYTRkNGMwZi4uNzU0MGE3ODQyNmIzMjdmMTIzNGU5MDExNjE3NjE3MjlmYTEyOWI3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3Rp
Zmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rh
dGVOb3RpZmllci5jcHAKQEAgLTMyLDIwICszMiwyMCBAQAogCiAjaW5jbHVkZSA8bXV0ZXg+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogTmV0d29ya1N0YXRlTm90aWZpZXImIG5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkKIHsKICAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIE5ldHdvcmtTdGF0ZU5v
dGlmaWVyKiBuZXR3b3JrU3RhdGVOb3RpZmllcjsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPE5ldHdvcmtTdGF0ZU5vdGlmaWVyPiBuZXR3b3JrU3RhdGVOb3RpZmllcjsKIAogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbmV0d29ya1N0YXRlTm90aWZpZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdGF0ZU5vdGlmaWVyPigpLnJlbGVhc2UoKTsKKyAg
ICAgICAgbmV0d29ya1N0YXRlTm90aWZpZXIuY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICBy
ZXR1cm4gKm5ldHdvcmtTdGF0ZU5vdGlmaWVyOworICAgIHJldHVybiBuZXR3b3JrU3RhdGVOb3Rp
ZmllcjsKIH0KIAogdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6YWRkTmV0d29ya1N0YXRlQ2hh
bmdlTGlzdGVuZXIoc3RkOjpmdW5jdGlvbjx2b2lkIChib29sKT4gbGlzdGVuZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuY3BwCmluZGV4IDA5NzkwNjQ3NmM1NzI4OTY2Nzk3YThiNDcwNDQ0NzU3MjRiOWQ1MDguLjRi
ZDhjNTczZWY5M2U4OGRiODQwZWYwN2Q2YjY0OGRjOTIxYzRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
CkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5o
PgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zMzEsMTIgKzMzMiwxMiBAQCB2b2lkIFNo
YXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoKQogRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkmIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0YW5jZSgp
CiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBEZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeSogaW5zdGFuY2U7CisgICAgc3RhdGljIExhenlOZXZl
ckRlc3Ryb3llZDxEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeT4gaW5zdGFuY2U7CiAgICAg
c3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAgICBpbnN0YW5jZSA9IG5ldyBEZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTsKKyAgICAgICAgaW5zdGFuY2UuY29uc3RydWN0KCk7
CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKmluc3RhbmNlOworICAgIHJldHVybiBpbnN0YW5jZTsK
IH0KIAogYm9vbCBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aXNBdmFpbGFibGUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5oCmluZGV4IDg4MTgzMDM3MWE2YTJlMzBlYzk5ZjQ4ZDc5NmQ1ZmVjZmE1YjYwOWIu
LjZhZTE4MDIyNzhjZjdkNTcwZjMyMmYxMjU1OTFjZjBkNzczZmQ4MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgK
QEAgLTU3LDYgKzU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIFBsYXRmb3JtLXNw
ZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5IHN0YXRp
YyBpbnRlcmZhY2UuCiAgICAgY2xhc3MgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkgewog
ICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgICAgICBmcmllbmQgY2xhc3MgTGF6eU5l
dmVyRGVzdHJveWVkPERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5PjsKKwogICAgIHB1Ymxp
YzoKICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwbGF0Zm9ybSBzdXBwb3J0cyBTaGFy
ZWRXb3JrZXJzLCBvdGhlcndpc2UgZmFsc2UuCiAgICAgICAgIHN0YXRpYyBib29sIGlzQXZhaWxh
YmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggMjY0Y2Yx
YjEzNjdmMmE3NGNkMTRjYTZlYjUwYzM0MzI4MjE5ZWZkZC4uYjYwMDc3MGUwMjZkZTFlZTAwZmQw
YTQxYjU2MDMyOTY0MWUyYjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcApAQCAtNTQsMTMgKzU0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBzdGQ6
Om11dGV4JiB0aHJlYWRTZXRNdXRleCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsKKyAgICBzdGF0aWMgTGF6eU5l
dmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25j
ZUZsYWcsIFtdewotICAgICAgICBtdXRleCA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjptdXRleD4o
KS5yZWxlYXNlKCk7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAg
cmV0dXJuICptdXRleDsKKyAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFdv
cmtlclRocmVhZCo+JiB3b3JrZXJUaHJlYWRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCmluZGV4IDRkMjc4NDU3MDI3OGMxNzY1ZmQ4MzFlZWY2MTFhNzcxMjQwNGI5ZjMuLjM5
MjYwYjhkYjE0YjczOGE1ZDEyZDM4MzhhMmUwM2E4MmM4ODljMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPHJ1bnRpbWUv
QXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRl
ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTExOCwxMyArMTE5LDEzIEBA
IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YTo6WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKCkKIHN0
YXRpYyBjb25zdCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEmIHN0YXRpY0RhdGEoKQogewogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgY29uc3QgWE1MSHR0
cFJlcXVlc3RTdGF0aWNEYXRhKiBzdGF0aWNEYXRhOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0
cm95ZWQ8WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhPiBzdGF0aWNEYXRhOwogCiAgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgc3RhdGljRGF0YSA9IHN0ZDo6bWFrZV91
bmlxdWU8WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhPigpLnJlbGVhc2UoKTsKKyAgICAgICAgc3Rh
dGljRGF0YS5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqc3RhdGljRGF0YTsK
KyAgICByZXR1cm4gc3RhdGljRGF0YTsKIH0KIAogc3RhdGljIGJvb2wgaXNTZXRDb29raWVIZWFk
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1TaGltLmNwcAppbmRleCBjZGE3MGE1YzRkNDVlYjgxNGQ5MzQ4ODY5YmE2MThhNDA5ODdi
MWZiLi5iNGEyOTFiZmJiYmI1MDBiOWM5OGQzZDE2N2MzNDJkM2JiYTY1ZGEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApAQCAtMzksMTkgKzM5LDIwIEBACiAj
aW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5jbHVkZSA8bXV0ZXg+Cisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dGF0aWMgQmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRhPiYgcmVzcG9uc2VN
YXAoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMg
QmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRhPiogcmVzcG9uc2VNYXA7Cisg
ICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxCbG9ja2luZ1Jlc3BvbnNlTWFwPFNlY0l0ZW1S
ZXNwb25zZURhdGE+PiByZXNwb25zZU1hcDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKLSAgICAgICAgcmVzcG9uc2VNYXAgPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NraW5nUmVz
cG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4+KCkucmVsZWFzZSgpOworICAgICAgICByZXNw
b25zZU1hcC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqcmVzcG9uc2VNYXA7
CisgICAgcmV0dXJuIHJlc3BvbnNlTWFwOwogfQogCiBzdGF0aWMgQ2hpbGRQcm9jZXNzKiBzaGFy
ZWRQcm9jZXNzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232324</attachid>
            <date>2014-05-31 16:32:54 -0700</date>
            <delta_ts>2014-05-31 16:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140531163230.patch</filename>
            <type>text/plain</type>
            <size>19800</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi4wYmNiNGEw
MTEzM2JkNDVjYzRiZDczMjEwNzkyNjlhZWE4M2ZjYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDIw
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBjb25zdCBjaGFyKiBm
dW5jdGlvbldoaXRlbGlzdEZpbGUgPSBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KTsKKyAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QuY29uc3RydWN0KGZ1bmN0aW9uV2hpdGVsaXN0
RmlsZSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuICpmdW5jdGlvbldoaXRlbGlzdDsKKyAgICByZXR1
cm4gZnVuY3Rpb25XaGl0ZWxpc3Q7CiB9CiAKIEZ1bmN0aW9uV2hpdGVsaXN0OjpGdW5jdGlvbldo
aXRlbGlzdChjb25zdCBjaGFyKiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaAppbmRleCBiNThlMWE1MDMxODRmZjZjMDA5Nzhh
ZTM2MGNkNGIxZGJmMGMxMjYzLi5jZjJjZDBiNTZkZjlmMzc1ZTc4MGY5MjA0ZjYxZTc1NjdiOTZm
N2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hp
dGVsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRl
bGlzdC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIENvZGVCbG9jazsKIG5hbWVzcGFjZSBERkcg
ewogCiBjbGFzcyBGdW5jdGlvbldoaXRlbGlzdCB7CisgICAgZnJpZW5kIGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDxGdW5jdGlvbldoaXRlbGlzdD47CiBwdWJsaWM6CiAgICAgc3RhdGljIEZ1bmN0
aW9uV2hpdGVsaXN0JiBlbnN1cmVHbG9iYWxXaGl0ZWxpc3QoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDIx
NTI0N2ZhNzk0MjZmYzc3NDNhMTEyZWM1MThiNDAzOGVlNzc0ZmYuLjQ5YTkyYzUyOGUxNWZmOTk3
ZWEzMzNmNjZlN2FhYmFiMmMwY2Y2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zvcndh
cmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIG5h
bWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBGdW5jdGlvbjsKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xh
c3MgT3duUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc093blB0cjsKQEAgLTYw
LDYgKzYxLDcgQEAgdXNpbmcgV1RGOjpEZWNvZGVyOwogdXNpbmcgV1RGOjpFbmNvZGVyOwogdXNp
bmcgV1RGOjpGdW5jdGlvbjsKIHVzaW5nIFdURjo6RnVuY3Rpb25EaXNwYXRjaGVyOwordXNpbmcg
V1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNp
bmcgV1RGOjpPd25QdHI7CiB1c2luZyBXVEY6OlBhc3NPd25QdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIvU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95
ZWQuaAppbmRleCA1NzE1MmJkNWQzNGIxOWEzMmYxMWRlYWE4MTIwYTUyMjJhNjQyYTcxLi5jZjQz
MTFmNjBhMWUzOWVjNzU3YmQzN2Y1MmFmMjEwMjQ4NGIyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJv
eWVkLmgKQEAgLTczLDggKzczLDU2IEBAIHByaXZhdGU6CiAgICAgfTsKIH07CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTGF6eU5ldmVyRGVzdHJveWVkKTsKKworcHVibGljOgorICAgIExhenlOZXZlckRl
c3Ryb3llZCgpID0gZGVmYXVsdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+Cisg
ICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICBBU1NFUlQo
IW1faXNDb25zdHJ1Y3RlZCk7CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgICAgIG1faXND
b25zdHJ1Y3RlZCA9IHRydWU7CisjZW5kaWYKKworICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAo
YXNQdHIoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsKKyAgICB9CisKKyAgICBv
cGVyYXRvciBUJigpIHsgcmV0dXJuICphc1B0cigpOyB9CisgICAgVCYgZ2V0KCkgeyByZXR1cm4g
KmFzUHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3Zl
X2NvbnN0PFQ+Ojp0eXBlKiBQb2ludGVyVHlwZTsKKworICAgIFBvaW50ZXJUeXBlIGFzUHRyKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzQ29uc3RydWN0ZWQpOworCisgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFBvaW50ZXJUeXBlPigmbV9zdG9yYWdlKTsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgd2hldGhlciB3ZSBzaG91bGQgYWxsb2NhdGUgYSBodW5r
IG9mIHZpcnR1YWwgbWVtb3J5CisgICAgLy8gYW5kIGhhbmQgb3V0IGNodW5rcyBvZiBpdCB0byBO
ZXZlckRlc3Ryb3llZCBpbnN0ZWFkLCB0byByZWR1Y2UgZnJhZ21lbnRhdGlvbi4KKyAgICB0eXBl
bmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+
Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5
cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6OmlzX2Jhc2Vfb2Y8UmVmQ291bnRlZDxQdHJUeXBl
PiwgUHRyVHlwZT46OnZhbHVlPiBzdHJ1Y3QgTWF5YmVSZWxheCB7CisgICAgICAgIGV4cGxpY2l0
IE1heWJlUmVsYXgoUHRyVHlwZSopIHsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFB0clR5cGU+IHN0cnVjdCBNYXliZVJlbGF4PFB0clR5cGUsIHRydWU+IHsKKyAgICAgICAgZXhw
bGljaXQgTWF5YmVSZWxheChQdHJUeXBlKiBwdHIpIHsgcHRyLT5yZWxheEFkb3B0aW9uUmVxdWly
ZW1lbnQoKTsgfQorICAgIH07CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lz
Q29uc3RydWN0ZWQgPSBmYWxzZTsKKyNlbmRpZgorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGOwog
Cit1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95
ZWQ7CiAKICNlbmRpZiAvLyBOZXZlckRlc3Ryb3llZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0gYi9Tb3VyY2UvV1RGL3d0
Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0KaW5kZXggMGY4OTdkMTA2MmY5
Y2JmMDVkZTY4NzhmY2UzYzQzZTA2YmEwZmI3My4uZmU3MzBlNDM5Zjk5ZDY1ZDQzYzMyYzJkZjNj
YzQyNzZhZTVmYjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRT
eW1ib2xzVXNlZEJ5U2FmYXJpLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVk
U3ltYm9sc1VzZWRCeVNhZmFyaS5tbQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRnVu
Y3Rpb25hbC5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJOZXZlckRlc3Ry
b3llZC5oIgogI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgogI2luY2x1ZGUgPG11dGV4PgogCkBA
IC00NywxMiArNDgsMTIgQEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZv
aWQgKCk+JiBmdW5jdGlvbikKIHN0YXRpYyBzdGQ6Om11dGV4JiBhdG9taWNhbGx5SW5pdGlhbGl6
ZWRTdGF0aWNNdXRleCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwot
ICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsK
LSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgp
OworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0
ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB2b2lkIGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6
ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9D
b2xsYXRvcklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5j
cHAKaW5kZXggNjEyMzM1MTg0ZDFkYzY2ODFkNzFiOTc0NjQ0YjhlMjU4YTk3ZDE5MC4uNDRmNzdm
MWE5NzgyZDJjNTQwNGQ0ZjkzNzRlNjM3NGZhYzUyNzFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Vu
aWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcApAQCAtMzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSA8
bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y29sLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtNTIsMTEgKzUzLDEzIEBAIHN0YXRpYyBib29sIGNhY2hl
ZENvbGxhdG9yU2hvdWxkU29ydExvd2VyY2FzZUZpcnN0Owogc3RhdGljIHN0ZDo6bXV0ZXgmIGNh
Y2hlZENvbGxhdG9yTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisKKyAgICBzdGF0aWMgTGF6eU5ldmVy
RGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVs
ZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKLSAgICByZXR1cm4g
Km11dGV4OworCisgICAgcmV0dXJuIG11dGV4OwogfQogCiAjaWYgIShPUyhEQVJXSU4pICYmIFVT
RShDRikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQmFja2VuZEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUJhY2tlbmRCYXNlLmNwcAppbmRleCA1NmQzZDgxOTQyYTFlZGU3YWIzYjc1YTdl
YzI0ZmJiMThhMTczNjk5Li4yZTUzOGUwZWI1MTEzZTliZWQ0ZDAyY2E0Zjc1ZGMyZDkwMzI3ZGI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
QmFja2VuZEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VCYWNrZW5kQmFzZS5jcHAKQEAgLTE0MSwxMyArMTQxLDEzIEBAIHN0YXRpYyBib29s
IHNldFRleHRWYWx1ZUluRGF0YWJhc2UoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBTdHJpbmcm
IHF1ZXJ5LCBjb25zCiBzdGF0aWMgc3RkOjptdXRleCYgZ3VpZE11dGV4KCkKIHsKICAgICBzdGF0
aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4
OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtl
X3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2UoKTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0
KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11dGV4OworICAgIHJldHVybiBtdXRleDsKIH0K
IAogdHlwZWRlZiBIYXNoTWFwPERhdGFiYXNlR3VpZCwgU3RyaW5nPiBHdWlkVmVyc2lvbk1hcDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3Bw
CmluZGV4IDk4NDIzMDY3Mzg5MjFmMDVkMWIwNzAyZTFmNmFlZDBjNTQ5NDEzZmQuLjdmNGVlZTM0
YTRjODljZGJmODYxOTkyYWQ5OTVjMWEzZjE1ZDRhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBA
IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5JiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVk
KCkKIHN0YXRpYyBzdGQ6Om11dGV4JiByZWdpc3RyeU11dGV4KCkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAg
IHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1
ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2UoKTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAg
ICAgfSk7CiAKLSAgICByZXR1cm4gKm11dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogQ3J5
cHRvQWxnb3JpdGhtUmVnaXN0cnk6OkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2MTFj
NTE5NjViNDViOTIxMTVmZjZlM2FlNDNhZDhmNDg4OWFjZjEwLi4wNDMzNjU3NDcxNmI4MGE1ZWZk
ZmMzZTRmZDE3OTllZmRmOTA4YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01MSwxMyArNTEsMTMgQEAgbmFtZXNwYWNlIHsK
IHN0ZDo6bXV0ZXgmIHdvcmtlckRlYnVnZ2VyQWdlbnRzTXV0ZXgoKQogewogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7Cisg
ICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5p
cXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsK
ICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0
eXBlZGVmIEhhc2hNYXA8V29ya2VyVGhyZWFkKiwgV29ya2VyRGVidWdnZXJBZ2VudCo+IFdvcmtl
ckRlYnVnZ2VyQWdlbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA4NTJhYzZkOTE4YTY1YjM2MDdlYjhlNzAxZmNlM2M5
MzU3M2NlYWNiLi4zNDVlN2Y1MmRiODA0OTQyYjdjZmY4MTQ5MGZkNjhmNTE1OTlhMGM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNzgsMjAgKzc5LDIwIEBAIGJv
b2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QoY29uc3QgU3RyaW5nJiBtZXRob2Qs
IGNvbnN0IEhUVFBIZWFkZXJNYXAmCiBib29sIGlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFk
ZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgSFRUUEhlYWRlclNldCogYWxsb3dlZENyb3NzT3Jp
Z2luUmVzcG9uc2VIZWFkZXJzOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SFRUUEhl
YWRlclNldD4gYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzOwogCiAgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAgICBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25z
ZUhlYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhUVFBIZWFkZXJTZXQsIHN0ZDo6aW5pdGlhbGl6
ZXJfbGlzdDxTdHJpbmc+Pih7CisgICAgICAgIGFsbG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVh
ZGVycy5jb25zdHJ1Y3Q8c3RkOjppbml0aWFsaXplcl9saXN0PFN0cmluZz4+KHsKICAgICAgICAg
ICAgICJjYWNoZS1jb250cm9sIiwKICAgICAgICAgICAgICJjb250ZW50LWxhbmd1YWdlIiwKICAg
ICAgICAgICAgICJjb250ZW50LXR5cGUiLAogICAgICAgICAgICAgImV4cGlyZXMiLAogICAgICAg
ICAgICAgImxhc3QtbW9kaWZpZWQiLAogICAgICAgICAgICAgInByYWdtYSIKLSAgICAgICAgfSku
cmVsZWFzZSgpOworICAgICAgICB9KTsKICAgICB9KTsKIAotICAgIHJldHVybiBhbGxvd2VkQ3Jv
c3NPcmlnaW5SZXNwb25zZUhlYWRlcnMtPmNvbnRhaW5zKG5hbWUpOworICAgIHJldHVybiBhbGxv
d2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMuZ2V0KCkuY29udGFpbnMobmFtZSk7CiB9CiAK
IHZvaWQgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFN0b3JlZENyZWRlbnRpYWxzIGFs
bG93Q3JlZGVudGlhbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCmluZGV4IGI5ZTk4ZjhjNThkYjRhMTQ2YWI4
ZmQ1NTczNWE4MDIwY2E0ZDRjMGYuLjc1NDBhNzg0MjZiMzI3ZjEyMzRlOTAxMTYxNzYxNzI5ZmEx
MjliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC0zMiwyMCArMzIsMjAgQEAKIAogI2luY2x1ZGUg
PG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIE5ldHdvcmtTdGF0ZU5vdGlmaWVyJiBuZXR3b3JrU3RhdGVOb3RpZmllcigp
CiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBOZXR3
b3JrU3RhdGVOb3RpZmllciogbmV0d29ya1N0YXRlTm90aWZpZXI7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxOZXR3b3JrU3RhdGVOb3RpZmllcj4gbmV0d29ya1N0YXRlTm90aWZpZXI7
CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAgICAgIG5ldHdvcmtTdGF0
ZU5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RhdGVOb3RpZmllcj4oKS5yZWxl
YXNlKCk7CisgICAgICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNvbnN0cnVjdCgpOwogICAgIH0p
OwogCi0gICAgcmV0dXJuICpuZXR3b3JrU3RhdGVOb3RpZmllcjsKKyAgICByZXR1cm4gbmV0d29y
a1N0YXRlTm90aWZpZXI7CiB9CiAKIHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OmFkZE5ldHdv
cmtTdGF0ZUNoYW5nZUxpc3RlbmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCAoYm9vbCk+IGxpc3RlbmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcAppbmRleCAwOTc5MDY0NzZjNTcyODk2Njc5N2E4YjQ3MDQ0NDc1NzI0
YjlkNTA4Li40YmQ4YzU3M2VmOTNlODhkYjg0MGVmMDdkNmI2NDhkYzkyMWM0ZGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRD
YWxsU3RhY2suaD4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzMxLDEyICszMzIsMTIg
QEAgdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKIERlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5JiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6
aW5zdGFuY2UoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBz
dGF0aWMgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkqIGluc3RhbmNlOworICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk+IGluc3Rh
bmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgaW5zdGFuY2Ug
PSBuZXcgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk7CisgICAgICAgIGluc3RhbmNlLmNv
bnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICppbnN0YW5jZTsKKyAgICByZXR1cm4g
aW5zdGFuY2U7CiB9CiAKIGJvb2wgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OmlzQXZh
aWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuaAppbmRleCA4ODE4MzAzNzFhNmEyZTMwZWM5OWY0OGQ3OTZkNWZl
Y2ZhNWI2MDliLi42YWUxODAyMjc4Y2Y3ZDU3MGYzMjJmMTI1NTkxY2YwZDc3M2ZkODJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5oCkBAIC01Nyw2ICs1Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBQ
bGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2hhcmVkV29ya2VyUmVwb3Np
dG9yeSBzdGF0aWMgaW50ZXJmYWNlLgogICAgIGNsYXNzIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAgZnJpZW5kIGNs
YXNzIExhenlOZXZlckRlc3Ryb3llZDxEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeT47CisK
ICAgICBwdWJsaWM6CiAgICAgICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gc3Vw
cG9ydHMgU2hhcmVkV29ya2Vycywgb3RoZXJ3aXNlIGZhbHNlLgogICAgICAgICBzdGF0aWMgYm9v
bCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDI2NGNmMWIxMzY3ZjJhNzRjZDE0Y2E2ZWI1MGMzNDMyODIxOWVmZGQuLmI2MDA3NzBlMDI2
ZGUxZWUwMGZkMGE0MWI1NjAzMjk2NDFlMmI4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKQEAgLTU0LDEzICs1NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBz
dGF0aWMgc3RkOjptdXRleCYgdGhyZWFkU2V0TXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3Rh
dGljIExhenlOZXZlckRlc3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0
ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9
KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiBzdGF0aWMg
SGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgd29ya2VyVGhyZWFkcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAppbmRleCA0ZDI3ODQ1NzAyNzhjMTc2NWZkODMxZWVmNjExYTc3MTI0
MDRiOWYzLi4zOTI2MGI4ZGIxNGI3MzhhNWQxMmQzODM4YTJlMDNhODJjODg5YzI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRl
IDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0xMTgsMTMg
KzExOSwxMyBAQCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGE6OlhNTEh0dHBSZXF1ZXN0U3RhdGlj
RGF0YSgpCiBzdGF0aWMgY29uc3QgWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhJiBzdGF0aWNEYXRh
KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIGNv
bnN0IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSogc3RhdGljRGF0YTsKKyAgICBzdGF0aWMgTGF6
eU5ldmVyRGVzdHJveWVkPFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YT4gc3RhdGljRGF0YTsKIAog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHN0YXRpY0RhdGEgPSBz
dGQ6Om1ha2VfdW5pcXVlPFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YT4oKS5yZWxlYXNlKCk7Cisg
ICAgICAgIHN0YXRpY0RhdGEuY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnN0
YXRpY0RhdGE7CisgICAgcmV0dXJuIHN0YXRpY0RhdGE7CiB9CiAKIHN0YXRpYyBib29sIGlzU2V0
Q29va2llSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggY2RhNzBhNWM0ZDQ1ZWI4MTRkOTM0ODg2OWJh
NjE4YTQwOTg3YjFmYi4uYjRhMjkxYmZiYmJiNTAwYjljOThkM2QxNjdjMzQyZDNiYmE2NWRhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAgLTM5LDE5ICsz
OSwyMCBAQAogI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUg
PG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogc3RhdGljIEJsb2NraW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4m
IHJlc3BvbnNlTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0g
ICAgc3RhdGljIEJsb2NraW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4qIHJlc3Bv
bnNlTWFwOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8QmxvY2tpbmdSZXNwb25zZU1h
cDxTZWNJdGVtUmVzcG9uc2VEYXRhPj4gcmVzcG9uc2VNYXA7CiAKICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW117Ci0gICAgICAgIHJlc3BvbnNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxC
bG9ja2luZ1Jlc3BvbnNlTWFwPFNlY0l0ZW1SZXNwb25zZURhdGE+PigpLnJlbGVhc2UoKTsKKyAg
ICAgICAgcmVzcG9uc2VNYXAuY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnJl
c3BvbnNlTWFwOworICAgIHJldHVybiByZXNwb25zZU1hcDsKIH0KIAogc3RhdGljIENoaWxkUHJv
Y2Vzcyogc2hhcmVkUHJvY2VzczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232326</attachid>
            <date>2014-05-31 16:53:31 -0700</date>
            <delta_ts>2014-06-01 08:36:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140531165307.patch</filename>
            <type>text/plain</type>
            <size>19941</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi4wYmNiNGEw
MTEzM2JkNDVjYzRiZDczMjEwNzkyNjlhZWE4M2ZjYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDIw
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBjb25zdCBjaGFyKiBm
dW5jdGlvbldoaXRlbGlzdEZpbGUgPSBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KTsKKyAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QuY29uc3RydWN0KGZ1bmN0aW9uV2hpdGVsaXN0
RmlsZSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuICpmdW5jdGlvbldoaXRlbGlzdDsKKyAgICByZXR1
cm4gZnVuY3Rpb25XaGl0ZWxpc3Q7CiB9CiAKIEZ1bmN0aW9uV2hpdGVsaXN0OjpGdW5jdGlvbldo
aXRlbGlzdChjb25zdCBjaGFyKiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaAppbmRleCBiNThlMWE1MDMxODRmZjZjMDA5Nzhh
ZTM2MGNkNGIxZGJmMGMxMjYzLi44ZjA1YmU4MGJkYmQ0YjIwZmI2OTQzMWZmNTM0YTUzNzgyNGFk
MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hp
dGVsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRl
bGlzdC5oCkBAIC0zOCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIERGRyB7CiBjbGFzcyBGdW5jdGlv
bldoaXRlbGlzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEZ1bmN0aW9uV2hpdGVsaXN0JiBlbnN1
cmVHbG9iYWxXaGl0ZWxpc3QoKTsKKyAgICBleHBsaWNpdCBGdW5jdGlvbldoaXRlbGlzdChjb25z
dCBjaGFyKik7CiAKICAgICBib29sIGNvbnRhaW5zKENvZGVCbG9jayopIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEZ1bmN0aW9uV2hpdGVsaXN0KGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHBhcnNl
RnVuY3Rpb25OYW1lc0luRmlsZShjb25zdCBjaGFyKik7CiAKICAgICBIYXNoU2V0PFN0cmluZz4g
bV9lbnRyaWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDIxNTI0N2ZhNzk0MjZmYzc3NDNhMTEyZWM1MThiNDAz
OGVlNzc0ZmYuLjQ5YTkyYzUyOGUxNWZmOTk3ZWEzMzNmNjZlN2FhYmFiMmMwY2Y2ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBGdW5jdGlvbjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlO
ZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVk
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgUGFzc093blB0cjsKQEAgLTYwLDYgKzYxLDcgQEAgdXNpbmcgV1RGOjpEZWNvZGVy
OwogdXNpbmcgV1RGOjpFbmNvZGVyOwogdXNpbmcgV1RGOjpGdW5jdGlvbjsKIHVzaW5nIFdURjo6
RnVuY3Rpb25EaXNwYXRjaGVyOwordXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2lu
ZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2luZyBXVEY6OlBh
c3NPd25QdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIv
U291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAppbmRleCA1NzE1MmJkNWQzNGIxOWEzMmYx
MWRlYWE4MTIwYTUyMjJhNjQyYTcxLi5jZjQzMTFmNjBhMWUzOWVjNzU3YmQzN2Y1MmFmMjEwMjQ4
NGIyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJveWVkLmgKQEAgLTczLDggKzczLDU2IEBAIHByaXZh
dGU6CiAgICAgfTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRl
c3Ryb3llZCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6eU5ldmVyRGVzdHJveWVkKTsK
KworcHVibGljOgorICAgIExhenlOZXZlckRlc3Ryb3llZCgpID0gZGVmYXVsdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFy
Z3MpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgICAgIG1faXNDb25zdHJ1Y3RlZCA9IHRydWU7CisjZW5kaWYKKwor
ICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoYXNQdHIoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4o
YXJncykuLi4pKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpIHsgcmV0dXJuICphc1B0cigp
OyB9CisgICAgVCYgZ2V0KCkgeyByZXR1cm4gKmFzUHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICB0
eXBlZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKiBQb2ludGVyVHlwZTsK
KworICAgIFBvaW50ZXJUeXBlIGFzUHRyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzQ29u
c3RydWN0ZWQpOworCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvaW50ZXJUeXBl
PigmbV9zdG9yYWdlKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgd2hldGhl
ciB3ZSBzaG91bGQgYWxsb2NhdGUgYSBodW5rIG9mIHZpcnR1YWwgbWVtb3J5CisgICAgLy8gYW5k
IGhhbmQgb3V0IGNodW5rcyBvZiBpdCB0byBOZXZlckRlc3Ryb3llZCBpbnN0ZWFkLCB0byByZWR1
Y2UgZnJhZ21lbnRhdGlvbi4KKyAgICB0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXpl
b2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOworCisg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6Omlz
X2Jhc2Vfb2Y8UmVmQ291bnRlZDxQdHJUeXBlPiwgUHRyVHlwZT46OnZhbHVlPiBzdHJ1Y3QgTWF5
YmVSZWxheCB7CisgICAgICAgIGV4cGxpY2l0IE1heWJlUmVsYXgoUHRyVHlwZSopIHsgfQorICAg
IH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGU+IHN0cnVjdCBNYXliZVJlbGF4PFB0
clR5cGUsIHRydWU+IHsKKyAgICAgICAgZXhwbGljaXQgTWF5YmVSZWxheChQdHJUeXBlKiBwdHIp
IHsgcHRyLT5yZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsgfQorICAgIH07CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lzQ29uc3RydWN0ZWQgPSBmYWxzZTsKKyNlbmRpZgor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGOwogCit1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3ll
ZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiAKICNlbmRpZiAvLyBOZXZlckRlc3Ryb3ll
ZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2Vk
QnlTYWZhcmkubW0gYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlT
YWZhcmkubW0KaW5kZXggMGY4OTdkMTA2MmY5Y2JmMDVkZTY4NzhmY2UzYzQzZTA2YmEwZmI3My4u
ZmU3MzBlNDM5Zjk5ZDY1ZDQzYzMyYzJkZjNjYzQyNzZhZTVmYjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbQpAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2luY2x1ZGUgIk1haW5UaHJl
YWQuaCIKKyNpbmNsdWRlICJOZXZlckRlc3Ryb3llZC5oIgogI2luY2x1ZGUgIlN0ZExpYkV4dHJh
cy5oIgogI2luY2x1ZGUgPG11dGV4PgogCkBAIC00NywxMiArNDgsMTIgQEAgdm9pZCBjYWxsT25N
YWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHN0YXRpYyBzdGQ6
Om11dGV4JiBhdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsK
KyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5p
cXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsK
ICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB2
b2lkIGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKaW5kZXggNjEyMzM1MTg0ZDFkYzY2ODFkNzFi
OTc0NjQ0YjhlMjU4YTk3ZDE5MC4uNDRmNzdmMWE5NzgyZDJjNTQwNGQ0ZjkzNzRlNjM3NGZhYzUy
NzFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y29s
Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtNTIsMTEg
KzUzLDEzIEBAIHN0YXRpYyBib29sIGNhY2hlZENvbGxhdG9yU2hvdWxkU29ydExvd2VyY2FzZUZp
cnN0Owogc3RhdGljIHN0ZDo6bXV0ZXgmIGNhY2hlZENvbGxhdG9yTXV0ZXgoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0
ZXg7CisKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4Owog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1
Y3QoKTsKICAgICB9KTsKLSAgICByZXR1cm4gKm11dGV4OworCisgICAgcmV0dXJuIG11dGV4Owog
fQogCiAjaWYgIShPUyhEQVJXSU4pICYmIFVTRShDRikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRCYXNlLmNwcAppbmRl
eCA1NmQzZDgxOTQyYTFlZGU3YWIzYjc1YTdlYzI0ZmJiMThhMTczNjk5Li4yZTUzOGUwZWI1MTEz
ZTliZWQ0ZDAyY2E0Zjc1ZGMyZDkwMzI3ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHAKQEAgLTE0
MSwxMyArMTQxLDEzIEBAIHN0YXRpYyBib29sIHNldFRleHRWYWx1ZUluRGF0YWJhc2UoU1FMaXRl
RGF0YWJhc2UmIGRiLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zCiBzdGF0aWMgc3RkOjptdXRl
eCYgZ3VpZE11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0g
ICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95
ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117
Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2Uo
KTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11
dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPERhdGFiYXNlR3Vp
ZCwgU3RyaW5nPiBHdWlkVmVyc2lvbk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCmluZGV4IDk4NDIzMDY3Mzg5MjFmMDVkMWIwNzAy
ZTFmNmFlZDBjNTQ5NDEzZmQuLjdmNGVlZTM0YTRjODljZGJmODYxOTkyYWQ5OTVjMWEzZjE1ZDRh
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5JiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkKIHN0YXRpYyBzdGQ6Om11dGV4JiByZWdpc3Ry
eU11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3Rh
dGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3Rk
OjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAg
ICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2UoKTsKKyAg
ICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11dGV4Owor
ICAgIHJldHVybiBtdXRleDsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OkNyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2MTFjNTE5NjViNDViOTIxMTVmZjZlM2FlNDNhZDhmNDg4
OWFjZjEwLi4wNDMzNjU3NDcxNmI4MGE1ZWZkZmMzZTRmZDE3OTllZmRmOTA4YWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01
MSwxMyArNTEsMTMgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6bXV0ZXgmIHdvcmtlckRlYnVnZ2VyQWdl
bnRzTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBz
dGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxz
dGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAg
ICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOwor
ICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7
CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0eXBlZGVmIEhhc2hNYXA8V29ya2VyVGhyZWFkKiwg
V29ya2VyRGVidWdnZXJBZ2VudCo+IFdvcmtlckRlYnVnZ2VyQWdlbnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA4NTJh
YzZkOTE4YTY1YjM2MDdlYjhlNzAxZmNlM2M5MzU3M2NlYWNiLi4zNDVlN2Y1MmRiODA0OTQyYjdj
ZmY4MTQ5MGZkNjhmNTE1OTlhMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KIApAQCAtNzgsMjAgKzc5LDIwIEBAIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1Jl
cXVlc3QoY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmCiBib29sIGlz
T25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1l
KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgSFRU
UEhlYWRlclNldCogYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzOworICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SFRUUEhlYWRlclNldD4gYWxsb3dlZENyb3NzT3JpZ2luUmVz
cG9uc2VIZWFkZXJzOwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAg
ICBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhU
VFBIZWFkZXJTZXQsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+Pih7CisgICAgICAgIGFs
bG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVycy5jb25zdHJ1Y3Q8c3RkOjppbml0aWFsaXpl
cl9saXN0PFN0cmluZz4+KHsKICAgICAgICAgICAgICJjYWNoZS1jb250cm9sIiwKICAgICAgICAg
ICAgICJjb250ZW50LWxhbmd1YWdlIiwKICAgICAgICAgICAgICJjb250ZW50LXR5cGUiLAogICAg
ICAgICAgICAgImV4cGlyZXMiLAogICAgICAgICAgICAgImxhc3QtbW9kaWZpZWQiLAogICAgICAg
ICAgICAgInByYWdtYSIKLSAgICAgICAgfSkucmVsZWFzZSgpOworICAgICAgICB9KTsKICAgICB9
KTsKIAotICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMtPmNvbnRh
aW5zKG5hbWUpOworICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMu
Z2V0KCkuY29udGFpbnMobmFtZSk7CiB9CiAKIHZvaWQgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0Nv
bnRyb2woUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3Bw
CmluZGV4IGI5ZTk4ZjhjNThkYjRhMTQ2YWI4ZmQ1NTczNWE4MDIwY2E0ZDRjMGYuLjc1NDBhNzg0
MjZiMzI3ZjEyMzRlOTAxMTYxNzYxNzI5ZmExMjliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC0z
MiwyMCArMzIsMjAgQEAKIAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyJiBuZXR3b3JrU3RhdGVOb3RpZmllcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwotICAgIHN0YXRpYyBOZXR3b3JrU3RhdGVOb3RpZmllciogbmV0d29ya1N0YXRl
Tm90aWZpZXI7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxOZXR3b3JrU3RhdGVOb3Rp
Zmllcj4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW117Ci0gICAgICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxO
ZXR3b3JrU3RhdGVOb3RpZmllcj4oKS5yZWxlYXNlKCk7CisgICAgICAgIG5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICpuZXR3b3JrU3RhdGVO
b3RpZmllcjsKKyAgICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiB9CiAKIHZvaWQgTmV0
d29ya1N0YXRlTm90aWZpZXI6OmFkZE5ldHdvcmtTdGF0ZUNoYW5nZUxpc3RlbmVyKHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoYm9vbCk+IGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCAwOTc5MDY0
NzZjNTcyODk2Njc5N2E4YjQ3MDQ0NDc1NzI0YjlkNTA4Li40YmQ4YzU3M2VmOTNlODhkYjg0MGVm
MDdkNmI2NDhkYzkyMWM0ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxtdXRleD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtMzMxLDEyICszMzIsMTIgQEAgdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5JiBEZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnkqIGluc3RhbmNlOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8RGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk+IGluc3RhbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VG
bGFnLCBbXXsKLSAgICAgICAgaW5zdGFuY2UgPSBuZXcgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnk7CisgICAgICAgIGluc3RhbmNlLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0
dXJuICppbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIGJvb2wgRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk6OmlzQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaAppbmRleCA4ODE4
MzAzNzFhNmEyZTMwZWM5OWY0OGQ3OTZkNWZlY2ZhNWI2MDliLi42YWUxODAyMjc4Y2Y3ZDU3MGYz
MjJmMTI1NTkxY2YwZDc3M2ZkODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oCkBAIC01Nyw2ICs1Nyw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgU2hhcmVkV29ya2VyUmVwb3NpdG9yeSBzdGF0aWMgaW50ZXJmYWNlLgogICAgIGNs
YXNzIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5IHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKyAgICAgICAgZnJpZW5kIGNsYXNzIExhenlOZXZlckRlc3Ryb3llZDxEZWZhdWx0
U2hhcmVkV29ya2VyUmVwb3NpdG9yeT47CisKICAgICBwdWJsaWM6CiAgICAgICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgcGxhdGZvcm0gc3VwcG9ydHMgU2hhcmVkV29ya2Vycywgb3RoZXJ3aXNl
IGZhbHNlLgogICAgICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDI2NGNmMWIxMzY3ZjJhNzRjZDE0Y2E2ZWI1
MGMzNDMyODIxOWVmZGQuLmI2MDA3NzBlMDI2ZGUxZWUwMGZkMGE0MWI1NjAzMjk2NDFlMmI4YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTU0LDEzICs1NCwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgc3RkOjptdXRleCYgdGhyZWFkU2V0TXV0
ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMg
c3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxzdGQ6Om11
dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAg
bXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAg
ICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAg
cmV0dXJuIG11dGV4OwogfQogCiBzdGF0aWMgSGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgd29ya2Vy
VGhyZWFkcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA0ZDI3ODQ1
NzAyNzhjMTc2NWZkODMxZWVmNjExYTc3MTI0MDRiOWYzLi4zOTI2MGI4ZGIxNGI3MzhhNWQxMmQz
ODM4YTJlMDNhODJjODg5YzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2Nr
Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CkBAIC0xMTgsMTMgKzExOSwxMyBAQCBYTUxIdHRwUmVxdWVzdFN0YXRp
Y0RhdGE6OlhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpCiBzdGF0aWMgY29uc3QgWE1MSHR0cFJl
cXVlc3RTdGF0aWNEYXRhJiBzdGF0aWNEYXRhKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIGNvbnN0IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSog
c3RhdGljRGF0YTsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFhNTEh0dHBSZXF1ZXN0
U3RhdGljRGF0YT4gc3RhdGljRGF0YTsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBb
XSB7Ci0gICAgICAgIHN0YXRpY0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFhNTEh0dHBSZXF1ZXN0
U3RhdGljRGF0YT4oKS5yZWxlYXNlKCk7CisgICAgICAgIHN0YXRpY0RhdGEuY29uc3RydWN0KCk7
CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnN0YXRpY0RhdGE7CisgICAgcmV0dXJuIHN0YXRpY0Rh
dGE7CiB9CiAKIHN0YXRpYyBib29sIGlzU2V0Q29va2llSGVhZGVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXgg
Y2RhNzBhNWM0ZDQ1ZWI4MTRkOTM0ODg2OWJhNjE4YTQwOTg3YjFmYi4uYjRhMjkxYmZiYmJiNTAw
YjljOThkM2QxNjdjMzQyZDNiYmE2NWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNJdGVtU2hpbS5jcHAKQEAgLTM5LDE5ICszOSwyMCBAQAogI2luY2x1ZGUgPGF0b21pYz4KICNp
bmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIEJsb2NraW5nUmVzcG9u
c2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4mIHJlc3BvbnNlTWFwKCkKIHsKICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3RhdGljIEJsb2NraW5nUmVzcG9uc2VNYXA8
U2VjSXRlbVJlc3BvbnNlRGF0YT4qIHJlc3BvbnNlTWFwOworICAgIHN0YXRpYyBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8QmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRhPj4gcmVzcG9u
c2VNYXA7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAgICAgIHJlc3Bv
bnNlTWFwID0gc3RkOjptYWtlX3VuaXF1ZTxCbG9ja2luZ1Jlc3BvbnNlTWFwPFNlY0l0ZW1SZXNw
b25zZURhdGE+PigpLnJlbGVhc2UoKTsKKyAgICAgICAgcmVzcG9uc2VNYXAuY29uc3RydWN0KCk7
CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKnJlc3BvbnNlTWFwOworICAgIHJldHVybiByZXNwb25z
ZU1hcDsKIH0KIAogc3RhdGljIENoaWxkUHJvY2Vzcyogc2hhcmVkUHJvY2VzczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232344</attachid>
            <date>2014-06-01 08:36:50 -0700</date>
            <delta_ts>2014-06-01 10:14:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140601083626.patch</filename>
            <type>text/plain</type>
            <size>20147</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi4wYmNiNGEw
MTEzM2JkNDVjYzRiZDczMjEwNzkyNjlhZWE4M2ZjYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDIw
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBjb25zdCBjaGFyKiBm
dW5jdGlvbldoaXRlbGlzdEZpbGUgPSBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KTsKKyAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QuY29uc3RydWN0KGZ1bmN0aW9uV2hpdGVsaXN0
RmlsZSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuICpmdW5jdGlvbldoaXRlbGlzdDsKKyAgICByZXR1
cm4gZnVuY3Rpb25XaGl0ZWxpc3Q7CiB9CiAKIEZ1bmN0aW9uV2hpdGVsaXN0OjpGdW5jdGlvbldo
aXRlbGlzdChjb25zdCBjaGFyKiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaAppbmRleCBiNThlMWE1MDMxODRmZjZjMDA5Nzhh
ZTM2MGNkNGIxZGJmMGMxMjYzLi44ZjA1YmU4MGJkYmQ0YjIwZmI2OTQzMWZmNTM0YTUzNzgyNGFk
MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hp
dGVsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRl
bGlzdC5oCkBAIC0zOCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIERGRyB7CiBjbGFzcyBGdW5jdGlv
bldoaXRlbGlzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEZ1bmN0aW9uV2hpdGVsaXN0JiBlbnN1
cmVHbG9iYWxXaGl0ZWxpc3QoKTsKKyAgICBleHBsaWNpdCBGdW5jdGlvbldoaXRlbGlzdChjb25z
dCBjaGFyKik7CiAKICAgICBib29sIGNvbnRhaW5zKENvZGVCbG9jayopIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEZ1bmN0aW9uV2hpdGVsaXN0KGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHBhcnNl
RnVuY3Rpb25OYW1lc0luRmlsZShjb25zdCBjaGFyKik7CiAKICAgICBIYXNoU2V0PFN0cmluZz4g
bV9lbnRyaWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDIxNTI0N2ZhNzk0MjZmYzc3NDNhMTEyZWM1MThiNDAz
OGVlNzc0ZmYuLjQ5YTkyYzUyOGUxNWZmOTk3ZWEzMzNmNjZlN2FhYmFiMmMwY2Y2ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBGdW5jdGlvbjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlO
ZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVk
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgUGFzc093blB0cjsKQEAgLTYwLDYgKzYxLDcgQEAgdXNpbmcgV1RGOjpEZWNvZGVy
OwogdXNpbmcgV1RGOjpFbmNvZGVyOwogdXNpbmcgV1RGOjpGdW5jdGlvbjsKIHVzaW5nIFdURjo6
RnVuY3Rpb25EaXNwYXRjaGVyOwordXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2lu
ZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2luZyBXVEY6OlBh
c3NPd25QdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIv
U291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAppbmRleCA1NzE1MmJkNWQzNGIxOWEzMmYx
MWRlYWE4MTIwYTUyMjJhNjQyYTcxLi5jZjQzMTFmNjBhMWUzOWVjNzU3YmQzN2Y1MmFmMjEwMjQ4
NGIyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJveWVkLmgKQEAgLTczLDggKzczLDU2IEBAIHByaXZh
dGU6CiAgICAgfTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRl
c3Ryb3llZCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6eU5ldmVyRGVzdHJveWVkKTsK
KworcHVibGljOgorICAgIExhenlOZXZlckRlc3Ryb3llZCgpID0gZGVmYXVsdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFy
Z3MpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgICAgIG1faXNDb25zdHJ1Y3RlZCA9IHRydWU7CisjZW5kaWYKKwor
ICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoYXNQdHIoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4o
YXJncykuLi4pKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpIHsgcmV0dXJuICphc1B0cigp
OyB9CisgICAgVCYgZ2V0KCkgeyByZXR1cm4gKmFzUHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICB0
eXBlZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKiBQb2ludGVyVHlwZTsK
KworICAgIFBvaW50ZXJUeXBlIGFzUHRyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzQ29u
c3RydWN0ZWQpOworCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvaW50ZXJUeXBl
PigmbV9zdG9yYWdlKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgd2hldGhl
ciB3ZSBzaG91bGQgYWxsb2NhdGUgYSBodW5rIG9mIHZpcnR1YWwgbWVtb3J5CisgICAgLy8gYW5k
IGhhbmQgb3V0IGNodW5rcyBvZiBpdCB0byBOZXZlckRlc3Ryb3llZCBpbnN0ZWFkLCB0byByZWR1
Y2UgZnJhZ21lbnRhdGlvbi4KKyAgICB0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXpl
b2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOworCisg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6Omlz
X2Jhc2Vfb2Y8UmVmQ291bnRlZDxQdHJUeXBlPiwgUHRyVHlwZT46OnZhbHVlPiBzdHJ1Y3QgTWF5
YmVSZWxheCB7CisgICAgICAgIGV4cGxpY2l0IE1heWJlUmVsYXgoUHRyVHlwZSopIHsgfQorICAg
IH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGU+IHN0cnVjdCBNYXliZVJlbGF4PFB0
clR5cGUsIHRydWU+IHsKKyAgICAgICAgZXhwbGljaXQgTWF5YmVSZWxheChQdHJUeXBlKiBwdHIp
IHsgcHRyLT5yZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsgfQorICAgIH07CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lzQ29uc3RydWN0ZWQgPSBmYWxzZTsKKyNlbmRpZgor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGOwogCit1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3ll
ZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiAKICNlbmRpZiAvLyBOZXZlckRlc3Ryb3ll
ZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2Vk
QnlTYWZhcmkubW0gYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlT
YWZhcmkubW0KaW5kZXggMGY4OTdkMTA2MmY5Y2JmMDVkZTY4NzhmY2UzYzQzZTA2YmEwZmI3My4u
ZmU3MzBlNDM5Zjk5ZDY1ZDQzYzMyYzJkZjNjYzQyNzZhZTVmYjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbQpAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2luY2x1ZGUgIk1haW5UaHJl
YWQuaCIKKyNpbmNsdWRlICJOZXZlckRlc3Ryb3llZC5oIgogI2luY2x1ZGUgIlN0ZExpYkV4dHJh
cy5oIgogI2luY2x1ZGUgPG11dGV4PgogCkBAIC00NywxMiArNDgsMTIgQEAgdm9pZCBjYWxsT25N
YWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHN0YXRpYyBzdGQ6
Om11dGV4JiBhdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsK
KyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5p
cXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsK
ICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB2
b2lkIGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKaW5kZXggNjEyMzM1MTg0ZDFkYzY2ODFkNzFi
OTc0NjQ0YjhlMjU4YTk3ZDE5MC4uNDRmNzdmMWE5NzgyZDJjNTQwNGQ0ZjkzNzRlNjM3NGZhYzUy
NzFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y29s
Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtNTIsMTEg
KzUzLDEzIEBAIHN0YXRpYyBib29sIGNhY2hlZENvbGxhdG9yU2hvdWxkU29ydExvd2VyY2FzZUZp
cnN0Owogc3RhdGljIHN0ZDo6bXV0ZXgmIGNhY2hlZENvbGxhdG9yTXV0ZXgoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0
ZXg7CisKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4Owog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1
Y3QoKTsKICAgICB9KTsKLSAgICByZXR1cm4gKm11dGV4OworCisgICAgcmV0dXJuIG11dGV4Owog
fQogCiAjaWYgIShPUyhEQVJXSU4pICYmIFVTRShDRikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRCYXNlLmNwcAppbmRl
eCA1NmQzZDgxOTQyYTFlZGU3YWIzYjc1YTdlYzI0ZmJiMThhMTczNjk5Li4yZTUzOGUwZWI1MTEz
ZTliZWQ0ZDAyY2E0Zjc1ZGMyZDkwMzI3ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHAKQEAgLTE0
MSwxMyArMTQxLDEzIEBAIHN0YXRpYyBib29sIHNldFRleHRWYWx1ZUluRGF0YWJhc2UoU1FMaXRl
RGF0YWJhc2UmIGRiLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zCiBzdGF0aWMgc3RkOjptdXRl
eCYgZ3VpZE11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0g
ICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95
ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117
Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2Uo
KTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11
dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPERhdGFiYXNlR3Vp
ZCwgU3RyaW5nPiBHdWlkVmVyc2lvbk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCmluZGV4IDk4NDIzMDY3Mzg5MjFmMDVkMWIwNzAy
ZTFmNmFlZDBjNTQ5NDEzZmQuLjdmNGVlZTM0YTRjODljZGJmODYxOTkyYWQ5OTVjMWEzZjE1ZDRh
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5JiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkKIHN0YXRpYyBzdGQ6Om11dGV4JiByZWdpc3Ry
eU11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3Rh
dGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3Rk
OjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAg
ICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2UoKTsKKyAg
ICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11dGV4Owor
ICAgIHJldHVybiBtdXRleDsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OkNyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2MTFjNTE5NjViNDViOTIxMTVmZjZlM2FlNDNhZDhmNDg4
OWFjZjEwLi4wNDMzNjU3NDcxNmI4MGE1ZWZkZmMzZTRmZDE3OTllZmRmOTA4YWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01
MSwxMyArNTEsMTMgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6bXV0ZXgmIHdvcmtlckRlYnVnZ2VyQWdl
bnRzTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBz
dGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxz
dGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAg
ICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOwor
ICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7
CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0eXBlZGVmIEhhc2hNYXA8V29ya2VyVGhyZWFkKiwg
V29ya2VyRGVidWdnZXJBZ2VudCo+IFdvcmtlckRlYnVnZ2VyQWdlbnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA4NTJh
YzZkOTE4YTY1YjM2MDdlYjhlNzAxZmNlM2M5MzU3M2NlYWNiLi4zNDVlN2Y1MmRiODA0OTQyYjdj
ZmY4MTQ5MGZkNjhmNTE1OTlhMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KIApAQCAtNzgsMjAgKzc5LDIwIEBAIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1Jl
cXVlc3QoY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmCiBib29sIGlz
T25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1l
KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgSFRU
UEhlYWRlclNldCogYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzOworICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SFRUUEhlYWRlclNldD4gYWxsb3dlZENyb3NzT3JpZ2luUmVz
cG9uc2VIZWFkZXJzOwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAg
ICBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhU
VFBIZWFkZXJTZXQsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+Pih7CisgICAgICAgIGFs
bG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVycy5jb25zdHJ1Y3Q8c3RkOjppbml0aWFsaXpl
cl9saXN0PFN0cmluZz4+KHsKICAgICAgICAgICAgICJjYWNoZS1jb250cm9sIiwKICAgICAgICAg
ICAgICJjb250ZW50LWxhbmd1YWdlIiwKICAgICAgICAgICAgICJjb250ZW50LXR5cGUiLAogICAg
ICAgICAgICAgImV4cGlyZXMiLAogICAgICAgICAgICAgImxhc3QtbW9kaWZpZWQiLAogICAgICAg
ICAgICAgInByYWdtYSIKLSAgICAgICAgfSkucmVsZWFzZSgpOworICAgICAgICB9KTsKICAgICB9
KTsKIAotICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMtPmNvbnRh
aW5zKG5hbWUpOworICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMu
Z2V0KCkuY29udGFpbnMobmFtZSk7CiB9CiAKIHZvaWQgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0Nv
bnRyb2woUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3Bw
CmluZGV4IGI5ZTk4ZjhjNThkYjRhMTQ2YWI4ZmQ1NTczNWE4MDIwY2E0ZDRjMGYuLjc1NDBhNzg0
MjZiMzI3ZjEyMzRlOTAxMTYxNzYxNzI5ZmExMjliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC0z
MiwyMCArMzIsMjAgQEAKIAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyJiBuZXR3b3JrU3RhdGVOb3RpZmllcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwotICAgIHN0YXRpYyBOZXR3b3JrU3RhdGVOb3RpZmllciogbmV0d29ya1N0YXRl
Tm90aWZpZXI7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxOZXR3b3JrU3RhdGVOb3Rp
Zmllcj4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW117Ci0gICAgICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxO
ZXR3b3JrU3RhdGVOb3RpZmllcj4oKS5yZWxlYXNlKCk7CisgICAgICAgIG5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICpuZXR3b3JrU3RhdGVO
b3RpZmllcjsKKyAgICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiB9CiAKIHZvaWQgTmV0
d29ya1N0YXRlTm90aWZpZXI6OmFkZE5ldHdvcmtTdGF0ZUNoYW5nZUxpc3RlbmVyKHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoYm9vbCk+IGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCAwOTc5MDY0
NzZjNTcyODk2Njc5N2E4YjQ3MDQ0NDc1NzI0YjlkNTA4Li40YmQ4YzU3M2VmOTNlODhkYjg0MGVm
MDdkNmI2NDhkYzkyMWM0ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxtdXRleD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtMzMxLDEyICszMzIsMTIgQEAgdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5JiBEZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnkqIGluc3RhbmNlOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8RGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk+IGluc3RhbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VG
bGFnLCBbXXsKLSAgICAgICAgaW5zdGFuY2UgPSBuZXcgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnk7CisgICAgICAgIGluc3RhbmNlLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0
dXJuICppbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIGJvb2wgRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk6OmlzQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaAppbmRleCA4ODE4
MzAzNzFhNmEyZTMwZWM5OWY0OGQ3OTZkNWZlY2ZhNWI2MDliLi5hNmVjNDhjMTBiMzhkMzE2YTA2
NDkwYTdiOTVlMjVlNDg1NzIxZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTU3LDYgKzU4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IC8vIFBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5IHN0YXRpYyBpbnRlcmZhY2UuCiAgICAgY2xhc3MgRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgICAgICBmcmll
bmQgY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkPERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
PjsKKwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwbGF0Zm9y
bSBzdXBwb3J0cyBTaGFyZWRXb3JrZXJzLCBvdGhlcndpc2UgZmFsc2UuCiAgICAgICAgIHN0YXRp
YyBib29sIGlzQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAKaW5kZXggMjY0Y2YxYjEzNjdmMmE3NGNkMTRjYTZlYjUwYzM0MzI4MjE5ZWZkZC4uYjYwMDc3
MGUwMjZkZTFlZTAwZmQwYTQxYjU2MDMyOTY0MWUyYjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcApAQCAtNTQsMTMgKzU0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0YXRpYyBzdGQ6Om11dGV4JiB0aHJlYWRTZXRNdXRleCgpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsKKyAg
ICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogCiAgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAgICBtdXRleCA9IHN0ZDo6bWFrZV91bmlx
dWU8c3RkOjptdXRleD4oKS5yZWxlYXNlKCk7CisgICAgICAgIG11dGV4LmNvbnN0cnVjdCgpOwog
ICAgIH0pOwogCi0gICAgcmV0dXJuICptdXRleDsKKyAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0
YXRpYyBIYXNoU2V0PFdvcmtlclRocmVhZCo+JiB3b3JrZXJUaHJlYWRzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDRkMjc4NDU3MDI3OGMxNzY1ZmQ4MzFlZWY2MTFh
NzcxMjQwNGI5ZjMuLjM5MjYwYjhkYjE0YjczOGE1ZDEyZDM4MzhhMmUwM2E4MmM4ODljMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2lu
Y2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTEx
OCwxMyArMTE5LDEzIEBAIFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YTo6WE1MSHR0cFJlcXVlc3RT
dGF0aWNEYXRhKCkKIHN0YXRpYyBjb25zdCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEmIHN0YXRp
Y0RhdGEoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0
aWMgY29uc3QgWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKiBzdGF0aWNEYXRhOworICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhPiBzdGF0aWNEYXRh
OwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgc3RhdGljRGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhPigpLnJlbGVhc2Uo
KTsKKyAgICAgICAgc3RhdGljRGF0YS5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVy
biAqc3RhdGljRGF0YTsKKyAgICByZXR1cm4gc3RhdGljRGF0YTsKIH0KIAogc3RhdGljIGJvb2wg
aXNTZXRDb29raWVIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCBjZGE3MGE1YzRkNDVlYjgxNGQ5MzQ4
ODY5YmE2MThhNDA5ODdiMWZiLi5iNGEyOTFiZmJiYmI1MDBiOWM5OGQzZDE2N2MzNDJkM2JiYTY1
ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApAQCAtMzks
MTkgKzM5LDIwIEBACiAjaW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGRsZmNuLmg+CiAjaW5j
bHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdGF0aWMgQmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VE
YXRhPiYgcmVzcG9uc2VNYXAoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKLSAgICBzdGF0aWMgQmxvY2tpbmdSZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRhPiog
cmVzcG9uc2VNYXA7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxCbG9ja2luZ1Jlc3Bv
bnNlTWFwPFNlY0l0ZW1SZXNwb25zZURhdGE+PiByZXNwb25zZU1hcDsKIAogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgcmVzcG9uc2VNYXAgPSBzdGQ6Om1ha2VfdW5p
cXVlPEJsb2NraW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0YT4+KCkucmVsZWFzZSgp
OworICAgICAgICByZXNwb25zZU1hcC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVy
biAqcmVzcG9uc2VNYXA7CisgICAgcmV0dXJuIHJlc3BvbnNlTWFwOwogfQogCiBzdGF0aWMgQ2hp
bGRQcm9jZXNzKiBzaGFyZWRQcm9jZXNzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232347</attachid>
            <date>2014-06-01 10:15:04 -0700</date>
            <delta_ts>2014-06-01 14:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133425-20140601101439.patch</filename>
            <type>text/plain</type>
            <size>20208</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YzMxNGRkNzgyNzNiMDZhMDlmZmJkMThkZTc4ODRmOGMyYzA4MDU1Li40M2VjMjM1NmNiNzQ4MzIy
NzFlNjgwZGMyMTM0ZGQwODc2YWY5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0ZSBh
bmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGRmZy9ERkdGdW5jdGlvbldoaXRlbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6RnVu
Y3Rpb25XaGl0ZWxpc3Q6OmVuc3VyZUdsb2JhbFdoaXRlbGlzdCk6CisgICAgICAgICogZGZnL0RG
R0Z1bmN0aW9uV2hpdGVsaXN0Lmg6CisKIDIwMTQtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OkRDRVBoYXNlIGluc2VydHMgaW50byBhbiBpbnNl
cnRpb24gc2V0IGluIHJldmVyc2UsIGNhdXNpbmcgaGlsYXJpb3VzIGJhc2ljIGJsb2NrIGNvcnJ1
cHRpb24gaWYgeW91IGtpbGwgYSBsb3Qgb2YgTmV3QXJyYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRhN2YzMTIxNDMxZjcw
MzIzNDExZWViMTRkNmRlOTAyZDBmMjA4OTIuLmE5MTA5MzFhNDk2N2I1MGY2NTMzZDE3ZmVkYmFk
MDhhOThiMDhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDUtMzEgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBMYXp5TmV2ZXJEZXN0
cm95ZWQgY2xhc3MgdGVtcGxhdGUgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTGF6eU5ldmVyRGVzdHJveWVkIGlzIHNpbWlsYXIgdG8g
TmV2ZXJEZXN0cm95ZWQsIGV4Y2VwdCBpdCdzIGxhemlseSBjb25zdHJ1Y3RlZAorICAgICAgICBi
eSBjYWxsaW5nIGNvbnN0cnVjdCgpLiBUaGlzIG1ha2VzIGl0IHVzZWZ1bCBmb3IgdXNpbmcgaW5z
aWRlIHN0ZDo6Y2FsbF9vbmNlIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogd3RmL0Zv
cndhcmQuaDoKKyAgICAgICAgKiB3dGYvTmV2ZXJEZXN0cm95ZWQuaDoKKyAgICAgICAgKFdURjo6
TGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVk
OjpnZXQpOgorICAgICAgICAoV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ6OmFzUHRyKToKKyAgICAg
ICAgKFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOjpNYXliZVJlbGF4OjpNYXliZVJlbGF4KToKKyAg
ICAgICAgKiB3dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOgorICAgICAg
ICAoV1RGOjphdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCk6CisgICAgICAgICogd3Rm
L3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkQ29sbGF0
b3JNdXRleCk6CisKIDIwMTQtMDUtMjkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgY3NzIGppdCBieSBkZWZhdWx0IG9uIGFybTY0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIyNTg0MDQzM2U4MDhhYTRmZDA0YjNkMjE0YmJmNDI1NGNjMDViMWEu
LjRjZjMxNmM0N2YyODg4M2Q5YjgyM2Q4NjllYjZjOGI5ODNjZjAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNC0wNS0zMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCisgICAgICAgIEFkZCBhIExhenlOZXZlckRlc3Ryb3llZCBjbGFzcyB0ZW1wbGF0
ZSBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzM0MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpndWlkTXV0ZXgpOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0
aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RyeU11dGV4KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgICogbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdv
cmtTdGF0ZU5vdGlmaWVyKToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5OjppbnN0YW5jZSk6CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRocmVhZFNldE11dGV4KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhdGljRGF0YSk6CisKKzIwMTQtMDUtMzEgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCB1c2Ug
c3RkOjptdXRleDo6dHJ5X2xvY2sgdG8gY2hlY2sgaWYgd2Ugb3duIGEgbXV0ZXgKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggM2MyMDYzN2M5MTVjZjlmZjQ4NGRmNTc4MGJjNGRhOTUzZjkyZjA1OC4uNDlhYzEyMGZm
ZmViMWYwM2IxMjMzYzUwYzdiYWVlZmE4NTc1YzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTA1LTMxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgTGF6eU5ldmVyRGVzdHJveWVkIGNsYXNzIHRlbXBsYXRlIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzQy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnJlc3BvbnNlTWFwKToK
KwogMjAxNC0wNS0zMCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIFdoZW4gYSBwYWdlIGRvZXMgbm90IGZpbmlzaCByb3RhdGlvbiBi
ZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLCBzeW5jaHJvbml6ZSBleHBsaWNpdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRlbGlz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNw
cAppbmRleCAzMTc0NTY3MjVhNGZhZThjYmM0YjI1ZDcxYjNlOTE1ZTViZmY4MWYyLi4wYmNiNGEw
MTEzM2JkNDVjYzRiZDczMjEwNzkyNjlhZWE4M2ZjYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcApAQCAtMzAsMTkgKzMwLDIw
IEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKLXN0YXRpYyBGdW5jdGlvbldoaXRlbGlzdCogZnVuY3Rpb25XaGl0ZWxpc3Q7Ci0KIEZ1bmN0
aW9uV2hpdGVsaXN0JiBGdW5jdGlvbldoaXRlbGlzdDo6ZW5zdXJlR2xvYmFsV2hpdGVsaXN0KCkK
IHsKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPEZ1bmN0aW9uV2hpdGVsaXN0PiBmdW5j
dGlvbldoaXRlbGlzdDsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZVdoaXRl
bGlzdEZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZVdoaXRlbGlzdEZsYWcsIFtd
IHsKLSAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QgPSBuZXcgRnVuY3Rpb25XaGl0ZWxpc3QoT3B0
aW9uczo6ZGZnRnVuY3Rpb25XaGl0ZWxpc3RGaWxlKCkpOworICAgICAgICBjb25zdCBjaGFyKiBm
dW5jdGlvbldoaXRlbGlzdEZpbGUgPSBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KTsKKyAgICAgICAgZnVuY3Rpb25XaGl0ZWxpc3QuY29uc3RydWN0KGZ1bmN0aW9uV2hpdGVsaXN0
RmlsZSk7CiAgICAgfSk7Ci0gICAgcmV0dXJuICpmdW5jdGlvbldoaXRlbGlzdDsKKyAgICByZXR1
cm4gZnVuY3Rpb25XaGl0ZWxpc3Q7CiB9CiAKIEZ1bmN0aW9uV2hpdGVsaXN0OjpGdW5jdGlvbldo
aXRlbGlzdChjb25zdCBjaGFyKiBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRnVuY3Rpb25XaGl0ZWxpc3QuaAppbmRleCBiNThlMWE1MDMxODRmZjZjMDA5Nzhh
ZTM2MGNkNGIxZGJmMGMxMjYzLi44ZjA1YmU4MGJkYmQ0YjIwZmI2OTQzMWZmNTM0YTUzNzgyNGFk
MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Z1bmN0aW9uV2hp
dGVsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGdW5jdGlvbldoaXRl
bGlzdC5oCkBAIC0zOCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIERGRyB7CiBjbGFzcyBGdW5jdGlv
bldoaXRlbGlzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEZ1bmN0aW9uV2hpdGVsaXN0JiBlbnN1
cmVHbG9iYWxXaGl0ZWxpc3QoKTsKKyAgICBleHBsaWNpdCBGdW5jdGlvbldoaXRlbGlzdChjb25z
dCBjaGFyKik7CiAKICAgICBib29sIGNvbnRhaW5zKENvZGVCbG9jayopIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEZ1bmN0aW9uV2hpdGVsaXN0KGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHBhcnNl
RnVuY3Rpb25OYW1lc0luRmlsZShjb25zdCBjaGFyKik7CiAKICAgICBIYXNoU2V0PFN0cmluZz4g
bV9lbnRyaWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNl
L1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDIxNTI0N2ZhNzk0MjZmYzc3NDNhMTEyZWM1MThiNDAz
OGVlNzc0ZmYuLjQ5YTkyYzUyOGUxNWZmOTk3ZWEzMzNmNjZlN2FhYmFiMmMwY2Y2ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3
YXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBGdW5jdGlvbjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlO
ZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVk
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgT3duUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gY2xhc3MgUGFzc093blB0cjsKQEAgLTYwLDYgKzYxLDcgQEAgdXNpbmcgV1RGOjpEZWNvZGVy
OwogdXNpbmcgV1RGOjpFbmNvZGVyOwogdXNpbmcgV1RGOjpGdW5jdGlvbjsKIHVzaW5nIFdURjo6
RnVuY3Rpb25EaXNwYXRjaGVyOwordXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1c2lu
ZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPd25QdHI7CiB1c2luZyBXVEY6OlBh
c3NPd25QdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIv
U291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAppbmRleCA1NzE1MmJkNWQzNGIxOWEzMmYx
MWRlYWE4MTIwYTUyMjJhNjQyYTcxLi5jZjQzMTFmNjBhMWUzOWVjNzU3YmQzN2Y1MmFmMjEwMjQ4
NGIyMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJveWVkLmgKQEAgLTczLDggKzczLDU2IEBAIHByaXZh
dGU6CiAgICAgfTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRl
c3Ryb3llZCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6eU5ldmVyRGVzdHJveWVkKTsK
KworcHVibGljOgorICAgIExhenlOZXZlckRlc3Ryb3llZCgpID0gZGVmYXVsdDsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFy
Z3MpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgICAgIG1faXNDb25zdHJ1Y3RlZCA9IHRydWU7CisjZW5kaWYKKwor
ICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoYXNQdHIoKSkgVChzdGQ6OmZvcndhcmQ8QXJncz4o
YXJncykuLi4pKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBUJigpIHsgcmV0dXJuICphc1B0cigp
OyB9CisgICAgVCYgZ2V0KCkgeyByZXR1cm4gKmFzUHRyKCk7IH0KKworcHJpdmF0ZToKKyAgICB0
eXBlZGVmIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKiBQb2ludGVyVHlwZTsK
KworICAgIFBvaW50ZXJUeXBlIGFzUHRyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzQ29u
c3RydWN0ZWQpOworCisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvaW50ZXJUeXBl
PigmbV9zdG9yYWdlKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgd2hldGhl
ciB3ZSBzaG91bGQgYWxsb2NhdGUgYSBodW5rIG9mIHZpcnR1YWwgbWVtb3J5CisgICAgLy8gYW5k
IGhhbmQgb3V0IGNodW5rcyBvZiBpdCB0byBOZXZlckRlc3Ryb3llZCBpbnN0ZWFkLCB0byByZWR1
Y2UgZnJhZ21lbnRhdGlvbi4KKyAgICB0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXpl
b2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOworCisg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6Omlz
X2Jhc2Vfb2Y8UmVmQ291bnRlZDxQdHJUeXBlPiwgUHRyVHlwZT46OnZhbHVlPiBzdHJ1Y3QgTWF5
YmVSZWxheCB7CisgICAgICAgIGV4cGxpY2l0IE1heWJlUmVsYXgoUHRyVHlwZSopIHsgfQorICAg
IH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFB0clR5cGU+IHN0cnVjdCBNYXliZVJlbGF4PFB0
clR5cGUsIHRydWU+IHsKKyAgICAgICAgZXhwbGljaXQgTWF5YmVSZWxheChQdHJUeXBlKiBwdHIp
IHsgcHRyLT5yZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsgfQorICAgIH07CisKKyNpZiAhQVNT
RVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2lzQ29uc3RydWN0ZWQgPSBmYWxzZTsKKyNlbmRpZgor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGOwogCit1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3ll
ZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiAKICNlbmRpZiAvLyBOZXZlckRlc3Ryb3ll
ZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2Vk
QnlTYWZhcmkubW0gYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJvbHNVc2VkQnlT
YWZhcmkubW0KaW5kZXggMGY4OTdkMTA2MmY5Y2JmMDVkZTY4NzhmY2UzYzQzZTA2YmEwZmI3My4u
ZmU3MzBlNDM5Zjk5ZDY1ZDQzYzMyYzJkZjNjYzQyNzZhZTVmYjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvbWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbQpAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2luY2x1ZGUgIk1haW5UaHJl
YWQuaCIKKyNpbmNsdWRlICJOZXZlckRlc3Ryb3llZC5oIgogI2luY2x1ZGUgIlN0ZExpYkV4dHJh
cy5oIgogI2luY2x1ZGUgPG11dGV4PgogCkBAIC00NywxMiArNDgsMTIgQEAgdm9pZCBjYWxsT25N
YWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JiBmdW5jdGlvbikKIHN0YXRpYyBzdGQ6
Om11dGV4JiBhdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBzdGQ6Om11dGV4KiBtdXRleDsK
KyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5p
cXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsK
ICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB2
b2lkIGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKaW5kZXggNjEyMzM1MTg0ZDFkYzY2ODFkNzFi
OTc0NjQ0YjhlMjU4YTk3ZDE5MC4uNDRmNzdmMWE5NzgyZDJjNTQwNGQ0ZjkzNzRlNjM3NGZhYzUy
NzFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y29s
Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmlu
Z0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtNTIsMTEg
KzUzLDEzIEBAIHN0YXRpYyBib29sIGNhY2hlZENvbGxhdG9yU2hvdWxkU29ydExvd2VyY2FzZUZp
cnN0Owogc3RhdGljIHN0ZDo6bXV0ZXgmIGNhY2hlZENvbGxhdG9yTXV0ZXgoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0
ZXg7CisKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4Owog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1h
a2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1
Y3QoKTsKICAgICB9KTsKLSAgICByZXR1cm4gKm11dGV4OworCisgICAgcmV0dXJuIG11dGV4Owog
fQogCiAjaWYgIShPUyhEQVJXSU4pICYmIFVTRShDRikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRCYXNlLmNwcAppbmRl
eCA1NmQzZDgxOTQyYTFlZGU3YWIzYjc1YTdlYzI0ZmJiMThhMTczNjk5Li4yZTUzOGUwZWI1MTEz
ZTliZWQ0ZDAyY2E0Zjc1ZGMyZDkwMzI3ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kQmFzZS5jcHAKQEAgLTE0
MSwxMyArMTQxLDEzIEBAIHN0YXRpYyBib29sIHNldFRleHRWYWx1ZUluRGF0YWJhc2UoU1FMaXRl
RGF0YWJhc2UmIGRiLCBjb25zdCBTdHJpbmcmIHF1ZXJ5LCBjb25zCiBzdGF0aWMgc3RkOjptdXRl
eCYgZ3VpZE11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0g
ICAgc3RhdGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95
ZWQ8c3RkOjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117
Ci0gICAgICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2Uo
KTsKKyAgICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11
dGV4OworICAgIHJldHVybiBtdXRleDsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPERhdGFiYXNlR3Vp
ZCwgU3RyaW5nPiBHdWlkVmVyc2lvbk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCmluZGV4IDk4NDIzMDY3Mzg5MjFmMDVkMWIwNzAy
ZTFmNmFlZDBjNTQ5NDEzZmQuLjdmNGVlZTM0YTRjODljZGJmODYxOTkyYWQ5OTVjMWEzZjE1ZDRh
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5JiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkKIHN0YXRpYyBzdGQ6Om11dGV4JiByZWdpc3Ry
eU11dGV4KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAgc3Rh
dGljIHN0ZDo6bXV0ZXgqIG11dGV4OworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8c3Rk
OjptdXRleD4gbXV0ZXg7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAg
ICAgIG11dGV4ID0gc3RkOjptYWtlX3VuaXF1ZTxzdGQ6Om11dGV4PigpLnJlbGVhc2UoKTsKKyAg
ICAgICAgbXV0ZXguY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICByZXR1cm4gKm11dGV4Owor
ICAgIHJldHVybiBtdXRleDsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OkNyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmNwcAppbmRleCA2MTFjNTE5NjViNDViOTIxMTVmZjZlM2FlNDNhZDhmNDg4
OWFjZjEwLi4wNDMzNjU3NDcxNmI4MGE1ZWZkZmMzZTRmZDE3OTllZmRmOTA4YWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01
MSwxMyArNTEsMTMgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6bXV0ZXgmIHdvcmtlckRlYnVnZ2VyQWdl
bnRzTXV0ZXgoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBz
dGF0aWMgc3RkOjptdXRleCogbXV0ZXg7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxz
dGQ6Om11dGV4PiBtdXRleDsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAg
ICAgICAgbXV0ZXggPSBzdGQ6Om1ha2VfdW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOwor
ICAgICAgICBtdXRleC5jb25zdHJ1Y3QoKTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7
CisgICAgcmV0dXJuIG11dGV4OwogfQogCiB0eXBlZGVmIEhhc2hNYXA8V29ya2VyVGhyZWFkKiwg
V29ya2VyRGVidWdnZXJBZ2VudCo+IFdvcmtlckRlYnVnZ2VyQWdlbnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA4NTJh
YzZkOTE4YTY1YjM2MDdlYjhlNzAxZmNlM2M5MzU3M2NlYWNiLi4zNDVlN2Y1MmRiODA0OTQyYjdj
ZmY4MTQ5MGZkNjhmNTE1OTlhMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KIApAQCAtNzgsMjAgKzc5LDIwIEBAIGJvb2wgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1Jl
cXVlc3QoY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmCiBib29sIGlz
T25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1l
KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgSFRU
UEhlYWRlclNldCogYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzOworICAgIHN0YXRp
YyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SFRUUEhlYWRlclNldD4gYWxsb3dlZENyb3NzT3JpZ2luUmVz
cG9uc2VIZWFkZXJzOwogCiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdewotICAgICAg
ICBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhU
VFBIZWFkZXJTZXQsIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+Pih7CisgICAgICAgIGFs
bG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVycy5jb25zdHJ1Y3Q8c3RkOjppbml0aWFsaXpl
cl9saXN0PFN0cmluZz4+KHsKICAgICAgICAgICAgICJjYWNoZS1jb250cm9sIiwKICAgICAgICAg
ICAgICJjb250ZW50LWxhbmd1YWdlIiwKICAgICAgICAgICAgICJjb250ZW50LXR5cGUiLAogICAg
ICAgICAgICAgImV4cGlyZXMiLAogICAgICAgICAgICAgImxhc3QtbW9kaWZpZWQiLAogICAgICAg
ICAgICAgInByYWdtYSIKLSAgICAgICAgfSkucmVsZWFzZSgpOworICAgICAgICB9KTsKICAgICB9
KTsKIAotICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMtPmNvbnRh
aW5zKG5hbWUpOworICAgIHJldHVybiBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMu
Z2V0KCkuY29udGFpbnMobmFtZSk7CiB9CiAKIHZvaWQgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0Nv
bnRyb2woUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4sIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3Bw
CmluZGV4IGI5ZTk4ZjhjNThkYjRhMTQ2YWI4ZmQ1NTczNWE4MDIwY2E0ZDRjMGYuLjc1NDBhNzg0
MjZiMzI3ZjEyMzRlOTAxMTYxNzYxNzI5ZmExMjliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC0z
MiwyMCArMzIsMjAgQEAKIAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyJiBuZXR3b3JrU3RhdGVOb3RpZmllcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwotICAgIHN0YXRpYyBOZXR3b3JrU3RhdGVOb3RpZmllciogbmV0d29ya1N0YXRl
Tm90aWZpZXI7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxOZXR3b3JrU3RhdGVOb3Rp
Zmllcj4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW117Ci0gICAgICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxO
ZXR3b3JrU3RhdGVOb3RpZmllcj4oKS5yZWxlYXNlKCk7CisgICAgICAgIG5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICpuZXR3b3JrU3RhdGVO
b3RpZmllcjsKKyAgICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXI7CiB9CiAKIHZvaWQgTmV0
d29ya1N0YXRlTm90aWZpZXI6OmFkZE5ldHdvcmtTdGF0ZUNoYW5nZUxpc3RlbmVyKHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoYm9vbCk+IGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCAwOTc5MDY0
NzZjNTcyODk2Njc5N2E4YjQ3MDQ0NDc1NzI0YjlkNTA4Li40YmQ4YzU3M2VmOTNlODhkYjg0MGVm
MDdkNmI2NDhkYzkyMWM0ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxtdXRleD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtMzMxLDEyICszMzIsMTIgQEAgdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5JiBEZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnkqIGluc3RhbmNlOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8RGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk+IGluc3RhbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VG
bGFnLCBbXXsKLSAgICAgICAgaW5zdGFuY2UgPSBuZXcgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9z
aXRvcnk7CisgICAgICAgIGluc3RhbmNlLmNvbnN0cnVjdCgpOwogICAgIH0pOwogCi0gICAgcmV0
dXJuICppbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIGJvb2wgRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk6OmlzQXZhaWxhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaAppbmRleCA4ODE4
MzAzNzFhNmEyZTMwZWM5OWY0OGQ3OTZkNWZlY2ZhNWI2MDliLi4yNTBlYmU1Y2RlZjY3NDZjY2Qx
ZmY3NzIyZjczYWExNmM4NzZlM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oCkBAIC01Nyw2ICs1Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgU2hhcmVkV29ya2VyUmVwb3NpdG9yeSBzdGF0aWMgaW50ZXJmYWNlLgogICAgIGNs
YXNzIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5IHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBw
bGF0Zm9ybSBzdXBwb3J0cyBTaGFyZWRXb3JrZXJzLCBvdGhlcndpc2UgZmFsc2UuCiAgICAgICAg
IHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CkBAIC03Niw4ICs3Nyw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBoYXNTaGFyZWRXb3JrZXJzKERvY3VtZW50Kik7CiAKICAg
ICAgICAgc3RhdGljIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5JiBpbnN0YW5jZSgpOwot
ICAgIHByaXZhdGU6CiAgICAgICAgIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5KCk7CisK
KyAgICBwcml2YXRlOgogICAgICAgICB+RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkoKTsK
IAogICAgICAgICBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclByb3h5PiBnZXRQcm94eShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCmluZGV4IDI2NGNmMWIxMzY3ZjJhNzRjZDE0Y2E2ZWI1MGMzNDMyODIxOWVmZGQuLmI2
MDA3NzBlMDI2ZGUxZWUwMGZkMGE0MWI1NjAzMjk2NDFlMmI4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTU0LDEzICs1NCwxMyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBzdGF0aWMgc3RkOjptdXRleCYgdGhyZWFkU2V0TXV0ZXgoKQogewogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0aWMgc3RkOjptdXRleCogbXV0ZXg7
CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxzdGQ6Om11dGV4PiBtdXRleDsKIAogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKLSAgICAgICAgbXV0ZXggPSBzdGQ6Om1ha2Vf
dW5pcXVlPHN0ZDo6bXV0ZXg+KCkucmVsZWFzZSgpOworICAgICAgICBtdXRleC5jb25zdHJ1Y3Qo
KTsKICAgICB9KTsKIAotICAgIHJldHVybiAqbXV0ZXg7CisgICAgcmV0dXJuIG11dGV4OwogfQog
CiBzdGF0aWMgSGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgd29ya2VyVGhyZWFkcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA0ZDI3ODQ1NzAyNzhjMTc2NWZkODMxZWVm
NjExYTc3MTI0MDRiOWYzLi4zOTI2MGI4ZGIxNGI3MzhhNWQxMmQzODM4YTJlMDNhODJjODg5YzI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAK
ICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBA
IC0xMTgsMTMgKzExOSwxMyBAQCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGE6OlhNTEh0dHBSZXF1
ZXN0U3RhdGljRGF0YSgpCiBzdGF0aWMgY29uc3QgWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhJiBz
dGF0aWNEYXRhKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0gICAg
c3RhdGljIGNvbnN0IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSogc3RhdGljRGF0YTsKKyAgICBz
dGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YT4gc3RhdGlj
RGF0YTsKIAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHN0YXRp
Y0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YT4oKS5yZWxl
YXNlKCk7CisgICAgICAgIHN0YXRpY0RhdGEuY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICBy
ZXR1cm4gKnN0YXRpY0RhdGE7CisgICAgcmV0dXJuIHN0YXRpY0RhdGE7CiB9CiAKIHN0YXRpYyBi
b29sIGlzU2V0Q29va2llSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggY2RhNzBhNWM0ZDQ1ZWI4MTRk
OTM0ODg2OWJhNjE4YTQwOTg3YjFmYi4uYjRhMjkxYmZiYmJiNTAwYjljOThkM2QxNjdjMzQyZDNi
YmE2NWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hp
bS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTM5LDE5ICszOSwyMCBAQAogI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxkbGZjbi5oPgog
I2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIEJsb2NraW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3Bv
bnNlRGF0YT4mIHJlc3BvbnNlTWFwKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7Ci0gICAgc3RhdGljIEJsb2NraW5nUmVzcG9uc2VNYXA8U2VjSXRlbVJlc3BvbnNlRGF0
YT4qIHJlc3BvbnNlTWFwOworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8QmxvY2tpbmdS
ZXNwb25zZU1hcDxTZWNJdGVtUmVzcG9uc2VEYXRhPj4gcmVzcG9uc2VNYXA7CiAKICAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW117Ci0gICAgICAgIHJlc3BvbnNlTWFwID0gc3RkOjptYWtl
X3VuaXF1ZTxCbG9ja2luZ1Jlc3BvbnNlTWFwPFNlY0l0ZW1SZXNwb25zZURhdGE+PigpLnJlbGVh
c2UoKTsKKyAgICAgICAgcmVzcG9uc2VNYXAuY29uc3RydWN0KCk7CiAgICAgfSk7CiAKLSAgICBy
ZXR1cm4gKnJlc3BvbnNlTWFwOworICAgIHJldHVybiByZXNwb25zZU1hcDsKIH0KIAogc3RhdGlj
IENoaWxkUHJvY2Vzcyogc2hhcmVkUHJvY2VzczsK
</data>
<flag name="review"
          id="256847"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>