<?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>156877</bug_id>
          
          <creation_ts>2016-04-21 16:15:01 -0700</creation_ts>
          <short_desc>Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope</short_desc>
          <delta_ts>2016-04-25 09:11:29 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>149953</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>ossy</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185999</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-21 16:15:01 -0700</bug_when>
    <thetext>Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186015</commentid>
    <comment_count>1</comment_count>
      <attachid>276981</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-21 16:42:19 -0700</bug_when>
    <thetext>Created attachment 276981
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186051</commentid>
    <comment_count>2</comment_count>
      <attachid>276981</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 18:03:20 -0700</bug_when>
    <thetext>Comment on attachment 276981
Patch v1

Clearing flags on attachment: 276981

Committed r199853: &lt;http://trac.webkit.org/changeset/199853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186052</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 18:03:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186170</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-22 01:50:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 276981 [details]
&gt; Patch v1
&gt; 
&gt; Clearing flags on attachment: 276981
&gt; 
&gt; Committed r199853: &lt;http://trac.webkit.org/changeset/199853&gt;

It broke the Apple Mac cmake build:

/Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebCore/workers/WorkerGlobalScope.cpp:66:219: warning: unused parameter &apos;connectionProxy&apos; [-Wunused-parameter]
WorkerGlobalScope::WorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, WorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
                                                                                                                                                                                                                          ^
/Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebCore/workers/WorkerMessagingProxy.cpp:81:246: error: no member named &apos;idbConnectionProxy&apos; in &apos;WebCore::Document&apos;
    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, document.topOrigin(), document.idbConnectionProxy());
                                                                                                                                                                                                                                            ~~~~~~~~ ^
/Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebCore/workers/WorkerThread.cpp:96:411: warning: unused parameter &apos;connectionProxy&apos; [-Wunused-parameter]
WorkerThread::WorkerThread(const URL&amp; scriptURL, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerReportingProxy&amp; workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
                                                                                                                                                                                                                                                                                                                                                                                                                          ^
1 error generated.
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/workers/WorkerMessagingProxy.cpp.o] Error 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186176</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-22 02:09:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; All reviewed patches have been landed.  Closing bug.

And it broke the Apple Windows build too:
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\workers\WorkerMessagingProxy.cpp(81): error C2039: &apos;idbConnectionProxy&apos;: is not a member of &apos;WebCore::Document&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186178</commentid>
    <comment_count>6</comment_count>
      <attachid>276981</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-22 02:16:37 -0700</bug_when>
    <thetext>Comment on attachment 276981
Patch v1

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

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:81
&gt; +    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, document.topOrigin(), document.idbConnectionProxy());

Using document.idbConnectionProxy() is incorrect here for !ENABLE(INDEXED_DATABASE) ports:
http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.h#L659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186430</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-22 14:15:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 276981 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 276981
&gt; &gt; 
&gt; &gt; Committed r199853: &lt;http://trac.webkit.org/changeset/199853&gt;
&gt; 
&gt; It broke the Apple Mac cmake build:

Once keeping that build working is a directive of the project and not just the side project of one engineer, we&apos;ll have bots that will catch such a thing.(In reply to comment #5)

Since we don&apos;t even have EWS for it, it&apos;s definitely allowed to break.

&gt; And it broke the Apple Windows build too:

This was certainly sad. I&apos;ve said this about a million times, but will say it again:
&quot;Automation is helpful&quot; seems to be the motto of the project, but *imperfect* automation is harmful.

If we&apos;re going to rely on EWS and CQ, then CQ can&apos;t land something that an EWS would catch.

Anyways, this was fixed earlier today in http://trac.webkit.org/changeset/199885</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186901</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-25 04:06:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Comment on attachment 276981 [details]
&gt; &gt; &gt; Patch v1
&gt; &gt; &gt; 
&gt; &gt; &gt; Clearing flags on attachment: 276981
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r199853: &lt;http://trac.webkit.org/changeset/199853&gt;
&gt; &gt; 
&gt; &gt; It broke the Apple Mac cmake build:
&gt; 
&gt; Once keeping that build working is a directive of the project and not just
&gt; the side project of one engineer, we&apos;ll have bots that will catch such a
&gt; thing.(In reply to comment #5)
&gt; 
&gt; Since we don&apos;t even have EWS for it, it&apos;s definitely allowed to break.

I didn&apos;t say the opposite of it. Of course, you are allowed to break 
it whenever you want and you don&apos;t have to fix it if you don&apos;t want.

I just noticed the build break to let you and Alex know that
the Apple Mac cmake is broken due to this change. 
 
&gt; &gt; And it broke the Apple Windows build too:
&gt; 
&gt; This was certainly sad. I&apos;ve said this about a million times, but will say
&gt; it again:
&gt; &quot;Automation is helpful&quot; seems to be the motto of the project, but
&gt; *imperfect* automation is harmful.
&gt; 
&gt; If we&apos;re going to rely on EWS and CQ, then CQ can&apos;t land something that an
&gt; EWS would catch.

If you check the build.webkit.org waterfall, you can see that the automation
was perfect here, but an other Apple employee break the Windows build before
your patch, that&apos;s why the EWS wasn&apos;t able to build the trunk at all that time.

&gt; Anyways, this was fixed earlier today in
&gt; http://trac.webkit.org/changeset/199885

Thanks for the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186949</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-25 09:11:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; And it broke the Apple Windows build too:
&gt; &gt; 
&gt; &gt; This was certainly sad. I&apos;ve said this about a million times, but will say
&gt; &gt; it again:
&gt; &gt; &quot;Automation is helpful&quot; seems to be the motto of the project, but
&gt; &gt; *imperfect* automation is harmful.
&gt; &gt; 
&gt; &gt; If we&apos;re going to rely on EWS and CQ, then CQ can&apos;t land something that an
&gt; &gt; EWS would catch.
&gt; 
&gt; If you check the build.webkit.org waterfall, you can see that the automation
&gt; was perfect here, but an other Apple employee break the Windows build before
&gt; your patch, that&apos;s why the EWS wasn&apos;t able to build the trunk at all that
&gt; time.

The &quot;Perfect Automation&quot; argument is that:
1 - The automated tools have to do 100% of what we need them to do, correctly.
2 - Nobody can land anything manually with using the tools

If somebody landed something with CQ that broke the Windows build ahead of time, that&apos;s a breakdown in automation because #1 was violated.
If somebody landed something *manually* to break the Windows build ahead of time, that&apos;s a breakdown in automation because #2 was violated.

&lt;/soapbox&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276981</attachid>
            <date>2016-04-21 16:42:19 -0700</date>
            <delta_ts>2016-04-21 18:03:20 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27609</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZjQ4NTYwLi45NDlkYjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDQt
MjEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REIgKFdvcmtlcnMpOiBHZXQgdGhlIElEQkNvbm5lY3Rpb25Qcm94eSBmcm9tIHRoZSBEb2N1bWVu
dCB0byB0aGUgV29ya2VyR2xvYmFsU2NvcGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY4NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWVu
YWJsZS1leHBlY3RlZC50eHQ6CisKIDIwMTYtMDQtMjEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBEdW1wUmVuZGVyVHJlZSBjcmFzaGVkIGluIGNv
bS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkRmFpbFRv
TG9hZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dv
cmtlcnMtZW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi93b3JrZXJzLWVuYWJsZS1leHBlY3RlZC50eHQKaW5kZXggNjBkMzEwZi4uZTczYzkz
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtl
cnMtZW5hYmxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vd29ya2Vycy1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC01LDggKzUsOCBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiBTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy93b3JrZXJz
LWVuYWJsZS5qcwogUEFTUyBbV29ya2VyXSBzZWxmLmluZGV4ZWREQiBpcyBkZWZpbmVkLgotRkFJ
TCBbV29ya2VyXSBzZWxmLmluZGV4ZWREQiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyBudWxsCi1G
QUlMIFtXb3JrZXJdIHNlbGYuaW5kZXhlZERCIGluc3RhbmNlb2YgSURCRmFjdG9yeSBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBbV29ya2VyXSBzZWxmLmluZGV4ZWREQiBpcyBub24t
bnVsbC4KK1BBU1MgW1dvcmtlcl0gc2VsZi5pbmRleGVkREIgaW5zdGFuY2VvZiBJREJGYWN0b3J5
IGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGIzNjZlZWYuLjc5MWJiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MCBAQAorMjAxNi0wNC0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgTW9kZXJuIElEQiAoV29ya2Vycyk6IEdldCB0aGUgSURCQ29ubmVjdGlvblByb3h5IGZy
b20gdGhlIERvY3VtZW50IHRvIHRoZSBXb3JrZXJHbG9iYWxTY29wZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njg3NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBi
eSBjaGFuZ2VzIHRvIGV4aXN0aW5nIHRlc3RzKS4KKworICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJv
eHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUpOiBUaGlzIGlzIHRoZSBwb2ludCBvbiB0aGUgbWFp
biB0aHJlYWQKKyAgICAgICAgICB3aGVyZSB3ZSBjYW4gZ2V0IHRoZSBJREJDb25uZWN0aW9uUHJv
eHkgZnJvbSB0aGUgRG9jdW1lbnQgYW5kIHBhc3MgaXQgZG93biB0aHJvdWdoIFdvcmtlcgorICAg
ICAgICAgIG1hY2hpbmVyeSBzbyBpdCBjYW4gZW5kIHVwIGF0IHRoZSBXb3JrZXJHbG9iYWxTY29w
ZS4KKyAgICAgICAgCisgICAgICAgIEV2ZXJ5dGhpbmcgZWxzZSBpcyB0aGlzIHBhdGNoIGlzIGp1
c3QgcGFzc2luZyBpdCBhbG9uZyBhcyBuZWVkZWQuCisKKyAgICAgICAgQW5kIGNsZWFuaW5nIHVw
IGhlYWRlciBzdHlsZSBmb3IgbmVnbGVjdGVkIGhlYWRlcnMuCisKKyAgICAgICAgKiB3b3JrZXJz
L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisKKyAgICAgICAgKiB3
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyVGhyZWFkOjp3b3JrZXJPYmplY3RQcm94eSk6CisKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9i
YWxTY29wZTo6aWRiQ29ubmVjdGlvblByb3h5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmg6CisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OmlkYkNvbm5lY3Rpb25Qcm94eSk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6dGhyZWFk
SUQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5Mb29wKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyTG9hZGVyUHJveHkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJSZXBvcnRpbmdQcm94eSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OmdldE5vdGlmaWNhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OnNldE5vdGlmaWNhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6Ondvcmtlckdsb2JhbFNjb3BlKToKKwogMjAxNi0wNC0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEVsZW1lbnQ6OmlkRm9yU3R5
bGVSZXNvbHV0aW9uKCkgaXMgYSBmb290LWd1bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCAzMGZkZTFjLi44ZDg2
MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC00MCwxNiArNDEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1SZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitSZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4sIElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5KiBjb25uZWN0aW9uUHJveHkpCiB7Ci0gICAgUmVmPERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRvcE9yaWdpbikpOworICAgIFJlZjxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0b3BPcmlnaW4sIGNvbm5lY3Rpb25Qcm94eSkpOwog
ICAgIGlmICghc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KQogICAg
ICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyhj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMpOwogICAgIHJldHVybiBjb250ZXh0
OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQmIHRocmVhZCwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKLSAgICA6
IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2luKQorRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBjb25uZWN0aW9uUHJveHkpCisgICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2Vu
dCwgdGhyZWFkLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRv
cE9yaWdpbiwgY29ubmVjdGlvblByb3h5KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNjZiYzliZi4uYWJl
M2JlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0yOCw4ICsyOSw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVfaAotI2RlZmluZSBEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAj
aW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGlj
IFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2Vy
R2xvYmFsU2NvcGUgQmFzZTsKLSAgICAgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICAgICAgc3RhdGljIFJl
ZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSopOwogICAgICAgICB2aXJ0dWFsIH5EZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwogCiAgICAgICAgIGJvb2wgaXNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTYwLDkg
KzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQmIHRocmVhZCgpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdv
cmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOworICAgICAgICBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbiwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXgg
MDM5NGYwZC4uNjNmYjhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0yOSw3ICszMCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotCiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgiCiAKICNpbmNsdWRlICJE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMzgsOCArMzgsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhy
ZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5n
JiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtl
ck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0
YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2lu
KQotICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJM
b2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIHRvcE9yaWdpbikKK0RlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29y
a2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHks
IFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlIHN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9w
T3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5KQor
ICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2Fk
ZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIHRvcE9yaWdpbiwgY29ubmVjdGlvblByb3h5KQogICAgICwgbV93b3JrZXJPYmplY3RQ
cm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKIH0KQEAgLTUwLDcgKzUwLDcgQEAgRGVkaWNhdGVk
V29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCkKIAogUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiB7Ci0gICAgcmV0dXJuIERlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsICp0aGlzLCBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgdG9wT3JpZ2luKTsKKyAgICByZXR1cm4gRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCB0b3BPcmlnaW4sIGlkYkNvbm5lY3Rpb25Qcm94eSgpKTsKIH0KIAogdm9p
ZCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAppbmRleCAxOGIyZjE2Li5hNzgyYjMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjcsMzUgKzI4LDM0IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KLSNp
Zm5kZWYgRGVkaWNhdGVkV29ya2VyVGhyZWFkX2gKLSNkZWZpbmUgRGVkaWNhdGVkV29ya2VyVGhy
ZWFkX2gKKworI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzOwotICAgIGNsYXNzIFdvcmtlck9iamVjdFByb3h5OworY2xhc3MgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiAK
LSAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkIHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBS
ZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlclRocmVh
ZChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsKLSAgICAgICAgfQotICAgICAgICB2aXJ0
dWFsIH5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKTsKK2NsYXNzIERlZGljYXRlZFdvcmtlclRocmVh
ZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQgeworcHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3M+IHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoQXJncyYm
Li4uIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CisgICAgfQorICAgIHZp
cnR1YWwgfkRlZGljYXRlZFdvcmtlclRocmVhZCgpOwogCi0gICAgICAgIFdvcmtlck9iamVjdFBy
b3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJv
eHk7IH0KKyAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7
IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOwot
ICAgICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOworcHJvdGVjdGVkOgorICAgIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOworICAg
IHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmpl
Y3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworcHJpdmF0ZToK
KyAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3Jr
ZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5Kik7CiAKLSAgICAgICAgV29ya2VyT2JqZWN0UHJveHkm
IG1fd29ya2VyT2JqZWN0UHJveHk7Ci0gICAgfTsKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyAg
ICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKK307CiAKLSNlbmRpZiAv
LyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWRfaAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBlZThkNzc1Li5k
NDY0ZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJJREJDb25uZWN0
aW9uUHJveHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIK
QEAgLTYyLDcgKzYzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmIHRocmVhZCwg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKK1dvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtl
clRocmVhZCYgdGhyZWFkLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luLCBJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5KQogICAgIDogbV91cmwodXJsKQog
ICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3Vu
aXF1ZTxXb3JrZXJTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKQEAgLTcxLDYgKzcyLDkgQEAgV29y
a2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgV28KICAgICAsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5KHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSkKICAgICAsIG1fZXZlbnRRdWV1ZSgqdGhpcykKICAgICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdp
bikKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICAsIG1fY29ubmVjdGlvblByb3h5
KGNvbm5lY3Rpb25Qcm94eSkKKyNlbmRpZgogewogICAgIHNldFNlY3VyaXR5T3JpZ2luUG9saWN5
KFNlY3VyaXR5T3JpZ2luUG9saWN5OjpjcmVhdGUoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwp
KSk7CiAgICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KHN0ZDo6bWFrZV91bmlxdWU8Q29udGVu
dFNlY3VyaXR5UG9saWN5PigqdGhpcykpOwpAQCAtMTE1LDkgKzExOSwxMSBAQCB2b2lkIFdvcmtl
ckdsb2JhbFNjb3BlOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBXb3JrZXJHbG9iYWxTY29wZTo6aWRiQ29ubmVjdGlvblByb3h5KCkKIHsKLSAgICAvLyBGSVhN
RTogSW1wbGVtZW50Ci0KKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQor
ICAgIHJldHVybiBtX2Nvbm5lY3Rpb25Qcm94eS5nZXQoKTsKKyNlbHNlCiAgICAgcmV0dXJuIG51
bGxwdHI7CisjZW5kaWYKIH0KICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDI1OWY1ZTIu
LjVlYWQ4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
QEAgLTUzLDYgKzUzLDEwIEBAIGNsYXNzIFdvcmtlckxvY2F0aW9uOwogY2xhc3MgV29ya2VyTmF2
aWdhdG9yOwogY2xhc3MgV29ya2VyVGhyZWFkOwogCituYW1lc3BhY2UgSURCQ2xpZW50IHsKK2Ns
YXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKK30KKwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJs
ZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJs
aWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29y
a2VyR2xvYmFsU2NvcGUoKTsKQEAgLTE0MCw3ICsxNDQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
cHJvdGVjdGVkOgotICAgIFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KTsKKyAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgV29ya2VyVGhyZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbiwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkqKTsKICAgICB2b2lkIGFwcGx5Q29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYpOwogCiAgICAgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwg
aW50IGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKSBv
dmVycmlkZTsKQEAgLTE3Nyw2ICsxODEsMTAgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFdvcmtl
ckV2ZW50UXVldWUgbV9ldmVudFF1ZXVlOwogCiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBt
X3RvcE9yaWdpbjsKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIFJlZlB0cjxJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eT4gbV9jb25uZWN0aW9uUHJveHk7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggODJjZDBiYy4uNzVmNjhmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTc3LDcgKzc3LDggQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3QKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlzaXRl
ZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlZlB0cjxEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNj
cmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGRvY3VtZW50LnRvcE9yaWdpbigpKTsKKworICAgIFJl
ZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVh
ZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMs
IHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGRvY3VtZW50LnRvcE9yaWdpbigp
LCBkb2N1bWVudC5pZGJDb25uZWN0aW9uUHJveHkoKSk7CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRl
ZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAppbmRleCAyOTdiZjdlLi45YzI4YTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgog
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKQEAgLTkyLDcgKzkzLDcgQEAgV29ya2Vy
VGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHIKIHsKIH0KIAotV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2Vy
UmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMm
IGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BP
cmlnaW4pCitXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2Vy
TG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29y
a2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Qcm94eSkKICAgICA6IG1fdGhyZWFkSUQoMCkK
ICAgICAsIG1fd29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVyUHJveHkpCiAgICAgLCBtX3dv
cmtlclJlcG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5KQpAQCAtMTAwLDYgKzEwMSw5
IEBAIFdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQo
MCkKICNlbmRpZgorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICwgbV9pZGJDb25u
ZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQorI2VuZGlmCiB7CiAgICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCkBAIC0yMzMsNCArMjM3LDEz
IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRo
cmVhZHMoKQogICAgIH0KIH0KIAorSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIFdvcmtl
clRocmVhZDo6aWRiQ29ubmVjdGlvblByb3h5KCkKK3sKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKyAgICByZXR1cm4gbV9pZGJDb25uZWN0aW9uUHJveHkuZ2V0KCk7CisjZWxzZQorICAg
IHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDE2YzhkYjcuLjBiY2NiNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOCArMjQsNyBAQAogICoKICAq
LwogCi0jaWZuZGVmIFdvcmtlclRocmVhZF9oCi0jZGVmaW5lIFdvcmtlclRocmVhZF9oCisjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxtZW1vcnk+
CkBAIC0zNSw3MCArMzQsNzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOwotICAgIGNsYXNzIFVSTDsKLSAg
ICBjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7Ci0gICAgY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci0g
ICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7Ci0gICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHk7
Ci0gICAgY2xhc3MgV29ya2VyUmVwb3J0aW5nUHJveHk7Ci0gICAgc3RydWN0IFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhOworY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
OworY2xhc3MgVVJMOworY2xhc3MgTm90aWZpY2F0aW9uQ2xpZW50OworY2xhc3MgU2VjdXJpdHlP
cmlnaW47CitjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKK2NsYXNzIFdvcmtlckxvYWRlclByb3h5
OworY2xhc3MgV29ya2VyUmVwb3J0aW5nUHJveHk7CiAKLSAgICBlbnVtIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSB7IERvbnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFydCwgUGF1c2VXb3JrZXJH
bG9iYWxTY29wZU9uU3RhcnQgfTsKK2VudW0gV29ya2VyVGhyZWFkU3RhcnRNb2RlIHsgRG9udFBh
dXNlV29ya2VyR2xvYmFsU2NvcGVPblN0YXJ0LCBQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25TdGFy
dCB9OwogCi0gICAgY2xhc3MgV29ya2VyVGhyZWFkIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2Vy
VGhyZWFkPiB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJUaHJlYWQoKTsK
K25hbWVzcGFjZSBJREJDbGllbnQgeworY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OworfQogCi0g
ICAgICAgIGJvb2wgc3RhcnQoKTsKLSAgICAgICAgdm9pZCBzdG9wKCk7CitzdHJ1Y3QgV29ya2Vy
VGhyZWFkU3RhcnR1cERhdGE7CiAKLSAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkSUQ7IH0KLSAgICAgICAgV29ya2VyUnVuTG9vcCYgcnVu
TG9vcCgpIHsgcmV0dXJuIG1fcnVuTG9vcDsgfQotICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSYg
d29ya2VyTG9hZGVyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlckxvYWRlclByb3h5OyB9
Ci0gICAgICAgIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7IH0KK2NsYXNzIFdvcmtlclRocmVh
ZCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclRocmVhZD4geworcHVibGljOgorICAgIHZpcnR1
YWwgfldvcmtlclRocmVhZCgpOwogCi0gICAgICAgIC8vIE51bWJlciBvZiBhY3RpdmUgd29ya2Vy
IHRocmVhZHMuCi0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB1bnNpZ25lZCB3b3JrZXJU
aHJlYWRDb3VudCgpOwotICAgICAgICBzdGF0aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVN
ZW1vcnlJbkFsbFRocmVhZHMoKTsKKyAgICBib29sIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7
CisKKyAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKCkgY29uc3QgeyByZXR1cm4gbV90aHJl
YWRJRDsgfQorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AoKSB7IHJldHVybiBtX3J1bkxvb3A7
IH0KKyAgICBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHkoKSBjb25zdCB7IHJl
dHVybiBtX3dvcmtlckxvYWRlclByb3h5OyB9CisgICAgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdv
cmtlclJlcG9ydGluZ1Byb3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJSZXBvcnRpbmdQcm94
eTsgfQorCisgICAgLy8gTnVtYmVyIG9mIGFjdGl2ZSB3b3JrZXIgdGhyZWFkcy4KKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKKyAgICBzdGF0
aWMgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKTsKIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0g
ICAgICAgIE5vdGlmaWNhdGlvbkNsaWVudCogZ2V0Tm90aWZpY2F0aW9uQ2xpZW50KCkgeyByZXR1
cm4gbV9ub3RpZmljYXRpb25DbGllbnQ7IH0KLSAgICAgICAgdm9pZCBzZXROb3RpZmljYXRpb25D
bGllbnQoTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpIHsgbV9ub3RpZmljYXRpb25DbGllbnQg
PSBjbGllbnQ7IH0KKyAgICBOb3RpZmljYXRpb25DbGllbnQqIGdldE5vdGlmaWNhdGlvbkNsaWVu
dCgpIHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2xpZW50OyB9CisgICAgdm9pZCBzZXROb3RpZmlj
YXRpb25DbGllbnQoTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpIHsgbV9ub3RpZmljYXRpb25D
bGllbnQgPSBjbGllbnQ7IH0KICNlbmRpZgogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBXb3Jr
ZXJUaHJlYWQoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYs
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworcHJvdGVjdGVkOgorICAgIFdv
cmtlclRocmVhZChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5
JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHkqKTsKKworICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5l
dyB3b3JrZXIgY29udGV4dCBmb3IgdGhlIHRocmVhZC4KKyAgICB2aXJ0dWFsIFJlZjxXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pID0gMDsKIAotICAgICAgICAvLyBGYWN0
b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgd29ya2VyIGNvbnRleHQgZm9yIHRoZSB0aHJl
YWQuCi0gICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRv
cE9yaWdpbikgPSAwOworICAgIC8vIEV4ZWN1dGVzIHRoZSBldmVudCBsb29wIGZvciB0aGUgd29y
a2VyIHRocmVhZC4gRGVyaXZlZCBjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBwZXJmb3JtIGFjdGlv
bnMgYmVmb3JlL2FmdGVyIGVudGVyaW5nIHRoZSBldmVudCBsb29wLgorICAgIHZpcnR1YWwgdm9p
ZCBydW5FdmVudExvb3AoKTsKIAotICAgICAgICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQgbG9vcCBm
b3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gcGVy
Zm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBlbnRlcmluZyB0aGUgZXZlbnQgbG9vcC4KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOworICAgIFdvcmtlckdsb2JhbFNjb3BlKiB3
b3JrZXJHbG9iYWxTY29wZSgpIHsgcmV0dXJuIG1fd29ya2VyR2xvYmFsU2NvcGUuZ2V0KCk7IH0K
IAotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2NvcGUoKSB7IHJldHVy
biBtX3dvcmtlckdsb2JhbFNjb3BlLmdldCgpOyB9CisgICAgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSgpOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
Ly8gU3RhdGljIGZ1bmN0aW9uIGV4ZWN1dGVkIGFzIHRoZSBjb3JlIHJvdXRpbmUgb24gdGhlIG5l
dyB0aHJlYWQuIFBhc3NlZCBhIHBvaW50ZXIgdG8gYSBXb3JrZXJUaHJlYWQgb2JqZWN0LgotICAg
ICAgICBzdGF0aWMgdm9pZCB3b3JrZXJUaHJlYWRTdGFydCh2b2lkKik7Ci0gICAgICAgIHZvaWQg
d29ya2VyVGhyZWFkKCk7Citwcml2YXRlOgorICAgIC8vIFN0YXRpYyBmdW5jdGlvbiBleGVjdXRl
ZCBhcyB0aGUgY29yZSByb3V0aW5lIG9uIHRoZSBuZXcgdGhyZWFkLiBQYXNzZWQgYSBwb2ludGVy
IHRvIGEgV29ya2VyVGhyZWFkIG9iamVjdC4KKyAgICBzdGF0aWMgdm9pZCB3b3JrZXJUaHJlYWRT
dGFydCh2b2lkKik7CisgICAgdm9pZCB3b3JrZXJUaHJlYWQoKTsKIAotICAgICAgICBUaHJlYWRJ
ZGVudGlmaWVyIG1fdGhyZWFkSUQ7Ci0gICAgICAgIFdvcmtlclJ1bkxvb3AgbV9ydW5Mb29wOwot
ICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSYgbV93b3JrZXJMb2FkZXJQcm94eTsKLSAgICAgICAg
V29ya2VyUmVwb3J0aW5nUHJveHkmIG1fd29ya2VyUmVwb3J0aW5nUHJveHk7CisgICAgVGhyZWFk
SWRlbnRpZmllciBtX3RocmVhZElEOworICAgIFdvcmtlclJ1bkxvb3AgbV9ydW5Mb29wOworICAg
IFdvcmtlckxvYWRlclByb3h5JiBtX3dvcmtlckxvYWRlclByb3h5OworICAgIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiBtX3dvcmtlclJlcG9ydGluZ1Byb3h5OwogCi0gICAgICAgIFJlZlB0cjxXb3Jr
ZXJHbG9iYWxTY29wZT4gbV93b3JrZXJHbG9iYWxTY29wZTsKLSAgICAgICAgTG9jayBtX3RocmVh
ZENyZWF0aW9uTXV0ZXg7CisgICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckds
b2JhbFNjb3BlOworICAgIExvY2sgbV90aHJlYWRDcmVhdGlvbk11dGV4OwogCi0gICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4gbV9zdGFydHVwRGF0YTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IG1fc3RhcnR1cERhdGE7
CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQotICAgICAgICBOb3RpZmljYXRpb25DbGllbnQqIG1fbm90aWZpY2F0aW9uQ2xpZW50Owor
ICAgIE5vdGlmaWNhdGlvbkNsaWVudCogbV9ub3RpZmljYXRpb25DbGllbnQ7CiAjZW5kaWYKLSAg
ICB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgUmVmUHRyPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2lkYkNvbm5l
Y3Rpb25Qcm94eTsKKyNlbmRpZgorfTsKIAotI2VuZGlmIC8vIFdvcmtlclRocmVhZF9oCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>