<?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>75290</bug_id>
          
          <creation_ts>2011-12-27 21:08:05 -0800</creation_ts>
          <short_desc>[Refactoring] Migration over TreeScopes should be done by its own class.</short_desc>
          <delta_ts>2012-01-09 18:12:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>75688</dependson>
          <blocked>59816</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527547</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-27 21:08:05 -0800</bug_when>
    <thetext>Moving node over Document and/or TreeScope is complicated task involved by Node, Document and TreeScope.
Currently whole code is on Node.cpp and it makes the &quot;migration/move&quot; intention unclear.
It should be done by its own class.

This is preparation of Bug 59816, which needs a certain size of change related tree scope migration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527552</commentid>
    <comment_count>1</comment_count>
      <attachid>120633</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-27 21:28:20 -0800</bug_when>
    <thetext>Created attachment 120633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527556</commentid>
    <comment_count>2</comment_count>
      <attachid>120635</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-27 21:38:39 -0800</bug_when>
    <thetext>Created attachment 120635
Rebased to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527560</commentid>
    <comment_count>3</comment_count>
      <attachid>120635</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-27 22:12:59 -0800</bug_when>
    <thetext>Comment on attachment 120635
Rebased to ToT

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

&gt; Source/WebCore/dom/TreeScopeMigration.cpp:42
&gt; +    if (needsMigration()) {

It seems oxymoron to ask this class whether we need to migrate the node or not given the class is called &quot;migration&quot;.
i.e. it seems odd to instantiate this class when no &quot;migration&quot; is needed.

&gt; Source/WebCore/dom/TreeScopeMigration.cpp:44
&gt; +        m_departureDocument = migrationRoot-&gt;document();
&gt; +        m_destinationDocument = destination-&gt;document();

Do we really need these member variables? It seems like we can just get away with putting these statements inside execute().

&gt; Source/WebCore/dom/TreeScopeMigration.h:32
&gt; +class TreeScopeMigration {

I&apos;m not sure if &quot;migration&quot; is a descriptive name for this class. How about TreeScopeAdopter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527561</commentid>
    <comment_count>4</comment_count>
      <attachid>120635</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-12-27 22:25:07 -0800</bug_when>
    <thetext>Comment on attachment 120635
Rebased to ToT

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

&gt; Source/WebCore/dom/TreeScopeMigration.cpp:84
&gt; +    ASSERT(shouldMigrateOverDocument());

Why does migrateShadowOverDocument recurse into migrateOverDocument, but migrateOverDocument doesn’t migrate shadows?

&gt; Source/WebCore/dom/TreeScopeMigration.h:46
&gt; +    bool shouldMigrateOverDocument() const { return m_departureDocument != m_destinationDocument; }

I found this &quot;migrate over document&quot; a bit confusing. What about:

shouldMigrateOverDocument -&gt; isMigratingToDifferentDocument
isMigratingToDocument -&gt; isMigratingToDocumentTreeScope
migrateShadowOverDocument, migrateOverDocument -&gt; migrateToDifferentDocument

&gt; Source/WebCore/dom/TreeScopeMigration.h:48
&gt; +    void migrateShadowOverDocument(ShadowRoot*) const;

Would this be simpler if you had a single method that tested node type to handle ShadowRoot differently? Because I am not sure this makes sense:

ShadowRoot* s = …;
migrateOverDocument(s);
migrateShadowOverDocument(s);

I guess it can happen if the &quot;migration root&quot; is a ShadowRoot. Is it intended?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527562</commentid>
    <comment_count>5</comment_count>
      <attachid>120635</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-27 22:38:01 -0800</bug_when>
    <thetext>Comment on attachment 120635
Rebased to ToT

Attachment 120635 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11038504</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530000</commentid>
    <comment_count>6</comment_count>
      <attachid>121214</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 21:57:01 -0800</bug_when>
    <thetext>Created attachment 121214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530003</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 22:09:28 -0800</bug_when>
    <thetext>Ryosuke, Dominic, Thanks for reviewing at the year end! 
I updated the new year&apos;s patch.

(In reply to comment #3)
&gt; (From update of attachment 120635 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120635&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeMigration.cpp:42
&gt; &gt; +    if (needsMigration()) {
&gt; 
&gt; It seems oxymoron to ask this class whether we need to migrate the node or not given the class is called &quot;migration&quot;.
Sounds reasonable. tried different approach.

&gt; &gt; Source/WebCore/dom/TreeScopeMigration.cpp:44
&gt; &gt; +        m_departureDocument = migrationRoot-&gt;document();
&gt; &gt; +        m_destinationDocument = destination-&gt;document();
&gt; 
&gt; Do we really need these member variables? It seems like we can just get away with putting these statements inside execute().
Moved them to local variables

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeMigration.h:32
&gt; &gt; +class TreeScopeMigration {
&gt; 
&gt; I&apos;m not sure if &quot;migration&quot; is a descriptive name for this class. How about TreeScopeAdopter?
This is a good point. I renamed it to TreeScopeAdopter and
Node::migrateTo() is now TreeScope::adoptIfNeeded().

(In reply to comment #4)
&gt; (From update of attachment 120635 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120635&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeMigration.cpp:84
&gt; &gt; +    ASSERT(shouldMigrateOverDocument());
&gt; 
&gt; Why does migrateShadowOverDocument recurse into migrateOverDocument, but migrateOverDocument doesn’t migrate shadows?
Because migrateOverDocument is for shadowRoot, whose tree nodes keep the shadow root 
as their treescopes. We need to change tree scope of the light dom tree.

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeMigration.h:46
&gt; &gt; +    bool shouldMigrateOverDocument() const { return m_departureDocument != m_destinationDocument; }
&gt; 
&gt; I found this &quot;migrate over document&quot; a bit confusing. What about:
&gt; 
&gt; shouldMigrateOverDocument -&gt; isMigratingToDifferentDocument
&gt; isMigratingToDocument -&gt; isMigratingToDocumentTreeScope
&gt; migrateShadowOverDocument, migrateOverDocument -&gt; migrateToDifferentDocument
Well, I agree that these namings are confusing. I tried different name.
Some member funcitons are removed due to other changes.

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeMigration.h:48
&gt; &gt; +    void migrateShadowOverDocument(ShadowRoot*) const;
&gt; 
&gt; Would this be simpler if you had a single method that tested node type to handle ShadowRoot differently? Because I am not sure this makes sense:
&gt; 
&gt; ShadowRoot* s = …;
&gt; migrateOverDocument(s);
&gt; migrateShadowOverDocument(s);
I guess you thought shadowRootFor() is a kind of dynamic cast but it isn&apos;t.
So type checking doesn&apos;t make sense here.

&gt; 
&gt; I guess it can happen if the &quot;migration root&quot; is a ShadowRoot. Is it intended?
Yes.

I found that the original naming was really confusing so I tried another names
which emphasizes the difference between tree traversals and per-node operations. 
Could you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530009</commentid>
    <comment_count>8</comment_count>
      <attachid>121217</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 22:21:40 -0800</bug_when>
    <thetext>Created attachment 121217
Updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530011</commentid>
    <comment_count>9</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-01-04 22:28:50 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=121214&amp;action=review

I think this is better. Some more comments inline.

&gt; Source/WebCore/dom/TreeScope.cpp:148
&gt; +    if (!adopter.isStayingSameScope())

What about changing this method to isChangingScope? It makes this test simpler to read.

Also the _adopter_ isn’t moving to a new scope or staying in the same scope. It is the nodes being processed that get moved. So adopter.isChangingScope or willChangeScope or something else might be slightly more precise?

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:43
&gt; +    ASSERT(isStayingSameScope());

The naming of these are confusing… moveTreeToNewScope asserts that the adoption isn’t moving to a new scope?

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:51
&gt; +    bool shouldMoveToNewDocument = departureDocument != destinationDocument;

What about isMovingToNewDocument or willMoveToNewDocument?

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:58
&gt; +        node-&gt;setTreeScope(destinationDocument == m_destination ? 0 : m_destination);

It would be really nice to replace access to document to be via treescope to simplify this. Would it be easier to make that change first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530013</commentid>
    <comment_count>10</comment_count>
      <attachid>121218</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 22:48:48 -0800</bug_when>
    <thetext>Created attachment 121218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530016</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 22:51:35 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/dom/TreeScope.cpp:148
&gt; &gt; +    if (!adopter.isStayingSameScope())
&gt; 
&gt; What about changing this method to isChangingScope? It makes this test simpler to read.
&gt; 
&gt; Also the _adopter_ isn’t moving to a new scope or staying in the same scope. It is the nodes being processed that get moved. So adopter.isChangingScope or willChangeScope or something else might be slightly more precise?
Renamed.

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeAdopter.cpp:43
&gt; &gt; +    ASSERT(isStayingSameScope());
&gt; 
&gt; The naming of these are confusing… moveTreeToNewScope asserts that the adoption isn’t moving to a new scope?
Ugh, it&apos;s not only confusing but actually wrong...

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeAdopter.cpp:51
&gt; &gt; +    bool shouldMoveToNewDocument = departureDocument != destinationDocument;
&gt; 
&gt; What about isMovingToNewDocument or willMoveToNewDocument?
Done.

&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeAdopter.cpp:58
&gt; &gt; +        node-&gt;setTreeScope(destinationDocument == m_destination ? 0 : m_destination);
&gt; 
&gt; It would be really nice to replace access to document to be via treescope to simplify this. Would it be easier to make that change first?
TreeScope handling will be changed significantly in the coming patch. 
So I prefer to keep this as is to make the difference from original code obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530021</commentid>
    <comment_count>12</comment_count>
      <attachid>121218</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-01-04 22:58:31 -0800</bug_when>
    <thetext>Comment on attachment 121218
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530029</commentid>
    <comment_count>13</comment_count>
      <attachid>121218</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-04 23:30:34 -0800</bug_when>
    <thetext>Comment on attachment 121218
Patch

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

&gt; Source/WebCore/dom/Node.cpp:432
&gt; +    return hasRareData() &amp;&amp; rareData()-&gt;nodeLists();

Obtaining rareData is very expensive according to my profiling results. We should avoid calling it many times.

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:39
&gt; +TreeScopeAdopter::TreeScopeAdopter(Node* migrationRoot, TreeScope* destination)
&gt; +    : m_migrationRoot(migrationRoot)
&gt; +    , m_destination(destination)
&gt; +    , m_departure(migrationRoot-&gt;treeScope())
&gt; +{
&gt; +    ASSERT(destination);
&gt; +}

We should probably make this constructor inline so that adoptIfNeeded doesn&apos;t need to create an extra function call for constructing TreeScopeAdopter when the adoption is not needed.

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:57
&gt; +        // Setting the new document tree scope will be handled implicitly
&gt; +        // by setDocument() below.

This comment is out-dated, right?

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:77
&gt; +void TreeScopeAdopter::moveTreeToNewDocument(ShadowRoot* root, Document* departureDocument, Document* destinationDocument) const

Maybe we should rename this function to moveShadowTreeToNewDocument to make the context more explicit.

&gt; Source/WebCore/dom/TreeScopeAdopter.h:54
&gt; +    Node* m_migrationRoot;
&gt; +    TreeScope* m_destination;
&gt; +    TreeScope* m_departure;

I get confused by these variable names. Given that we no longer use the word migration, we should at least rename m_migrationRoot to something like m_subtreeToAdopt.

Also, we should probably rename m_destination and m_departure to m_newTreeScope and m_oldTreeScope; m_departure is particularly confusing since &quot;departure&quot; is a process and not a thing.

&gt; Source/WebCore/dom/TreeScopeAdopter.h:60
&gt; +inline ShadowRoot* TreeScopeAdopter::shadowRootFor(Node* node)
&gt; +{
&gt; +    return node-&gt;isElementNode() ? toElement(node)-&gt;shadowRoot() : 0;
&gt; +}

Can this be moved into .cpp file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530062</commentid>
    <comment_count>14</comment_count>
      <attachid>121230</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 00:35:07 -0800</bug_when>
    <thetext>Created attachment 121230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530065</commentid>
    <comment_count>15</comment_count>
      <attachid>121218</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 00:37:48 -0800</bug_when>
    <thetext>Comment on attachment 121218
Patch

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

Hi Ryosuke, thanks for the review! I updated it for the another round.

&gt;&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:39
&gt;&gt; +}
&gt; 
&gt; We should probably make this constructor inline so that adoptIfNeeded doesn&apos;t need to create an extra function call for constructing TreeScopeAdopter when the adoption is not needed.

Sure. Moved to the header file.

&gt;&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:57
&gt;&gt; +        // by setDocument() below.
&gt; 
&gt; This comment is out-dated, right?

Right. Removed.

&gt;&gt; Source/WebCore/dom/TreeScopeAdopter.h:54
&gt;&gt; +    TreeScope* m_departure;
&gt; 
&gt; I get confused by these variable names. Given that we no longer use the word migration, we should at least rename m_migrationRoot to something like m_subtreeToAdopt.
&gt; 
&gt; Also, we should probably rename m_destination and m_departure to m_newTreeScope and m_oldTreeScope; m_departure is particularly confusing since &quot;departure&quot; is a process and not a thing.

Renamed.

&gt;&gt; Source/WebCore/dom/TreeScopeAdopter.h:60
&gt;&gt; +}
&gt; 
&gt; Can this be moved into .cpp file?

Moved to .cpp file and turned it into a free floating static function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530066</commentid>
    <comment_count>16</comment_count>
      <attachid>121231</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 00:48:51 -0800</bug_when>
    <thetext>Created attachment 121231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530104</commentid>
    <comment_count>17</comment_count>
      <attachid>121231</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-05 01:48:53 -0800</bug_when>
    <thetext>Comment on attachment 121231
Patch

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

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:72
&gt; +void TreeScopeAdopter::moveTreeToNewDocument(Node* root, Document* oldDocument, Document* newDocument) const

No rename for this function?

&gt; Source/WebCore/dom/TreeScopeAdopter.cpp:83
&gt; +static bool didMoveToNewDocumentWasCalled;
&gt; +static Document* oldDocumentDidMoveToNewDocumentWasCalledWith;

Please initialize these variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530115</commentid>
    <comment_count>18</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 02:14:48 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 121231 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121231&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeAdopter.cpp:72
&gt; &gt; +void TreeScopeAdopter::moveTreeToNewDocument(Node* root, Document* oldDocument, Document* newDocument) const
I noticed that this is not necessarily to be ShadowRoot specific so changed the signature instead. 

&gt; 
&gt; No rename for this function?
&gt; 
&gt; &gt; Source/WebCore/dom/TreeScopeAdopter.cpp:83
&gt; &gt; +static bool didMoveToNewDocumentWasCalled;
&gt; &gt; +static Document* oldDocumentDidMoveToNewDocumentWasCalledWith;
&gt; 
&gt; Please initialize these variables.
Sure, will do before land.

Thanks for your midnight review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530124</commentid>
    <comment_count>19</comment_count>
      <attachid>121244</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 02:21:59 -0800</bug_when>
    <thetext>Created attachment 121244
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530265</commentid>
    <comment_count>20</comment_count>
      <attachid>121244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 07:03:47 -0800</bug_when>
    <thetext>Comment on attachment 121244
Patch for landing

Rejecting attachment 121244 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/11128366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530842</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 17:59:10 -0800</bug_when>
    <thetext>Committed r104259: &lt;http://trac.webkit.org/changeset/104259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530957</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-05 23:55:36 -0800</bug_when>
    <thetext>Caused assertion failures on Qt: http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Debug/r104269%20%2820128%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530983</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-06 01:23:06 -0800</bug_when>
    <thetext>Reopen the bug since the patch was rolled out in http://trac.webkit.org/changeset/104271.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532743</commentid>
    <comment_count>24</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-09 18:12:12 -0800</bug_when>
    <thetext>Committed r104528: &lt;http://trac.webkit.org/changeset/104528&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120633</attachid>
            <date>2011-12-27 21:28:20 -0800</date>
            <delta_ts>2011-12-27 21:38:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75290-20111228142818.patch</filename>
            <type>text/plain</type>
            <size>29759</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWUwOTNiY2U4ZWFiNmM4
NTAxNTY4YjI2NWEwNjYxZWNhYWE0NGJmZi4uNWUxYmZlYWI5ZmVhMjI5MWQ2Njk2MGU3ODBkMTEw
YTc2NzhiMTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTEyLTI3ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTWlncmF0aW9uIG92ZXIgVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVNaWdyYXRpb24uIEJ5IGRv
aW5nIHRoaXMsIHRoZSBpZGVhIG9mCisgICAgICAgIG1vdmluZyBhIG5vZGUgZnJvbSBzY29wZSB0
byBzY29wZSwgdGhhdCB3YXMgb3JpZ2luYWxseSBoaWRkZW4KKyAgICAgICAgYmVoaW5kIHRoZSBm
b3Jlc3Qgb2YgTm9kZSBBUElzLCBoYXMgYmVjb21lIGNsZWFyZXIuCisKKyAgICAgICAgTm90ZSB0
aGF0IHRoaXMgY2hhbmdlIGlzIGEgcHJlcGFyYXRpb24gZm9yIEJ1ZyA1OTgxNi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOiBGb2xsb3dlZCByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
aW5lck5vZGU6OnRha2VBbGxDaGlsZHJlbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVC
ZXR3ZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKToKKyAgICAgICAgKiBk
b20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IEZvbGxvd2Vk
IHJlbmFtaW5nLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvY1R5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkb3B0Tm9kZSk6CisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOiBGb2xsb3dlZCByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnNldERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omhhc05vZGVM
aXN0cyk6IEV4dHJhY3RlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KCkKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6IEV4dHJhY3RlZCBmcm9tIHNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KCkKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om1pZ3JhdGVUbyk6IFJlbmFt
ZWQgZnJvbSBzZXRUcmVlU2NvcGVSZWN1cnNpdmVseSgpCisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAg
KiBkb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGVNaWdyYXRpb246OlRyZWVTY29wZU1pZ3JhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGVNaWdyYXRpb246OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlTWlncmF0aW9uOjptaWdyYXRlU2hhZG93T3ZlckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZU1pZ3JhdGlvbjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlTWlncmF0aW9uOjptaWdyYXRlT3ZlckRv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlTWlncmF0aW9uLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlTWlncmF0aW9uOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1
bWVudFdhc0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVNaWdyYXRpb246Om5l
ZWRzTWlncmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZU1pZ3JhdGlvbjo6c2hv
dWxkTWlncmF0ZU92ZXJEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVNaWdy
YXRpb246OmlzTWlncmF0aW5nVG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGVNaWdyYXRpb246OnNoYWRvd1Jvb3RGb3IpOgorCiAyMDExLTEyLTI2ICBIYWppbWUgTW9ycml0
YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtSZWZhY3RvcmluZ10gTm9kZTo6
c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSBkb2Vzbid0IG5lZWQgaW5jbHVkZVJvb3QgcGFyYW1l
dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiN2ZkYzY1OGIyNWM5OWZkYzE4
NjJhMDVjNTcxY2EzNmQzMzUwZWY0Li5hYTY3NTYzMDRhZDBhYmJlN2QzOWI2ZmI1YzM5ZDc0Mjcy
NTA5NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEzODEsNiArMTM4MSw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVEZXB0aExp
bWl0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVNaWdy
YXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlTWlncmF0aW9uLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IGQ4ZWQ1OGYwOGUxNWMyMjc3MDQ4MDYxYWQ0NDMxMTRkNTdmYTQ2MzMuLjExY2My
YWU0YTZlOWZhZGQzM2MyOGQ1ZTBmYWVjMDViYWY4MDNiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTc3
LDYgKzU3Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ub3VjaExpc3QuY3BwIFwKICAgICBk
b20vVHJhdmVyc2FsLmNwcCBcCiAgICAgZG9tL1RyZWVTY29wZS5jcHAgXAorICAgIGRvbS9UcmVl
U2NvcGVNaWdyYXRpb24uY3BwIFwKICAgICBkb20vVHJlZVdhbGtlci5jcHAgXAogICAgIGRvbS9V
SUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKQEAgLTE2NzMs
NiArMTY3NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9UcmF2ZXJzYWwuaCBcCiAgICAgZG9t
L1RyZWVEZXB0aExpbWl0LmggXAogICAgIGRvbS9UcmVlU2NvcGUuaCBcCisgICAgZG9tL1RyZWVT
Y29wZU1pZ3JhdGlvbi5oIFwKICAgICBkb20vVHJlZVdhbGtlci5oIFwKICAgICBkb20vVUlFdmVu
dC5oIFwKICAgICBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAxOTU2YjQ5MmYzODcwNzJjMjA1MWVlODhjMTBlMjQ0YWY4MmM5MmUwLi40MzYxOWM5NDA5ZTk1
YjY1OWE2OTA5ZGVlM2VlYjJiMjFlYThlYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NDYwLDYg
KzU0NjAsOCBAQAogICAgICAgICAgICAgJ2RvbS9UcmVlRGVwdGhMaW1pdC5oJywKICAgICAgICAg
ICAgICdkb20vVHJlZVNjb3BlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVTY29wZS5oJywK
KyAgICAgICAgICAgICdkb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcCcsCisgICAgICAgICAgICAn
ZG9tL1RyZWVTY29wZU1pZ3JhdGlvbi5oJywKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9V
SUV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGY2ZTgzZTU0MjhmZWY2MTFmMmIwZjQ4OWYxOWJkZDI0NzViZGRhM2UuLjc1NTk4
OWMwMjk3ZDE2ODlhY2ZiMmNhN2MyM2U3OTNjZGE0MzRkNzcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MTc3NCw2ICs1MTc3NCw2MiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJl
ZVNjb3BlTWlncmF0aW9uLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFRyZWVTY29wZU1pZ3JhdGlvbi5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVdhbGtl
ci5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMyNzM4ODkxZWU4YWE0
YmQzZmMwNDY3MzhkYTA0ZDg3MDMyZDFmZTMuLjMzNDQwZmNlNDQyOWM0OWNkOGY4MjRmY2I3ZGUy
YjUxZWY1MzA3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM1MTEsNiArMzUxMSw4IEBACiAJCUE3Nzk3OTI5MEQ2QjlFNjQw
MDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmgg
Ki87IH07CiAJCUE3N0I0MUEwMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0I0MTlG
MTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1
OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc3RTFGRUYx
NEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYg
LyogVHJlZVNjb3BlTWlncmF0aW9uLmNwcCAqLzsgfTsKKwkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3
Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1p
Z3JhdGlvbi5oICovOyB9OwogCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRN
YXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLzsgfTsKIAkJ
QTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0Eg
LyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKIAkJQTc4RTUyNkYxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1l
dGVyU2hhZG93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50
LmNwcCAqLzsgfTsKQEAgLTEwNzg1LDYgKzEwNzg3LDggQEAKIAkJQTc3OTc5MjUwRDZCOUU2NDAw
Mzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0MTlGMTJF
Njc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNraW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVN
aWdyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHJlZVNj
b3BlTWlncmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc3RTFGRUUx
NEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUcmVlU2NvcGVNaWdyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TWFya2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdB
IC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkQxMzQ2
QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZXRlclNoYWRvd0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE1NDAsNiArMjE1NDQsOCBAQAogCQkJCTM3RkQ0Mjk3MTE4MzY4
NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oICovLAogCQkJCTE0RDY0QjVBMTM0QTVCNkIw
MEU1OEZEQSAvKiBUcmVlU2NvcGUuY3BwICovLAogCQkJCTE0RDY0QjVCMTM0QTVCNkIwMEU1OEZE
QSAvKiBUcmVlU2NvcGUuaCAqLywKKwkJCQlBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJl
ZVNjb3BlTWlncmF0aW9uLmNwcCAqLywKKwkJCQlBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyog
VHJlZVNjb3BlTWlncmF0aW9uLmggKi8sCiAJCQkJODU0RkU3MkUwQTIyOTdCRTAwNThEN0FEIC8q
IFRyZWVXYWxrZXIuY3BwICovLAogCQkJCTg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVl
V2Fsa2VyLmggKi8sCiAJCQkJMUE3NTBEM0MwQTkwREUzNTAwMEZGMjE1IC8qIFRyZWVXYWxrZXIu
aWRsICovLApAQCAtMjQ2ODksNiArMjQ2OTUsNyBAQAogCQkJCTg1NEZFNzM3MEEyMjk3QkUwMDU4
RDdBRCAvKiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkQ0Mjk4MTE4MzY4NDYw
MDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRENjRCNUQx
MzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc3RTFG
RjAxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQxOUQyQzUwQ0VBNkY2MTAwRkY1MDdBIC8qIFRyZWVTaGFyZWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1NEZFNzM5MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzN0MyOEE2ODEwRjY1OUNDMDA4Qzc4MTMgLyogVHlwZXNldHRpbmdGZWF0
dXJlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzYyMSw2ICsyNzYyOCw3IEBACiAJCQkJNDlFOTEx
RDEwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTRGRTczNjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0RDY0QjVDMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVlU2Nv
cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc3RTFGRUYxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRy
ZWVTY29wZU1pZ3JhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczODBBMjI5N0JF
MDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxOTA5
OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NTAzMUI0RDBBNDRFRkM3MDBGOTkyRTAgLyogVUlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCA0OWNhYThlMjEwOTRiZTQ1ODE4MmUz
MDQzNWMxZjQ2ODQ3Zjg5ZTBkLi45MGIyZjY0MGUzZDhlMmM1MjIzMTJhNGMyMjFiNGZhY2Y5N2I0
MWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC05OSw3ICs5OSw3IEBA
IHZvaWQgQ29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJvbShDb250YWluZXJOb2RlKiBv
bGRQYXJlbnQpCiAgICAgICAgIC8vIEZJWE1FOiBUb2dldGhlciB3aXRoIGFkb3B0Tm9kZSBhYm92
ZSwgdGhlIHRyZWUgc2NvcGUgbWlnaHQgZ2V0IHVwZGF0ZWQgcmVjdXJzaXZlbHkgdHdpY2UKICAg
ICAgICAgLy8gKGlmIHRoZSBkb2N1bWVudCBjaGFuZ2VkIG9yIG9sZFBhcmVudCB3YXMgaW4gYSBz
aGFkb3cgdHJlZSwgQU5EICp0aGlzIGlzIGluIGEgc2hhZG93IHRyZWUpLgogICAgICAgICAvLyBD
YW4gd2UgZG8gYmV0dGVyPwotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHko
dHJlZVNjb3BlKCkpOworICAgICAgICBjaGlsZC0+bWlncmF0ZVRvKHRyZWVTY29wZSgpKTsKICAg
ICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQogICAgICAgICAgICAg
Y2hpbGQtPmF0dGFjaCgpOwogICAgIH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRE
T01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxk
LT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIGNoaWxkLT5t
aWdyYXRlVG8odHJlZVNjb3BlKCkpOwogCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0
LmdldCgpLCBjaGlsZCk7CiAKQEAgLTMyOSw3ICszMjksNyBAQCBib29sIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwg
RXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2Rl
KGRvY3VtZW50KCksIGNoaWxkLmdldCgpLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxk
LT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIGNoaWxkLT5t
aWdyYXRlVG8odHJlZVNjb3BlKCkpOwogCiAgICAgICAgIC8vIEFkZCBjaGlsZCBhZnRlciAicHJl
diIuCiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKQEAgLTUwOSw3ICs1MDksNyBAQCB2
b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4oTm9kZSogcHJldmlvdXNDaGlsZCwgTm9k
ZSogbmV4dENoaWxkLCBOb2RlKiBvbAogICAgIG9sZENoaWxkLT5zZXROZXh0U2libGluZygwKTsK
ICAgICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOwogCi0gICAgb2xkQ2hpbGQtPnNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KGRvY3VtZW50KCkpOworICAgIG9sZENoaWxkLT5taWdyYXRlVG8oZG9jdW1l
bnQoKSk7CiAKICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIH0KQEAgLTU2NCw3ICs1NjQsNyBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkKICAgICAgICAgbi0+c2V0UHJl
dmlvdXNTaWJsaW5nKDApOwogICAgICAgICBuLT5zZXROZXh0U2libGluZygwKTsKICAgICAgICAg
bi0+c2V0UGFyZW50KDApOwotICAgICAgICBuLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseShkb2N1
bWVudCgpKTsKKyAgICAgICAgbi0+bWlncmF0ZVRvKGRvY3VtZW50KCkpOwogCiAgICAgICAgIG1f
Zmlyc3RDaGlsZCA9IG5leHQ7CiAgICAgICAgIGlmIChuID09IG1fbGFzdENoaWxkKQpAQCAtNjQ5
LDcgKzY0OSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgY2hpbGQsIHRoaXMp
OwogI2VuZGlmCiAKLSAgICAgICAgY2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVT
Y29wZSgpKTsKKyAgICAgICAgY2hpbGQtPm1pZ3JhdGVUbyh0cmVlU2NvcGUoKSk7CiAKICAgICAg
ICAgLy8gQXBwZW5kIGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKICAgICAgICAgZm9yYmlk
RXZlbnREaXNwYXRjaCgpOwpAQCAtNjk3LDcgKzY5Nyw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKICAgICBOb2RlKiBsYXN0
ID0gbV9sYXN0Q2hpbGQ7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCB0YWtlIGEg
UGFzc1JlZlB0ci4KICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyPE5vZGUsIENvbnRhaW5lck5v
ZGU+KG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKLSAgICBuZXdDaGlsZC0+c2V0VHJlZVNjb3BlUmVj
dXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgIG5ld0NoaWxkLT5taWdyYXRlVG8odHJlZVNjb3Bl
KCkpOwogICAgIAogICAgIGFsbG93RXZlbnREaXNwYXRjaCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAppbmRleCBkMGJjZWNhYTJkMDhkMTIxY2UzOGUxMTRjZTc3ZjJkODMzNTdmYTQ4
Li5kYzYxZTEwNDQxMGUzMGYwOTZhZDlkMDk2NTIxNDQ5NTMzNjgxZjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01BbGxJbk9uZS5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9y
bVNvdXJjZUxpYnhzbHQuY3BwIgogI2luY2x1ZGUgIlRyYXZlcnNhbC5jcHAiCiAjaW5jbHVkZSAi
VHJlZVNjb3BlLmNwcCIKKyNpbmNsdWRlICJUcmVlU2NvcGVNaWdyYXRpb24uY3BwIgogI2luY2x1
ZGUgIlRyZWVXYWxrZXIuY3BwIgogI2luY2x1ZGUgIlVJRXZlbnQuY3BwIgogI2luY2x1ZGUgIlVJ
RXZlbnRXaXRoS2V5U3RhdGUuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2Q4NTQy
NzY0ZjQyYjhjNWM5YzZhN2JjZjYwZGM2M2FkMjNhM2QzYi4uZTVmMzI0Zjg2MTJkNzdmOTgzZGM5
OGI1ZjZiNWZkNjdhNjc2MWMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MDYsNyAr
NzA2LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlw
ZT4gZG9jVHlwZSkKICAgICBBU1NFUlQoIW1fZG9jVHlwZSB8fCAhZG9jVHlwZSk7CiAgICAgbV9k
b2NUeXBlID0gZG9jVHlwZTsKICAgICBpZiAobV9kb2NUeXBlKQotICAgICAgICBtX2RvY1R5cGUt
PnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRoaXMpOworICAgICAgICBtX2RvY1R5cGUtPm1pZ3Jh
dGVUbyh0aGlzKTsKIH0KIAogRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRh
dGlvbigpCkBAIC05MzYsNyArOTM2LDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRv
cHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgICAgIHNvdXJjZS0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVj
KTsKICAgICB9CiAKLSAgICBzb3VyY2UtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRoaXMpOwor
ICAgIHNvdXJjZS0+bWlncmF0ZVRvKHRoaXMpOwogCiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAppbmRleCA5OTM2NjY0YmM1ZmMzYTg2M2ZhODEwZDZlYzk3M2QzMjJl
NjE3NzEzLi5kYmJhNjkyYjQ0MWE3NWZiZTAyZjJhYzVkNDZjYmUyNTRmZGQwYTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjA3LDcgKzEyMDcsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92
ZVNoYWRvd1Jvb3QoKQogICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CiAKICAgICAgICAg
b2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAgICAgICAgb2xkUm9vdC0+c2V0VHJlZVNjb3Bl
UmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgICAgIG9sZFJvb3QtPm1pZ3JhdGVUbyhkb2N1
bWVudCgpKTsKICAgICAgICAgaWYgKG9sZFJvb3QtPmluRG9jdW1lbnQoKSkKICAgICAgICAgICAg
IG9sZFJvb3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCmluZGV4IDllNmRkNWZhYzZmZGVlMGZlMGM2Y2MzYTdkMjQ5YTJhNWZhOTZjNDkuLjI4MTNl
ZDUxMTMzNTQwMzIxOThjODVkN2U2ZTgzNjM4ZGMwMTU0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAg
LTkwLDYgKzkwLDcgQEAKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlRleHQu
aCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJUcmVlU2NvcGVNaWdyYXRpb24u
aCIKICNpbmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCkBAIC00MTcsMzcgKzQxOCwyOSBA
QCBOb2RlOjp+Tm9kZSgpCiAgICAgICAgIGRvYy0+Z3VhcmREZXJlZigpOwogfQogCi0jaWZuZGVm
IE5ERUJVRwotCi1zdGF0aWMgYm9vbCBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZDsKLXN0
YXRpYyBEb2N1bWVudCogb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdp
dGg7Ci0KLSNlbmRpZgotICAgIAogdm9pZCBOb2RlOjpzZXREb2N1bWVudChEb2N1bWVudCogZG9j
dW1lbnQpCiB7CiAgICAgQVNTRVJUKCFpbkRvY3VtZW50KCkgfHwgbV9kb2N1bWVudCA9PSBkb2N1
bWVudCk7CiAgICAgaWYgKGluRG9jdW1lbnQoKSB8fCBtX2RvY3VtZW50ID09IGRvY3VtZW50KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBkb2N1bWVudC0+Z3VhcmRSZWYoKTsKLQotICAgIGlmICht
X2RvY3VtZW50KSB7Ci0gICAgICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdE
b2N1bWVudCh0aGlzLCBkb2N1bWVudCk7Ci0gICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYo
KTsKLSAgICB9Ci0KLSAgICBEb2N1bWVudCogb2xkRG9jdW1lbnQgPSBtX2RvY3VtZW50OwogICAg
IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsKK30KIAotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOwotICAgIG9sZERvY3VtZW50RGlkTW92ZVRv
TmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoID0gb2xkRG9jdW1lbnQ7Ci0jZW5kaWYKK2Jvb2wgTm9k
ZTo6aGFzTm9kZUxpc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBy
YXJlRGF0YSgpLT5ub2RlTGlzdHMoKTsKK30KIAotICAgIGRpZE1vdmVUb05ld0RvY3VtZW50KG9s
ZERvY3VtZW50KTsKK3ZvaWQgTm9kZTo6c2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCit7
CisgICAgaWYgKCFzY29wZSkgeworICAgICAgICBpZiAoaGFzUmFyZURhdGEoKSkKKyAgICAgICAg
ICAgIHJhcmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
IAotICAgIEFTU0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7CisgICAgZW5zdXJl
UmFyZURhdGEoKS0+c2V0VHJlZVNjb3BlKHNjb3BlKTsKIH0KIAogVHJlZVNjb3BlKiBOb2RlOjp0
cmVlU2NvcGUoKSBjb25zdApAQCAtNDU5LDUxICs0NTIsMTMgQEAgVHJlZVNjb3BlKiBOb2RlOjp0
cmVlU2NvcGUoKSBjb25zdAogICAgIHJldHVybiBzY29wZSA/IHNjb3BlIDogbV9kb2N1bWVudDsK
IH0KIAotdm9pZCBOb2RlOjpzZXRUcmVlU2NvcGVSZWN1cnNpdmVseShUcmVlU2NvcGUqIG5ld1Ry
ZWVTY29wZSkKK3ZvaWQgTm9kZTo6bWlncmF0ZVRvKFRyZWVTY29wZSogbmV3VHJlZVNjb3BlKQog
ewogICAgIEFTU0VSVCh0aGlzKTsKICAgICBBU1NFUlQoIWlzRG9jdW1lbnROb2RlKCkpOwogICAg
IEFTU0VSVChuZXdUcmVlU2NvcGUpOwogICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0JlZ3VuKTsK
LQotICAgIFRyZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9IHRyZWVTY29wZSgpOwotICAgIGlm
IChjdXJyZW50VHJlZVNjb3BlID09IG5ld1RyZWVTY29wZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRG9jdW1lbnQqIGN1cnJlbnREb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgRG9jdW1lbnQq
IG5ld0RvY3VtZW50ID0gbmV3VHJlZVNjb3BlLT5kb2N1bWVudCgpOwotICAgIC8vIElmIGFuIGVs
ZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBh
Z2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKLSAgICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNv
bnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQg
dGhlIERPTVRyZWVWZXJzaW9uCi0gICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0
by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRvY3Vt
ZW50IGhlcmUKLSAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3aWxs
IGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJhY2su
Ci0gICAgaWYgKGN1cnJlbnREb2N1bWVudCAmJiBjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9jdW1l
bnQpCi0gICAgICAgIGN1cnJlbnREb2N1bWVudC0+aW5jRE9NVHJlZVZlcnNpb24oKTsKLQotICAg
IGZvciAoTm9kZSogbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHRO
b2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChuZXdUcmVlU2NvcGUgPT0gbmV3RG9jdW1lbnQpIHsK
LSAgICAgICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpKQotICAgICAgICAgICAgICAgIG5v
ZGUtPnJhcmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKLSAgICAgICAgICAgIC8vIFNldHRpbmcg
dGhlIG5ldyBkb2N1bWVudCB0cmVlIHNjb3BlIHdpbGwgYmUgaGFuZGxlZCBpbXBsaWNpdGx5Ci0g
ICAgICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vZGUtPmVuc3VyZVJhcmVEYXRhKCktPnNldFRyZWVTY29wZShuZXdUcmVlU2Nv
cGUpOwotCi0gICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpICYmIG5vZGUtPnJhcmVEYXRh
KCktPm5vZGVMaXN0cygpKSB7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSkKLSAg
ICAgICAgICAgICAgICBjdXJyZW50VHJlZVNjb3BlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7Ci0g
ICAgICAgICAgICBuZXdUcmVlU2NvcGUtPmFkZE5vZGVMaXN0Q2FjaGUoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsKLQotICAgICAgICBpZiAo
IW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgp
KSB7Ci0gICAgICAgICAgICBzaGFkb3dSb290LT5zZXRQYXJlbnRUcmVlU2NvcGUobmV3VHJlZVNj
b3BlKTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQpCi0g
ICAgICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShuZXdEb2N1
bWVudCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgVHJlZVNjb3BlTWlncmF0aW9uKHRoaXMsIG5l
d1RyZWVTY29wZSkuZXhlY3V0ZSgpOwogfQogCiBOb2RlUmFyZURhdGEqIE5vZGU6OnJhcmVEYXRh
KCkgY29uc3QKQEAgLTg1MSwxOSArODA2LDYgQEAgaW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBz
aGFkb3dSb290KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpzZXRE
b2N1bWVudFJlY3Vyc2l2ZWx5KERvY3VtZW50KiBuZXdEb2N1bWVudCkKLXsKLSAgICBBU1NFUlQo
ZG9jdW1lbnQoKSAhPSBuZXdEb2N1bWVudCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlz
OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBu
b2RlLT5zZXREb2N1bWVudChuZXdEb2N1bWVudCk7Ci0gICAgICAgIGlmICghbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChTaGFkb3dSb290
KiBzaGFkb3cgPSBzaGFkb3dSb290KG5vZGUpKQotICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1
bWVudFJlY3Vyc2l2ZWx5KG5ld0RvY3VtZW50KTsKLSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIE5v
ZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIG1f
bm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgflN0eWxlQ2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBl
OwpAQCAtMjQ4MSwxMiArMjQyMyw3IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgp
CiAKIHZvaWQgTm9kZTo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50
KQogewotICAgIEFTU0VSVCghZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIEFT
U0VSVF9VTlVTRUQob2xkRG9jdW1lbnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92
ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRN
b3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IHRydWU7Ci0jZW5kaWYKKyAgICBUcmVlU2NvcGVN
aWdyYXRpb246OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKG9sZERvY3VtZW50
KTsKIAogICAgIC8vIEZJWE1FOiBFdmVudCBsaXN0ZW5lciB0eXBlcyBmb3IgdGhpcyBub2RlIHNo
b3VsZCBiZSBzZXQgb24gdGhlIG5ldyBvd25lciBkb2N1bWVudCBoZXJlLgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApp
bmRleCBmYTY5Yjc1OTQwYjNkNDE4N2JjOTc0NTM1NjNkYTljYWJkMWI1OTZmLi5lY2ZkYTlkMjZl
N2FlNzFlNTdmNGIzNWYzY2M2YzQxZWE4YjQ3MDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEwNCw2ICsx
MDQsNyBAQCBlbnVtIFN0eWxlQ2hhbmdlVHlwZSB7CiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50
VGFyZ2V0LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJlZDxDb250YWlu
ZXJOb2RlPiB7CiAgICAgZnJpZW5kIGNsYXNzIERvY3VtZW50OwogICAgIGZyaWVuZCBjbGFzcyBU
cmVlU2NvcGU7CisgICAgZnJpZW5kIGNsYXNzIFRyZWVTY29wZU1pZ3JhdGlvbjsKIAogcHVibGlj
OgogICAgIGVudW0gTm9kZVR5cGUgewpAQCAtMzg0LDcgKzM4NSw3IEBAIHB1YmxpYzoKICAgICBU
cmVlU2NvcGUqIHRyZWVTY29wZSgpIGNvbnN0OwogCiAgICAgLy8gVXNlZCBieSB0aGUgYmFzaWMg
RE9NIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENoaWxkKCkpLgotICAgIHZvaWQgc2V0VHJlZVNjb3Bl
UmVjdXJzaXZlbHkoVHJlZVNjb3BlKik7CisgICAgdm9pZCBtaWdyYXRlVG8oVHJlZVNjb3BlKik7
CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBub2RlIGlzIGFzc29jaWF0ZWQgd2l0aCBh
IGRvY3VtZW50IGFuZCBpcyBpbiBpdHMgYXNzb2NpYXRlZCBkb2N1bWVudCdzCiAgICAgLy8gbm9k
ZSB0cmVlLCBmYWxzZSBvdGhlcndpc2UuCkBAIC02OTgsOSArNjk5LDkgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgY2xlYXJIYXNDdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgeyBjbGVhckZsYWcoSGFz
Q3VzdG9tU3R5bGVGb3JSZW5kZXJlckZsYWcpOyB9CiAKIHByaXZhdGU6Ci0gICAgLy8gRG8gbm90
IHVzZSB0aGlzIG1ldGhvZCB0byBjaGFuZ2UgdGhlIGRvY3VtZW50IG9mIGEgbm9kZSB1bnRpbCBh
ZnRlciB0aGUgbm9kZSBoYXMgYmVlbgotICAgIC8vIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMg
ZG9jdW1lbnQuCi0gICAgdm9pZCBzZXREb2N1bWVudFJlY3Vyc2l2ZWx5KERvY3VtZW50Kik7Cisg
ICAgLy8gVGhlc2UgQVBJIHNob3VsZCBiZSBvbmx5IHVzZWQgZm9yIGEgdHJlZSBzY29wZSBtaWdy
YXRpb24uCisgICAgYm9vbCBoYXNOb2RlTGlzdHMoKSBjb25zdDsKKyAgICB2b2lkIHNldFRyZWVT
Y29wZShUcmVlU2NvcGUqKTsKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50Kik7CiAKICAg
ICBlbnVtIEVkaXRhYmxlTGV2ZWwgeyBFZGl0YWJsZSwgUmljaGx5RWRpdGFibGUgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVNaWdyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZU1pZ3JhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwYzJjOWE5
NGFjNWNkZTVhY2ZhMjZkYmM1YjUzNmRkZmFjYmQxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVNaWdyYXRpb24uY3BwCkBAIC0wLDAgKzEsMTI1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAg
ICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiAg
ICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0
IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUcmVlU2Nv
cGVNaWdyYXRpb24uaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RyZWVTY29wZU1pZ3JhdGlvbjo6VHJl
ZVNjb3BlTWlncmF0aW9uKE5vZGUqIG1pZ3JhdGlvblJvb3QsIFRyZWVTY29wZSogZGVzdGluYXRp
b24pCisgICAgOiBtX21pZ3JhdGlvblJvb3QobWlncmF0aW9uUm9vdCkKKyAgICAsIG1fZGVzdGlu
YXRpb24oZGVzdGluYXRpb24pCisgICAgLCBtX2Rlc3RpbmF0aW9uRG9jdW1lbnQoMCkKKyAgICAs
IG1fZGVwYXJ0dXJlRG9jdW1lbnQoMCkKK3sKKyAgICBBU1NFUlQobWlncmF0aW9uUm9vdCk7Cisg
ICAgQVNTRVJUKGRlc3RpbmF0aW9uKTsKKyAgICBtX2RlcGFydHVyZSA9IG1pZ3JhdGlvblJvb3Qt
PnRyZWVTY29wZSgpOworICAgIGlmIChuZWVkc01pZ3JhdGlvbigpKSB7CisgICAgICAgIG1fZGVw
YXJ0dXJlRG9jdW1lbnQgPSBtaWdyYXRpb25Sb290LT5kb2N1bWVudCgpOworICAgICAgICBtX2Rl
c3RpbmF0aW9uRG9jdW1lbnQgPSBkZXN0aW5hdGlvbi0+ZG9jdW1lbnQoKTsKKyAgICB9Cit9CisK
K3ZvaWQgVHJlZVNjb3BlTWlncmF0aW9uOjpleGVjdXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW5l
ZWRzTWlncmF0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIGFuIGVsZW1lbnQg
aXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0
aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKKyAgICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4g
c3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERP
TVRyZWVWZXJzaW9uCisgICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkg
aW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRvY3VtZW50IGhl
cmUKKyAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3aWxsIGJlIGlu
dmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJhY2suCisgICAg
aWYgKG1fZGVwYXJ0dXJlRG9jdW1lbnQgJiYgc2hvdWxkTWlncmF0ZU92ZXJEb2N1bWVudCgpKQor
ICAgICAgICBtX2RlcGFydHVyZURvY3VtZW50LT5pbmNET01UcmVlVmVyc2lvbigpOworCisgICAg
Zm9yIChOb2RlKiBub2RlID0gbV9taWdyYXRpb25Sb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZShtX21pZ3JhdGlvblJvb3QpKSB7CisgICAgICAgIC8vIFNldHRpbmcgdGhl
IG5ldyBkb2N1bWVudCB0cmVlIHNjb3BlIHdpbGwgYmUgaGFuZGxlZCBpbXBsaWNpdGx5CisgICAg
ICAgIC8vIGJ5IHNldERvY3VtZW50KCkgYmVsb3cuCisgICAgICAgIG5vZGUtPnNldFRyZWVTY29w
ZShpc01pZ3JhdGluZ1RvRG9jdW1lbnQoKSA/IDAgOiBtX2Rlc3RpbmF0aW9uKTsKKworICAgICAg
ICBpZiAobm9kZS0+aGFzTm9kZUxpc3RzKCkpIHsKKyAgICAgICAgICAgIGlmIChtX2RlcGFydHVy
ZSkKKyAgICAgICAgICAgICAgICBtX2RlcGFydHVyZS0+cmVtb3ZlTm9kZUxpc3RDYWNoZSgpOwor
ICAgICAgICAgICAgbV9kZXN0aW5hdGlvbi0+YWRkTm9kZUxpc3RDYWNoZSgpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHNob3VsZE1pZ3JhdGVPdmVyRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IG1pZ3JhdGVPdmVyRG9jdW1lbnQobm9kZSk7CisKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNo
YWRvdyA9IHNoYWRvd1Jvb3RGb3Iobm9kZSkpIHsKKyAgICAgICAgICAgIHNoYWRvdy0+c2V0UGFy
ZW50VHJlZVNjb3BlKG1fZGVzdGluYXRpb24pOworICAgICAgICAgICAgaWYgKHNob3VsZE1pZ3Jh
dGVPdmVyRG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICBtaWdyYXRlU2hhZG93T3ZlckRvY3Vt
ZW50KHNoYWRvdyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVHJlZVNjb3BlTWlncmF0
aW9uOjptaWdyYXRlU2hhZG93T3ZlckRvY3VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpIGNvbnN0Cit7
CisgICAgQVNTRVJUKHNob3VsZE1pZ3JhdGVPdmVyRG9jdW1lbnQoKSk7CisgICAgZm9yIChOb2Rl
KiBub2RlID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUocm9vdCkp
IHsKKyAgICAgICAgbWlncmF0ZU92ZXJEb2N1bWVudChub2RlKTsKKyAgICAgICAgaWYgKFNoYWRv
d1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RGb3Iobm9kZSkpCisgICAgICAgICAgICBtaWdyYXRl
U2hhZG93T3ZlckRvY3VtZW50KHNoYWRvdyk7CisgICAgfQorfQorCisjaWZuZGVmIE5ERUJVRwor
c3RhdGljIGJvb2wgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQ7CitzdGF0aWMgRG9jdW1l
bnQqIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoOworCit2b2lk
IFRyZWVTY29wZU1pZ3JhdGlvbjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQo
RG9jdW1lbnQqIG9sZERvY3VtZW50KQoreworICAgIEFTU0VSVCghZGlkTW92ZVRvTmV3RG9jdW1l
bnRXYXNDYWxsZWQpOworICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1lbnQsIG9sZERvY3VtZW50
ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoKTsKKyAgICBk
aWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IHRydWU7Cit9CisjZW5kaWYKKwordm9pZCBU
cmVlU2NvcGVNaWdyYXRpb246Om1pZ3JhdGVPdmVyRG9jdW1lbnQoTm9kZSogbm9kZSkgY29uc3QK
K3sKKyAgICBBU1NFUlQoIW5vZGUtPmluRG9jdW1lbnQoKSB8fCBzaG91bGRNaWdyYXRlT3ZlckRv
Y3VtZW50KCkpOworCisgICAgbV9kZXN0aW5hdGlvbkRvY3VtZW50LT5ndWFyZFJlZigpOworICAg
IGlmIChtX2RlcGFydHVyZURvY3VtZW50KSB7CisgICAgICAgIG1fZGVwYXJ0dXJlRG9jdW1lbnQt
Pm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1bWVudChub2RlLCBtX2Rlc3RpbmF0aW9uRG9jdW1l
bnQpOworICAgICAgICBtX2RlcGFydHVyZURvY3VtZW50LT5ndWFyZERlcmVmKCk7CisgICAgfQor
CisgICAgbm9kZS0+c2V0RG9jdW1lbnQobV9kZXN0aW5hdGlvbkRvY3VtZW50KTsKKworI2lmbmRl
ZiBOREVCVUcKKyAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOworICAg
IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoID0gbV9kZXBhcnR1
cmVEb2N1bWVudDsKKyNlbmRpZgorCisgICAgbm9kZS0+ZGlkTW92ZVRvTmV3RG9jdW1lbnQobV9k
ZXBhcnR1cmVEb2N1bWVudCk7CisgICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2Fs
bGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZU1p
Z3JhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZU1pZ3JhdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyMGUwZDI0ZjNmYTgyNWVmNTQ2Njk2OTI0OWJlNDU0YzE5OTNjOWEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlTWlncmF0aW9uLmgKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaWZuZGVmIFRyZWVTY29wZU1pZ3JhdGlv
bl9oCisjZGVmaW5lIFRyZWVTY29wZU1pZ3JhdGlvbl9oCisKKyNpbmNsdWRlICJFbGVtZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHJlZVNjb3BlTWlncmF0aW9uIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBUcmVlU2NvcGVNaWdyYXRpb24oTm9kZSogbWlncmF0aW9uUm9v
dCwgVHJlZVNjb3BlKiBkZXN0aW5hdGlvbik7CisKKyAgICB2b2lkIGV4ZWN1dGUoKSBjb25zdDsK
KworI2lmZGVmIE5ERUJVRworICAgIHN0YXRpYyB2b2lkIGVuc3VyZURpZE1vdmVUb05ld0RvY3Vt
ZW50V2FzQ2FsbGVkKERvY3VtZW50KikgeyB9CisjZWxzZQorICAgIHN0YXRpYyB2b2lkIGVuc3Vy
ZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50Kik7CisjZW5kaWYKKworcHJp
dmF0ZToKKyAgICBib29sIG5lZWRzTWlncmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXBhcnR1
cmUgIT0gbV9kZXN0aW5hdGlvbjsgfQorICAgIGJvb2wgc2hvdWxkTWlncmF0ZU92ZXJEb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwYXJ0dXJlRG9jdW1lbnQgIT0gbV9kZXN0aW5hdGlvbkRv
Y3VtZW50OyB9CisgICAgYm9vbCBpc01pZ3JhdGluZ1RvRG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uRG9jdW1lbnQgPT0gbV9kZXN0aW5hdGlvbjsgfQorICAgIHZvaWQgbWln
cmF0ZVNoYWRvd092ZXJEb2N1bWVudChTaGFkb3dSb290KikgY29uc3Q7CisgICAgdm9pZCBtaWdy
YXRlT3ZlckRvY3VtZW50KE5vZGUqKSBjb25zdDsKKyAgICBzdGF0aWMgU2hhZG93Um9vdCogc2hh
ZG93Um9vdEZvcihOb2RlKik7CisKKyAgICBOb2RlKiBtX21pZ3JhdGlvblJvb3Q7CisgICAgVHJl
ZVNjb3BlKiBtX2Rlc3RpbmF0aW9uOworICAgIFRyZWVTY29wZSogbV9kZXBhcnR1cmU7CisgICAg
RG9jdW1lbnQqIG1fZGVzdGluYXRpb25Eb2N1bWVudDsKKyAgICBEb2N1bWVudCogbV9kZXBhcnR1
cmVEb2N1bWVudDsKK307CisKK2lubGluZSBTaGFkb3dSb290KiBUcmVlU2NvcGVNaWdyYXRpb246
OnNoYWRvd1Jvb3RGb3IoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50
Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworfQorCit9CisKKyNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120635</attachid>
            <date>2011-12-27 21:38:39 -0800</date>
            <delta_ts>2012-01-04 21:56:54 -0800</delta_ts>
            <desc>Rebased to ToT</desc>
            <filename>bug-75290-20111228143837.patch</filename>
            <type>text/plain</type>
            <size>29778</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzNzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U4MGE5MGE2ZDNkOTRj
OWY5ZWNiOWI3NWZlZmQ4OThjNjZiNTc1My4uOWQ1MTZlNjNkZjExZmVkYzM1ZWU5N2VlYzYwMWQy
NWUzMmQ0YmU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTEyLTI3ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTWlncmF0aW9uIG92ZXIgVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVNaWdyYXRpb24uIEJ5IGRv
aW5nIHRoaXMsIHRoZSBpZGVhIG9mCisgICAgICAgIG1vdmluZyBhIG5vZGUgZnJvbSBzY29wZSB0
byBzY29wZSwgdGhhdCB3YXMgb3JpZ2luYWxseSBoaWRkZW4KKyAgICAgICAgYmVoaW5kIHRoZSBm
b3Jlc3Qgb2YgTm9kZSBBUElzLCBoYXMgYmVjb21lIGNsZWFyZXIuCisKKyAgICAgICAgTm90ZSB0
aGF0IHRoaXMgY2hhbmdlIGlzIGEgcHJlcGFyYXRpb24gZm9yIEJ1ZyA1OTgxNi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOiBGb2xsb3dlZCByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
aW5lck5vZGU6OnRha2VBbGxDaGlsZHJlbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVC
ZXR3ZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKToKKyAgICAgICAgKiBk
b20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IEZvbGxvd2Vk
IHJlbmFtaW5nLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvY1R5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkb3B0Tm9kZSk6CisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOiBGb2xsb3dlZCByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnNldERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omhhc05vZGVM
aXN0cyk6IEV4dHJhY3RlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KCkKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6IEV4dHJhY3RlZCBmcm9tIHNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KCkKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om1pZ3JhdGVUbyk6IFJlbmFt
ZWQgZnJvbSBzZXRUcmVlU2NvcGVSZWN1cnNpdmVseSgpCisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAg
KiBkb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGVNaWdyYXRpb246OlRyZWVTY29wZU1pZ3JhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGVNaWdyYXRpb246OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlTWlncmF0aW9uOjptaWdyYXRlU2hhZG93T3ZlckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZU1pZ3JhdGlvbjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlTWlncmF0aW9uOjptaWdyYXRlT3ZlckRv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlTWlncmF0aW9uLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlTWlncmF0aW9uOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1
bWVudFdhc0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVNaWdyYXRpb246Om5l
ZWRzTWlncmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZU1pZ3JhdGlvbjo6c2hv
dWxkTWlncmF0ZU92ZXJEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVNaWdy
YXRpb246OmlzTWlncmF0aW5nVG9Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGVNaWdyYXRpb246OnNoYWRvd1Jvb3RGb3IpOgorCiAyMDExLTEyLTI3ICBBbmFudGFuYXJheWFu
YW4gRyBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBpbiB0
aGUgV2ViS2l0IGFjY2Vzc2liaWxpdHkgY29kZSB3aGlsZSBhdHRlbXB0aW5nIHRvIHJldHJpZXZl
IHRoZSB0aXRsZSBVSSBlbGVtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
MGJjNTIxYjVmOGI4NmJkMzk0N2Y4NDFhNmU3YzdkN2RhY2UyYTFjMi4uMzI4Zjc2OGE1Y2EwMDRi
YjcwMWMzODZiYzE2NTEyZTMyOTUzZjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0xNjc0LDYgKzE2NzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlRGVwdGhMaW1pdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZU1pZ3JhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkOGVkNThmMDhlMTVjMjI3NzA0ODA2MWFkNDQz
MTE0ZDU3ZmE0NjMzLi4xMWNjMmFlNGE2ZTlmYWRkMzNjMjhkNWUwZmFlYzA1YmFmODAzYmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTU3Nyw2ICs1NzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vVG91
Y2hMaXN0LmNwcCBcCiAgICAgZG9tL1RyYXZlcnNhbC5jcHAgXAogICAgIGRvbS9UcmVlU2NvcGUu
Y3BwIFwKKyAgICBkb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcCBcCiAgICAgZG9tL1RyZWVXYWxr
ZXIuY3BwIFwKICAgICBkb20vVUlFdmVudC5jcHAgXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0
YXRlLmNwcCBcCkBAIC0xNjczLDYgKzE2NzQsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vVHJh
dmVyc2FsLmggXAogICAgIGRvbS9UcmVlRGVwdGhMaW1pdC5oIFwKICAgICBkb20vVHJlZVNjb3Bl
LmggXAorICAgIGRvbS9UcmVlU2NvcGVNaWdyYXRpb24uaCBcCiAgICAgZG9tL1RyZWVXYWxrZXIu
aCBcCiAgICAgZG9tL1VJRXZlbnQuaCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNThlNWNjODM0ZTVlYzQzMWFiN2I5OGIzYjE2YTBiZGZjNGUz
MzEzNy4uNGJmOTU1MTc0OTFjZjgzOTAzOWQ4MWY4OTgyNThiNTlmMDEyNGZjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtNTQ1OCw2ICs1NDU4LDggQEAKICAgICAgICAgICAgICdkb20vVHJlZURlcHRo
TGltaXQuaCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVTY29wZS5jcHAnLAogICAgICAgICAgICAg
J2RvbS9UcmVlU2NvcGUuaCcsCisgICAgICAgICAgICAnZG9tL1RyZWVTY29wZU1pZ3JhdGlvbi5j
cHAnLAorICAgICAgICAgICAgJ2RvbS9UcmVlU2NvcGVNaWdyYXRpb24uaCcsCiAgICAgICAgICAg
ICAnZG9tL1RyZWVXYWxrZXIuY3BwJywKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5oJywK
ICAgICAgICAgICAgICdkb20vVUlFdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzZjcyYjRkNWM3YjAwOTBjNTk5MzdmOGYyYTE0
ZWRkOGI3NDc3YzExLi5hNjZkMDA2Y2VkNzkzYzFkYjVhZTkxMGU1NjVkMGY2MWQ2MmFjOWM5IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTE3
NzQsNiArNTE3NzQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFRyZWVTY29wZU1pZ3JhdGlvbi5jcHAiCisJCQkJPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxUcmVlU2NvcGVN
aWdyYXRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFRyZWVXYWxrZXIuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzMjczODg5MWVlOGFhNGJkM2ZjMDQ2NzM4ZGEwNGQ4NzAzMmQxZmUzLi4zMzQ0MGZjZTQ0
MjljNDljZDhmODI0ZmNiN2RlMmI1MWVmNTMwNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTExLDYgKzM1MTEsOCBAQAog
CQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFC
OSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyog
VGV4dEV2ZW50SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3
RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8q
IFRleHRDaGVja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE3N0UxRkVGMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RTFG
RUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5jcHAgKi87IH07CisJCUE3
N0UxRkYwMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVFMTRBQUNCNkUwMDVC
N0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRpb24uaCAqLzsgfTsKIAkJQTc4MUM2QTcxMzgyOEI1RDAw
MTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1h
cmtlci5jcHAgKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0
MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07CiAJCUE3OEU1MjZGMTM0
NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8q
IE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi87IH07CkBAIC0xMDc4NSw2ICsxMDc4Nyw4IEBACiAJ
CUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFdmVudElucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyog
VGV4dENoZWNraW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVj
a2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzdFMUZFRDE0QUFDQjZFMDA1
QjdDQjYgLyogVHJlZVNjb3BlTWlncmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRyZWVTY29wZU1pZ3JhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJlZVNjb3BlTWlncmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAv
KiBEb2N1bWVudE1hcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEb2N1bWVudE1hcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODQ5
NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTQwLDYgKzIxNTQ0LDggQEAK
IAkJCQkzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCAqLywKIAkJ
CQkxNEQ2NEI1QTEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCAqLywKIAkJCQkxNEQ2
NEI1QjEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmggKi8sCisJCQkJQTc3RTFGRUQxNEFB
Q0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5jcHAgKi8sCisJCQkJQTc3RTFGRUUx
NEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZU1pZ3JhdGlvbi5oICovLAogCQkJCTg1NEZFNzJF
MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLywKIAkJCQk4NTRGRTcyRjBBMjI5
N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovLAogCQkJCTFBNzUwRDNDMEE5MERFMzUwMDBG
RjIxNSAvKiBUcmVlV2Fsa2VyLmlkbCAqLywKQEAgLTI0Njg5LDYgKzI0Njk1LDcgQEAKIAkJCQk4
NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0ZENDI5ODExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0RDY0QjVEMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVlU2NvcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE3N0UxRkYwMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTlEMkM1MENFQTZGNjEwMEZGNTA3QSAvKiBUcmVl
U2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQgLyog
VHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjhBNjgxMEY2NTlDQzAwOEM3ODEz
IC8qIFR5cGVzZXR0aW5nRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2MjEsNiArMjc2
MjgsNyBAQAogCQkJCTQ5RTkxMUQxMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzYwQTIyOTdCRTAwNThE
N0FEIC8qIFRyYXZlcnNhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEQ2NEI1QzEzNEE1QjZC
MDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3N0UxRkVGMTRB
QUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVNaWdyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODU0RkU3MzgwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTMzMDlFMTkwOTlFNjQ5MjAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEQwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggNDlj
YWE4ZTIxMDk0YmU0NTgxODJlMzA0MzVjMWY0Njg0N2Y4OWUwZC4uOTBiMmY2NDBlM2Q4ZTJjNTIy
MzEyYTRjMjIxYjRmYWNmOTdiNDFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cApAQCAtOTksNyArOTksNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnRha2VBbGxDaGlsZHJlbkZy
b20oQ29udGFpbmVyTm9kZSogb2xkUGFyZW50KQogICAgICAgICAvLyBGSVhNRTogVG9nZXRoZXIg
d2l0aCBhZG9wdE5vZGUgYWJvdmUsIHRoZSB0cmVlIHNjb3BlIG1pZ2h0IGdldCB1cGRhdGVkIHJl
Y3Vyc2l2ZWx5IHR3aWNlCiAgICAgICAgIC8vIChpZiB0aGUgZG9jdW1lbnQgY2hhbmdlZCBvciBv
bGRQYXJlbnQgd2FzIGluIGEgc2hhZG93IHRyZWUsIEFORCAqdGhpcyBpcyBpbiBhIHNoYWRvdyB0
cmVlKS4KICAgICAgICAgLy8gQ2FuIHdlIGRvIGJldHRlcj8KLSAgICAgICAgY2hpbGQtPnNldFRy
ZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICAgICAgY2hpbGQtPm1pZ3JhdGVU
byh0cmVlU2NvcGUoKSk7CiAgICAgICAgIGlmIChhdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNo
ZWQoKSkKICAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKICAgICB9CkBAIC0xNzUsNyArMTc1
LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBjaGlsZCwgdGhpcyk7CiAjZW5k
aWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkp
OworICAgICAgICBjaGlsZC0+bWlncmF0ZVRvKHRyZWVTY29wZSgpKTsKIAogICAgICAgICBpbnNl
cnRCZWZvcmVDb21tb24obmV4dC5nZXQoKSwgY2hpbGQpOwogCkBAIC0zMjksNyArMzI5LDcgQEAg
Ym9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGls
ZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBjaGlsZC5nZXQoKSwgdGhpcyk7CiAjZW5k
aWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkp
OworICAgICAgICBjaGlsZC0+bWlncmF0ZVRvKHRyZWVTY29wZSgpKTsKIAogICAgICAgICAvLyBB
ZGQgY2hpbGQgYWZ0ZXIgInByZXYiLgogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CkBA
IC01MDksNyArNTA5LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3ZWVuKE5vZGUq
IHByZXZpb3VzQ2hpbGQsIE5vZGUqIG5leHRDaGlsZCwgTm9kZSogb2wKICAgICBvbGRDaGlsZC0+
c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNldFBhcmVudCgwKTsKIAotICAgIG9s
ZENoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICBvbGRDaGls
ZC0+bWlncmF0ZVRvKGRvY3VtZW50KCkpOwogCiAgICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiB9
CkBAIC01NjQsNyArNTY0LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigp
CiAgICAgICAgIG4tPnNldFByZXZpb3VzU2libGluZygwKTsKICAgICAgICAgbi0+c2V0TmV4dFNp
YmxpbmcoMCk7CiAgICAgICAgIG4tPnNldFBhcmVudCgwKTsKLSAgICAgICAgbi0+c2V0VHJlZVNj
b3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgICAgIG4tPm1pZ3JhdGVUbyhkb2N1bWVu
dCgpKTsKIAogICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBuZXh0OwogICAgICAgICBpZiAobiA9PSBt
X2xhc3RDaGlsZCkKQEAgLTY0OSw3ICs2NDksNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVu
ZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwog
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3Vt
ZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2Nv
cGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIGNoaWxkLT5taWdyYXRlVG8odHJl
ZVNjb3BlKCkpOwogCiAgICAgICAgIC8vIEFwcGVuZCBjaGlsZCB0byB0aGUgZW5kIG9mIHRoZSBs
aXN0CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCB2
b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hp
bGQpCiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAgIC8vIEZJWE1FOiBUaGlzIG1l
dGhvZCBzaG91bGQgdGFrZSBhIFBhc3NSZWZQdHIuCiAgICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5l
cjxOb2RlLCBDb250YWluZXJOb2RlPihuZXdDaGlsZC5nZXQoKSwgdGhpcyk7Ci0gICAgbmV3Q2hp
bGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICBuZXdDaGlsZC0+
bWlncmF0ZVRvKHRyZWVTY29wZSgpKTsKICAgICAKICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggZDBiY2VjYWEyZDA4ZDEyMWNlMzhl
MTE0Y2U3N2YyZDgzMzU3ZmE0OC4uZGM2MWUxMDQ0MTBlMzBmMDk2YWQ5ZDA5NjUyMTQ0OTUzMzY4
MWY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAK
ICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCIKICNpbmNsdWRlICJUcmF2ZXJz
YWwuY3BwIgogI2luY2x1ZGUgIlRyZWVTY29wZS5jcHAiCisjaW5jbHVkZSAiVHJlZVNjb3BlTWln
cmF0aW9uLmNwcCIKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNwcCIKICNpbmNsdWRlICJVSUV2ZW50
LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDNkODU0Mjc2NGY0MmI4YzVjOWM2YTdiY2Y2MGRjNjNhZDIzYTNkM2IuLmU1
ZjMyNGY4NjEyZDc3Zjk4M2RjOThiNWY2YjVmZDY3YTY3NjFjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldERvY1R5cGUoUGFz
c1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAgQVNTRVJUKCFtX2RvY1R5cGUgfHwg
IWRvY1R5cGUpOwogICAgIG1fZG9jVHlwZSA9IGRvY1R5cGU7CiAgICAgaWYgKG1fZG9jVHlwZSkK
LSAgICAgICAgbV9kb2NUeXBlLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0aGlzKTsKKyAgICAg
ICAgbV9kb2NUeXBlLT5taWdyYXRlVG8odGhpcyk7CiB9CiAKIERPTUltcGxlbWVudGF0aW9uKiBE
b2N1bWVudDo6aW1wbGVtZW50YXRpb24oKQpAQCAtOTM2LDcgKzkzNiw3IEBAIFBhc3NSZWZQdHI8
Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hp
bGQoc291cmNlLmdldCgpLCBlYyk7CiAgICAgfQogCi0gICAgc291cmNlLT5zZXRUcmVlU2NvcGVS
ZWN1cnNpdmVseSh0aGlzKTsKKyAgICBzb3VyY2UtPm1pZ3JhdGVUbyh0aGlzKTsKIAogICAgIHJl
dHVybiBzb3VyY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggOTkzNjY2NGJjNWZjM2E4
NjNmYTgxMGQ2ZWM5NzNkMzIyZTYxNzcxMy4uZGJiYTY5MmI0NDFhNzVmYmUwMmYyYWM1ZDQ2Y2Jl
MjU0ZmRkMGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTIwNyw3ICsxMjA3LDcgQEAg
dm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKICAgICAgICAgICAgIG9sZFJvb3QtPmRl
dGFjaCgpOwogCiAgICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7Ci0gICAgICAgIG9s
ZFJvb3QtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KGRvY3VtZW50KCkpOworICAgICAgICBvbGRS
b290LT5taWdyYXRlVG8oZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmIChvbGRSb290LT5pbkRvY3Vt
ZW50KCkpCiAgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA5ZTZkZDVmYWM2ZmRlZTBmZTBjNmNjM2E3ZDI0
OWEyYTVmYTk2YzQ5Li4yODEzZWQ1MTEzMzU0MDMyMTk4Yzg1ZDdlNmU4MzYzOGRjMDE1NDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiVGFnTm9kZUxpc3Qu
aCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAi
VHJlZVNjb3BlTWlncmF0aW9uLmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIlVJ
RXZlbnRXaXRoS2V5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgpA
QCAtNDE3LDM3ICs0MTgsMjkgQEAgTm9kZTo6fk5vZGUoKQogICAgICAgICBkb2MtPmd1YXJkRGVy
ZWYoKTsKIH0KIAotI2lmbmRlZiBOREVCVUcKLQotc3RhdGljIGJvb2wgZGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWQ7Ci1zdGF0aWMgRG9jdW1lbnQqIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWRXaXRoOwotCi0jZW5kaWYKLSAgICAKIHZvaWQgTm9kZTo6c2V0RG9j
dW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIEFTU0VSVCghaW5Eb2N1bWVudCgpIHx8
IG1fZG9jdW1lbnQgPT0gZG9jdW1lbnQpOwogICAgIGlmIChpbkRvY3VtZW50KCkgfHwgbV9kb2N1
bWVudCA9PSBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG9jdW1lbnQtPmd1YXJk
UmVmKCk7Ci0KLSAgICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBtX2RvY3VtZW50LT5tb3Zl
Tm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQodGhpcywgZG9jdW1lbnQpOwotICAgICAgICBtX2Rv
Y3VtZW50LT5ndWFyZERlcmVmKCk7Ci0gICAgfQotCi0gICAgRG9jdW1lbnQqIG9sZERvY3VtZW50
ID0gbV9kb2N1bWVudDsKICAgICBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7Cit9CiAKLSNpZm5kZWYg
TkRFQlVHCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICBv
bGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aCA9IG9sZERvY3VtZW50
OwotI2VuZGlmCitib29sIE5vZGU6Omhhc05vZGVMaXN0cygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGEoKS0+bm9kZUxpc3RzKCk7Cit9CiAKLSAgICBkaWRN
b3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCk7Cit2b2lkIE5vZGU6OnNldFRyZWVTY29wZShU
cmVlU2NvcGUqIHNjb3BlKQoreworICAgIGlmICghc2NvcGUpIHsKKyAgICAgICAgaWYgKGhhc1Jh
cmVEYXRhKCkpCisgICAgICAgICAgICByYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUoMCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBBU1NFUlQoZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXND
YWxsZWQpOworICAgIGVuc3VyZVJhcmVEYXRhKCktPnNldFRyZWVTY29wZShzY29wZSk7CiB9CiAK
IFRyZWVTY29wZSogTm9kZTo6dHJlZVNjb3BlKCkgY29uc3QKQEAgLTQ1OSw1MSArNDUyLDEzIEBA
IFRyZWVTY29wZSogTm9kZTo6dHJlZVNjb3BlKCkgY29uc3QKICAgICByZXR1cm4gc2NvcGUgPyBz
Y29wZSA6IG1fZG9jdW1lbnQ7CiB9CiAKLXZvaWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZl
bHkoVHJlZVNjb3BlKiBuZXdUcmVlU2NvcGUpCit2b2lkIE5vZGU6Om1pZ3JhdGVUbyhUcmVlU2Nv
cGUqIG5ld1RyZWVTY29wZSkKIHsKICAgICBBU1NFUlQodGhpcyk7CiAgICAgQVNTRVJUKCFpc0Rv
Y3VtZW50Tm9kZSgpKTsKICAgICBBU1NFUlQobmV3VHJlZVNjb3BlKTsKICAgICBBU1NFUlQoIW1f
ZGVsZXRpb25IYXNCZWd1bik7Ci0KLSAgICBUcmVlU2NvcGUqIGN1cnJlbnRUcmVlU2NvcGUgPSB0
cmVlU2NvcGUoKTsKLSAgICBpZiAoY3VycmVudFRyZWVTY29wZSA9PSBuZXdUcmVlU2NvcGUpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIERvY3VtZW50KiBjdXJyZW50RG9jdW1lbnQgPSBkb2N1bWVu
dCgpOwotICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5ld1RyZWVTY29wZS0+ZG9jdW1lbnQo
KTsKLSAgICAvLyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhl
biBldmVudHVhbGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCi0gICAgLy8g
dGhhdCBlbGVtZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0
IHdpbGwgaGF2ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgotICAgIC8vIG9mIHRoZSBkb2N1
bWVudCBpdCB3YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9m
IHRoZSBkb25hdGluZyBkb2N1bWVudCBoZXJlCi0gICAgLy8gd2UgZW5zdXJlIHRoYXQgdGhlIGNv
bGxlY3Rpb24gY2FjaGUgd2lsbCBiZSBpbnZhbGlkYXRlZCBhcyBuZWVkZWQgd2hlbiB0aGUgZWxl
bWVudCBpcyBtb3ZlZCBiYWNrLgotICAgIGlmIChjdXJyZW50RG9jdW1lbnQgJiYgY3VycmVudERv
Y3VtZW50ICE9IG5ld0RvY3VtZW50KQotICAgICAgICBjdXJyZW50RG9jdW1lbnQtPmluY0RPTVRy
ZWVWZXJzaW9uKCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0g
bm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBpZiAobmV3VHJlZVNjb3Bl
ID09IG5ld0RvY3VtZW50KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEoKSkK
LSAgICAgICAgICAgICAgICBub2RlLT5yYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUoMCk7Ci0gICAg
ICAgICAgICAvLyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhh
bmRsZWQgaW1wbGljaXRseQotICAgICAgICAgICAgLy8gYnkgc2V0RG9jdW1lbnQoKSBiZWxvdy4K
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBub2RlLT5lbnN1cmVSYXJlRGF0YSgpLT5zZXRU
cmVlU2NvcGUobmV3VHJlZVNjb3BlKTsKLQotICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEo
KSAmJiBub2RlLT5yYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSkgewotICAgICAgICAgICAgaWYgKGN1
cnJlbnRUcmVlU2NvcGUpCi0gICAgICAgICAgICAgICAgY3VycmVudFRyZWVTY29wZS0+cmVtb3Zl
Tm9kZUxpc3RDYWNoZSgpOwotICAgICAgICAgICAgbmV3VHJlZVNjb3BlLT5hZGROb2RlTGlzdENh
Y2hlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdEb2N1bWVu
dCk7Ci0KLSAgICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQo
bm9kZSktPnNoYWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0UGFyZW50
VHJlZVNjb3BlKG5ld1RyZWVTY29wZSk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudERvY3VtZW50
ICE9IG5ld0RvY3VtZW50KQotICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QtPnNldERvY3VtZW50
UmVjdXJzaXZlbHkobmV3RG9jdW1lbnQpOwotICAgICAgICB9Ci0gICAgfQorICAgIFRyZWVTY29w
ZU1pZ3JhdGlvbih0aGlzLCBuZXdUcmVlU2NvcGUpLmV4ZWN1dGUoKTsKIH0KIAogTm9kZVJhcmVE
YXRhKiBOb2RlOjpyYXJlRGF0YSgpIGNvbnN0CkBAIC04NTEsMTkgKzgwNiw2IEBAIGlubGluZSBz
dGF0aWMgU2hhZG93Um9vdCogc2hhZG93Um9vdChOb2RlKiBub2RlKQogICAgIHJldHVybiBub2Rl
LT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1Jvb3QoKSA6IDA7CiB9
CiAKLXZvaWQgTm9kZTo6c2V0RG9jdW1lbnRSZWN1cnNpdmVseShEb2N1bWVudCogbmV3RG9jdW1l
bnQpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KCkgIT0gbmV3RG9jdW1lbnQpOwotCi0gICAgZm9y
IChOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUo
dGhpcykpIHsKLSAgICAgICAgbm9kZS0+c2V0RG9jdW1lbnQobmV3RG9jdW1lbnQpOwotICAgICAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdChub2RlKSkKLSAgICAgICAg
ICAgIHNoYWRvdy0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShuZXdEb2N1bWVudCk7Ci0gICAgfQot
fQotCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNoYW5nZShTdHlsZUNoYW5nZVR5cGUgY2hh
bmdlVHlwZSkKIHsKICAgICBtX25vZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5TdHlsZUNoYW5n
ZU1hc2spIHwgY2hhbmdlVHlwZTsKQEAgLTI0ODEsMTIgKzI0MjMsNyBAQCB2b2lkIE5vZGU6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQogCiB2b2lkIE5vZGU6OmRpZE1vdmVUb05ld0RvY3VtZW50KERv
Y3VtZW50KiBvbGREb2N1bWVudCkKIHsKLSAgICBBU1NFUlQoIWRpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9sZERvY3VtZW50LCBvbGREb2N1bWVudCA9
PSBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aCk7Ci0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQgPSB0cnVlOwotI2Vu
ZGlmCisgICAgVHJlZVNjb3BlTWlncmF0aW9uOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdh
c0NhbGxlZChvbGREb2N1bWVudCk7CiAKICAgICAvLyBGSVhNRTogRXZlbnQgbGlzdGVuZXIgdHlw
ZXMgZm9yIHRoaXMgbm9kZSBzaG91bGQgYmUgc2V0IG9uIHRoZSBuZXcgb3duZXIgZG9jdW1lbnQg
aGVyZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZmE2OWI3NTk0MGIzZDQxODdiYzk3NDUzNTYzZGE5Y2Fi
ZDFiNTk2Zi4uZWNmZGE5ZDI2ZTdhZTcxZTU3ZjRiMzVmM2NjNmM0MWVhOGI0NzA0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgZW51bSBTdHlsZUNoYW5nZVR5cGUgewogY2xhc3Mg
Tm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT4gewogICAgIGZyaWVuZCBjbGFzcyBEb2N1bWVudDsK
ICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOworICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGVN
aWdyYXRpb247CiAKIHB1YmxpYzoKICAgICBlbnVtIE5vZGVUeXBlIHsKQEAgLTM4NCw3ICszODUs
NyBAQCBwdWJsaWM6CiAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUoKSBjb25zdDsKIAogICAgIC8v
IFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KLSAg
ICB2b2lkIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSopOworICAgIHZvaWQgbWln
cmF0ZVRvKFRyZWVTY29wZSopOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbm9kZSBp
cyBhc3NvY2lhdGVkIHdpdGggYSBkb2N1bWVudCBhbmQgaXMgaW4gaXRzIGFzc29jaWF0ZWQgZG9j
dW1lbnQncwogICAgIC8vIG5vZGUgdHJlZSwgZmFsc2Ugb3RoZXJ3aXNlLgpAQCAtNjk4LDkgKzY5
OSw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFySGFzQ3VzdG9tU3R5bGVGb3JSZW5kZXJl
cigpIHsgY2xlYXJGbGFnKEhhc0N1c3RvbVN0eWxlRm9yUmVuZGVyZXJGbGFnKTsgfQogCiBwcml2
YXRlOgotICAgIC8vIERvIG5vdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hhbmdlIHRoZSBkb2N1bWVu
dCBvZiBhIG5vZGUgdW50aWwgYWZ0ZXIgdGhlIG5vZGUgaGFzIGJlZW4KLSAgICAvLyByZW1vdmVk
IGZyb20gaXRzIHByZXZpb3VzIGRvY3VtZW50LgotICAgIHZvaWQgc2V0RG9jdW1lbnRSZWN1cnNp
dmVseShEb2N1bWVudCopOworICAgIC8vIFRoZXNlIEFQSSBzaG91bGQgYmUgb25seSB1c2VkIGZv
ciBhIHRyZWUgc2NvcGUgbWlncmF0aW9uLgorICAgIGJvb2wgaGFzTm9kZUxpc3RzKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAgICAgdm9pZCBzZXREb2N1bWVu
dChEb2N1bWVudCopOwogCiAgICAgZW51bSBFZGl0YWJsZUxldmVsIHsgRWRpdGFibGUsIFJpY2hs
eUVkaXRhYmxlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlTWln
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVNaWdyYXRpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdiMGMyYzlhOTRhYzVjZGU1YWNmYTI2ZGJjNWI1MzZkZGZhY2JkMTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlTWlncmF0aW9uLmNwcApA
QCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2
aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxl
ckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVHJlZVNjb3BlTWlncmF0aW9uLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUcmVl
U2NvcGVNaWdyYXRpb246OlRyZWVTY29wZU1pZ3JhdGlvbihOb2RlKiBtaWdyYXRpb25Sb290LCBU
cmVlU2NvcGUqIGRlc3RpbmF0aW9uKQorICAgIDogbV9taWdyYXRpb25Sb290KG1pZ3JhdGlvblJv
b3QpCisgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKQorICAgICwgbV9kZXN0aW5hdGlv
bkRvY3VtZW50KDApCisgICAgLCBtX2RlcGFydHVyZURvY3VtZW50KDApCit7CisgICAgQVNTRVJU
KG1pZ3JhdGlvblJvb3QpOworICAgIEFTU0VSVChkZXN0aW5hdGlvbik7CisgICAgbV9kZXBhcnR1
cmUgPSBtaWdyYXRpb25Sb290LT50cmVlU2NvcGUoKTsKKyAgICBpZiAobmVlZHNNaWdyYXRpb24o
KSkgeworICAgICAgICBtX2RlcGFydHVyZURvY3VtZW50ID0gbWlncmF0aW9uUm9vdC0+ZG9jdW1l
bnQoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbkRvY3VtZW50ID0gZGVzdGluYXRpb24tPmRvY3Vt
ZW50KCk7CisgICAgfQorfQorCit2b2lkIFRyZWVTY29wZU1pZ3JhdGlvbjo6ZXhlY3V0ZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFuZWVkc01pZ3JhdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBldmVu
dHVhbGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCisgICAgLy8gdGhhdCBl
bGVtZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdpbGwg
aGF2ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgorICAgIC8vIG9mIHRoZSBkb2N1bWVudCBp
dCB3YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRoZSBk
b25hdGluZyBkb2N1bWVudCBoZXJlCisgICAgLy8gd2UgZW5zdXJlIHRoYXQgdGhlIGNvbGxlY3Rp
b24gY2FjaGUgd2lsbCBiZSBpbnZhbGlkYXRlZCBhcyBuZWVkZWQgd2hlbiB0aGUgZWxlbWVudCBp
cyBtb3ZlZCBiYWNrLgorICAgIGlmIChtX2RlcGFydHVyZURvY3VtZW50ICYmIHNob3VsZE1pZ3Jh
dGVPdmVyRG9jdW1lbnQoKSkKKyAgICAgICAgbV9kZXBhcnR1cmVEb2N1bWVudC0+aW5jRE9NVHJl
ZVZlcnNpb24oKTsKKworICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbWlncmF0aW9uUm9vdDsgbm9k
ZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUobV9taWdyYXRpb25Sb290KSkgeworICAg
ICAgICAvLyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhhbmRs
ZWQgaW1wbGljaXRseQorICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgorICAgICAg
ICBub2RlLT5zZXRUcmVlU2NvcGUoaXNNaWdyYXRpbmdUb0RvY3VtZW50KCkgPyAwIDogbV9kZXN0
aW5hdGlvbik7CisKKyAgICAgICAgaWYgKG5vZGUtPmhhc05vZGVMaXN0cygpKSB7CisgICAgICAg
ICAgICBpZiAobV9kZXBhcnR1cmUpCisgICAgICAgICAgICAgICAgbV9kZXBhcnR1cmUtPnJlbW92
ZU5vZGVMaXN0Q2FjaGUoKTsKKyAgICAgICAgICAgIG1fZGVzdGluYXRpb24tPmFkZE5vZGVMaXN0
Q2FjaGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaG91bGRNaWdyYXRlT3ZlckRvY3Vt
ZW50KCkpCisgICAgICAgICAgICBtaWdyYXRlT3ZlckRvY3VtZW50KG5vZGUpOworCisgICAgICAg
IGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9yKG5vZGUpKSB7CisgICAgICAg
ICAgICBzaGFkb3ctPnNldFBhcmVudFRyZWVTY29wZShtX2Rlc3RpbmF0aW9uKTsKKyAgICAgICAg
ICAgIGlmIChzaG91bGRNaWdyYXRlT3ZlckRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgbWln
cmF0ZVNoYWRvd092ZXJEb2N1bWVudChzaGFkb3cpOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIFRyZWVTY29wZU1pZ3JhdGlvbjo6bWlncmF0ZVNoYWRvd092ZXJEb2N1bWVudChTaGFkb3dS
b290KiByb290KSBjb25zdAoreworICAgIEFTU0VSVChzaG91bGRNaWdyYXRlT3ZlckRvY3VtZW50
KCkpOworICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2
ZXJzZU5leHROb2RlKHJvb3QpKSB7CisgICAgICAgIG1pZ3JhdGVPdmVyRG9jdW1lbnQobm9kZSk7
CisgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9yKG5vZGUpKQor
ICAgICAgICAgICAgbWlncmF0ZVNoYWRvd092ZXJEb2N1bWVudChzaGFkb3cpOworICAgIH0KK30K
KworI2lmbmRlZiBOREVCVUcKK3N0YXRpYyBib29sIGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2Fs
bGVkOworc3RhdGljIERvY3VtZW50KiBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2Fz
Q2FsbGVkV2l0aDsKKwordm9pZCBUcmVlU2NvcGVNaWdyYXRpb246OmVuc3VyZURpZE1vdmVUb05l
d0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KiBvbGREb2N1bWVudCkKK3sKKyAgICBBU1NFUlQo
IWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9sZERv
Y3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2Fz
Q2FsbGVkV2l0aCk7CisgICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQgPSB0cnVlOwor
fQorI2VuZGlmCisKK3ZvaWQgVHJlZVNjb3BlTWlncmF0aW9uOjptaWdyYXRlT3ZlckRvY3VtZW50
KE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5pbkRvY3VtZW50KCkgfHwg
c2hvdWxkTWlncmF0ZU92ZXJEb2N1bWVudCgpKTsKKworICAgIG1fZGVzdGluYXRpb25Eb2N1bWVu
dC0+Z3VhcmRSZWYoKTsKKyAgICBpZiAobV9kZXBhcnR1cmVEb2N1bWVudCkgeworICAgICAgICBt
X2RlcGFydHVyZURvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQobm9kZSwg
bV9kZXN0aW5hdGlvbkRvY3VtZW50KTsKKyAgICAgICAgbV9kZXBhcnR1cmVEb2N1bWVudC0+Z3Vh
cmREZXJlZigpOworICAgIH0KKworICAgIG5vZGUtPnNldERvY3VtZW50KG1fZGVzdGluYXRpb25E
b2N1bWVudCk7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXND
YWxsZWQgPSBmYWxzZTsKKyAgICBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2Fs
bGVkV2l0aCA9IG1fZGVwYXJ0dXJlRG9jdW1lbnQ7CisjZW5kaWYKKworICAgIG5vZGUtPmRpZE1v
dmVUb05ld0RvY3VtZW50KG1fZGVwYXJ0dXJlRG9jdW1lbnQpOworICAgIEFTU0VSVChkaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlU2NvcGVNaWdyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGVNaWdyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjBlMGQyNGYzZmE4MjVlZjU0NjY5NjkyNDliZTQ1
NGMxOTkzYzlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZU1pZ3JhdGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI2lmbmRl
ZiBUcmVlU2NvcGVNaWdyYXRpb25faAorI2RlZmluZSBUcmVlU2NvcGVNaWdyYXRpb25faAorCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRyZWVT
Y29wZU1pZ3JhdGlvbiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVHJlZVNjb3BlTWlncmF0aW9u
KE5vZGUqIG1pZ3JhdGlvblJvb3QsIFRyZWVTY29wZSogZGVzdGluYXRpb24pOworCisgICAgdm9p
ZCBleGVjdXRlKCkgY29uc3Q7CisKKyNpZmRlZiBOREVCVUcKKyAgICBzdGF0aWMgdm9pZCBlbnN1
cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCopIHsgfQorI2Vsc2UKKyAg
ICBzdGF0aWMgdm9pZCBlbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVu
dCopOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgYm9vbCBuZWVkc01pZ3JhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZGVwYXJ0dXJlICE9IG1fZGVzdGluYXRpb247IH0KKyAgICBib29sIHNob3Vs
ZE1pZ3JhdGVPdmVyRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RlcGFydHVyZURvY3VtZW50
ICE9IG1fZGVzdGluYXRpb25Eb2N1bWVudDsgfQorICAgIGJvb2wgaXNNaWdyYXRpbmdUb0RvY3Vt
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbkRvY3VtZW50ID09IG1fZGVzdGluYXRp
b247IH0KKyAgICB2b2lkIG1pZ3JhdGVTaGFkb3dPdmVyRG9jdW1lbnQoU2hhZG93Um9vdCopIGNv
bnN0OworICAgIHZvaWQgbWlncmF0ZU92ZXJEb2N1bWVudChOb2RlKikgY29uc3Q7CisgICAgc3Rh
dGljIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3RGb3IoTm9kZSopOworCisgICAgTm9kZSogbV9taWdy
YXRpb25Sb290OworICAgIFRyZWVTY29wZSogbV9kZXN0aW5hdGlvbjsKKyAgICBUcmVlU2NvcGUq
IG1fZGVwYXJ0dXJlOworICAgIERvY3VtZW50KiBtX2Rlc3RpbmF0aW9uRG9jdW1lbnQ7CisgICAg
RG9jdW1lbnQqIG1fZGVwYXJ0dXJlRG9jdW1lbnQ7Cit9OworCitpbmxpbmUgU2hhZG93Um9vdCog
VHJlZVNjb3BlTWlncmF0aW9uOjpzaGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCit7CisgICAgcmV0
dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgp
IDogMDsKK30KKworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121214</attachid>
            <date>2012-01-04 21:57:01 -0800</date>
            <delta_ts>2012-01-04 22:21:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75290-20120105145659.patch</filename>
            <type>text/plain</type>
            <size>31587</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNkZmJkYmEyYzI3ZjM0
MWIyMzliMWNkMzVkOTNmYWYzMTljYTBkZS4uYTFkNmNiYTc4ZTcyZDM0MzQ0NzFhOWI1NGJmNzgz
M2UyN2FjMzUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTW92aW5nIGJldHdlZW4gVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVBZG9wdGVyLiBCeSBkb2lu
ZyB0aGlzLCB0aGUgaWRlYSBvZgorICAgICAgICBtb3ZpbmcgYSBub2RlIGZyb20gc2NvcGUgdG8g
c2NvcGUsIHRoYXQgd2FzIG9yaWdpbmFsbHkgaGlkZGVuCisgICAgICAgIGJlaGluZCB0aGUgZm9y
ZXN0IG9mIE5vZGUgQVBJcywgaGFzIGJlY29tZSBjbGVhcmVyLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIGZvciBCdWcgNTk4MTYuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogRm9sbG93ZWQgdGhlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDogRm9sbG93ZWQgdGUgcmVuYW1pbmcuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0RG9jVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRvcHROb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IEZvbGxvd2VkIHRlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aGFzTm9kZUxpc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWRNb3Zl
VG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlLmg6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQpOiBtb3ZlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vy
c2l2ZWx5KCkKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6VHJlZVNjb3BlQWRvcHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0Rv
Y3VtZW50V2FzQ2FsbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1v
dmVOb2RlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9w
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6OmlzU3Rh
eWluZ1NhbWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpzaGFk
b3dSb290Rm9yKToKKwogMjAxMi0wMS0wNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGNocm9taXVtIGNvbXBvc2l0b3Ig
c3VwcG9ydCBmb3IgdW51c2VkIHpvb21BbmltYXRvclRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ODhlMGYxNDEzZDk5Yjg0OGQzNGY1ODA4MjYwNDBjNTNlYzA3Y2U3Li45ZjNkMTU4
ZGY5MDRjMmM5NDY4NjkyZTkyZWFjNjI3N2ZhNmRhMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNjEwLDYgKzYxMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vVHJhbnNmb3Jt
U291cmNlTGlieHNsdC5jcHAKICAgICBkb20vVHJhdmVyc2FsLmNwcAogICAgIGRvbS9UcmVlU2Nv
cGUuY3BwCisgICAgZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCiAgICAgZG9tL1RyZWVXYWxrZXIu
Y3BwCiAgICAgZG9tL1VJRXZlbnQuY3BwCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlYWQ2ZGFkZDNmZDBmYjI1YjgzMDI0
OTUyNDdiNzdhOTU5YzdmY2QzLi44ODlhMzVhZTE2ZDRlZTMwMzYxYmE0YmQxMGRkYTM2ODNmODhi
MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE2NzQsNiArMTY3NCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVEZXB0aExpbWl0
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVy
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggYjEyZjVlNTc4NjY4N2Q1MDQwY2ZjM2UyMTNkZjQ1Y2I1NzE2MTI0Ny4uNWU3ZjVhZjVlNzYz
MjI0NzdjY2JmOGIwOWYyZDQ5ZmM4YjY1ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NzQsNiArNTc0
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1RvdWNoTGlzdC5jcHAgXAogICAgIGRvbS9UcmF2
ZXJzYWwuY3BwIFwKICAgICBkb20vVHJlZVNjb3BlLmNwcCBcCisgICAgZG9tL1RyZWVTY29wZUFk
b3B0ZXIuY3BwIFwKICAgICBkb20vVHJlZVdhbGtlci5jcHAgXAogICAgIGRvbS9VSUV2ZW50LmNw
cCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIFwKQEAgLTE2NzAsNiArMTY3MSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9UcmF2ZXJzYWwuaCBcCiAgICAgZG9tL1RyZWVEZXB0
aExpbWl0LmggXAogICAgIGRvbS9UcmVlU2NvcGUuaCBcCisgICAgZG9tL1RyZWVTY29wZUFkb3B0
ZXIuaCBcCiAgICAgZG9tL1RyZWVXYWxrZXIuaCBcCiAgICAgZG9tL1VJRXZlbnQuaCBcCiAgICAg
ZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODMwNWZjZWQ4
ZWFmNjMwOWY3ZTZiYzliZjc2MWIwMjFhYzA0NDg4NS4uMGUxNGU0MGE4MzgxODA1ZDg2ZDM3MjVj
NTk4Y2UzMjlmZGYyZjU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTQ1Nyw2ICs1NDU3LDggQEAK
ICAgICAgICAgICAgICdkb20vVHJlZURlcHRoTGltaXQuaCcsCiAgICAgICAgICAgICAnZG9tL1Ry
ZWVTY29wZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9UcmVlU2NvcGUuaCcsCisgICAgICAgICAg
ICAnZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vVHJlZVNjb3Bl
QWRvcHRlci5oJywKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9UcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9VSUV2ZW50LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQwY2Yz
OTVlOTNiZmQ4N2IxZmNhYmFhYjc4ZGY2ZmJlNTliOWNiYmMuLmIxM2NmZDU5OTBlYjJiNGU5MjNl
Yjg1NTE2ZDY5NzgwNWYzNzUyOTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC01MTgzMCw2ICs1MTgzMCw2MiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVNjb3BlQWRvcHRlci5j
cHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxUcmVlU2NvcGVBZG9wdGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxUcmVlV2Fsa2VyLmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Y4YmZjN2FlODIyNzMxYWUzYTdjNGRkNDQ2MTc2Yjky
ZTg2ZTNhNS4uZjM0MWZjZjMxYjNlMDk3ZjY4MDc1MDQ2YjA2N2Y2MmI2YWU3ZGIxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzUxMSw2ICszNTExLDggQEAKIAkJQTc3OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5
NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLzsgfTsKIAkJQTc3QjQxQTAx
MkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8q
IFRleHRFdmVudElucHV0VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE3N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0QwMDEx
MTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzdFMUZFRjE0QUFDQjZFMDA1QjdDQjYgLyog
VHJlZVNjb3BlQWRvcHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5j
cHAgKi87IH07CisJCUE3N0UxRkYwMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZF
RTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oICovOyB9OwogCQlBNzgxQzZB
NzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8q
IERvY3VtZW50TWFya2VyLmNwcCAqLzsgfTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8q
IENsaXBib2FyZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKIAkJ
QTc4RTUyNkYxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RDEzNDZCRDE3
MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTEwNzg0LDYgKzEw
Nzg2LDggQEAKIAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5w
dXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIw
MEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGV4dENoZWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3N0UxRkVE
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyZWVTY29wZUFkb3B0ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRv
cHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYy
QSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEb2N1bWVudE1hcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTM5LDYgKzIxNTQzLDgg
QEAKIAkJCQkzN0ZENDI5NzExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCAqLywK
IAkJCQkxNEQ2NEI1QTEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCAqLywKIAkJCQkx
NEQ2NEI1QjEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmggKi8sCisJCQkJQTc3RTFGRUQx
NEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuY3BwICovLAorCQkJCUE3N0UxRkVF
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggKi8sCiAJCQkJODU0RkU3MkUw
QTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwICovLAogCQkJCTg1NEZFNzJGMEEyMjk3
QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggKi8sCiAJCQkJMUE3NTBEM0MwQTkwREUzNTAwMEZG
MjE1IC8qIFRyZWVXYWxrZXIuaWRsICovLApAQCAtMjQ3OTIsNiArMjQ3OTgsNyBAQAogCQkJCTg1
NEZFNzM3MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3RkQ0Mjk4MTE4MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTRENjRCNUQxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTc3RTFGRjAxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTlEMkM1MENFQTZGNjEwMEZGNTA3QSAvKiBUcmVlU2hh
cmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJl
ZVdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjhBNjgxMEY2NTlDQzAwOEM3ODEzIC8q
IFR5cGVzZXR0aW5nRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjUsNiArMjc3MzIs
NyBAQAogCQkJCTQ5RTkxMUQxMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzYwQTIyOTdCRTAwNThEN0FE
IC8qIFRyYXZlcnNhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEQ2NEI1QzEzNEE1QjZCMDBF
NThGREEgLyogVHJlZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3N0UxRkVGMTRBQUNC
NkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1
NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzMzA5RTE5MDk5RTY0OTIwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1MDMxQjREMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDQ5Y2FhOGUy
MTA5NGJlNDU4MTgyZTMwNDM1YzFmNDY4NDdmODllMGQuLmQ1Y2QwOWI5ZmRhZjk5N2Y0NzgwZjIz
ZjE2NWNiZTdiY2E0NzA4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAg
LTk5LDcgKzk5LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjp0YWtlQWxsQ2hpbGRyZW5Gcm9tKENv
bnRhaW5lck5vZGUqIG9sZFBhcmVudCkKICAgICAgICAgLy8gRklYTUU6IFRvZ2V0aGVyIHdpdGgg
YWRvcHROb2RlIGFib3ZlLCB0aGUgdHJlZSBzY29wZSBtaWdodCBnZXQgdXBkYXRlZCByZWN1cnNp
dmVseSB0d2ljZQogICAgICAgICAvLyAoaWYgdGhlIGRvY3VtZW50IGNoYW5nZWQgb3Igb2xkUGFy
ZW50IHdhcyBpbiBhIHNoYWRvdyB0cmVlLCBBTkQgKnRoaXMgaXMgaW4gYSBzaGFkb3cgdHJlZSku
CiAgICAgICAgIC8vIENhbiB3ZSBkbyBiZXR0ZXI/Ci0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2Nv
cGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElm
TmVlZGVkKGNoaWxkLmdldCgpKTsKICAgICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5h
dHRhY2hlZCgpKQogICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwogICAgIH0KQEAgLTE3NSw3
ICsxNzUsNyBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsK
ICNlbmRpZgogCi0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2Nv
cGUoKSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAg
ICAgICBpbnNlcnRCZWZvcmVDb21tb24obmV4dC5nZXQoKSwgY2hpbGQpOwogCkBAIC0zMjksNyAr
MzI5LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBjaGlsZC5nZXQoKSwgdGhp
cyk7CiAjZW5kaWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJl
ZVNjb3BlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQo
KSk7CiAKICAgICAgICAgLy8gQWRkIGNoaWxkIGFmdGVyICJwcmV2Ii4KICAgICAgICAgZm9yYmlk
RXZlbnREaXNwYXRjaCgpOwpAQCAtNTA5LDcgKzUwOSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cmVtb3ZlQmV0d2VlbihOb2RlKiBwcmV2aW91c0NoaWxkLCBOb2RlKiBuZXh0Q2hpbGQsIE5vZGUq
IG9sCiAgICAgb2xkQ2hpbGQtPnNldE5leHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQ
YXJlbnQoMCk7CiAKLSAgICBvbGRDaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9jdW1l
bnQoKSk7CisgICAgZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRDaGlsZCk7CiAKICAgICBh
bGxvd0V2ZW50RGlzcGF0Y2goKTsKIH0KQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIENvbnRhaW5l
ck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkKICAgICAgICAgbi0+c2V0UHJldmlvdXNTaWJsaW5nKDAp
OwogICAgICAgICBuLT5zZXROZXh0U2libGluZygwKTsKICAgICAgICAgbi0+c2V0UGFyZW50KDAp
OwotICAgICAgICBuLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICAg
ICAgZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChuLmdldCgpKTsKIAogICAgICAgICBtX2ZpcnN0
Q2hpbGQgPSBuZXh0OwogICAgICAgICBpZiAobiA9PSBtX2xhc3RDaGlsZCkKQEAgLTY0OSw3ICs2
NDksNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNl
bmRpZgogCi0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUo
KSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAgICAg
ICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAogICAgICAgICBmb3JiaWRF
dmVudERpc3BhdGNoKCk7CkBAIC02OTcsNyArNjk3LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpw
YXJzZXJBZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkKQogICAgIE5vZGUqIGxhc3Qg
PSBtX2xhc3RDaGlsZDsKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIHRha2UgYSBQ
YXNzUmVmUHRyLgogICAgIGFwcGVuZENoaWxkVG9Db250YWluZXI8Tm9kZSwgQ29udGFpbmVyTm9k
ZT4obmV3Q2hpbGQuZ2V0KCksIHRoaXMpOwotICAgIG5ld0NoaWxkLT5zZXRUcmVlU2NvcGVSZWN1
cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQobmV3
Q2hpbGQuZ2V0KCkpOwogICAgIAogICAgIGFsbG93RXZlbnREaXNwYXRjaCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBkMGJjZWNhYTJkMDhkMTIxY2UzOGUxMTRjZTc3ZjJk
ODMzNTdmYTQ4Li41NTA5NDY1M2Y1ZjIzOTQ2ZmQ0NDNlNDg5ZjEzNzMzMzgxNGZiNjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUg
IlRyYW5zZm9ybVNvdXJjZUxpYnhzbHQuY3BwIgogI2luY2x1ZGUgIlRyYXZlcnNhbC5jcHAiCiAj
aW5jbHVkZSAiVHJlZVNjb3BlLmNwcCIKKyNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmNwcCIK
ICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNwcCIKICNpbmNsdWRlICJVSUV2ZW50LmNwcCIKICNpbmNs
dWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDlmNDQ4YzQ5NjM5NTlhYWIzMGI1ODI4ZmU2YTZlZTMwNTllMjViZjMuLmM4ZGM1NzQ5NzU1NWYw
OWJjYzg5YWY0Yzg2ZmU1NzIzODhmMjUwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NzEyLDcgKzcxMiw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldERvY1R5cGUoUGFzc1JlZlB0cjxEb2N1
bWVudFR5cGU+IGRvY1R5cGUpCiAgICAgQVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5cGUpOwog
ICAgIG1fZG9jVHlwZSA9IGRvY1R5cGU7CiAgICAgaWYgKG1fZG9jVHlwZSkKLSAgICAgICAgbV9k
b2NUeXBlLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0aGlzKTsKKyAgICAgICAgdGhpcy0+YWRv
cHRJZk5lZWRlZChtX2RvY1R5cGUuZ2V0KCkpOwogfQogCiBET01JbXBsZW1lbnRhdGlvbiogRG9j
dW1lbnQ6OmltcGxlbWVudGF0aW9uKCkKQEAgLTk0Miw3ICs5NDIsNyBAQCBQYXNzUmVmUHRyPE5v
ZGU+IERvY3VtZW50OjphZG9wdE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgICAgICAgICAgc291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxk
KHNvdXJjZS5nZXQoKSwgZWMpOwogICAgIH0KIAotICAgIHNvdXJjZS0+c2V0VHJlZVNjb3BlUmVj
dXJzaXZlbHkodGhpcyk7CisgICAgdGhpcy0+YWRvcHRJZk5lZWRlZChzb3VyY2UuZ2V0KCkpOwog
CiAgICAgcmV0dXJuIHNvdXJjZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAzNjUyNDNj
OGJiYWU0NjM1Mzk5MTBiM2Y0NzA3YTRlZjgwY2M2MjJhLi40NzZhZDQ1ZDU1MWFhYjMzODUzNzhl
OGI0N2QxNDAyMDljNGE3NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjE4LDcgKzEy
MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQogICAgICAgICAgICAgb2xk
Um9vdC0+ZGV0YWNoKCk7CiAKICAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAg
ICAgICAgb2xkUm9vdC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAg
ICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7CiAgICAgICAgIGlm
IChvbGRSb290LT5pbkRvY3VtZW50KCkpCiAgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJv
bURvY3VtZW50KCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxYTlkY2Y3MGRh
NWU3NmJiNTM2ZmQ4NTZlZTI0OGJmNjljZGE1MjA1Li5iOWRmMjEwNmNiNjIxNDA2MmQ1N2JiZjJk
Zjk4YmMwNzQ4Y2Y5NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5j
bHVkZSAiVGFnTm9kZUxpc3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2
ZW50LmgiCisjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgogI2luY2x1ZGUgIlVJRXZlbnQu
aCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaCIKQEAgLTQxNywzNyArNDE4LDI5IEBAIE5vZGU6On5Ob2RlKCkKICAgICAg
ICAgZG9jLT5ndWFyZERlcmVmKCk7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCi0KLXN0YXRpYyBib29s
IGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkOwotc3RhdGljIERvY3VtZW50KiBvbGREb2N1
bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aDsKLQotI2VuZGlmCi0gICAgCiB2
b2lkIE5vZGU6OnNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQo
IWluRG9jdW1lbnQoKSB8fCBtX2RvY3VtZW50ID09IGRvY3VtZW50KTsKICAgICBpZiAoaW5Eb2N1
bWVudCgpIHx8IG1fZG9jdW1lbnQgPT0gZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGRvY3VtZW50LT5ndWFyZFJlZigpOwotCi0gICAgaWYgKG1fZG9jdW1lbnQpIHsKLSAgICAgICAg
bV9kb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50
KTsKLSAgICAgICAgbV9kb2N1bWVudC0+Z3VhcmREZXJlZigpOwotICAgIH0KLQotICAgIERvY3Vt
ZW50KiBvbGREb2N1bWVudCA9IG1fZG9jdW1lbnQ7CiAgICAgbV9kb2N1bWVudCA9IGRvY3VtZW50
OworfQogCi0jaWZuZGVmIE5ERUJVRwotICAgIGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVk
ID0gZmFsc2U7Ci0gICAgb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdp
dGggPSBvbGREb2N1bWVudDsKLSNlbmRpZgorYm9vbCBOb2RlOjpoYXNOb2RlTGlzdHMoKSBjb25z
dAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPm5vZGVMaXN0cygp
OworfQogCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQpOwordm9pZCBOb2Rl
OjpzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKiBzY29wZSkKK3sKKyAgICBpZiAoIXNjb3BlKSB7Cisg
ICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKQorICAgICAgICAgICAgcmFyZURhdGEoKS0+c2V0VHJl
ZVNjb3BlKDApOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgQVNTRVJUKGRpZE1vdmVU
b05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRUcmVlU2Nv
cGUoc2NvcGUpOwogfQogCiBUcmVlU2NvcGUqIE5vZGU6OnRyZWVTY29wZSgpIGNvbnN0CkBAIC00
NTksNTQgKzQ1Miw2IEBAIFRyZWVTY29wZSogTm9kZTo6dHJlZVNjb3BlKCkgY29uc3QKICAgICBy
ZXR1cm4gc2NvcGUgPyBzY29wZSA6IG1fZG9jdW1lbnQ7CiB9CiAKLXZvaWQgTm9kZTo6c2V0VHJl
ZVNjb3BlUmVjdXJzaXZlbHkoVHJlZVNjb3BlKiBuZXdUcmVlU2NvcGUpCi17Ci0gICAgQVNTRVJU
KHRoaXMpOwotICAgIEFTU0VSVCghaXNEb2N1bWVudE5vZGUoKSk7Ci0gICAgQVNTRVJUKG5ld1Ry
ZWVTY29wZSk7Ci0gICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotCi0gICAgVHJlZVNj
b3BlKiBjdXJyZW50VHJlZVNjb3BlID0gdHJlZVNjb3BlKCk7Ci0gICAgaWYgKGN1cnJlbnRUcmVl
U2NvcGUgPT0gbmV3VHJlZVNjb3BlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBEb2N1bWVudCog
Y3VycmVudERvY3VtZW50ID0gZG9jdW1lbnQoKTsKLSAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQg
PSBuZXdUcmVlU2NvcGUtPmRvY3VtZW50KCk7Ci0gICAgLy8gSWYgYW4gZWxlbWVudCBpcyBtb3Zl
ZCBmcm9tIGEgZG9jdW1lbnQgYW5kIHRoZW4gZXZlbnR1YWxseSBiYWNrIGFnYWluIHRoZSBjb2xs
ZWN0aW9uIGNhY2hlIGZvcgotICAgIC8vIHRoYXQgZWxlbWVudCBtYXkgY29udGFpbiBzdGFsZSBk
YXRhIGFzIGNoYW5nZXMgbWFkZSB0byBpdCB3aWxsIGhhdmUgdXBkYXRlZCB0aGUgRE9NVHJlZVZl
cnNpb24KLSAgICAvLyBvZiB0aGUgZG9jdW1lbnQgaXQgd2FzIG1vdmVkIHRvLiBCeSBpbmNyZWFz
aW5nIHRoZSBET01UcmVlVmVyc2lvbiBvZiB0aGUgZG9uYXRpbmcgZG9jdW1lbnQgaGVyZQotICAg
IC8vIHdlIGVuc3VyZSB0aGF0IHRoZSBjb2xsZWN0aW9uIGNhY2hlIHdpbGwgYmUgaW52YWxpZGF0
ZWQgYXMgbmVlZGVkIHdoZW4gdGhlIGVsZW1lbnQgaXMgbW92ZWQgYmFjay4KLSAgICBpZiAoY3Vy
cmVudERvY3VtZW50ICYmIGN1cnJlbnREb2N1bWVudCAhPSBuZXdEb2N1bWVudCkKLSAgICAgICAg
Y3VycmVudERvY3VtZW50LT5pbmNET01UcmVlVmVyc2lvbigpOwotCi0gICAgZm9yIChOb2RlKiBu
b2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsK
LSAgICAgICAgaWYgKG5ld1RyZWVTY29wZSA9PSBuZXdEb2N1bWVudCkgewotICAgICAgICAgICAg
aWYgKG5vZGUtPmhhc1JhcmVEYXRhKCkpCi0gICAgICAgICAgICAgICAgbm9kZS0+cmFyZURhdGEo
KS0+c2V0VHJlZVNjb3BlKDApOwotICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgbmV3IGRvY3Vt
ZW50IHRyZWUgc2NvcGUgd2lsbCBiZSBoYW5kbGVkIGltcGxpY2l0bHkKLSAgICAgICAgICAgIC8v
IGJ5IHNldERvY3VtZW50KCkgYmVsb3cuCi0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbm9k
ZS0+ZW5zdXJlUmFyZURhdGEoKS0+c2V0VHJlZVNjb3BlKG5ld1RyZWVTY29wZSk7Ci0KLSAgICAg
ICAgaWYgKG5vZGUtPmhhc1JhcmVEYXRhKCkgJiYgbm9kZS0+cmFyZURhdGEoKS0+bm9kZUxpc3Rz
KCkpIHsKLSAgICAgICAgICAgIG5vZGUtPnJhcmVEYXRhKCktPm5vZGVMaXN0cygpLT5pbnZhbGlk
YXRlQ2FjaGVzKCk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSkKLSAgICAgICAg
ICAgICAgICBjdXJyZW50VHJlZVNjb3BlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7Ci0gICAgICAg
ICAgICBuZXdUcmVlU2NvcGUtPmFkZE5vZGVMaXN0Q2FjaGUoKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsKLQotICAgICAgICBpZiAoIW5vZGUt
PmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoU2hh
ZG93Um9vdCogc2hhZG93Um9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpKSB7Ci0g
ICAgICAgICAgICBzaGFkb3dSb290LT5zZXRQYXJlbnRUcmVlU2NvcGUobmV3VHJlZVNjb3BlKTsK
LSAgICAgICAgICAgIGlmIChjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQpCi0gICAgICAg
ICAgICAgICAgc2hhZG93Um9vdC0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShuZXdEb2N1bWVudCk7
Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIE5vZGVSYXJlRGF0YSogTm9kZTo6cmFyZURhdGEoKSBj
b25zdAogewogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKQEAgLTg1MiwxOSArNzk3LDYgQEAg
aW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290KE5vZGUqIG5vZGUpCiAgICAgcmV0
dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgp
IDogMDsKIH0KIAotdm9pZCBOb2RlOjpzZXREb2N1bWVudFJlY3Vyc2l2ZWx5KERvY3VtZW50KiBu
ZXdEb2N1bWVudCkKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQoKSAhPSBuZXdEb2N1bWVudCk7Ci0K
LSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VO
ZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdEb2N1bWVudCk7
Ci0gICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290KG5vZGUpKQot
ICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1bWVudFJlY3Vyc2l2ZWx5KG5ld0RvY3VtZW50KTsK
LSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdl
VHlwZSBjaGFuZ2VUeXBlKQogewogICAgIG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgflN0
eWxlQ2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBlOwpAQCAtMjQwOCwxMiArMjM0MCw3IEBAIHZvaWQg
Tm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAKIHZvaWQgTm9kZTo6ZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogewotICAgIEFTU0VSVCghZGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1lbnQsIG9sZERv
Y3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoKTsK
LQotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IHRy
dWU7Ci0jZW5kaWYKKyAgICBUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1
bWVudFdhc0NhbGxlZChvbGREb2N1bWVudCk7CiAKICAgICAvLyBGSVhNRTogRXZlbnQgbGlzdGVu
ZXIgdHlwZXMgZm9yIHRoaXMgbm9kZSBzaG91bGQgYmUgc2V0IG9uIHRoZSBuZXcgb3duZXIgZG9j
dW1lbnQgaGVyZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZWE0OWY2MGY1NWU2MGI4M2RkZGNjM2RmYjkw
YjNlZDNhYjM3MGUzNy4uMDBlYzE4M2Y0YmMzMmMzMWZiYjE1ZDJmZjY1MGZlYzY1NDI1MjE4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgZW51bSBTdHlsZUNoYW5nZVR5cGUgewog
Y2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwg
cHVibGljIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT4gewogICAgIGZyaWVuZCBjbGFzcyBEb2N1
bWVudDsKICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOworICAgIGZyaWVuZCBjbGFzcyBUcmVl
U2NvcGVBZG9wdGVyOwogCiBwdWJsaWM6CiAgICAgZW51bSBOb2RlVHlwZSB7CkBAIC0zODMsOSAr
Mzg0LDYgQEAgcHVibGljOgogCiAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUoKSBjb25zdDsKIAot
ICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgp
KS4KLSAgICB2b2lkIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSopOwotCiAgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbm9kZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBkb2N1bWVu
dCBhbmQgaXMgaW4gaXRzIGFzc29jaWF0ZWQgZG9jdW1lbnQncwogICAgIC8vIG5vZGUgdHJlZSwg
ZmFsc2Ugb3RoZXJ3aXNlLgogICAgIGJvb2wgaW5Eb2N1bWVudCgpIGNvbnN0IApAQCAtNjk1LDkg
KzY5Myw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFySGFzQ3VzdG9tU3R5bGVGb3JSZW5k
ZXJlcigpIHsgY2xlYXJGbGFnKEhhc0N1c3RvbVN0eWxlRm9yUmVuZGVyZXJGbGFnKTsgfQogCiBw
cml2YXRlOgotICAgIC8vIERvIG5vdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hhbmdlIHRoZSBkb2N1
bWVudCBvZiBhIG5vZGUgdW50aWwgYWZ0ZXIgdGhlIG5vZGUgaGFzIGJlZW4KLSAgICAvLyByZW1v
dmVkIGZyb20gaXRzIHByZXZpb3VzIGRvY3VtZW50LgotICAgIHZvaWQgc2V0RG9jdW1lbnRSZWN1
cnNpdmVseShEb2N1bWVudCopOworICAgIC8vIFRoZXNlIEFQSSBzaG91bGQgYmUgb25seSB1c2Vk
IGZvciBhIHRyZWUgc2NvcGUgbWlncmF0aW9uLgorICAgIGJvb2wgaGFzTm9kZUxpc3RzKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAgICAgdm9pZCBzZXREb2N1
bWVudChEb2N1bWVudCopOwogCiAgICAgZW51bSBFZGl0YWJsZUxldmVsIHsgRWRpdGFibGUsIFJp
Y2hseUVkaXRhYmxlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDM1YmFkNTFjZTkx
MDE4ODE5YjJkYzg2NDAyZTVkZmRlNzkwNDc1NmYuLjdkYTAyYjgyNzJhYWRmNzY4ODdlZDYxMWJh
MWY0OWIwNGQ0ODgyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM3LDUgKzEzOCwxNiBAQCBib29sIFRyZWVT
Y29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCh0
aGlzKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5pc0RvY3VtZW50Tm9k
ZSgpKTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAgVHJlZVNj
b3BlQWRvcHRlciBhZG9wdGVyKG5vZGUsIHRoaXMpOworICAgIGlmICghYWRvcHRlci5pc1N0YXlp
bmdTYW1lU2NvcGUoKSkKKyAgICAgICAgYWRvcHRlci5leGVjdXRlKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IGNiZTNlZTA3YWE5NmU1
YWY0NWM4NjdjZThlYjM2ZTZmMTM3MDhhZmQuLmZkNmMzY2I4ZGY5ZWY1YTkwMWYxNjNjMmE2NGM2
YmIwNDljZDAwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CiAKKyAg
ICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5k
Q2hpbGQoKSkuCisgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKKwogcHJvdGVjdGVkOgog
ICAgIFRyZWVTY29wZShEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVDb250YWlu
ZXIpOwogICAgIHZpcnR1YWwgflRyZWVTY29wZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMTA1ODMxZjU5N2M3ZmRhZjFjZTdmZGM2YjRjY2Ux
ZTQxMzQ3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
QWRvcHRlci5jcHAKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RyZWVTY29wZUFkb3B0ZXI6OlRyZWVTY29wZUFkb3B0ZXIoTm9kZSogbWlncmF0aW9u
Um9vdCwgVHJlZVNjb3BlKiBkZXN0aW5hdGlvbikKKyAgICA6IG1fbWlncmF0aW9uUm9vdChtaWdy
YXRpb25Sb290KQorICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKKyAgICAsIG1fZGVw
YXJ0dXJlKG1pZ3JhdGlvblJvb3QtPnRyZWVTY29wZSgpKQoreworICAgIEFTU0VSVChkZXN0aW5h
dGlvbik7Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5v
ZGUqIHJvb3QpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzU3RheWluZ1NhbWVTY29wZSgpKTsKKwor
ICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2
ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKKyAgICAvLyB0aGF0
IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2ls
bCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCisgICAgLy8gb2YgdGhlIGRvY3VtZW50
IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhl
IGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKKyAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVj
dGlvbiBjYWNoZSB3aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50
IGlzIG1vdmVkIGJhY2suCisgICAgRG9jdW1lbnQqIGRlcGFydHVyZURvY3VtZW50ID0gbV9kZXBh
cnR1cmUtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQgPSBt
X2Rlc3RpbmF0aW9uLT5kb2N1bWVudCgpOworICAgIGJvb2wgc2hvdWxkTW92ZVRvTmV3RG9jdW1l
bnQgPSBkZXBhcnR1cmVEb2N1bWVudCAhPSBkZXN0aW5hdGlvbkRvY3VtZW50OworICAgIGlmIChk
ZXBhcnR1cmVEb2N1bWVudCAmJiBzaG91bGRNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgZGVw
YXJ0dXJlRG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9uKCk7CisKKyAgICBmb3IgKE5vZGUqIG5v
ZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewor
ICAgICAgICAvLyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhh
bmRsZWQgaW1wbGljaXRseQorICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgorICAg
ICAgICBub2RlLT5zZXRUcmVlU2NvcGUoZGVzdGluYXRpb25Eb2N1bWVudCA9PSBtX2Rlc3RpbmF0
aW9uID8gMCA6IG1fZGVzdGluYXRpb24pOworCisgICAgICAgIGlmIChub2RlLT5oYXNOb2RlTGlz
dHMoKSkgeworICAgICAgICAgICAgaWYgKG1fZGVwYXJ0dXJlKQorICAgICAgICAgICAgICAgIG1f
ZGVwYXJ0dXJlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7CisgICAgICAgICAgICBtX2Rlc3RpbmF0
aW9uLT5hZGROb2RlTGlzdENhY2hlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2hvdWxk
TW92ZVRvTmV3RG9jdW1lbnQpCisgICAgICAgICAgICBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQobm9k
ZSwgZGVwYXJ0dXJlRG9jdW1lbnQsIGRlc3RpbmF0aW9uRG9jdW1lbnQpOworCisgICAgICAgIGlm
IChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9yKG5vZGUpKSB7CisgICAgICAgICAg
ICBzaGFkb3ctPnNldFBhcmVudFRyZWVTY29wZShtX2Rlc3RpbmF0aW9uKTsKKyAgICAgICAgICAg
IGlmIChzaG91bGRNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBtb3ZlVHJlZVRv
TmV3RG9jdW1lbnQoc2hhZG93LCBkZXBhcnR1cmVEb2N1bWVudCwgZGVzdGluYXRpb25Eb2N1bWVu
dCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRy
ZWVUb05ld0RvY3VtZW50KFNoYWRvd1Jvb3QqIHJvb3QsIERvY3VtZW50KiBkZXBhcnR1cmVEb2N1
bWVudCwgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0Cit7CisgICAgZm9yIChO
b2RlKiBub2RlID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUocm9v
dCkpIHsKKyAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUsIGRlcGFydHVyZURvY3Vt
ZW50LCBkZXN0aW5hdGlvbkRvY3VtZW50KTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRv
dyA9IHNoYWRvd1Jvb3RGb3Iobm9kZSkpCisgICAgICAgICAgICBtb3ZlVHJlZVRvTmV3RG9jdW1l
bnQoc2hhZG93LCBkZXBhcnR1cmVEb2N1bWVudCwgZGVzdGluYXRpb25Eb2N1bWVudCk7CisgICAg
fQorfQorCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGJvb2wgZGlkTW92ZVRvTmV3RG9jdW1lbnRX
YXNDYWxsZWQ7CitzdGF0aWMgRG9jdW1lbnQqIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1l
bnRXYXNDYWxsZWRXaXRoOworCit2b2lkIFRyZWVTY29wZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVU
b05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KiBvbGREb2N1bWVudCkKK3sKKyAgICBBU1NF
UlQoIWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9s
ZERvY3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkV2l0aCk7CisgICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQgPSB0cnVl
OworfQorI2VuZGlmCisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3Vt
ZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBkZXBhcnR1cmVEb2N1bWVudCwgRG9jdW1lbnQqIGRl
c3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5pbkRvY3VtZW50
KCkgfHwgZGVwYXJ0dXJlRG9jdW1lbnQgIT0gZGVzdGluYXRpb25Eb2N1bWVudCk7CisKKyAgICBk
ZXN0aW5hdGlvbkRvY3VtZW50LT5ndWFyZFJlZigpOworICAgIGlmIChkZXBhcnR1cmVEb2N1bWVu
dCkgeworICAgICAgICBkZXBhcnR1cmVEb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0Rv
Y3VtZW50KG5vZGUsIGRlc3RpbmF0aW9uRG9jdW1lbnQpOworICAgICAgICBkZXBhcnR1cmVEb2N1
bWVudC0+Z3VhcmREZXJlZigpOworICAgIH0KKworICAgIG5vZGUtPnNldERvY3VtZW50KGRlc3Rp
bmF0aW9uRG9jdW1lbnQpOworCisjaWZuZGVmIE5ERUJVRworICAgIGRpZE1vdmVUb05ld0RvY3Vt
ZW50V2FzQ2FsbGVkID0gZmFsc2U7CisgICAgb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVu
dFdhc0NhbGxlZFdpdGggPSBkZXBhcnR1cmVEb2N1bWVudDsKKyNlbmRpZgorCisgICAgbm9kZS0+
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoZGVwYXJ0dXJlRG9jdW1lbnQpOworICAgIEFTU0VSVChkaWRN
b3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlQWRvcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTRmNjY4M2RjYWQ5ZDAxZTQ5NTY3ODU5ZmM1N2Iz
ZTM2YTM4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
QWRvcHRlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI2lmbmRlZiBU
cmVlU2NvcGVBZG9wdGVyX2gKKyNkZWZpbmUgVHJlZVNjb3BlQWRvcHRlcl9oCisKKyNpbmNsdWRl
ICJFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHJlZVNjb3BlQWRv
cHRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVHJlZVNjb3BlQWRvcHRlcihOb2RlKiBtaWdy
YXRpb25Sb290LCBUcmVlU2NvcGUqIGRlc3RpbmF0aW9uKTsKKworICAgIHZvaWQgZXhlY3V0ZSgp
IGNvbnN0IHsgbW92ZVRyZWVUb05ld1Njb3BlKG1fbWlncmF0aW9uUm9vdCk7IH0KKyAgICBib29s
IGlzU3RheWluZ1NhbWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwYXJ0dXJlID09IG1fZGVz
dGluYXRpb247IH0KKworI2lmZGVmIE5ERUJVRworICAgIHN0YXRpYyB2b2lkIGVuc3VyZURpZE1v
dmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KikgeyB9CisjZWxzZQorICAgIHN0YXRp
YyB2b2lkIGVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50Kik7Cisj
ZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIG1vdmVUcmVlVG9OZXdTY29wZShOb2RlKikgY29u
c3Q7CisgICAgdm9pZCBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoU2hhZG93Um9vdCosIERvY3VtZW50
KiBkZXBhcnR1cmVEb2N1bWVudCwgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0
OworICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogZGVwYXJ0
dXJlRG9jdW1lbnQsIERvY3VtZW50KiBkZXN0aW5hdGlvbkRvY3VtZW50KSBjb25zdDsKKworICAg
IHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5vZGUqKTsKKworICAgIE5vZGUqIG1f
bWlncmF0aW9uUm9vdDsKKyAgICBUcmVlU2NvcGUqIG1fZGVzdGluYXRpb247CisgICAgVHJlZVNj
b3BlKiBtX2RlcGFydHVyZTsKK307CisKK2lubGluZSBTaGFkb3dSb290KiBUcmVlU2NvcGVBZG9w
dGVyOjpzaGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxl
bWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKK30KKworfQor
CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121217</attachid>
            <date>2012-01-04 22:21:40 -0800</date>
            <delta_ts>2012-01-04 22:48:40 -0800</delta_ts>
            <desc>Updated to ToT</desc>
            <filename>bug-75290-20120105152138.patch</filename>
            <type>text/plain</type>
            <size>31482</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I2NmFjOGEzMWRjYThi
ZjQ5ZTQwYWIzODUyNjE4NzE0OWEwOWE4My4uMmRiYjVmMmMyNmE2NDBkYjJmNTM1NDRkYzkyNWM4
M2ZjYTdiZjViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTW92aW5nIGJldHdlZW4gVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVBZG9wdGVyLiBCeSBkb2lu
ZyB0aGlzLCB0aGUgaWRlYSBvZgorICAgICAgICBtb3ZpbmcgYSBub2RlIGZyb20gc2NvcGUgdG8g
c2NvcGUsIHRoYXQgd2FzIG9yaWdpbmFsbHkgaGlkZGVuCisgICAgICAgIGJlaGluZCB0aGUgZm9y
ZXN0IG9mIE5vZGUgQVBJcywgaGFzIGJlY29tZSBjbGVhcmVyLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIGZvciBCdWcgNTk4MTYuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogRm9sbG93ZWQgdGhlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDogRm9sbG93ZWQgdGUgcmVuYW1pbmcuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0RG9jVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRvcHROb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IEZvbGxvd2VkIHRlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aGFzTm9kZUxpc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWRNb3Zl
VG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlLmg6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQpOiBtb3ZlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vy
c2l2ZWx5KCkKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6VHJlZVNjb3BlQWRvcHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0Rv
Y3VtZW50V2FzQ2FsbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1v
dmVOb2RlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9w
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6OmlzU3Rh
eWluZ1NhbWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpzaGFk
b3dSb290Rm9yKToKKwogMjAxMi0wMS0wNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDA4NC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjg4ZTBmMTQxM2Q5OWI4NDhkMzRmNTgwODI2MDQwYzUz
ZWMwN2NlNy4uOWYzZDE1OGRmOTA0YzJjOTQ2ODY5MmU5MmVhYzYyNzdmYTZkYTEyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTYxMCw2ICs2MTAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZG9tL1RyYW5zZm9ybVNvdXJjZUxpYnhzbHQuY3BwCiAgICAgZG9tL1RyYXZlcnNhbC5jcHAK
ICAgICBkb20vVHJlZVNjb3BlLmNwcAorICAgIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAogICAg
IGRvbS9UcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9VSUV2ZW50LmNwcAogICAgIGRvbS9VSUV2ZW50
V2l0aEtleVN0YXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWFkNmRh
ZGQzZmQwZmIyNWI4MzAyNDk1MjQ3Yjc3YTk1OWM3ZmNkMy4uODg5YTM1YWUxNmQ0ZWUzMDM2MWJh
NGJkMTBkZGEzNjgzZjg4YjExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
Njc0LDYgKzE2NzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlRGVwdGhMaW1pdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCmluZGV4IGIxMmY1ZTU3ODY2ODdkNTA0MGNmYzNlMjEzZGY0NWNiNTcxNjEy
NDcuLjVlN2Y1YWY1ZTc2MzIyNDc3Y2NiZjhiMDlmMmQ0OWZjOGI2NTg4NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQpAQCAtNTc0LDYgKzU3NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ub3VjaExpc3QuY3Bw
IFwKICAgICBkb20vVHJhdmVyc2FsLmNwcCBcCiAgICAgZG9tL1RyZWVTY29wZS5jcHAgXAorICAg
IGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBcCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwIFwKICAg
ICBkb20vVUlFdmVudC5jcHAgXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCBcCkBA
IC0xNjcwLDYgKzE2NzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vVHJhdmVyc2FsLmggXAog
ICAgIGRvbS9UcmVlRGVwdGhMaW1pdC5oIFwKICAgICBkb20vVHJlZVNjb3BlLmggXAorICAgIGRv
bS9UcmVlU2NvcGVBZG9wdGVyLmggXAogICAgIGRvbS9UcmVlV2Fsa2VyLmggXAogICAgIGRvbS9V
SUV2ZW50LmggXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDgzMDVmY2VkOGVhZjYzMDlmN2U2YmM5YmY3NjFiMDIxYWMwNDQ4ODUuLjBlMTRlNDBh
ODM4MTgwNWQ4NmQzNzI1YzU5OGNlMzI5ZmRmMmY1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0
NTcsNiArNTQ1Nyw4IEBACiAgICAgICAgICAgICAnZG9tL1RyZWVEZXB0aExpbWl0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9UcmVlU2NvcGUuY3BwJywKICAgICAgICAgICAgICdkb20vVHJlZVNjb3Bl
LmgnLAorICAgICAgICAgICAgJ2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCcsCisgICAgICAgICAg
ICAnZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIu
Y3BwJywKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20v
VUlFdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCBkMGNmMzk1ZTkzYmZkODdiMWZjYWJhYWI3OGRmNmZiZTU5YjljYmJjLi5iMTNj
ZmQ1OTkwZWIyYjRlOTIzZWI4NTUxNmQ2OTc4MDVmMzc1MjkxIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTE4MzAsNiArNTE4MzAsNjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFRy
ZWVTY29wZUFkb3B0ZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVNjb3BlQWRvcHRlci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVdhbGtlci5j
cHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdmOGJmYzdhZTgyMjczMWFl
M2E3YzRkZDQ0NjE3NmI5MmU4NmUzYTUuLmYzNDFmY2YzMWIzZTA5N2Y2ODA3NTA0NmIwNjdmNjJi
NmFlN2RiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTM1MTEsNiArMzUxMSw4IEBACiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4
NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87
IH07CiAJCUE3N0I0MUEwMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0I0MTlGMTJF
Njc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMg
LyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc3RTFGRUYxNEFB
Q0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRy
ZWVTY29wZUFkb3B0ZXIuY3BwICovOyB9OworCQlBNzdFMUZGMDE0QUFDQjZFMDA1QjdDQjYgLyog
VHJlZVNjb3BlQWRvcHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCAq
LzsgfTsKIAkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODFDNkE2MTM4
MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi87IH07CiAJCUE3ODQ5NDFCMEI1
RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2Fy
ZC5jcHAgKi87IH07CiAJCUE3OEU1MjZGMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi87IH07
CkBAIC0xMDc4NCw2ICsxMDc4Niw4IEBACiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBK
U0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzdCNDE5RjEyRTY3NUE5MDA1NDM0
M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRFdmVudElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2
IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHJlZVNjb3BlQWRvcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzgxQzZB
NjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0
ZXJTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1ldGVyU2hhZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTUzOSw2ICsyMTU0Myw4IEBACiAJCQkJMzdGRDQyOTcxMTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVE
ZXB0aExpbWl0LmggKi8sCiAJCQkJMTRENjRCNUExMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29w
ZS5jcHAgKi8sCiAJCQkJMTRENjRCNUIxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oICov
LAorCQkJCUE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAq
LywKKwkJCQlBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oICov
LAogCQkJCTg1NEZFNzJFMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLywKIAkJ
CQk4NTRGRTcyRjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovLAogCQkJCTFBNzUw
RDNDMEE5MERFMzUwMDBGRjIxNSAvKiBUcmVlV2Fsa2VyLmlkbCAqLywKQEAgLTI0NzkyLDYgKzI0
Nzk4LDcgQEAKIAkJCQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzN0ZENDI5ODExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGlt
aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDY0QjVEMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVl
U2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3N0UxRkYwMTRBQUNCNkUwMDVCN0NCNiAvKiBU
cmVlU2NvcGVBZG9wdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE5RDJDNTBDRUE2RjYxMDBG
RjUwN0EgLyogVHJlZVNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3MzkwQTIyOTdC
RTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzI4QTY4MTBG
NjU5Q0MwMDhDNzgxMyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTI3NzI1LDYgKzI3NzMyLDcgQEAKIAkJCQk0OUU5MTFEMTBFRjg2RDQ3MDA5RDBDQUYgLyogVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM2
MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRE
NjRCNUMxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNzdFMUZFRjE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NTRGRTczODBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxOTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0RDBBNDRFRkM3MDBGOTkyRTAgLyog
VUlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAppbmRleCA0OWNhYThlMjEwOTRiZTQ1ODE4MmUzMDQzNWMxZjQ2ODQ3Zjg5ZTBkLi5kNWNkMDli
OWZkYWY5OTdmNDc4MGYyM2YxNjVjYmU3YmNhNDcwOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6dGFrZUFs
bENoaWxkcmVuRnJvbShDb250YWluZXJOb2RlKiBvbGRQYXJlbnQpCiAgICAgICAgIC8vIEZJWE1F
OiBUb2dldGhlciB3aXRoIGFkb3B0Tm9kZSBhYm92ZSwgdGhlIHRyZWUgc2NvcGUgbWlnaHQgZ2V0
IHVwZGF0ZWQgcmVjdXJzaXZlbHkgdHdpY2UKICAgICAgICAgLy8gKGlmIHRoZSBkb2N1bWVudCBj
aGFuZ2VkIG9yIG9sZFBhcmVudCB3YXMgaW4gYSBzaGFkb3cgdHJlZSwgQU5EICp0aGlzIGlzIGlu
IGEgc2hhZG93IHRyZWUpLgogICAgICAgICAvLyBDYW4gd2UgZG8gYmV0dGVyPwotICAgICAgICBj
aGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVl
U2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQoKSk7CiAgICAgICAgIGlmIChhdHRhY2hl
ZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSkKICAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsK
ICAgICB9CkBAIC0xNzUsNyArMTc1LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZv
cmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKICAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgp
LCBjaGlsZCwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVj
dXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRl
ZChjaGlsZCk7CiAKICAgICAgICAgaW5zZXJ0QmVmb3JlQ29tbW9uKG5leHQuZ2V0KCksIGNoaWxk
KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwg
Y2hpbGQuZ2V0KCksIHRoaXMpOwogI2VuZGlmCiAKLSAgICAgICAgY2hpbGQtPnNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICAgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZO
ZWVkZWQoY2hpbGQuZ2V0KCkpOwogCiAgICAgICAgIC8vIEFkZCBjaGlsZCBhZnRlciAicHJldiIu
CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4oTm9kZSogcHJldmlvdXNDaGlsZCwgTm9kZSog
bmV4dENoaWxkLCBOb2RlKiBvbAogICAgIG9sZENoaWxkLT5zZXROZXh0U2libGluZygwKTsKICAg
ICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOwogCi0gICAgb2xkQ2hpbGQtPnNldFRyZWVTY29wZVJl
Y3Vyc2l2ZWx5KGRvY3VtZW50KCkpOworICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xk
Q2hpbGQpOwogCiAgICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiB9CkBAIC01NjQsNyArNTY0LDcg
QEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAgICAgIG4tPnNldFBy
ZXZpb3VzU2libGluZygwKTsKICAgICAgICAgbi0+c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgICAg
IG4tPnNldFBhcmVudCgwKTsKLSAgICAgICAgbi0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9j
dW1lbnQoKSk7CisgICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQobi5nZXQoKSk7CiAK
ICAgICAgICAgbV9maXJzdENoaWxkID0gbmV4dDsKICAgICAgICAgaWYgKG4gPT0gbV9sYXN0Q2hp
bGQpCkBAIC02NDksNyArNjQ5LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm8KICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBj
aGlsZCwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJz
aXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChj
aGlsZCk7CiAKICAgICAgICAgLy8gQXBwZW5kIGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QK
ICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwpAQCAtNjk3LDcgKzY5Nyw3IEBAIHZvaWQg
Q29udGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkK
ICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9k
IHNob3VsZCB0YWtlIGEgUGFzc1JlZlB0ci4KICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyPE5v
ZGUsIENvbnRhaW5lck5vZGU+KG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKLSAgICBuZXdDaGlsZC0+
c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgIHRyZWVTY29wZSgpLT5h
ZG9wdElmTmVlZGVkKG5ld0NoaWxkLmdldCgpKTsKICAgICAKICAgICBhbGxvd0V2ZW50RGlzcGF0
Y2goKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggZDBiY2VjYWEyZDA4ZDEy
MWNlMzhlMTE0Y2U3N2YyZDgzMzU3ZmE0OC4uNTUwOTQ2NTNmNWYyMzk0NmZkNDQzZTQ4OWYxMzcz
MzM4MTRmYjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMjksNiArMTI5
LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCIKICNpbmNsdWRlICJU
cmF2ZXJzYWwuY3BwIgogI2luY2x1ZGUgIlRyZWVTY29wZS5jcHAiCisjaW5jbHVkZSAiVHJlZVNj
b3BlQWRvcHRlci5jcHAiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5jcHAiCiAjaW5jbHVkZSAiVUlF
dmVudC5jcHAiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5ZjQ0OGM0OTYzOTU5YWFiMzBiNTgyOGZlNmE2ZWUzMDU5ZTI1YmYz
Li5jOGRjNTc0OTc1NTVmMDliY2M4OWFmNGM4NmZlNTcyMzg4ZjI1MDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTcxMiw3ICs3MTIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXREb2NUeXBl
KFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQogICAgIEFTU0VSVCghbV9kb2NUeXBl
IHx8ICFkb2NUeXBlKTsKICAgICBtX2RvY1R5cGUgPSBkb2NUeXBlOwogICAgIGlmIChtX2RvY1R5
cGUpCi0gICAgICAgIG1fZG9jVHlwZS0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodGhpcyk7Cisg
ICAgICAgIHRoaXMtPmFkb3B0SWZOZWVkZWQobV9kb2NUeXBlLmdldCgpKTsKIH0KIAogRE9NSW1w
bGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpCkBAIC05NDIsNyArOTQyLDcg
QEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
c291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50Tm9k
ZSgpLT5yZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKICAgICB9CiAKLSAgICBzb3VyY2Ut
PnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRoaXMpOworICAgIHRoaXMtPmFkb3B0SWZOZWVkZWQo
c291cmNlLmdldCgpKTsKIAogICAgIHJldHVybiBzb3VyY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggOTY3OWIxMjI5ZmQxMmE1N2E4ZDRmNmUyZjAyNjhmYzYzN2Q3YmVmMS4uNDM4Njkz
OTdkNWE4NGE0NjcwNTQ3ZWIzZTZlMWY3ZjVlZDQ5YWUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtMTIxOCw3ICsxMjE4LDcgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkK
ICAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwogCiAgICAgICAgIG9sZFJvb3QtPnNldFNo
YWRvd0hvc3QoMCk7Ci0gICAgICAgIG9sZFJvb3QtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KGRv
Y3VtZW50KCkpOworICAgICAgICBkb2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0
KCkpOwogICAgICAgICBpZiAob2xkUm9vdC0+aW5Eb2N1bWVudCgpKQogICAgICAgICAgICAgb2xk
Um9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggOWU2ZGQ1ZmFjNmZkZWUwZmUwYzZjYzNhN2QyNDlhMmE1ZmE5NmM0OS4uYjY4OGExZTEy
N2ZjM2UyOTc4ZjUyOGZiYTAyZDY4YzY5MmUxMTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtOTAs
NiArOTAsNyBAQAogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKICNp
bmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCkBAIC00MTcsMzcgKzQxOCwyOSBAQCBOb2Rl
Ojp+Tm9kZSgpCiAgICAgICAgIGRvYy0+Z3VhcmREZXJlZigpOwogfQogCi0jaWZuZGVmIE5ERUJV
RwotCi1zdGF0aWMgYm9vbCBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZDsKLXN0YXRpYyBE
b2N1bWVudCogb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdpdGg7Ci0K
LSNlbmRpZgotICAgIAogdm9pZCBOb2RlOjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAgICAgQVNTRVJUKCFpbkRvY3VtZW50KCkgfHwgbV9kb2N1bWVudCA9PSBkb2N1bWVudCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSB8fCBtX2RvY3VtZW50ID09IGRvY3VtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBkb2N1bWVudC0+Z3VhcmRSZWYoKTsKLQotICAgIGlmIChtX2RvY3Vt
ZW50KSB7Ci0gICAgICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1bWVu
dCh0aGlzLCBkb2N1bWVudCk7Ci0gICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKLSAg
ICB9Ci0KLSAgICBEb2N1bWVudCogb2xkRG9jdW1lbnQgPSBtX2RvY3VtZW50OwogICAgIG1fZG9j
dW1lbnQgPSBkb2N1bWVudDsKK30KIAotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdE
b2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOwotICAgIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWRXaXRoID0gb2xkRG9jdW1lbnQ7Ci0jZW5kaWYKK2Jvb2wgTm9kZTo6aGFz
Tm9kZUxpc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0
YSgpLT5ub2RlTGlzdHMoKTsKK30KIAotICAgIGRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3Vt
ZW50KTsKK3ZvaWQgTm9kZTo6c2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCit7CisgICAg
aWYgKCFzY29wZSkgeworICAgICAgICBpZiAoaGFzUmFyZURhdGEoKSkKKyAgICAgICAgICAgIHJh
cmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAg
IEFTU0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7CisgICAgZW5zdXJlUmFyZURh
dGEoKS0+c2V0VHJlZVNjb3BlKHNjb3BlKTsKIH0KIAogVHJlZVNjb3BlKiBOb2RlOjp0cmVlU2Nv
cGUoKSBjb25zdApAQCAtNDU5LDUzICs0NTIsNiBAQCBUcmVlU2NvcGUqIE5vZGU6OnRyZWVTY29w
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjb3BlID8gc2NvcGUgOiBtX2RvY3VtZW50OwogfQogCi12
b2lkIE5vZGU6OnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSogbmV3VHJlZVNjb3Bl
KQotewotICAgIEFTU0VSVCh0aGlzKTsKLSAgICBBU1NFUlQoIWlzRG9jdW1lbnROb2RlKCkpOwot
ICAgIEFTU0VSVChuZXdUcmVlU2NvcGUpOwotICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0JlZ3Vu
KTsKLQotICAgIFRyZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9IHRyZWVTY29wZSgpOwotICAg
IGlmIChjdXJyZW50VHJlZVNjb3BlID09IG5ld1RyZWVTY29wZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgRG9jdW1lbnQqIGN1cnJlbnREb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgRG9jdW1l
bnQqIG5ld0RvY3VtZW50ID0gbmV3VHJlZVNjb3BlLT5kb2N1bWVudCgpOwotICAgIC8vIElmIGFu
IGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFj
ayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKLSAgICAvLyB0aGF0IGVsZW1lbnQgbWF5
IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0
ZWQgdGhlIERPTVRyZWVWZXJzaW9uCi0gICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3Zl
ZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRv
Y3VtZW50IGhlcmUKLSAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3
aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJh
Y2suCi0gICAgaWYgKGN1cnJlbnREb2N1bWVudCAmJiBjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9j
dW1lbnQpCi0gICAgICAgIGN1cnJlbnREb2N1bWVudC0+aW5jRE9NVHJlZVZlcnNpb24oKTsKLQot
ICAgIGZvciAoTm9kZSogbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5l
eHROb2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChuZXdUcmVlU2NvcGUgPT0gbmV3RG9jdW1lbnQp
IHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpKQotICAgICAgICAgICAgICAg
IG5vZGUtPnJhcmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKLSAgICAgICAgICAgIC8vIFNldHRp
bmcgdGhlIG5ldyBkb2N1bWVudCB0cmVlIHNjb3BlIHdpbGwgYmUgaGFuZGxlZCBpbXBsaWNpdGx5
Ci0gICAgICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIG5vZGUtPmVuc3VyZVJhcmVEYXRhKCktPnNldFRyZWVTY29wZShuZXdUcmVl
U2NvcGUpOwotCi0gICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpICYmIG5vZGUtPnJhcmVE
YXRhKCktPm5vZGVMaXN0cygpKSB7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSkK
LSAgICAgICAgICAgICAgICBjdXJyZW50VHJlZVNjb3BlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7
Ci0gICAgICAgICAgICBuZXdUcmVlU2NvcGUtPmFkZE5vZGVMaXN0Q2FjaGUoKTsKLSAgICAgICAg
fQotCi0gICAgICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsKLQotICAgICAgICBp
ZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9v
dCgpKSB7Ci0gICAgICAgICAgICBzaGFkb3dSb290LT5zZXRQYXJlbnRUcmVlU2NvcGUobmV3VHJl
ZVNjb3BlKTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQp
Ci0gICAgICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShuZXdE
b2N1bWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIE5vZGVSYXJlRGF0YSogTm9kZTo6cmFy
ZURhdGEoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKQEAgLTg1MSwxOSAr
Nzk3LDYgQEAgaW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290KE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hh
ZG93Um9vdCgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpzZXREb2N1bWVudFJlY3Vyc2l2ZWx5KERv
Y3VtZW50KiBuZXdEb2N1bWVudCkKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQoKSAhPSBuZXdEb2N1
bWVudCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+
dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdE
b2N1bWVudCk7Ci0gICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290
KG5vZGUpKQotICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1bWVudFJlY3Vyc2l2ZWx5KG5ld0Rv
Y3VtZW50KTsKLSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0
eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIG1fbm9kZUZsYWdzID0gKG1fbm9kZUZs
YWdzICYgflN0eWxlQ2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBlOwpAQCAtMjQ4MSwxMiArMjQxNCw3
IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAKIHZvaWQgTm9kZTo6ZGlkTW92
ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogewotICAgIEFTU0VSVCghZGlk
TW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1l
bnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxs
ZWRXaXRoKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0Nh
bGxlZCA9IHRydWU7Ci0jZW5kaWYKKyAgICBUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZChvbGREb2N1bWVudCk7CiAKICAgICAvLyBGSVhNRTogRXZl
bnQgbGlzdGVuZXIgdHlwZXMgZm9yIHRoaXMgbm9kZSBzaG91bGQgYmUgc2V0IG9uIHRoZSBuZXcg
b3duZXIgZG9jdW1lbnQgaGVyZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZmE2OWI3NTk0MGIzZDQxODdi
Yzk3NDUzNTYzZGE5Y2FiZDFiNTk2Zi4uNjRlN2QyMGE1OTFjMzdlODA4ZDc5MWY4ODVmYTc3YmVi
NmYxZGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgZW51bSBTdHlsZUNoYW5n
ZVR5cGUgewogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdy
YXBwYWJsZSwgcHVibGljIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT4gewogICAgIGZyaWVuZCBj
bGFzcyBEb2N1bWVudDsKICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOworICAgIGZyaWVuZCBj
bGFzcyBUcmVlU2NvcGVBZG9wdGVyOwogCiBwdWJsaWM6CiAgICAgZW51bSBOb2RlVHlwZSB7CkBA
IC0zODMsOSArMzg0LDYgQEAgcHVibGljOgogCiAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUoKSBj
b25zdDsKIAotICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtZXRob2RzIChlLmcuLCBhcHBl
bmRDaGlsZCgpKS4KLSAgICB2b2lkIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSop
OwotCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbm9kZSBpcyBhc3NvY2lhdGVkIHdpdGgg
YSBkb2N1bWVudCBhbmQgaXMgaW4gaXRzIGFzc29jaWF0ZWQgZG9jdW1lbnQncwogICAgIC8vIG5v
ZGUgdHJlZSwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgIGJvb2wgaW5Eb2N1bWVudCgpIGNvbnN0IApA
QCAtNjk4LDkgKzY5Niw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFySGFzQ3VzdG9tU3R5
bGVGb3JSZW5kZXJlcigpIHsgY2xlYXJGbGFnKEhhc0N1c3RvbVN0eWxlRm9yUmVuZGVyZXJGbGFn
KTsgfQogCiBwcml2YXRlOgotICAgIC8vIERvIG5vdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hhbmdl
IHRoZSBkb2N1bWVudCBvZiBhIG5vZGUgdW50aWwgYWZ0ZXIgdGhlIG5vZGUgaGFzIGJlZW4KLSAg
ICAvLyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGRvY3VtZW50LgotICAgIHZvaWQgc2V0RG9j
dW1lbnRSZWN1cnNpdmVseShEb2N1bWVudCopOworICAgIC8vIFRoZXNlIEFQSSBzaG91bGQgYmUg
b25seSB1c2VkIGZvciBhIHRyZWUgc2NvcGUgbWlncmF0aW9uLgorICAgIGJvb2wgaGFzTm9kZUxp
c3RzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAgICAgdm9p
ZCBzZXREb2N1bWVudChEb2N1bWVudCopOwogCiAgICAgZW51bSBFZGl0YWJsZUxldmVsIHsgRWRp
dGFibGUsIFJpY2hseUVkaXRhYmxlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDM1
YmFkNTFjZTkxMDE4ODE5YjJkYzg2NDAyZTVkZmRlNzkwNDc1NmYuLjdkYTAyYjgyNzJhYWRmNzY4
ODdlZDYxMWJhMWY0OWIwNGQ0ODgyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJUcmVlU2NvcGVB
ZG9wdGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM3LDUgKzEzOCwxNiBAQCBi
b29sIFRyZWVTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVCh0aGlzKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5pc0Rv
Y3VtZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fZGVsZXRpb25IYXNCZWd1bik7Cisg
ICAgVHJlZVNjb3BlQWRvcHRlciBhZG9wdGVyKG5vZGUsIHRoaXMpOworICAgIGlmICghYWRvcHRl
ci5pc1N0YXlpbmdTYW1lU2NvcGUoKSkKKyAgICAgICAgYWRvcHRlci5leGVjdXRlKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IGNiZTNl
ZTA3YWE5NmU1YWY0NWM4NjdjZThlYjM2ZTZmMTM3MDhhZmQuLmZkNmMzY2I4ZGY5ZWY1YTkwMWYx
NjNjMmE2NGM2YmIwNDljZDAwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTY0LDYgKzY0
LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29u
c3Q7CiAKKyAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5n
LiwgYXBwZW5kQ2hpbGQoKSkuCisgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKKwogcHJv
dGVjdGVkOgogICAgIFRyZWVTY29wZShEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVh
dGVDb250YWluZXIpOwogICAgIHZpcnR1YWwgflRyZWVTY29wZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZUFkb3B0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMTA1ODMxZjU5N2M3ZmRhZjFjZTdm
ZGM2YjRjY2UxZTQxMzQ3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5
OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAw
MSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1RyZWVTY29wZUFkb3B0ZXI6OlRyZWVTY29wZUFkb3B0ZXIoTm9kZSog
bWlncmF0aW9uUm9vdCwgVHJlZVNjb3BlKiBkZXN0aW5hdGlvbikKKyAgICA6IG1fbWlncmF0aW9u
Um9vdChtaWdyYXRpb25Sb290KQorICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKKyAg
ICAsIG1fZGVwYXJ0dXJlKG1pZ3JhdGlvblJvb3QtPnRyZWVTY29wZSgpKQoreworICAgIEFTU0VS
VChkZXN0aW5hdGlvbik7Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05l
d1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzU3RheWluZ1NhbWVTY29w
ZSgpKTsKKworICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFu
ZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKKyAg
ICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUg
dG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCisgICAgLy8gb2YgdGhl
IGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNp
b24gb2YgdGhlIGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKKyAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0
aGUgY29sbGVjdGlvbiBjYWNoZSB3aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRo
ZSBlbGVtZW50IGlzIG1vdmVkIGJhY2suCisgICAgRG9jdW1lbnQqIGRlcGFydHVyZURvY3VtZW50
ID0gbV9kZXBhcnR1cmUtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9j
dW1lbnQgPSBtX2Rlc3RpbmF0aW9uLT5kb2N1bWVudCgpOworICAgIGJvb2wgc2hvdWxkTW92ZVRv
TmV3RG9jdW1lbnQgPSBkZXBhcnR1cmVEb2N1bWVudCAhPSBkZXN0aW5hdGlvbkRvY3VtZW50Owor
ICAgIGlmIChkZXBhcnR1cmVEb2N1bWVudCAmJiBzaG91bGRNb3ZlVG9OZXdEb2N1bWVudCkKKyAg
ICAgICAgZGVwYXJ0dXJlRG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9uKCk7CisKKyAgICBmb3Ig
KE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShy
b290KSkgeworICAgICAgICAvLyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3
aWxsIGJlIGhhbmRsZWQgaW1wbGljaXRseQorICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJl
bG93LgorICAgICAgICBub2RlLT5zZXRUcmVlU2NvcGUoZGVzdGluYXRpb25Eb2N1bWVudCA9PSBt
X2Rlc3RpbmF0aW9uID8gMCA6IG1fZGVzdGluYXRpb24pOworCisgICAgICAgIGlmIChub2RlLT5o
YXNOb2RlTGlzdHMoKSkgeworICAgICAgICAgICAgaWYgKG1fZGVwYXJ0dXJlKQorICAgICAgICAg
ICAgICAgIG1fZGVwYXJ0dXJlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7CisgICAgICAgICAgICBt
X2Rlc3RpbmF0aW9uLT5hZGROb2RlTGlzdENhY2hlKCk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoc2hvdWxkTW92ZVRvTmV3RG9jdW1lbnQpCisgICAgICAgICAgICBtb3ZlTm9kZVRvTmV3RG9j
dW1lbnQobm9kZSwgZGVwYXJ0dXJlRG9jdW1lbnQsIGRlc3RpbmF0aW9uRG9jdW1lbnQpOworCisg
ICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9yKG5vZGUpKSB7Cisg
ICAgICAgICAgICBzaGFkb3ctPnNldFBhcmVudFRyZWVTY29wZShtX2Rlc3RpbmF0aW9uKTsKKyAg
ICAgICAgICAgIGlmIChzaG91bGRNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBt
b3ZlVHJlZVRvTmV3RG9jdW1lbnQoc2hhZG93LCBkZXBhcnR1cmVEb2N1bWVudCwgZGVzdGluYXRp
b25Eb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRl
cjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KFNoYWRvd1Jvb3QqIHJvb3QsIERvY3VtZW50KiBkZXBh
cnR1cmVEb2N1bWVudCwgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0Cit7Cisg
ICAgZm9yIChOb2RlKiBub2RlID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4
dE5vZGUocm9vdCkpIHsKKyAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUsIGRlcGFy
dHVyZURvY3VtZW50LCBkZXN0aW5hdGlvbkRvY3VtZW50KTsKKyAgICAgICAgaWYgKFNoYWRvd1Jv
b3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RGb3Iobm9kZSkpCisgICAgICAgICAgICBtb3ZlVHJlZVRv
TmV3RG9jdW1lbnQoc2hhZG93LCBkZXBhcnR1cmVEb2N1bWVudCwgZGVzdGluYXRpb25Eb2N1bWVu
dCk7CisgICAgfQorfQorCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGJvb2wgZGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWQ7CitzdGF0aWMgRG9jdW1lbnQqIG9sZERvY3VtZW50RGlkTW92ZVRv
TmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoOworCit2b2lkIFRyZWVTY29wZUFkb3B0ZXI6OmVuc3Vy
ZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KiBvbGREb2N1bWVudCkKK3sK
KyAgICBBU1NFUlQoIWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAgICBBU1NFUlRf
VU5VU0VEKG9sZERvY3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVudERpZE1vdmVUb05l
d0RvY3VtZW50V2FzQ2FsbGVkV2l0aCk7CisgICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxs
ZWQgPSB0cnVlOworfQorI2VuZGlmCisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVU
b05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBkZXBhcnR1cmVEb2N1bWVudCwgRG9j
dW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5p
bkRvY3VtZW50KCkgfHwgZGVwYXJ0dXJlRG9jdW1lbnQgIT0gZGVzdGluYXRpb25Eb2N1bWVudCk7
CisKKyAgICBkZXN0aW5hdGlvbkRvY3VtZW50LT5ndWFyZFJlZigpOworICAgIGlmIChkZXBhcnR1
cmVEb2N1bWVudCkgeworICAgICAgICBkZXBhcnR1cmVEb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRv
cnNUb05ld0RvY3VtZW50KG5vZGUsIGRlc3RpbmF0aW9uRG9jdW1lbnQpOworICAgICAgICBkZXBh
cnR1cmVEb2N1bWVudC0+Z3VhcmREZXJlZigpOworICAgIH0KKworICAgIG5vZGUtPnNldERvY3Vt
ZW50KGRlc3RpbmF0aW9uRG9jdW1lbnQpOworCisjaWZuZGVmIE5ERUJVRworICAgIGRpZE1vdmVU
b05ld0RvY3VtZW50V2FzQ2FsbGVkID0gZmFsc2U7CisgICAgb2xkRG9jdW1lbnREaWRNb3ZlVG9O
ZXdEb2N1bWVudFdhc0NhbGxlZFdpdGggPSBkZXBhcnR1cmVEb2N1bWVudDsKKyNlbmRpZgorCisg
ICAgbm9kZS0+ZGlkTW92ZVRvTmV3RG9jdW1lbnQoZGVwYXJ0dXJlRG9jdW1lbnQpOworICAgIEFT
U0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlQWRvcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTRmNjY4M2RjYWQ5ZDAxZTQ5NTY3
ODU5ZmM1N2IzZTM2YTM4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9i
aWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LykKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
I2lmbmRlZiBUcmVlU2NvcGVBZG9wdGVyX2gKKyNkZWZpbmUgVHJlZVNjb3BlQWRvcHRlcl9oCisK
KyNpbmNsdWRlICJFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHJl
ZVNjb3BlQWRvcHRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVHJlZVNjb3BlQWRvcHRlcihO
b2RlKiBtaWdyYXRpb25Sb290LCBUcmVlU2NvcGUqIGRlc3RpbmF0aW9uKTsKKworICAgIHZvaWQg
ZXhlY3V0ZSgpIGNvbnN0IHsgbW92ZVRyZWVUb05ld1Njb3BlKG1fbWlncmF0aW9uUm9vdCk7IH0K
KyAgICBib29sIGlzU3RheWluZ1NhbWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwYXJ0dXJl
ID09IG1fZGVzdGluYXRpb247IH0KKworI2lmZGVmIE5ERUJVRworICAgIHN0YXRpYyB2b2lkIGVu
c3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KikgeyB9CisjZWxzZQor
ICAgIHN0YXRpYyB2b2lkIGVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3Vt
ZW50Kik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIG1vdmVUcmVlVG9OZXdTY29wZShO
b2RlKikgY29uc3Q7CisgICAgdm9pZCBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoU2hhZG93Um9vdCos
IERvY3VtZW50KiBkZXBhcnR1cmVEb2N1bWVudCwgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1l
bnQpIGNvbnN0OworICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVu
dCogZGVwYXJ0dXJlRG9jdW1lbnQsIERvY3VtZW50KiBkZXN0aW5hdGlvbkRvY3VtZW50KSBjb25z
dDsKKworICAgIHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5vZGUqKTsKKworICAg
IE5vZGUqIG1fbWlncmF0aW9uUm9vdDsKKyAgICBUcmVlU2NvcGUqIG1fZGVzdGluYXRpb247Cisg
ICAgVHJlZVNjb3BlKiBtX2RlcGFydHVyZTsKK307CisKK2lubGluZSBTaGFkb3dSb290KiBUcmVl
U2NvcGVBZG9wdGVyOjpzaGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsK
K30KKworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121218</attachid>
            <date>2012-01-04 22:48:48 -0800</date>
            <delta_ts>2012-01-05 00:48:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75290-20120105154846.patch</filename>
            <type>text/plain</type>
            <size>31467</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I2NmFjOGEzMWRjYThi
ZjQ5ZTQwYWIzODUyNjE4NzE0OWEwOWE4My4uNWU1MzgyNGM1Nzk4MWVjOTk1NDkxNWU1MjA5ODU3
YzhlZjcxNTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAxLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTW92aW5nIGJldHdlZW4gVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVBZG9wdGVyLiBCeSBkb2lu
ZyB0aGlzLCB0aGUgaWRlYSBvZgorICAgICAgICBtb3ZpbmcgYSBub2RlIGZyb20gc2NvcGUgdG8g
c2NvcGUsIHRoYXQgd2FzIG9yaWdpbmFsbHkgaGlkZGVuCisgICAgICAgIGJlaGluZCB0aGUgZm9y
ZXN0IG9mIE5vZGUgQVBJcywgaGFzIGJlY29tZSBjbGVhcmVyLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIGZvciBCdWcgNTk4MTYuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogRm9sbG93ZWQgdGhlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDogRm9sbG93ZWQgdGUgcmVuYW1pbmcuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0RG9jVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRvcHROb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IEZvbGxvd2VkIHRlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aGFzTm9kZUxpc3RzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWRNb3Zl
VG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlLmg6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQpOiBtb3ZlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vy
c2l2ZWx5KCkKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6VHJlZVNjb3BlQWRvcHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0Rv
Y3VtZW50V2FzQ2FsbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1v
dmVOb2RlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9w
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om5lZWRz
U2NvcGVDaGFuZ2UoKSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpzaGFk
b3dSb290Rm9yKToKKwogMjAxMi0wMS0wNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDA4NC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjg4ZTBmMTQxM2Q5OWI4NDhkMzRmNTgwODI2MDQwYzUz
ZWMwN2NlNy4uOWYzZDE1OGRmOTA0YzJjOTQ2ODY5MmU5MmVhYzYyNzdmYTZkYTEyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTYxMCw2ICs2MTAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZG9tL1RyYW5zZm9ybVNvdXJjZUxpYnhzbHQuY3BwCiAgICAgZG9tL1RyYXZlcnNhbC5jcHAK
ICAgICBkb20vVHJlZVNjb3BlLmNwcAorICAgIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAogICAg
IGRvbS9UcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9VSUV2ZW50LmNwcAogICAgIGRvbS9VSUV2ZW50
V2l0aEtleVN0YXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWFkNmRh
ZGQzZmQwZmIyNWI4MzAyNDk1MjQ3Yjc3YTk1OWM3ZmNkMy4uODg5YTM1YWUxNmQ0ZWUzMDM2MWJh
NGJkMTBkZGEzNjgzZjg4YjExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
Njc0LDYgKzE2NzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlRGVwdGhMaW1pdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCmluZGV4IGIxMmY1ZTU3ODY2ODdkNTA0MGNmYzNlMjEzZGY0NWNiNTcxNjEy
NDcuLjVlN2Y1YWY1ZTc2MzIyNDc3Y2NiZjhiMDlmMmQ0OWZjOGI2NTg4NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQpAQCAtNTc0LDYgKzU3NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ub3VjaExpc3QuY3Bw
IFwKICAgICBkb20vVHJhdmVyc2FsLmNwcCBcCiAgICAgZG9tL1RyZWVTY29wZS5jcHAgXAorICAg
IGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBcCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwIFwKICAg
ICBkb20vVUlFdmVudC5jcHAgXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcCBcCkBA
IC0xNjcwLDYgKzE2NzEsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vVHJhdmVyc2FsLmggXAog
ICAgIGRvbS9UcmVlRGVwdGhMaW1pdC5oIFwKICAgICBkb20vVHJlZVNjb3BlLmggXAorICAgIGRv
bS9UcmVlU2NvcGVBZG9wdGVyLmggXAogICAgIGRvbS9UcmVlV2Fsa2VyLmggXAogICAgIGRvbS9V
SUV2ZW50LmggXAogICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDgzMDVmY2VkOGVhZjYzMDlmN2U2YmM5YmY3NjFiMDIxYWMwNDQ4ODUuLjBlMTRlNDBh
ODM4MTgwNWQ4NmQzNzI1YzU5OGNlMzI5ZmRmMmY1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0
NTcsNiArNTQ1Nyw4IEBACiAgICAgICAgICAgICAnZG9tL1RyZWVEZXB0aExpbWl0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9UcmVlU2NvcGUuY3BwJywKICAgICAgICAgICAgICdkb20vVHJlZVNjb3Bl
LmgnLAorICAgICAgICAgICAgJ2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCcsCisgICAgICAgICAg
ICAnZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIu
Y3BwJywKICAgICAgICAgICAgICdkb20vVHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20v
VUlFdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCBkMGNmMzk1ZTkzYmZkODdiMWZjYWJhYWI3OGRmNmZiZTU5YjljYmJjLi5iMTNj
ZmQ1OTkwZWIyYjRlOTIzZWI4NTUxNmQ2OTc4MDVmMzc1MjkxIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTE4MzAsNiArNTE4MzAsNjIgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFRy
ZWVTY29wZUFkb3B0ZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVNjb3BlQWRvcHRlci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cVHJlZVdhbGtlci5j
cHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdmOGJmYzdhZTgyMjczMWFl
M2E3YzRkZDQ0NjE3NmI5MmU4NmUzYTUuLmYzNDFmY2YzMWIzZTA5N2Y2ODA3NTA0NmIwNjdmNjJi
NmFlN2RiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTM1MTEsNiArMzUxMSw4IEBACiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4
NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87
IH07CiAJCUE3N0I0MUEwMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0I0MTlGMTJF
Njc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdEMDAxMjEzM0IwQUVCMDBENjY1OEMg
LyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTc3RTFGRUYxNEFB
Q0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRy
ZWVTY29wZUFkb3B0ZXIuY3BwICovOyB9OworCQlBNzdFMUZGMDE0QUFDQjZFMDA1QjdDQjYgLyog
VHJlZVNjb3BlQWRvcHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCAq
LzsgfTsKIAkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODFDNkE2MTM4
MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi87IH07CiAJCUE3ODQ5NDFCMEI1
RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2Fy
ZC5jcHAgKi87IH07CiAJCUE3OEU1MjZGMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi87IH07
CkBAIC0xMDc4NCw2ICsxMDc4Niw4IEBACiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBK
U0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzdCNDE5RjEyRTY3NUE5MDA1NDM0
M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRFdmVudElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2
IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHJlZVNjb3BlQWRvcHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzgxQzZB
NjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0
ZXJTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1ldGVyU2hhZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTUzOSw2ICsyMTU0Myw4IEBACiAJCQkJMzdGRDQyOTcxMTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVE
ZXB0aExpbWl0LmggKi8sCiAJCQkJMTRENjRCNUExMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29w
ZS5jcHAgKi8sCiAJCQkJMTRENjRCNUIxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oICov
LAorCQkJCUE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAq
LywKKwkJCQlBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oICov
LAogCQkJCTg1NEZFNzJFMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCAqLywKIAkJ
CQk4NTRGRTcyRjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oICovLAogCQkJCTFBNzUw
RDNDMEE5MERFMzUwMDBGRjIxNSAvKiBUcmVlV2Fsa2VyLmlkbCAqLywKQEAgLTI0NzkyLDYgKzI0
Nzk4LDcgQEAKIAkJCQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzN0ZENDI5ODExODM2ODQ2MDA5M0MwMjkgLyogVHJlZURlcHRoTGlt
aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDY0QjVEMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVl
U2NvcGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3N0UxRkYwMTRBQUNCNkUwMDVCN0NCNiAvKiBU
cmVlU2NvcGVBZG9wdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE5RDJDNTBDRUE2RjYxMDBG
RjUwN0EgLyogVHJlZVNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3MzkwQTIyOTdC
RTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzI4QTY4MTBG
NjU5Q0MwMDhDNzgxMyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTI3NzI1LDYgKzI3NzMyLDcgQEAKIAkJCQk0OUU5MTFEMTBFRjg2RDQ3MDA5RDBDQUYgLyogVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM2
MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRE
NjRCNUMxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNzdFMUZFRjE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NTRGRTczODBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxOTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0RDBBNDRFRkM3MDBGOTkyRTAgLyog
VUlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAppbmRleCA0OWNhYThlMjEwOTRiZTQ1ODE4MmUzMDQzNWMxZjQ2ODQ3Zjg5ZTBkLi5kNWNkMDli
OWZkYWY5OTdmNDc4MGYyM2YxNjVjYmU3YmNhNDcwOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6dGFrZUFs
bENoaWxkcmVuRnJvbShDb250YWluZXJOb2RlKiBvbGRQYXJlbnQpCiAgICAgICAgIC8vIEZJWE1F
OiBUb2dldGhlciB3aXRoIGFkb3B0Tm9kZSBhYm92ZSwgdGhlIHRyZWUgc2NvcGUgbWlnaHQgZ2V0
IHVwZGF0ZWQgcmVjdXJzaXZlbHkgdHdpY2UKICAgICAgICAgLy8gKGlmIHRoZSBkb2N1bWVudCBj
aGFuZ2VkIG9yIG9sZFBhcmVudCB3YXMgaW4gYSBzaGFkb3cgdHJlZSwgQU5EICp0aGlzIGlzIGlu
IGEgc2hhZG93IHRyZWUpLgogICAgICAgICAvLyBDYW4gd2UgZG8gYmV0dGVyPwotICAgICAgICBj
aGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVl
U2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQoKSk7CiAgICAgICAgIGlmIChhdHRhY2hl
ZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSkKICAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsK
ICAgICB9CkBAIC0xNzUsNyArMTc1LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZv
cmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKICAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgp
LCBjaGlsZCwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVj
dXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRl
ZChjaGlsZCk7CiAKICAgICAgICAgaW5zZXJ0QmVmb3JlQ29tbW9uKG5leHQuZ2V0KCksIGNoaWxk
KTsKIApAQCAtMzI5LDcgKzMyOSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwg
Y2hpbGQuZ2V0KCksIHRoaXMpOwogI2VuZGlmCiAKLSAgICAgICAgY2hpbGQtPnNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICAgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZO
ZWVkZWQoY2hpbGQuZ2V0KCkpOwogCiAgICAgICAgIC8vIEFkZCBjaGlsZCBhZnRlciAicHJldiIu
CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4oTm9kZSogcHJldmlvdXNDaGlsZCwgTm9kZSog
bmV4dENoaWxkLCBOb2RlKiBvbAogICAgIG9sZENoaWxkLT5zZXROZXh0U2libGluZygwKTsKICAg
ICBvbGRDaGlsZC0+c2V0UGFyZW50KDApOwogCi0gICAgb2xkQ2hpbGQtPnNldFRyZWVTY29wZVJl
Y3Vyc2l2ZWx5KGRvY3VtZW50KCkpOworICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xk
Q2hpbGQpOwogCiAgICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiB9CkBAIC01NjQsNyArNTY0LDcg
QEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAgICAgIG4tPnNldFBy
ZXZpb3VzU2libGluZygwKTsKICAgICAgICAgbi0+c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgICAg
IG4tPnNldFBhcmVudCgwKTsKLSAgICAgICAgbi0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9j
dW1lbnQoKSk7CisgICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQobi5nZXQoKSk7CiAK
ICAgICAgICAgbV9maXJzdENoaWxkID0gbmV4dDsKICAgICAgICAgaWYgKG4gPT0gbV9sYXN0Q2hp
bGQpCkBAIC02NDksNyArNjQ5LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm8KICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBj
aGlsZCwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBjaGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJz
aXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChj
aGlsZCk7CiAKICAgICAgICAgLy8gQXBwZW5kIGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QK
ICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwpAQCAtNjk3LDcgKzY5Nyw3IEBAIHZvaWQg
Q29udGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkK
ICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0Q2hpbGQ7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9k
IHNob3VsZCB0YWtlIGEgUGFzc1JlZlB0ci4KICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyPE5v
ZGUsIENvbnRhaW5lck5vZGU+KG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKLSAgICBuZXdDaGlsZC0+
c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgIHRyZWVTY29wZSgpLT5h
ZG9wdElmTmVlZGVkKG5ld0NoaWxkLmdldCgpKTsKICAgICAKICAgICBhbGxvd0V2ZW50RGlzcGF0
Y2goKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggZDBiY2VjYWEyZDA4ZDEy
MWNlMzhlMTE0Y2U3N2YyZDgzMzU3ZmE0OC4uNTUwOTQ2NTNmNWYyMzk0NmZkNDQzZTQ4OWYxMzcz
MzM4MTRmYjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMjksNiArMTI5
LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCIKICNpbmNsdWRlICJU
cmF2ZXJzYWwuY3BwIgogI2luY2x1ZGUgIlRyZWVTY29wZS5jcHAiCisjaW5jbHVkZSAiVHJlZVNj
b3BlQWRvcHRlci5jcHAiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5jcHAiCiAjaW5jbHVkZSAiVUlF
dmVudC5jcHAiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA5ZjQ0OGM0OTYzOTU5YWFiMzBiNTgyOGZlNmE2ZWUzMDU5ZTI1YmYz
Li5jOGRjNTc0OTc1NTVmMDliY2M4OWFmNGM4NmZlNTcyMzg4ZjI1MDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTcxMiw3ICs3MTIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXREb2NUeXBl
KFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQogICAgIEFTU0VSVCghbV9kb2NUeXBl
IHx8ICFkb2NUeXBlKTsKICAgICBtX2RvY1R5cGUgPSBkb2NUeXBlOwogICAgIGlmIChtX2RvY1R5
cGUpCi0gICAgICAgIG1fZG9jVHlwZS0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodGhpcyk7Cisg
ICAgICAgIHRoaXMtPmFkb3B0SWZOZWVkZWQobV9kb2NUeXBlLmdldCgpKTsKIH0KIAogRE9NSW1w
bGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpCkBAIC05NDIsNyArOTQyLDcg
QEAgUGFzc1JlZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
c291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50Tm9k
ZSgpLT5yZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKICAgICB9CiAKLSAgICBzb3VyY2Ut
PnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRoaXMpOworICAgIHRoaXMtPmFkb3B0SWZOZWVkZWQo
c291cmNlLmdldCgpKTsKIAogICAgIHJldHVybiBzb3VyY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggOTY3OWIxMjI5ZmQxMmE1N2E4ZDRmNmUyZjAyNjhmYzYzN2Q3YmVmMS4uNDM4Njkz
OTdkNWE4NGE0NjcwNTQ3ZWIzZTZlMWY3ZjVlZDQ5YWUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtMTIxOCw3ICsxMjE4LDcgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkK
ICAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwogCiAgICAgICAgIG9sZFJvb3QtPnNldFNo
YWRvd0hvc3QoMCk7Ci0gICAgICAgIG9sZFJvb3QtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KGRv
Y3VtZW50KCkpOworICAgICAgICBkb2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0
KCkpOwogICAgICAgICBpZiAob2xkUm9vdC0+aW5Eb2N1bWVudCgpKQogICAgICAgICAgICAgb2xk
Um9vdC0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggOWU2ZGQ1ZmFjNmZkZWUwZmUwYzZjYzNhN2QyNDlhMmE1ZmE5NmM0OS4uYjY4OGExZTEy
N2ZjM2UyOTc4ZjUyOGZiYTAyZDY4YzY5MmUxMTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtOTAs
NiArOTAsNyBAQAogI2luY2x1ZGUgIlRhZ05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKICNp
bmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudFdpdGhLZXlTdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCkBAIC00MTcsMzcgKzQxOCwyOSBAQCBOb2Rl
Ojp+Tm9kZSgpCiAgICAgICAgIGRvYy0+Z3VhcmREZXJlZigpOwogfQogCi0jaWZuZGVmIE5ERUJV
RwotCi1zdGF0aWMgYm9vbCBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZDsKLXN0YXRpYyBE
b2N1bWVudCogb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdpdGg7Ci0K
LSNlbmRpZgotICAgIAogdm9pZCBOb2RlOjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAgICAgQVNTRVJUKCFpbkRvY3VtZW50KCkgfHwgbV9kb2N1bWVudCA9PSBkb2N1bWVudCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSB8fCBtX2RvY3VtZW50ID09IGRvY3VtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBkb2N1bWVudC0+Z3VhcmRSZWYoKTsKLQotICAgIGlmIChtX2RvY3Vt
ZW50KSB7Ci0gICAgICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1bWVu
dCh0aGlzLCBkb2N1bWVudCk7Ci0gICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKLSAg
ICB9Ci0KLSAgICBEb2N1bWVudCogb2xkRG9jdW1lbnQgPSBtX2RvY3VtZW50OwogICAgIG1fZG9j
dW1lbnQgPSBkb2N1bWVudDsKK30KIAotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdE
b2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOwotICAgIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWRXaXRoID0gb2xkRG9jdW1lbnQ7Ci0jZW5kaWYKK2Jvb2wgTm9kZTo6aGFz
Tm9kZUxpc3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0
YSgpLT5ub2RlTGlzdHMoKTsKK30KIAotICAgIGRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3Vt
ZW50KTsKK3ZvaWQgTm9kZTo6c2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCit7CisgICAg
aWYgKCFzY29wZSkgeworICAgICAgICBpZiAoaGFzUmFyZURhdGEoKSkKKyAgICAgICAgICAgIHJh
cmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAg
IEFTU0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7CisgICAgZW5zdXJlUmFyZURh
dGEoKS0+c2V0VHJlZVNjb3BlKHNjb3BlKTsKIH0KIAogVHJlZVNjb3BlKiBOb2RlOjp0cmVlU2Nv
cGUoKSBjb25zdApAQCAtNDU5LDUzICs0NTIsNiBAQCBUcmVlU2NvcGUqIE5vZGU6OnRyZWVTY29w
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjb3BlID8gc2NvcGUgOiBtX2RvY3VtZW50OwogfQogCi12
b2lkIE5vZGU6OnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSogbmV3VHJlZVNjb3Bl
KQotewotICAgIEFTU0VSVCh0aGlzKTsKLSAgICBBU1NFUlQoIWlzRG9jdW1lbnROb2RlKCkpOwot
ICAgIEFTU0VSVChuZXdUcmVlU2NvcGUpOwotICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0JlZ3Vu
KTsKLQotICAgIFRyZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9IHRyZWVTY29wZSgpOwotICAg
IGlmIChjdXJyZW50VHJlZVNjb3BlID09IG5ld1RyZWVTY29wZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgRG9jdW1lbnQqIGN1cnJlbnREb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgRG9jdW1l
bnQqIG5ld0RvY3VtZW50ID0gbmV3VHJlZVNjb3BlLT5kb2N1bWVudCgpOwotICAgIC8vIElmIGFu
IGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFj
ayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKLSAgICAvLyB0aGF0IGVsZW1lbnQgbWF5
IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0
ZWQgdGhlIERPTVRyZWVWZXJzaW9uCi0gICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3Zl
ZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRv
Y3VtZW50IGhlcmUKLSAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3
aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJh
Y2suCi0gICAgaWYgKGN1cnJlbnREb2N1bWVudCAmJiBjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9j
dW1lbnQpCi0gICAgICAgIGN1cnJlbnREb2N1bWVudC0+aW5jRE9NVHJlZVZlcnNpb24oKTsKLQot
ICAgIGZvciAoTm9kZSogbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5l
eHROb2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChuZXdUcmVlU2NvcGUgPT0gbmV3RG9jdW1lbnQp
IHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpKQotICAgICAgICAgICAgICAg
IG5vZGUtPnJhcmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKLSAgICAgICAgICAgIC8vIFNldHRp
bmcgdGhlIG5ldyBkb2N1bWVudCB0cmVlIHNjb3BlIHdpbGwgYmUgaGFuZGxlZCBpbXBsaWNpdGx5
Ci0gICAgICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIG5vZGUtPmVuc3VyZVJhcmVEYXRhKCktPnNldFRyZWVTY29wZShuZXdUcmVl
U2NvcGUpOwotCi0gICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpICYmIG5vZGUtPnJhcmVE
YXRhKCktPm5vZGVMaXN0cygpKSB7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSkK
LSAgICAgICAgICAgICAgICBjdXJyZW50VHJlZVNjb3BlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7
Ci0gICAgICAgICAgICBuZXdUcmVlU2NvcGUtPmFkZE5vZGVMaXN0Q2FjaGUoKTsKLSAgICAgICAg
fQotCi0gICAgICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsKLQotICAgICAgICBp
ZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9v
dCgpKSB7Ci0gICAgICAgICAgICBzaGFkb3dSb290LT5zZXRQYXJlbnRUcmVlU2NvcGUobmV3VHJl
ZVNjb3BlKTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50RG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQp
Ci0gICAgICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0RG9jdW1lbnRSZWN1cnNpdmVseShuZXdE
b2N1bWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIE5vZGVSYXJlRGF0YSogTm9kZTo6cmFy
ZURhdGEoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKQEAgLTg1MSwxOSAr
Nzk3LDYgQEAgaW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290KE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hh
ZG93Um9vdCgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpzZXREb2N1bWVudFJlY3Vyc2l2ZWx5KERv
Y3VtZW50KiBuZXdEb2N1bWVudCkKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQoKSAhPSBuZXdEb2N1
bWVudCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+
dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdE
b2N1bWVudCk7Ci0gICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290
KG5vZGUpKQotICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1bWVudFJlY3Vyc2l2ZWx5KG5ld0Rv
Y3VtZW50KTsKLSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0
eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIG1fbm9kZUZsYWdzID0gKG1fbm9kZUZs
YWdzICYgflN0eWxlQ2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBlOwpAQCAtMjQ4MSwxMiArMjQxNCw3
IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAKIHZvaWQgTm9kZTo6ZGlkTW92
ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogewotICAgIEFTU0VSVCghZGlk
TW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1l
bnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxs
ZWRXaXRoKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0Nh
bGxlZCA9IHRydWU7Ci0jZW5kaWYKKyAgICBUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3Zl
VG9OZXdEb2N1bWVudFdhc0NhbGxlZChvbGREb2N1bWVudCk7CiAKICAgICAvLyBGSVhNRTogRXZl
bnQgbGlzdGVuZXIgdHlwZXMgZm9yIHRoaXMgbm9kZSBzaG91bGQgYmUgc2V0IG9uIHRoZSBuZXcg
b3duZXIgZG9jdW1lbnQgaGVyZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZmE2OWI3NTk0MGIzZDQxODdi
Yzk3NDUzNTYzZGE5Y2FiZDFiNTk2Zi4uNjRlN2QyMGE1OTFjMzdlODA4ZDc5MWY4ODVmYTc3YmVi
NmYxZGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgZW51bSBTdHlsZUNoYW5n
ZVR5cGUgewogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdy
YXBwYWJsZSwgcHVibGljIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT4gewogICAgIGZyaWVuZCBj
bGFzcyBEb2N1bWVudDsKICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOworICAgIGZyaWVuZCBj
bGFzcyBUcmVlU2NvcGVBZG9wdGVyOwogCiBwdWJsaWM6CiAgICAgZW51bSBOb2RlVHlwZSB7CkBA
IC0zODMsOSArMzg0LDYgQEAgcHVibGljOgogCiAgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUoKSBj
b25zdDsKIAotICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtZXRob2RzIChlLmcuLCBhcHBl
bmRDaGlsZCgpKS4KLSAgICB2b2lkIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSop
OwotCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbm9kZSBpcyBhc3NvY2lhdGVkIHdpdGgg
YSBkb2N1bWVudCBhbmQgaXMgaW4gaXRzIGFzc29jaWF0ZWQgZG9jdW1lbnQncwogICAgIC8vIG5v
ZGUgdHJlZSwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgIGJvb2wgaW5Eb2N1bWVudCgpIGNvbnN0IApA
QCAtNjk4LDkgKzY5Niw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFySGFzQ3VzdG9tU3R5
bGVGb3JSZW5kZXJlcigpIHsgY2xlYXJGbGFnKEhhc0N1c3RvbVN0eWxlRm9yUmVuZGVyZXJGbGFn
KTsgfQogCiBwcml2YXRlOgotICAgIC8vIERvIG5vdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hhbmdl
IHRoZSBkb2N1bWVudCBvZiBhIG5vZGUgdW50aWwgYWZ0ZXIgdGhlIG5vZGUgaGFzIGJlZW4KLSAg
ICAvLyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGRvY3VtZW50LgotICAgIHZvaWQgc2V0RG9j
dW1lbnRSZWN1cnNpdmVseShEb2N1bWVudCopOworICAgIC8vIFRoZXNlIEFQSSBzaG91bGQgYmUg
b25seSB1c2VkIGZvciBhIHRyZWUgc2NvcGUgbWlncmF0aW9uLgorICAgIGJvb2wgaGFzTm9kZUxp
c3RzKCkgY29uc3Q7CisgICAgdm9pZCBzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAgICAgdm9p
ZCBzZXREb2N1bWVudChEb2N1bWVudCopOwogCiAgICAgZW51bSBFZGl0YWJsZUxldmVsIHsgRWRp
dGFibGUsIFJpY2hseUVkaXRhYmxlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDM1
YmFkNTFjZTkxMDE4ODE5YjJkYzg2NDAyZTVkZmRlNzkwNDc1NmYuLjkxZjNjMjk1YmVhYTIyMWZm
MTc4OGQ4ZjljODQyNGJkODAwMDE1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJUcmVlU2NvcGVB
ZG9wdGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTM3LDUgKzEzOCwxNiBAQCBi
b29sIFRyZWVTY29wZTo6YXBwbHlBdXRob3JTaGVldHMoKSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVCh0aGlzKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5pc0Rv
Y3VtZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fZGVsZXRpb25IYXNCZWd1bik7Cisg
ICAgVHJlZVNjb3BlQWRvcHRlciBhZG9wdGVyKG5vZGUsIHRoaXMpOworICAgIGlmIChhZG9wdGVy
Lm5lZWRzU2NvcGVDaGFuZ2UoKSkKKyAgICAgICAgYWRvcHRlci5leGVjdXRlKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IGNiZTNlZTA3
YWE5NmU1YWY0NWM4NjdjZThlYjM2ZTZmMTM3MDhhZmQuLmZkNmMzY2I4ZGY5ZWY1YTkwMWYxNjNj
MmE2NGM2YmIwNDljZDAwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTY0LDYgKzY0LDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7
CiAKKyAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwg
YXBwZW5kQ2hpbGQoKSkuCisgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKKwogcHJvdGVj
dGVkOgogICAgIFRyZWVTY29wZShEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVD
b250YWluZXIpOwogICAgIHZpcnR1YWwgflRyZWVTY29wZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZUFkb3B0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYzBkNTM1OGI2MWY1Mzg4Y2U0NWQ5NGI1
ZDY3NjI5M2Y0OGE5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlQWRvcHRlci5jcHAKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9i
aWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LykKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1RyZWVTY29wZUFkb3B0ZXI6OlRyZWVTY29wZUFkb3B0ZXIoTm9kZSogbWln
cmF0aW9uUm9vdCwgVHJlZVNjb3BlKiBkZXN0aW5hdGlvbikKKyAgICA6IG1fbWlncmF0aW9uUm9v
dChtaWdyYXRpb25Sb290KQorICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlvbikKKyAgICAs
IG1fZGVwYXJ0dXJlKG1pZ3JhdGlvblJvb3QtPnRyZWVTY29wZSgpKQoreworICAgIEFTU0VSVChk
ZXN0aW5hdGlvbik7Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Nj
b3BlKE5vZGUqIHJvb3QpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5lZWRzU2NvcGVDaGFuZ2UoKSk7
CisKKyAgICAvLyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhl
biBldmVudHVhbGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCisgICAgLy8g
dGhhdCBlbGVtZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0
IHdpbGwgaGF2ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgorICAgIC8vIG9mIHRoZSBkb2N1
bWVudCBpdCB3YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9m
IHRoZSBkb25hdGluZyBkb2N1bWVudCBoZXJlCisgICAgLy8gd2UgZW5zdXJlIHRoYXQgdGhlIGNv
bGxlY3Rpb24gY2FjaGUgd2lsbCBiZSBpbnZhbGlkYXRlZCBhcyBuZWVkZWQgd2hlbiB0aGUgZWxl
bWVudCBpcyBtb3ZlZCBiYWNrLgorICAgIERvY3VtZW50KiBkZXBhcnR1cmVEb2N1bWVudCA9IG1f
ZGVwYXJ0dXJlLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50KiBkZXN0aW5hdGlvbkRvY3VtZW50
ID0gbV9kZXN0aW5hdGlvbi0+ZG9jdW1lbnQoKTsKKyAgICBib29sIHdpbGxNb3ZlVG9OZXdEb2N1
bWVudCA9IGRlcGFydHVyZURvY3VtZW50ICE9IGRlc3RpbmF0aW9uRG9jdW1lbnQ7CisgICAgaWYg
KGRlcGFydHVyZURvY3VtZW50ICYmIHdpbGxNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgZGVw
YXJ0dXJlRG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9uKCk7CisKKyAgICBmb3IgKE5vZGUqIG5v
ZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewor
ICAgICAgICAvLyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhh
bmRsZWQgaW1wbGljaXRseQorICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgorICAg
ICAgICBub2RlLT5zZXRUcmVlU2NvcGUoZGVzdGluYXRpb25Eb2N1bWVudCA9PSBtX2Rlc3RpbmF0
aW9uID8gMCA6IG1fZGVzdGluYXRpb24pOworCisgICAgICAgIGlmIChub2RlLT5oYXNOb2RlTGlz
dHMoKSkgeworICAgICAgICAgICAgaWYgKG1fZGVwYXJ0dXJlKQorICAgICAgICAgICAgICAgIG1f
ZGVwYXJ0dXJlLT5yZW1vdmVOb2RlTGlzdENhY2hlKCk7CisgICAgICAgICAgICBtX2Rlc3RpbmF0
aW9uLT5hZGROb2RlTGlzdENhY2hlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAod2lsbE1v
dmVUb05ld0RvY3VtZW50KQorICAgICAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUs
IGRlcGFydHVyZURvY3VtZW50LCBkZXN0aW5hdGlvbkRvY3VtZW50KTsKKworICAgICAgICBpZiAo
U2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdEZvcihub2RlKSkgeworICAgICAgICAgICAg
c2hhZG93LT5zZXRQYXJlbnRUcmVlU2NvcGUobV9kZXN0aW5hdGlvbik7CisgICAgICAgICAgICBp
ZiAod2lsbE1vdmVUb05ld0RvY3VtZW50KQorICAgICAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdE
b2N1bWVudChzaGFkb3csIGRlcGFydHVyZURvY3VtZW50LCBkZXN0aW5hdGlvbkRvY3VtZW50KTsK
KyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRv
TmV3RG9jdW1lbnQoU2hhZG93Um9vdCogcm9vdCwgRG9jdW1lbnQqIGRlcGFydHVyZURvY3VtZW50
LCBEb2N1bWVudCogZGVzdGluYXRpb25Eb2N1bWVudCkgY29uc3QKK3sKKyAgICBmb3IgKE5vZGUq
IG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkg
eworICAgICAgICBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQobm9kZSwgZGVwYXJ0dXJlRG9jdW1lbnQs
IGRlc3RpbmF0aW9uRG9jdW1lbnQpOworICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0g
c2hhZG93Um9vdEZvcihub2RlKSkKKyAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1bWVudChz
aGFkb3csIGRlcGFydHVyZURvY3VtZW50LCBkZXN0aW5hdGlvbkRvY3VtZW50KTsKKyAgICB9Cit9
CisKKyNpZm5kZWYgTkRFQlVHCitzdGF0aWMgYm9vbCBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0Nh
bGxlZDsKK3N0YXRpYyBEb2N1bWVudCogb2xkRG9jdW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudFdh
c0NhbGxlZFdpdGg7CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6ZW5zdXJlRGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQoreworICAgIEFTU0VSVCgh
ZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOworICAgIEFTU0VSVF9VTlVTRUQob2xkRG9j
dW1lbnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXND
YWxsZWRXaXRoKTsKKyAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IHRydWU7Cit9
CisjZW5kaWYKKwordm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQo
Tm9kZSogbm9kZSwgRG9jdW1lbnQqIGRlcGFydHVyZURvY3VtZW50LCBEb2N1bWVudCogZGVzdGlu
YXRpb25Eb2N1bWVudCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW5vZGUtPmluRG9jdW1lbnQoKSB8
fCBkZXBhcnR1cmVEb2N1bWVudCAhPSBkZXN0aW5hdGlvbkRvY3VtZW50KTsKKworICAgIGRlc3Rp
bmF0aW9uRG9jdW1lbnQtPmd1YXJkUmVmKCk7CisgICAgaWYgKGRlcGFydHVyZURvY3VtZW50KSB7
CisgICAgICAgIGRlcGFydHVyZURvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1l
bnQobm9kZSwgZGVzdGluYXRpb25Eb2N1bWVudCk7CisgICAgICAgIGRlcGFydHVyZURvY3VtZW50
LT5ndWFyZERlcmVmKCk7CisgICAgfQorCisgICAgbm9kZS0+c2V0RG9jdW1lbnQoZGVzdGluYXRp
b25Eb2N1bWVudCk7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRX
YXNDYWxsZWQgPSBmYWxzZTsKKyAgICBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2Fz
Q2FsbGVkV2l0aCA9IGRlcGFydHVyZURvY3VtZW50OworI2VuZGlmCisKKyAgICBub2RlLT5kaWRN
b3ZlVG9OZXdEb2N1bWVudChkZXBhcnR1cmVEb2N1bWVudCk7CisgICAgQVNTRVJUKGRpZE1vdmVU
b05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVB
ZG9wdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRlYTMwYzkyODJlZjJkNmU1NjIyN2VhNmEyZTI1NGYwMWI5
NWRkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAo
bXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaWZuZGVmIFRyZWVT
Y29wZUFkb3B0ZXJfaAorI2RlZmluZSBUcmVlU2NvcGVBZG9wdGVyX2gKKworI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUcmVlU2NvcGVBZG9wdGVy
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBUcmVlU2NvcGVBZG9wdGVyKE5vZGUqIG1pZ3JhdGlv
blJvb3QsIFRyZWVTY29wZSogZGVzdGluYXRpb24pOworCisgICAgdm9pZCBleGVjdXRlKCkgY29u
c3QgeyBtb3ZlVHJlZVRvTmV3U2NvcGUobV9taWdyYXRpb25Sb290KTsgfQorICAgIGJvb2wgbmVl
ZHNTY29wZUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwYXJ0dXJlICE9IG1fZGVzdGluYXRp
b247IH0KKworI2lmZGVmIE5ERUJVRworICAgIHN0YXRpYyB2b2lkIGVuc3VyZURpZE1vdmVUb05l
d0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KikgeyB9CisjZWxzZQorICAgIHN0YXRpYyB2b2lk
IGVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50Kik7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICB2b2lkIG1vdmVUcmVlVG9OZXdTY29wZShOb2RlKikgY29uc3Q7Cisg
ICAgdm9pZCBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoU2hhZG93Um9vdCosIERvY3VtZW50KiBkZXBh
cnR1cmVEb2N1bWVudCwgRG9jdW1lbnQqIGRlc3RpbmF0aW9uRG9jdW1lbnQpIGNvbnN0OworICAg
IHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogZGVwYXJ0dXJlRG9j
dW1lbnQsIERvY3VtZW50KiBkZXN0aW5hdGlvbkRvY3VtZW50KSBjb25zdDsKKworICAgIHN0YXRp
YyBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5vZGUqKTsKKworICAgIE5vZGUqIG1fbWlncmF0
aW9uUm9vdDsKKyAgICBUcmVlU2NvcGUqIG1fZGVzdGluYXRpb247CisgICAgVHJlZVNjb3BlKiBt
X2RlcGFydHVyZTsKK307CisKK2lubGluZSBTaGFkb3dSb290KiBUcmVlU2NvcGVBZG9wdGVyOjpz
aGFkb3dSb290Rm9yKE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKK30KKworfQorCisjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121230</attachid>
            <date>2012-01-05 00:35:07 -0800</date>
            <delta_ts>2012-01-05 00:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75290-20120105173504.patch</filename>
            <type>text/plain</type>
            <size>31131</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I2NmFjOGEzMWRjYThi
ZjQ5ZTQwYWIzODUyNjE4NzE0OWEwOWE4My4uY2QxMzAzY2U3Y2ZiM2ViYWJkMzYxZTA3ZWViNWZk
Y2QzNTExMzJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTAxLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTW92aW5nIGJldHdlZW4gVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVBZG9wdGVyLiBCeSBkb2lu
ZyB0aGlzLCB0aGUgaWRlYSBvZgorICAgICAgICBtb3ZpbmcgYSBub2RlIGZyb20gc2NvcGUgdG8g
c2NvcGUsIHRoYXQgd2FzIG9yaWdpbmFsbHkgaGlkZGVuCisgICAgICAgIGJlaGluZCB0aGUgZm9y
ZXN0IG9mIE5vZGUgQVBJcywgaGFzIGJlY29tZSBjbGVhcmVyLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIGZvciBCdWcgNTk4MTYuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogRm9sbG93ZWQgdGhlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDogRm9sbG93ZWQgdGUgcmVuYW1pbmcuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0RG9jVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRvcHROb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IEZvbGxvd2VkIHRlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZCk6IG1vdmVkIGZyb20g
c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKQorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpUcmVlU2Nv
cGVBZG9wdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVl
VG9OZXdTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6ZW5z
dXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlQWRvcHRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0
ZXI6OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZUFkb3B0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlQWRvcHRlcjo6bmVlZHNTY29wZUNoYW5nZSgpKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZUFkb3B0ZXI6OnNoYWRvd1Jvb3RGb3IpOgorCiAyMDEyLTAxLTA0ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA0MDg0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ODhlMGYxNDEzZDk5Yjg0
OGQzNGY1ODA4MjYwNDBjNTNlYzA3Y2U3Li45ZjNkMTU4ZGY5MDRjMmM5NDY4NjkyZTkyZWFjNjI3
N2ZhNmRhMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjEwLDYgKzYxMCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAKICAgICBk
b20vVHJhdmVyc2FsLmNwcAogICAgIGRvbS9UcmVlU2NvcGUuY3BwCisgICAgZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuY3BwCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwCiAgICAgZG9tL1VJRXZlbnQuY3Bw
CiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCBlYWQ2ZGFkZDNmZDBmYjI1YjgzMDI0OTUyNDdiNzdhOTU5YzdmY2QzLi44ODlh
MzVhZTE2ZDRlZTMwMzYxYmE0YmQxMGRkYTM2ODNmODhiMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE2NzQsNiArMTY3NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVEZXB0aExpbWl0LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYjEyZjVlNTc4NjY4N2Q1MDQwY2Zj
M2UyMTNkZjQ1Y2I1NzE2MTI0Ny4uNWU3ZjVhZjVlNzYzMjI0NzdjY2JmOGIwOWYyZDQ5ZmM4YjY1
ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NzQsNiArNTc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
ZG9tL1RvdWNoTGlzdC5jcHAgXAogICAgIGRvbS9UcmF2ZXJzYWwuY3BwIFwKICAgICBkb20vVHJl
ZVNjb3BlLmNwcCBcCisgICAgZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIFwKICAgICBkb20vVHJl
ZVdhbGtlci5jcHAgXAogICAgIGRvbS9VSUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJRXZlbnRXaXRo
S2V5U3RhdGUuY3BwIFwKQEAgLTE2NzAsNiArMTY3MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9UcmF2ZXJzYWwuaCBcCiAgICAgZG9tL1RyZWVEZXB0aExpbWl0LmggXAogICAgIGRvbS9UcmVl
U2NvcGUuaCBcCisgICAgZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBcCiAgICAgZG9tL1RyZWVXYWxr
ZXIuaCBcCiAgICAgZG9tL1VJRXZlbnQuaCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODMwNWZjZWQ4ZWFmNjMwOWY3ZTZiYzliZjc2MWIwMjFh
YzA0NDg4NS4uMGUxNGU0MGE4MzgxODA1ZDg2ZDM3MjVjNTk4Y2UzMjlmZGYyZjU1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNTQ1Nyw2ICs1NDU3LDggQEAKICAgICAgICAgICAgICdkb20vVHJlZURl
cHRoTGltaXQuaCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVTY29wZS5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9UcmVlU2NvcGUuaCcsCisgICAgICAgICAgICAnZG9tL1RyZWVTY29wZUFkb3B0ZXIu
Y3BwJywKKyAgICAgICAgICAgICdkb20vVHJlZVNjb3BlQWRvcHRlci5oJywKICAgICAgICAgICAg
ICdkb20vVHJlZVdhbGtlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmgnLAog
ICAgICAgICAgICAgJ2RvbS9VSUV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQwY2YzOTVlOTNiZmQ4N2IxZmNhYmFhYjc4ZGY2
ZmJlNTliOWNiYmMuLmIxM2NmZDU5OTBlYjJiNGU5MjNlYjg1NTE2ZDY5NzgwNWYzNzUyOTEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MTgz
MCw2ICs1MTgzMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cVHJlZVNjb3BlQWRvcHRlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxUcmVlU2NvcGVBZG9w
dGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxUcmVlV2Fsa2VyLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
N2Y4YmZjN2FlODIyNzMxYWUzYTdjNGRkNDQ2MTc2YjkyZTg2ZTNhNS4uZjM0MWZjZjMxYjNlMDk3
ZjY4MDc1MDQ2YjA2N2Y2MmI2YWU3ZGIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzUxMSw2ICszNTExLDggQEAKIAkJQTc3
OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCAqLzsgfTsKIAkJQTc3QjQxQTAxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRF
dmVudElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3N0QwMDEy
MTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0
Q2hlY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlBNzdFMUZFRjE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZFRDE0QUFD
QjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgKi87IH07CisJCUE3N0UxRkYwMTRB
QUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJl
ZVNjb3BlQWRvcHRlci5oICovOyB9OwogCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9j
dW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLzsg
fTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg0OTQxQTBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKIAkJQTc4RTUyNkYxMzQ2QkQxNzAwQUQ5QzMx
IC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCAqLzsgfTsKQEAgLTEwNzg0LDYgKzEwNzg2LDggQEAKIAkJQTc3OTc5MjUwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0
MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNraW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVl
U2NvcGVBZG9wdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRy
ZWVTY29wZUFkb3B0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzdFMUZF
RTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENs
aXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEU1MjZEMTM0NkJE
MTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNTM5LDYgKzIxNTQzLDggQEAKIAkJCQkzN0ZENDI5NzExODM2ODQ2
MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCAqLywKIAkJCQkxNEQ2NEI1QTEzNEE1QjZCMDBF
NThGREEgLyogVHJlZVNjb3BlLmNwcCAqLywKIAkJCQkxNEQ2NEI1QjEzNEE1QjZCMDBFNThGREEg
LyogVHJlZVNjb3BlLmggKi8sCisJCQkJQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVT
Y29wZUFkb3B0ZXIuY3BwICovLAorCQkJCUE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVl
U2NvcGVBZG9wdGVyLmggKi8sCiAJCQkJODU0RkU3MkUwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVX
YWxrZXIuY3BwICovLAogCQkJCTg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2Vy
LmggKi8sCiAJCQkJMUE3NTBEM0MwQTkwREUzNTAwMEZGMjE1IC8qIFRyZWVXYWxrZXIuaWRsICov
LApAQCAtMjQ3OTIsNiArMjQ3OTgsNyBAQAogCQkJCTg1NEZFNzM3MEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkQ0Mjk4MTE4MzY4NDYwMDkzQzAy
OSAvKiBUcmVlRGVwdGhMaW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRENjRCNUQxMzRBNUI2
QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc3RTFGRjAxNEFB
Q0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
MTlEMkM1MENFQTZGNjEwMEZGNTA3QSAvKiBUcmVlU2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzdDMjhBNjgxMEY2NTlDQzAwOEM3ODEzIC8qIFR5cGVzZXR0aW5nRmVhdHVyZXMuaCBp
biBIZWFkZXJzICovLApAQCAtMjc3MjUsNiArMjc3MzIsNyBAQAogCQkJCTQ5RTkxMUQxMEVGODZE
NDcwMDlEMENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0RkU3MzYwQTIyOTdCRTAwNThEN0FEIC8qIFRyYXZlcnNhbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEQ2NEI1QzEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3N0UxRkVGMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVB
ZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTE5MDk5RTY0OTIwMDU2
RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjREMEE0
NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDQ5Y2FhOGUyMTA5NGJlNDU4MTgyZTMwNDM1YzFmNDY4
NDdmODllMGQuLmQ1Y2QwOWI5ZmRhZjk5N2Y0NzgwZjIzZjE2NWNiZTdiY2E0NzA4ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBDb250
YWluZXJOb2RlOjp0YWtlQWxsQ2hpbGRyZW5Gcm9tKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCkK
ICAgICAgICAgLy8gRklYTUU6IFRvZ2V0aGVyIHdpdGggYWRvcHROb2RlIGFib3ZlLCB0aGUgdHJl
ZSBzY29wZSBtaWdodCBnZXQgdXBkYXRlZCByZWN1cnNpdmVseSB0d2ljZQogICAgICAgICAvLyAo
aWYgdGhlIGRvY3VtZW50IGNoYW5nZWQgb3Igb2xkUGFyZW50IHdhcyBpbiBhIHNoYWRvdyB0cmVl
LCBBTkQgKnRoaXMgaXMgaW4gYSBzaGFkb3cgdHJlZSkuCiAgICAgICAgIC8vIENhbiB3ZSBkbyBi
ZXR0ZXI/Ci0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUo
KSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkLmdldCgpKTsKICAg
ICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQogICAgICAgICAgICAg
Y2hpbGQtPmF0dGFjaCgpOwogICAgIH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRE
T01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxk
LT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIHRyZWVTY29w
ZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24o
bmV4dC5nZXQoKSwgY2hpbGQpOwogCkBAIC0zMjksNyArMzI5LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hp
bGQsIEV4Y2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9N
Tm9kZShkb2N1bWVudCgpLCBjaGlsZC5nZXQoKSwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBj
aGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVl
U2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQoKSk7CiAKICAgICAgICAgLy8gQWRkIGNo
aWxkIGFmdGVyICJwcmV2Ii4KICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwpAQCAtNTA5
LDcgKzUwOSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQmV0d2VlbihOb2RlKiBwcmV2
aW91c0NoaWxkLCBOb2RlKiBuZXh0Q2hpbGQsIE5vZGUqIG9sCiAgICAgb2xkQ2hpbGQtPnNldE5l
eHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQYXJlbnQoMCk7CiAKLSAgICBvbGRDaGls
ZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgZG9jdW1lbnQoKS0+
YWRvcHRJZk5lZWRlZChvbGRDaGlsZCk7CiAKICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIH0K
QEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkK
ICAgICAgICAgbi0+c2V0UHJldmlvdXNTaWJsaW5nKDApOwogICAgICAgICBuLT5zZXROZXh0U2li
bGluZygwKTsKICAgICAgICAgbi0+c2V0UGFyZW50KDApOwotICAgICAgICBuLT5zZXRUcmVlU2Nv
cGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YWRvcHRJZk5l
ZWRlZChuLmdldCgpKTsKIAogICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBuZXh0OwogICAgICAgICBp
ZiAobiA9PSBtX2xhc3RDaGlsZCkKQEAgLTY0OSw3ICs2NDksNyBAQCBib29sIENvbnRhaW5lck5v
ZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjLCBibwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01O
b2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxkLT5z
ZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIHRyZWVTY29wZSgp
LT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAgICAgICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhl
IGVuZCBvZiB0aGUgbGlzdAogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CkBAIC02OTcs
NyArNjk3LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkKQogICAgIE5vZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICAvLyBG
SVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIHRha2UgYSBQYXNzUmVmUHRyLgogICAgIGFwcGVuZENo
aWxkVG9Db250YWluZXI8Tm9kZSwgQ29udGFpbmVyTm9kZT4obmV3Q2hpbGQuZ2V0KCksIHRoaXMp
OwotICAgIG5ld0NoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7Cisg
ICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQobmV3Q2hpbGQuZ2V0KCkpOwogICAgIAogICAg
IGFsbG93RXZlbnREaXNwYXRjaCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRl
eCBkMGJjZWNhYTJkMDhkMTIxY2UzOGUxMTRjZTc3ZjJkODMzNTdmYTQ4Li41NTA5NDY1M2Y1ZjIz
OTQ2ZmQ0NDNlNDg5ZjEzNzMzMzgxNGZiNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKQEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZUxpYnhzbHQu
Y3BwIgogI2luY2x1ZGUgIlRyYXZlcnNhbC5jcHAiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmNwcCIK
KyNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmNwcCIKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNw
cCIKICNpbmNsdWRlICJVSUV2ZW50LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRl
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDlmNDQ4YzQ5NjM5NTlhYWIzMGI1ODI4
ZmU2YTZlZTMwNTllMjViZjMuLmM4ZGM1NzQ5NzU1NWYwOWJjYzg5YWY0Yzg2ZmU1NzIzODhmMjUw
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzEyLDcgKzcxMiw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnNldERvY1R5cGUoUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAg
QVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5cGUpOwogICAgIG1fZG9jVHlwZSA9IGRvY1R5cGU7
CiAgICAgaWYgKG1fZG9jVHlwZSkKLSAgICAgICAgbV9kb2NUeXBlLT5zZXRUcmVlU2NvcGVSZWN1
cnNpdmVseSh0aGlzKTsKKyAgICAgICAgdGhpcy0+YWRvcHRJZk5lZWRlZChtX2RvY1R5cGUuZ2V0
KCkpOwogfQogCiBET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkK
QEAgLTk0Miw3ICs5NDIsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAg
c291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQoKSwgZWMpOwogICAg
IH0KIAotICAgIHNvdXJjZS0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodGhpcyk7CisgICAgdGhp
cy0+YWRvcHRJZk5lZWRlZChzb3VyY2UuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5Njc5YjEyMjlmZDEyYTU3YThkNGY2ZTJmMDI2OGZj
NjM3ZDdiZWYxLi40Mzg2OTM5N2Q1YTg0YTQ2NzA1NDdlYjNlNmUxZjdmNWVkNDlhZTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjE4LDcgKzEyMTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QoKQogICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CiAKICAgICAg
ICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAgICAgICAgb2xkUm9vdC0+c2V0VHJlZVNj
b3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZO
ZWVkZWQob2xkUm9vdC5nZXQoKSk7CiAgICAgICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkp
CiAgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCA5ZTZkZDVmYWM2ZmRlZTBmZTBjNmNjM2E3ZDI0OWEyYTVm
YTk2YzQ5Li4yMzQ1MzYxNzgzOGFhZTU5YzBmNjA0MTcwZTJmNmU1MWU1MTNiNWQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVHJlZVNj
b3BlQWRvcHRlci5oIgogI2luY2x1ZGUgIlVJRXZlbnQuaCIKICNpbmNsdWRlICJVSUV2ZW50V2l0
aEtleVN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKQEAgLTQxNywz
NyArNDE4LDMwIEBAIE5vZGU6On5Ob2RlKCkKICAgICAgICAgZG9jLT5ndWFyZERlcmVmKCk7CiB9
CiAKLSNpZm5kZWYgTkRFQlVHCi0KLXN0YXRpYyBib29sIGRpZE1vdmVUb05ld0RvY3VtZW50V2Fz
Q2FsbGVkOwotc3RhdGljIERvY3VtZW50KiBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkV2l0aDsKLQotI2VuZGlmCi0gICAgCiB2b2lkIE5vZGU6OnNldERvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoIWluRG9jdW1lbnQoKSB8fCBtX2RvY3Vt
ZW50ID09IGRvY3VtZW50KTsKICAgICBpZiAoaW5Eb2N1bWVudCgpIHx8IG1fZG9jdW1lbnQgPT0g
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvY3VtZW50LT5ndWFyZFJlZigpOwot
Ci0gICAgaWYgKG1fZG9jdW1lbnQpIHsKLSAgICAgICAgbV9kb2N1bWVudC0+bW92ZU5vZGVJdGVy
YXRvcnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50KTsKLSAgICAgICAgbV9kb2N1bWVudC0+
Z3VhcmREZXJlZigpOwotICAgIH0KLQotICAgIERvY3VtZW50KiBvbGREb2N1bWVudCA9IG1fZG9j
dW1lbnQ7CiAgICAgbV9kb2N1bWVudCA9IGRvY3VtZW50OworfQogCi0jaWZuZGVmIE5ERUJVRwot
ICAgIGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgb2xkRG9jdW1l
bnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdpdGggPSBvbGREb2N1bWVudDsKLSNlbmRp
ZgorTm9kZVJhcmVEYXRhKiBOb2RlOjpzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKiBzY29wZSkKK3sK
KyAgICBpZiAoIXNjb3BlKSB7CisgICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7CisgICAgICAg
ICAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOworICAgICAgICAgICAgZGF0YS0+
c2V0VHJlZVNjb3BlKDApOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KIAot
ICAgIGRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQogCi0gICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAg
ICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOworICAgIGRhdGEtPnNldFRy
ZWVTY29wZShzY29wZSk7CisgICAgcmV0dXJuIGRhdGE7CiB9CiAKIFRyZWVTY29wZSogTm9kZTo6
dHJlZVNjb3BlKCkgY29uc3QKQEAgLTQ1OSw1MyArNDUzLDYgQEAgVHJlZVNjb3BlKiBOb2RlOjp0
cmVlU2NvcGUoKSBjb25zdAogICAgIHJldHVybiBzY29wZSA/IHNjb3BlIDogbV9kb2N1bWVudDsK
IH0KIAotdm9pZCBOb2RlOjpzZXRUcmVlU2NvcGVSZWN1cnNpdmVseShUcmVlU2NvcGUqIG5ld1Ry
ZWVTY29wZSkKLXsKLSAgICBBU1NFUlQodGhpcyk7Ci0gICAgQVNTRVJUKCFpc0RvY3VtZW50Tm9k
ZSgpKTsKLSAgICBBU1NFUlQobmV3VHJlZVNjb3BlKTsKLSAgICBBU1NFUlQoIW1fZGVsZXRpb25I
YXNCZWd1bik7Ci0KLSAgICBUcmVlU2NvcGUqIGN1cnJlbnRUcmVlU2NvcGUgPSB0cmVlU2NvcGUo
KTsKLSAgICBpZiAoY3VycmVudFRyZWVTY29wZSA9PSBuZXdUcmVlU2NvcGUpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIERvY3VtZW50KiBjdXJyZW50RG9jdW1lbnQgPSBkb2N1bWVudCgpOwotICAg
IERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5ld1RyZWVTY29wZS0+ZG9jdW1lbnQoKTsKLSAgICAv
LyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBldmVudHVh
bGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCi0gICAgLy8gdGhhdCBlbGVt
ZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdpbGwgaGF2
ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgotICAgIC8vIG9mIHRoZSBkb2N1bWVudCBpdCB3
YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRoZSBkb25h
dGluZyBkb2N1bWVudCBoZXJlCi0gICAgLy8gd2UgZW5zdXJlIHRoYXQgdGhlIGNvbGxlY3Rpb24g
Y2FjaGUgd2lsbCBiZSBpbnZhbGlkYXRlZCBhcyBuZWVkZWQgd2hlbiB0aGUgZWxlbWVudCBpcyBt
b3ZlZCBiYWNrLgotICAgIGlmIChjdXJyZW50RG9jdW1lbnQgJiYgY3VycmVudERvY3VtZW50ICE9
IG5ld0RvY3VtZW50KQotICAgICAgICBjdXJyZW50RG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9u
KCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBpZiAobmV3VHJlZVNjb3BlID09IG5ld0Rv
Y3VtZW50KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEoKSkKLSAgICAgICAg
ICAgICAgICBub2RlLT5yYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUoMCk7Ci0gICAgICAgICAgICAv
LyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhhbmRsZWQgaW1w
bGljaXRseQotICAgICAgICAgICAgLy8gYnkgc2V0RG9jdW1lbnQoKSBiZWxvdy4KLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBub2RlLT5lbnN1cmVSYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUo
bmV3VHJlZVNjb3BlKTsKLQotICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEoKSAmJiBub2Rl
LT5yYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSkgewotICAgICAgICAgICAgaWYgKGN1cnJlbnRUcmVl
U2NvcGUpCi0gICAgICAgICAgICAgICAgY3VycmVudFRyZWVTY29wZS0+cmVtb3ZlTm9kZUxpc3RD
YWNoZSgpOwotICAgICAgICAgICAgbmV3VHJlZVNjb3BlLT5hZGROb2RlTGlzdENhY2hlKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdEb2N1bWVudCk7Ci0KLSAg
ICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQobm9kZSktPnNo
YWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0UGFyZW50VHJlZVNjb3Bl
KG5ld1RyZWVTY29wZSk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudERvY3VtZW50ICE9IG5ld0Rv
Y3VtZW50KQotICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QtPnNldERvY3VtZW50UmVjdXJzaXZl
bHkobmV3RG9jdW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotfQotCiBOb2RlUmFyZURhdGEqIE5v
ZGU6OnJhcmVEYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7CkBAIC04
NTEsMTkgKzc5OCw2IEBAIGlubGluZSBzdGF0aWMgU2hhZG93Um9vdCogc2hhZG93Um9vdChOb2Rl
KiBub2RlKQogICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9k
ZSktPnNoYWRvd1Jvb3QoKSA6IDA7CiB9CiAKLXZvaWQgTm9kZTo6c2V0RG9jdW1lbnRSZWN1cnNp
dmVseShEb2N1bWVudCogbmV3RG9jdW1lbnQpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KCkgIT0g
bmV3RG9jdW1lbnQpOwotCi0gICAgZm9yIChOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9
IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsKLSAgICAgICAgbm9kZS0+c2V0RG9jdW1l
bnQobmV3RG9jdW1lbnQpOwotICAgICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hh
ZG93Um9vdChub2RlKSkKLSAgICAgICAgICAgIHNoYWRvdy0+c2V0RG9jdW1lbnRSZWN1cnNpdmVs
eShuZXdEb2N1bWVudCk7Ci0gICAgfQotfQotCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNo
YW5nZShTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSkKIHsKICAgICBtX25vZGVGbGFncyA9ICht
X25vZGVGbGFncyAmIH5TdHlsZUNoYW5nZU1hc2spIHwgY2hhbmdlVHlwZTsKQEAgLTI0ODEsMTIg
KzI0MTUsNyBAQCB2b2lkIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQogCiB2b2lkIE5vZGU6
OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKIHsKLSAgICBBU1NF
UlQoIWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9s
ZERvY3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkV2l0aCk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1l
bnRXYXNDYWxsZWQgPSB0cnVlOwotI2VuZGlmCisgICAgVHJlZVNjb3BlQWRvcHRlcjo6ZW5zdXJl
RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQob2xkRG9jdW1lbnQpOwogCiAgICAgLy8gRklY
TUU6IEV2ZW50IGxpc3RlbmVyIHR5cGVzIGZvciB0aGlzIG5vZGUgc2hvdWxkIGJlIHNldCBvbiB0
aGUgbmV3IG93bmVyIGRvY3VtZW50IGhlcmUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGZhNjliNzU5NDBi
M2Q0MTg3YmM5NzQ1MzU2M2RhOWNhYmQxYjU5NmYuLjJlN2UxZjk2MDVhYzcxYjU5ZTliZDA1YjU3
ZGY2ZGNhNTIwNjI5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTA0LDYgKzEwNCw3IEBAIGVudW0gU3R5
bGVDaGFuZ2VUeXBlIHsKIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUsIHB1YmxpYyBUcmVlU2hhcmVkPENvbnRhaW5lck5vZGU+IHsKICAgICBm
cmllbmQgY2xhc3MgRG9jdW1lbnQ7CiAgICAgZnJpZW5kIGNsYXNzIFRyZWVTY29wZTsKKyAgICBm
cmllbmQgY2xhc3MgVHJlZVNjb3BlQWRvcHRlcjsKIAogcHVibGljOgogICAgIGVudW0gTm9kZVR5
cGUgewpAQCAtMzgzLDkgKzM4NCw2IEBAIHB1YmxpYzoKIAogICAgIFRyZWVTY29wZSogdHJlZVNj
b3BlKCkgY29uc3Q7CiAKLSAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbWV0aG9kcyAoZS5n
LiwgYXBwZW5kQ2hpbGQoKSkuCi0gICAgdm9pZCBzZXRUcmVlU2NvcGVSZWN1cnNpdmVseShUcmVl
U2NvcGUqKTsKLQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG5vZGUgaXMgYXNzb2NpYXRl
ZCB3aXRoIGEgZG9jdW1lbnQgYW5kIGlzIGluIGl0cyBhc3NvY2lhdGVkIGRvY3VtZW50J3MKICAg
ICAvLyBub2RlIHRyZWUsIGZhbHNlIG90aGVyd2lzZS4KICAgICBib29sIGluRG9jdW1lbnQoKSBj
b25zdCAKQEAgLTY5OCw5ICs2OTYsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGVhckhhc0N1
c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSB7IGNsZWFyRmxhZyhIYXNDdXN0b21TdHlsZUZvclJlbmRl
cmVyRmxhZyk7IH0KIAogcHJpdmF0ZToKLSAgICAvLyBEbyBub3QgdXNlIHRoaXMgbWV0aG9kIHRv
IGNoYW5nZSB0aGUgZG9jdW1lbnQgb2YgYSBub2RlIHVudGlsIGFmdGVyIHRoZSBub2RlIGhhcyBi
ZWVuCi0gICAgLy8gcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBkb2N1bWVudC4KLSAgICB2b2lk
IHNldERvY3VtZW50UmVjdXJzaXZlbHkoRG9jdW1lbnQqKTsKKyAgICAvLyBUaGVzZSBBUEkgc2hv
dWxkIGJlIG9ubHkgdXNlZCBmb3IgYSB0cmVlIHNjb3BlIG1pZ3JhdGlvbi4KKyAgICAvLyBzZXRU
cmVlU2NvcGUoKSByZXR1cm5zIE5vZGVSYXJlRGF0YSB0byBzYXZlIGV4dHJhIG5vZGVSYXJlRGF0
YSgpIGludm9jYXRpb25zIG9uIHRoZSBjYWxsZXIgc2l0ZS4KKyAgICBOb2RlUmFyZURhdGEqIHNl
dFRyZWVTY29wZShUcmVlU2NvcGUqKTsKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50Kik7
CiAKICAgICBlbnVtIEVkaXRhYmxlTGV2ZWwgeyBFZGl0YWJsZSwgUmljaGx5RWRpdGFibGUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMzViYWQ1MWNlOTEwMTg4MTliMmRjODY0MDJl
NWRmZGU3OTA0NzU2Zi4uOTFmM2MyOTViZWFhMjIxZmYxNzg4ZDhmOWM4NDI0YmQ4MDAwMTVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJI
VE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGVS
YXJlRGF0YS5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xMzcsNSArMTM4LDE2IEBAIGJvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhv
clNoZWV0cygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgVHJlZVNjb3BlOjph
ZG9wdElmTmVlZGVkKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKHRoaXMpOworICAgIEFTU0VS
VChub2RlKTsKKyAgICBBU1NFUlQoIW5vZGUtPmlzRG9jdW1lbnROb2RlKCkpOworICAgIEFTU0VS
VCghbm9kZS0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKKyAgICBUcmVlU2NvcGVBZG9wdGVyIGFkb3B0
ZXIobm9kZSwgdGhpcyk7CisgICAgaWYgKGFkb3B0ZXIubmVlZHNTY29wZUNoYW5nZSgpKQorICAg
ICAgICBhZG9wdGVyLmV4ZWN1dGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggY2JlM2VlMDdhYTk2ZTVhZjQ1Yzg2N2NlOGViMzZlNmYx
MzcwOGFmZC4uZmQ2YzNjYjhkZjllZjVhOTAxZjE2M2MyYTY0YzZiYjA0OWNkMDAxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKIAorICAgIC8vIFVzZWQgYnkgdGhlIGJh
c2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KKyAgICB2b2lk
IGFkb3B0SWZOZWVkZWQoTm9kZSopOworCiBwcm90ZWN0ZWQ6CiAgICAgVHJlZVNjb3BlKERvY3Vt
ZW50KiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZUNvbnRhaW5lcik7CiAgICAgdmlydHVhbCB+
VHJlZVNjb3BlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTdkNjJlMjA4NzliMTE2OTIxMTliN2Y5N2U2MTE4NDYyNWVkNDllZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAtMCww
ICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5v
ZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKK30KKwordm9pZCBUcmVlU2NvcGVBZG9wdGVyOjpt
b3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQobmVlZHNT
Y29wZUNoYW5nZSgpKTsKKworICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRv
Y3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNo
ZSBmb3IKKyAgICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFu
Z2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCisgICAg
Ly8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9N
VHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKKyAgICAvLyB3ZSBlbnN1
cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRl
ZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJhY2suCisgICAgRG9jdW1lbnQqIG9sZERvY3Vt
ZW50ID0gbV9vbGRTY29wZS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQg
PSBtX25ld1Njb3BlLT5kb2N1bWVudCgpOworICAgIGJvb2wgd2lsbE1vdmVUb05ld0RvY3VtZW50
ID0gb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQ7CisgICAgaWYgKG9sZERvY3VtZW50ICYmIHdp
bGxNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgb2xkRG9jdW1lbnQtPmluY0RPTVRyZWVWZXJz
aW9uKCk7CisKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+
dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgeworICAgICAgICBOb2RlUmFyZURhdGEqIHJhcmVEYXRh
ID0gbm9kZS0+c2V0VHJlZVNjb3BlKG5ld0RvY3VtZW50ID09IG1fbmV3U2NvcGUgPyAwIDogbV9u
ZXdTY29wZSk7CisgICAgICAgIGlmIChyYXJlRGF0YSAmJiByYXJlRGF0YS0+bm9kZUxpc3QoKSkg
eworICAgICAgICAgICAgaWYgKG1fb2xkU2NvcGUpCisgICAgICAgICAgICAgICAgbV9vbGRTY29w
ZS0+cmVtb3ZlTm9kZUxpc3RDYWNoZSgpOworICAgICAgICAgICAgbV9uZXdTY29wZS0+YWRkTm9k
ZUxpc3RDYWNoZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbGxNb3ZlVG9OZXdEb2N1
bWVudCkKKyAgICAgICAgICAgIG1vdmVOb2RlVG9OZXdEb2N1bWVudChub2RlLCBvbGREb2N1bWVu
dCwgbmV3RG9jdW1lbnQpOworCisgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFk
b3dSb290Rm9yKG5vZGUpKSB7CisgICAgICAgICAgICBzaGFkb3ctPnNldFBhcmVudFRyZWVTY29w
ZShtX25ld1Njb3BlKTsKKyAgICAgICAgICAgIGlmICh3aWxsTW92ZVRvTmV3RG9jdW1lbnQpCisg
ICAgICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQs
IG5ld0RvY3VtZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBUcmVlU2NvcGVBZG9w
dGVyOjptb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQqIG9sZERvY3Vt
ZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Cit7CisgICAgZm9yIChOb2RlKiBub2Rl
ID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUocm9vdCkpIHsKKyAg
ICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVu
dCk7CisgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9yKG5vZGUp
KQorICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQs
IG5ld0RvY3VtZW50KTsKKyAgICB9Cit9CisKKyNpZm5kZWYgTkRFQlVHCitzdGF0aWMgYm9vbCBk
aWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZDsKK3N0YXRpYyBEb2N1bWVudCogb2xkRG9jdW1l
bnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdpdGg7CisKK3ZvaWQgVHJlZVNjb3BlQWRv
cHRlcjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQoRG9jdW1lbnQqIG9sZERv
Y3VtZW50KQoreworICAgIEFTU0VSVCghZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwor
ICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1lbnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50
RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoKTsKKyAgICBkaWRNb3ZlVG9OZXdEb2N1
bWVudFdhc0NhbGxlZCA9IHRydWU7Cit9CisjZW5kaWYKKwordm9pZCBUcmVlU2NvcGVBZG9wdGVy
Ojptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvY3VtZW50
LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5pbkRv
Y3VtZW50KCkgfHwgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQpOworCisgICAgbmV3RG9jdW1l
bnQtPmd1YXJkUmVmKCk7CisgICAgaWYgKG9sZERvY3VtZW50KSB7CisgICAgICAgIG9sZERvY3Vt
ZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQobm9kZSwgbmV3RG9jdW1lbnQpOwor
ICAgICAgICBvbGREb2N1bWVudC0+Z3VhcmREZXJlZigpOworICAgIH0KKworICAgIG5vZGUtPnNl
dERvY3VtZW50KG5ld0RvY3VtZW50KTsKKworI2lmbmRlZiBOREVCVUcKKyAgICBkaWRNb3ZlVG9O
ZXdEb2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOworICAgIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWRXaXRoID0gb2xkRG9jdW1lbnQ7CisjZW5kaWYKKworICAgIG5vZGUt
PmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKKyAgICBBU1NFUlQoZGlkTW92ZVRv
TmV3RG9jdW1lbnRXYXNDYWxsZWQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFk
b3B0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMmJkNGQ0ZjAxZTdkMjNjYzYzMDVjMTM4MjAwNTU2NTE2ZTU5
MjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8g
KGtvaXZpc3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyICht
dWVsbGVyQGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNpZm5kZWYgVHJlZVNj
b3BlQWRvcHRlcl9oCisjZGVmaW5lIFRyZWVTY29wZUFkb3B0ZXJfaAorCisjaW5jbHVkZSAiRWxl
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRyZWVTY29wZUFkb3B0ZXIg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFRyZWVTY29wZUFkb3B0ZXIoTm9kZSogdG9BZG9wdCwg
VHJlZVNjb3BlKiBuZXdTY29wZSk7CisKKyAgICB2b2lkIGV4ZWN1dGUoKSBjb25zdCB7IG1vdmVU
cmVlVG9OZXdTY29wZShtX3RvQWRvcHQpOyB9CisgICAgYm9vbCBuZWVkc1Njb3BlQ2hhbmdlKCkg
Y29uc3QgeyByZXR1cm4gbV9vbGRTY29wZSAhPSBtX25ld1Njb3BlOyB9CisKKyNpZmRlZiBOREVC
VUcKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChE
b2N1bWVudCopIHsgfQorI2Vsc2UKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVEaWRNb3ZlVG9OZXdE
b2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCopOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgdm9p
ZCBtb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSopIGNvbnN0OworICAgIHZvaWQgbW92ZVRyZWVUb05l
d0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1
bWVudCkgY29uc3Q7CisgICAgdm9pZCBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSosIERvY3Vt
ZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdDsKKworICAgIE5v
ZGUqIG1fdG9BZG9wdDsKKyAgICBUcmVlU2NvcGUqIG1fbmV3U2NvcGU7CisgICAgVHJlZVNjb3Bl
KiBtX29sZFNjb3BlOworfTsKKworaW5saW5lIFRyZWVTY29wZUFkb3B0ZXI6OlRyZWVTY29wZUFk
b3B0ZXIoTm9kZSogdG9BZG9wdCwgVHJlZVNjb3BlKiBuZXdTY29wZSkKKyAgICA6IG1fdG9BZG9w
dCh0b0Fkb3B0KQorICAgICwgbV9uZXdTY29wZShuZXdTY29wZSkKKyAgICAsIG1fb2xkU2NvcGUo
dG9BZG9wdC0+dHJlZVNjb3BlKCkpCit7CisgICAgQVNTRVJUKG5ld1Njb3BlKTsKK30KKworfQor
CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121231</attachid>
            <date>2012-01-05 00:48:51 -0800</date>
            <delta_ts>2012-01-05 02:21:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75290-20120105174849.patch</filename>
            <type>text/plain</type>
            <size>31132</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I2NmFjOGEzMWRjYThi
ZjQ5ZTQwYWIzODUyNjE4NzE0OWEwOWE4My4uY2QxMzAzY2U3Y2ZiM2ViYWJkMzYxZTA3ZWViNWZk
Y2QzNTExMzJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTAxLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z10gTW92aW5nIGJldHdlZW4gVHJlZVNjb3BlcyBzaG91bGQgYmUgZG9uZSBieSBpdHMgb3duIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUy
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGNoYW5nZSBleHRyYWN0ZWQgTm9kZTo6c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKSwKKyAgICAg
ICAgc2V0RG9jdW1lbnRSZWN1cnNpdmVseSgpIGFuZCBhIHBhcnQgb2Ygc2V0RG9jdW1lbnQoKSBp
bnRvIGEgbmV3CisgICAgICAgIGNsYXNzIGNhbGxlZCBUcmVlU2NvcGVBZG9wdGVyLiBCeSBkb2lu
ZyB0aGlzLCB0aGUgaWRlYSBvZgorICAgICAgICBtb3ZpbmcgYSBub2RlIGZyb20gc2NvcGUgdG8g
c2NvcGUsIHRoYXQgd2FzIG9yaWdpbmFsbHkgaGlkZGVuCisgICAgICAgIGJlaGluZCB0aGUgZm9y
ZXN0IG9mIE5vZGUgQVBJcywgaGFzIGJlY29tZSBjbGVhcmVyLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIGNoYW5nZSBpcyBhIHByZXBhcmF0aW9uIGZvciBCdWcgNTk4MTYuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogRm9sbG93ZWQgdGhlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6dGFrZUFsbENoaWxkcmVuRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUJldHdlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
cGFyc2VyQWRkQ2hpbGQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDogRm9sbG93ZWQgdGUgcmVuYW1pbmcuCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0RG9jVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRvcHROb2RlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IEZvbGxvd2VkIHRlIHJlbmFt
aW5nLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZCk6IG1vdmVkIGZyb20g
c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoKQorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpUcmVlU2Nv
cGVBZG9wdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVl
VG9OZXdTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6ZW5z
dXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlQWRvcHRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0
ZXI6OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZUFkb3B0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlQWRvcHRlcjo6bmVlZHNTY29wZUNoYW5nZSgpKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZUFkb3B0ZXI6OnNoYWRvd1Jvb3RGb3IpOgorCiAyMDEyLTAxLTA0ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA0MDg0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ODhlMGYxNDEzZDk5Yjg0
OGQzNGY1ODA4MjYwNDBjNTNlYzA3Y2U3Li45ZjNkMTU4ZGY5MDRjMmM5NDY4NjkyZTkyZWFjNjI3
N2ZhNmRhMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjEwLDYgKzYxMCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAKICAgICBk
b20vVHJhdmVyc2FsLmNwcAogICAgIGRvbS9UcmVlU2NvcGUuY3BwCisgICAgZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuY3BwCiAgICAgZG9tL1RyZWVXYWxrZXIuY3BwCiAgICAgZG9tL1VJRXZlbnQuY3Bw
CiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCBlYWQ2ZGFkZDNmZDBmYjI1YjgzMDI0OTUyNDdiNzdhOTU5YzdmY2QzLi44ODlh
MzVhZTE2ZDRlZTMwMzYxYmE0YmQxMGRkYTM2ODNmODhiMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE2NzQsNiArMTY3NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVEZXB0aExpbWl0LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYjEyZjVlNTc4NjY4N2Q1MDQwY2Zj
M2UyMTNkZjQ1Y2I1NzE2MTI0Ny4uNWU3ZjVhZjVlNzYzMjI0NzdjY2JmOGIwOWYyZDQ5ZmM4YjY1
ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NzQsNiArNTc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
ZG9tL1RvdWNoTGlzdC5jcHAgXAogICAgIGRvbS9UcmF2ZXJzYWwuY3BwIFwKICAgICBkb20vVHJl
ZVNjb3BlLmNwcCBcCisgICAgZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIFwKICAgICBkb20vVHJl
ZVdhbGtlci5jcHAgXAogICAgIGRvbS9VSUV2ZW50LmNwcCBcCiAgICAgZG9tL1VJRXZlbnRXaXRo
S2V5U3RhdGUuY3BwIFwKQEAgLTE2NzAsNiArMTY3MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9UcmF2ZXJzYWwuaCBcCiAgICAgZG9tL1RyZWVEZXB0aExpbWl0LmggXAogICAgIGRvbS9UcmVl
U2NvcGUuaCBcCisgICAgZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBcCiAgICAgZG9tL1RyZWVXYWxr
ZXIuaCBcCiAgICAgZG9tL1VJRXZlbnQuaCBcCiAgICAgZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODMwNWZjZWQ4ZWFmNjMwOWY3ZTZiYzliZjc2MWIwMjFh
YzA0NDg4NS4uMGUxNGU0MGE4MzgxODA1ZDg2ZDM3MjVjNTk4Y2UzMjlmZGYyZjU1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNTQ1Nyw2ICs1NDU3LDggQEAKICAgICAgICAgICAgICdkb20vVHJlZURl
cHRoTGltaXQuaCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVTY29wZS5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9UcmVlU2NvcGUuaCcsCisgICAgICAgICAgICAnZG9tL1RyZWVTY29wZUFkb3B0ZXIu
Y3BwJywKKyAgICAgICAgICAgICdkb20vVHJlZVNjb3BlQWRvcHRlci5oJywKICAgICAgICAgICAg
ICdkb20vVHJlZVdhbGtlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmgnLAog
ICAgICAgICAgICAgJ2RvbS9VSUV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQwY2YzOTVlOTNiZmQ4N2IxZmNhYmFhYjc4ZGY2
ZmJlNTliOWNiYmMuLmIxM2NmZDU5OTBlYjJiNGU5MjNlYjg1NTE2ZDY5NzgwNWYzNzUyOTEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC01MTgz
MCw2ICs1MTgzMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cVHJlZVNjb3BlQWRvcHRlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxUcmVlU2NvcGVBZG9w
dGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxUcmVlV2Fsa2VyLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
N2Y4YmZjN2FlODIyNzMxYWUzYTdjNGRkNDQ2MTc2YjkyZTg2ZTNhNS4uZjM0MWZjZjMxYjNlMDk3
ZjY4MDc1MDQ2YjA2N2Y2MmI2YWU3ZGIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzUxMSw2ICszNTExLDggQEAKIAkJQTc3
OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCAqLzsgfTsKIAkJQTc3QjQxQTAxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRF
dmVudElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3N0QwMDEy
MTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0
Q2hlY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlBNzdFMUZFRjE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZFRDE0QUFD
QjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5jcHAgKi87IH07CisJCUE3N0UxRkYwMTRB
QUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdFMUZFRTE0QUFDQjZFMDA1QjdDQjYgLyogVHJl
ZVNjb3BlQWRvcHRlci5oICovOyB9OwogCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9j
dW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLzsg
fTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg0OTQxQTBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKIAkJQTc4RTUyNkYxMzQ2QkQxNzAwQUQ5QzMx
IC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCAqLzsgfTsKQEAgLTEwNzg0LDYgKzEwNzg2LDggQEAKIAkJQTc3OTc5MjUwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0
MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNraW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3N0UxRkVEMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVl
U2NvcGVBZG9wdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRy
ZWVTY29wZUFkb3B0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzdFMUZF
RTE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUcmVlU2NvcGVBZG9wdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENs
aXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEU1MjZEMTM0NkJE
MTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxNTM5LDYgKzIxNTQzLDggQEAKIAkJCQkzN0ZENDI5NzExODM2ODQ2
MDA5M0MwMjkgLyogVHJlZURlcHRoTGltaXQuaCAqLywKIAkJCQkxNEQ2NEI1QTEzNEE1QjZCMDBF
NThGREEgLyogVHJlZVNjb3BlLmNwcCAqLywKIAkJCQkxNEQ2NEI1QjEzNEE1QjZCMDBFNThGREEg
LyogVHJlZVNjb3BlLmggKi8sCisJCQkJQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVT
Y29wZUFkb3B0ZXIuY3BwICovLAorCQkJCUE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVl
U2NvcGVBZG9wdGVyLmggKi8sCiAJCQkJODU0RkU3MkUwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVX
YWxrZXIuY3BwICovLAogCQkJCTg1NEZFNzJGMEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2Vy
LmggKi8sCiAJCQkJMUE3NTBEM0MwQTkwREUzNTAwMEZGMjE1IC8qIFRyZWVXYWxrZXIuaWRsICov
LApAQCAtMjQ3OTIsNiArMjQ3OTgsNyBAQAogCQkJCTg1NEZFNzM3MEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkQ0Mjk4MTE4MzY4NDYwMDkzQzAy
OSAvKiBUcmVlRGVwdGhMaW1pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRENjRCNUQxMzRBNUI2
QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc3RTFGRjAxNEFB
Q0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
MTlEMkM1MENFQTZGNjEwMEZGNTA3QSAvKiBUcmVlU2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NTRGRTczOTBBMjI5N0JFMDA1OEQ3QUQgLyogVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzdDMjhBNjgxMEY2NTlDQzAwOEM3ODEzIC8qIFR5cGVzZXR0aW5nRmVhdHVyZXMuaCBp
biBIZWFkZXJzICovLApAQCAtMjc3MjUsNiArMjc3MzIsNyBAQAogCQkJCTQ5RTkxMUQxMEVGODZE
NDcwMDlEMENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0RkU3MzYwQTIyOTdCRTAwNThEN0FEIC8qIFRyYXZlcnNhbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNEQ2NEI1QzEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3N0UxRkVGMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVB
ZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAv
KiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTE5MDk5RTY0OTIwMDU2
RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjREMEE0
NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDQ5Y2FhOGUyMTA5NGJlNDU4MTgyZTMwNDM1YzFmNDY4
NDdmODllMGQuLmQ1Y2QwOWI5ZmRhZjk5N2Y0NzgwZjIzZjE2NWNiZTdiY2E0NzA4ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBDb250
YWluZXJOb2RlOjp0YWtlQWxsQ2hpbGRyZW5Gcm9tKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCkK
ICAgICAgICAgLy8gRklYTUU6IFRvZ2V0aGVyIHdpdGggYWRvcHROb2RlIGFib3ZlLCB0aGUgdHJl
ZSBzY29wZSBtaWdodCBnZXQgdXBkYXRlZCByZWN1cnNpdmVseSB0d2ljZQogICAgICAgICAvLyAo
aWYgdGhlIGRvY3VtZW50IGNoYW5nZWQgb3Igb2xkUGFyZW50IHdhcyBpbiBhIHNoYWRvdyB0cmVl
LCBBTkQgKnRoaXMgaXMgaW4gYSBzaGFkb3cgdHJlZSkuCiAgICAgICAgIC8vIENhbiB3ZSBkbyBi
ZXR0ZXI/Ci0gICAgICAgIGNoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUo
KSk7CisgICAgICAgIHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkLmdldCgpKTsKICAg
ICAgICAgaWYgKGF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQogICAgICAgICAgICAg
Y2hpbGQtPmF0dGFjaCgpOwogICAgIH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRE
T01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxk
LT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIHRyZWVTY29w
ZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24o
bmV4dC5nZXQoKSwgY2hpbGQpOwogCkBAIC0zMjksNyArMzI5LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hp
bGQsIEV4Y2UKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9N
Tm9kZShkb2N1bWVudCgpLCBjaGlsZC5nZXQoKSwgdGhpcyk7CiAjZW5kaWYKIAotICAgICAgICBj
aGlsZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodHJlZVNjb3BlKCkpOworICAgICAgICB0cmVl
U2NvcGUoKS0+YWRvcHRJZk5lZWRlZChjaGlsZC5nZXQoKSk7CiAKICAgICAgICAgLy8gQWRkIGNo
aWxkIGFmdGVyICJwcmV2Ii4KICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRjaCgpOwpAQCAtNTA5
LDcgKzUwOSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQmV0d2VlbihOb2RlKiBwcmV2
aW91c0NoaWxkLCBOb2RlKiBuZXh0Q2hpbGQsIE5vZGUqIG9sCiAgICAgb2xkQ2hpbGQtPnNldE5l
eHRTaWJsaW5nKDApOwogICAgIG9sZENoaWxkLT5zZXRQYXJlbnQoMCk7CiAKLSAgICBvbGRDaGls
ZC0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgZG9jdW1lbnQoKS0+
YWRvcHRJZk5lZWRlZChvbGRDaGlsZCk7CiAKICAgICBhbGxvd0V2ZW50RGlzcGF0Y2goKTsKIH0K
QEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKCkK
ICAgICAgICAgbi0+c2V0UHJldmlvdXNTaWJsaW5nKDApOwogICAgICAgICBuLT5zZXROZXh0U2li
bGluZygwKTsKICAgICAgICAgbi0+c2V0UGFyZW50KDApOwotICAgICAgICBuLT5zZXRUcmVlU2Nv
cGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YWRvcHRJZk5l
ZWRlZChuLmdldCgpKTsKIAogICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBuZXh0OwogICAgICAgICBp
ZiAobiA9PSBtX2xhc3RDaGlsZCkKQEAgLTY0OSw3ICs2NDksNyBAQCBib29sIENvbnRhaW5lck5v
ZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjLCBibwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01O
b2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCi0gICAgICAgIGNoaWxkLT5z
ZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAgIHRyZWVTY29wZSgp
LT5hZG9wdElmTmVlZGVkKGNoaWxkKTsKIAogICAgICAgICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhl
IGVuZCBvZiB0aGUgbGlzdAogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CkBAIC02OTcs
NyArNjk3LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkKQogICAgIE5vZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKICAgICAvLyBG
SVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIHRha2UgYSBQYXNzUmVmUHRyLgogICAgIGFwcGVuZENo
aWxkVG9Db250YWluZXI8Tm9kZSwgQ29udGFpbmVyTm9kZT4obmV3Q2hpbGQuZ2V0KCksIHRoaXMp
OwotICAgIG5ld0NoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7Cisg
ICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQobmV3Q2hpbGQuZ2V0KCkpOwogICAgIAogICAg
IGFsbG93RXZlbnREaXNwYXRjaCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRl
eCBkMGJjZWNhYTJkMDhkMTIxY2UzOGUxMTRjZTc3ZjJkODMzNTdmYTQ4Li41NTA5NDY1M2Y1ZjIz
OTQ2ZmQ0NDNlNDg5ZjEzNzMzMzgxNGZiNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKQEAgLTEyOSw2ICsxMjksNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZUxpYnhzbHQu
Y3BwIgogI2luY2x1ZGUgIlRyYXZlcnNhbC5jcHAiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmNwcCIK
KyNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmNwcCIKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmNw
cCIKICNpbmNsdWRlICJVSUV2ZW50LmNwcCIKICNpbmNsdWRlICJVSUV2ZW50V2l0aEtleVN0YXRl
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDlmNDQ4YzQ5NjM5NTlhYWIzMGI1ODI4
ZmU2YTZlZTMwNTllMjViZjMuLmM4ZGM1NzQ5NzU1NWYwOWJjYzg5YWY0Yzg2ZmU1NzIzODhmMjUw
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzEyLDcgKzcxMiw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnNldERvY1R5cGUoUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAg
QVNTRVJUKCFtX2RvY1R5cGUgfHwgIWRvY1R5cGUpOwogICAgIG1fZG9jVHlwZSA9IGRvY1R5cGU7
CiAgICAgaWYgKG1fZG9jVHlwZSkKLSAgICAgICAgbV9kb2NUeXBlLT5zZXRUcmVlU2NvcGVSZWN1
cnNpdmVseSh0aGlzKTsKKyAgICAgICAgdGhpcy0+YWRvcHRJZk5lZWRlZChtX2RvY1R5cGUuZ2V0
KCkpOwogfQogCiBET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkK
QEAgLTk0Miw3ICs5NDIsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAg
c291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQoKSwgZWMpOwogICAg
IH0KIAotICAgIHNvdXJjZS0+c2V0VHJlZVNjb3BlUmVjdXJzaXZlbHkodGhpcyk7CisgICAgdGhp
cy0+YWRvcHRJZk5lZWRlZChzb3VyY2UuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHNvdXJjZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5Njc5YjEyMjlmZDEyYTU3YThkNGY2ZTJmMDI2OGZj
NjM3ZDdiZWYxLi40Mzg2OTM5N2Q1YTg0YTQ2NzA1NDdlYjNlNmUxZjdmNWVkNDlhZTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMjE4LDcgKzEyMTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QoKQogICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7CiAKICAgICAg
ICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAgICAgICAgb2xkUm9vdC0+c2V0VHJlZVNj
b3BlUmVjdXJzaXZlbHkoZG9jdW1lbnQoKSk7CisgICAgICAgIGRvY3VtZW50KCktPmFkb3B0SWZO
ZWVkZWQob2xkUm9vdC5nZXQoKSk7CiAgICAgICAgIGlmIChvbGRSb290LT5pbkRvY3VtZW50KCkp
CiAgICAgICAgICAgICBvbGRSb290LT5yZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCA5ZTZkZDVmYWM2ZmRlZTBmZTBjNmNjM2E3ZDI0OWEyYTVm
YTk2YzQ5Li4yMzQ1MzYxNzgzOGFhZTU5YzBmNjA0MTcwZTJmNmU1MWU1MTNiNWQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiVGFnTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVHJlZVNj
b3BlQWRvcHRlci5oIgogI2luY2x1ZGUgIlVJRXZlbnQuaCIKICNpbmNsdWRlICJVSUV2ZW50V2l0
aEtleVN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKQEAgLTQxNywz
NyArNDE4LDMwIEBAIE5vZGU6On5Ob2RlKCkKICAgICAgICAgZG9jLT5ndWFyZERlcmVmKCk7CiB9
CiAKLSNpZm5kZWYgTkRFQlVHCi0KLXN0YXRpYyBib29sIGRpZE1vdmVUb05ld0RvY3VtZW50V2Fz
Q2FsbGVkOwotc3RhdGljIERvY3VtZW50KiBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkV2l0aDsKLQotI2VuZGlmCi0gICAgCiB2b2lkIE5vZGU6OnNldERvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoIWluRG9jdW1lbnQoKSB8fCBtX2RvY3Vt
ZW50ID09IGRvY3VtZW50KTsKICAgICBpZiAoaW5Eb2N1bWVudCgpIHx8IG1fZG9jdW1lbnQgPT0g
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvY3VtZW50LT5ndWFyZFJlZigpOwot
Ci0gICAgaWYgKG1fZG9jdW1lbnQpIHsKLSAgICAgICAgbV9kb2N1bWVudC0+bW92ZU5vZGVJdGVy
YXRvcnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50KTsKLSAgICAgICAgbV9kb2N1bWVudC0+
Z3VhcmREZXJlZigpOwotICAgIH0KLQotICAgIERvY3VtZW50KiBvbGREb2N1bWVudCA9IG1fZG9j
dW1lbnQ7CiAgICAgbV9kb2N1bWVudCA9IGRvY3VtZW50OworfQogCi0jaWZuZGVmIE5ERUJVRwot
ICAgIGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkID0gZmFsc2U7Ci0gICAgb2xkRG9jdW1l
bnREaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZFdpdGggPSBvbGREb2N1bWVudDsKLSNlbmRp
ZgorTm9kZVJhcmVEYXRhKiBOb2RlOjpzZXRUcmVlU2NvcGUoVHJlZVNjb3BlKiBzY29wZSkKK3sK
KyAgICBpZiAoIXNjb3BlKSB7CisgICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7CisgICAgICAg
ICAgICBOb2RlUmFyZURhdGEqIGRhdGEgPSByYXJlRGF0YSgpOworICAgICAgICAgICAgZGF0YS0+
c2V0VHJlZVNjb3BlKDApOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KIAot
ICAgIGRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQogCi0gICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKKyAg
ICBOb2RlUmFyZURhdGEqIGRhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOworICAgIGRhdGEtPnNldFRy
ZWVTY29wZShzY29wZSk7CisgICAgcmV0dXJuIGRhdGE7CiB9CiAKIFRyZWVTY29wZSogTm9kZTo6
dHJlZVNjb3BlKCkgY29uc3QKQEAgLTQ1OSw1MyArNDUzLDYgQEAgVHJlZVNjb3BlKiBOb2RlOjp0
cmVlU2NvcGUoKSBjb25zdAogICAgIHJldHVybiBzY29wZSA/IHNjb3BlIDogbV9kb2N1bWVudDsK
IH0KIAotdm9pZCBOb2RlOjpzZXRUcmVlU2NvcGVSZWN1cnNpdmVseShUcmVlU2NvcGUqIG5ld1Ry
ZWVTY29wZSkKLXsKLSAgICBBU1NFUlQodGhpcyk7Ci0gICAgQVNTRVJUKCFpc0RvY3VtZW50Tm9k
ZSgpKTsKLSAgICBBU1NFUlQobmV3VHJlZVNjb3BlKTsKLSAgICBBU1NFUlQoIW1fZGVsZXRpb25I
YXNCZWd1bik7Ci0KLSAgICBUcmVlU2NvcGUqIGN1cnJlbnRUcmVlU2NvcGUgPSB0cmVlU2NvcGUo
KTsKLSAgICBpZiAoY3VycmVudFRyZWVTY29wZSA9PSBuZXdUcmVlU2NvcGUpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIERvY3VtZW50KiBjdXJyZW50RG9jdW1lbnQgPSBkb2N1bWVudCgpOwotICAg
IERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5ld1RyZWVTY29wZS0+ZG9jdW1lbnQoKTsKLSAgICAv
LyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBldmVudHVh
bGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCi0gICAgLy8gdGhhdCBlbGVt
ZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdpbGwgaGF2
ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgotICAgIC8vIG9mIHRoZSBkb2N1bWVudCBpdCB3
YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRoZSBkb25h
dGluZyBkb2N1bWVudCBoZXJlCi0gICAgLy8gd2UgZW5zdXJlIHRoYXQgdGhlIGNvbGxlY3Rpb24g
Y2FjaGUgd2lsbCBiZSBpbnZhbGlkYXRlZCBhcyBuZWVkZWQgd2hlbiB0aGUgZWxlbWVudCBpcyBt
b3ZlZCBiYWNrLgotICAgIGlmIChjdXJyZW50RG9jdW1lbnQgJiYgY3VycmVudERvY3VtZW50ICE9
IG5ld0RvY3VtZW50KQotICAgICAgICBjdXJyZW50RG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9u
KCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBpZiAobmV3VHJlZVNjb3BlID09IG5ld0Rv
Y3VtZW50KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEoKSkKLSAgICAgICAg
ICAgICAgICBub2RlLT5yYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUoMCk7Ci0gICAgICAgICAgICAv
LyBTZXR0aW5nIHRoZSBuZXcgZG9jdW1lbnQgdHJlZSBzY29wZSB3aWxsIGJlIGhhbmRsZWQgaW1w
bGljaXRseQotICAgICAgICAgICAgLy8gYnkgc2V0RG9jdW1lbnQoKSBiZWxvdy4KLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBub2RlLT5lbnN1cmVSYXJlRGF0YSgpLT5zZXRUcmVlU2NvcGUo
bmV3VHJlZVNjb3BlKTsKLQotICAgICAgICBpZiAobm9kZS0+aGFzUmFyZURhdGEoKSAmJiBub2Rl
LT5yYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSkgewotICAgICAgICAgICAgaWYgKGN1cnJlbnRUcmVl
U2NvcGUpCi0gICAgICAgICAgICAgICAgY3VycmVudFRyZWVTY29wZS0+cmVtb3ZlTm9kZUxpc3RD
YWNoZSgpOwotICAgICAgICAgICAgbmV3VHJlZVNjb3BlLT5hZGROb2RlTGlzdENhY2hlKCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBub2RlLT5zZXREb2N1bWVudChuZXdEb2N1bWVudCk7Ci0KLSAg
ICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b0VsZW1lbnQobm9kZSktPnNo
YWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0UGFyZW50VHJlZVNjb3Bl
KG5ld1RyZWVTY29wZSk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudERvY3VtZW50ICE9IG5ld0Rv
Y3VtZW50KQotICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QtPnNldERvY3VtZW50UmVjdXJzaXZl
bHkobmV3RG9jdW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotfQotCiBOb2RlUmFyZURhdGEqIE5v
ZGU6OnJhcmVEYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7CkBAIC04
NTEsMTkgKzc5OCw2IEBAIGlubGluZSBzdGF0aWMgU2hhZG93Um9vdCogc2hhZG93Um9vdChOb2Rl
KiBub2RlKQogICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9k
ZSktPnNoYWRvd1Jvb3QoKSA6IDA7CiB9CiAKLXZvaWQgTm9kZTo6c2V0RG9jdW1lbnRSZWN1cnNp
dmVseShEb2N1bWVudCogbmV3RG9jdW1lbnQpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KCkgIT0g
bmV3RG9jdW1lbnQpOwotCi0gICAgZm9yIChOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9
IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsKLSAgICAgICAgbm9kZS0+c2V0RG9jdW1l
bnQobmV3RG9jdW1lbnQpOwotICAgICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hh
ZG93Um9vdChub2RlKSkKLSAgICAgICAgICAgIHNoYWRvdy0+c2V0RG9jdW1lbnRSZWN1cnNpdmVs
eShuZXdEb2N1bWVudCk7Ci0gICAgfQotfQotCiBpbmxpbmUgdm9pZCBOb2RlOjpzZXRTdHlsZUNo
YW5nZShTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSkKIHsKICAgICBtX25vZGVGbGFncyA9ICht
X25vZGVGbGFncyAmIH5TdHlsZUNoYW5nZU1hc2spIHwgY2hhbmdlVHlwZTsKQEAgLTI0ODEsMTIg
KzI0MTUsNyBAQCB2b2lkIE5vZGU6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQogCiB2b2lkIE5vZGU6
OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKIHsKLSAgICBBU1NF
UlQoIWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9s
ZERvY3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkV2l0aCk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1l
bnRXYXNDYWxsZWQgPSB0cnVlOwotI2VuZGlmCisgICAgVHJlZVNjb3BlQWRvcHRlcjo6ZW5zdXJl
RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQob2xkRG9jdW1lbnQpOwogCiAgICAgLy8gRklY
TUU6IEV2ZW50IGxpc3RlbmVyIHR5cGVzIGZvciB0aGlzIG5vZGUgc2hvdWxkIGJlIHNldCBvbiB0
aGUgbmV3IG93bmVyIGRvY3VtZW50IGhlcmUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGZhNjliNzU5NDBi
M2Q0MTg3YmM5NzQ1MzU2M2RhOWNhYmQxYjU5NmYuLjJlN2UxZjk2MDVhYzcxYjU5ZTliZDA1YjU3
ZGY2ZGNhNTIwNjI5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTA0LDYgKzEwNCw3IEBAIGVudW0gU3R5
bGVDaGFuZ2VUeXBlIHsKIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUsIHB1YmxpYyBUcmVlU2hhcmVkPENvbnRhaW5lck5vZGU+IHsKICAgICBm
cmllbmQgY2xhc3MgRG9jdW1lbnQ7CiAgICAgZnJpZW5kIGNsYXNzIFRyZWVTY29wZTsKKyAgICBm
cmllbmQgY2xhc3MgVHJlZVNjb3BlQWRvcHRlcjsKIAogcHVibGljOgogICAgIGVudW0gTm9kZVR5
cGUgewpAQCAtMzgzLDkgKzM4NCw2IEBAIHB1YmxpYzoKIAogICAgIFRyZWVTY29wZSogdHJlZVNj
b3BlKCkgY29uc3Q7CiAKLSAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbWV0aG9kcyAoZS5n
LiwgYXBwZW5kQ2hpbGQoKSkuCi0gICAgdm9pZCBzZXRUcmVlU2NvcGVSZWN1cnNpdmVseShUcmVl
U2NvcGUqKTsKLQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG5vZGUgaXMgYXNzb2NpYXRl
ZCB3aXRoIGEgZG9jdW1lbnQgYW5kIGlzIGluIGl0cyBhc3NvY2lhdGVkIGRvY3VtZW50J3MKICAg
ICAvLyBub2RlIHRyZWUsIGZhbHNlIG90aGVyd2lzZS4KICAgICBib29sIGluRG9jdW1lbnQoKSBj
b25zdCAKQEAgLTY5OCw5ICs2OTYsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjbGVhckhhc0N1
c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSB7IGNsZWFyRmxhZyhIYXNDdXN0b21TdHlsZUZvclJlbmRl
cmVyRmxhZyk7IH0KIAogcHJpdmF0ZToKLSAgICAvLyBEbyBub3QgdXNlIHRoaXMgbWV0aG9kIHRv
IGNoYW5nZSB0aGUgZG9jdW1lbnQgb2YgYSBub2RlIHVudGlsIGFmdGVyIHRoZSBub2RlIGhhcyBi
ZWVuCi0gICAgLy8gcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBkb2N1bWVudC4KLSAgICB2b2lk
IHNldERvY3VtZW50UmVjdXJzaXZlbHkoRG9jdW1lbnQqKTsKKyAgICAvLyBUaGVzZSBBUEkgc2hv
dWxkIGJlIG9ubHkgdXNlZCBmb3IgYSB0cmVlIHNjb3BlIG1pZ3JhdGlvbi4KKyAgICAvLyBzZXRU
cmVlU2NvcGUoKSByZXR1cm5zIE5vZGVSYXJlRGF0YSB0byBzYXZlIGV4dHJhIG5vZGVSYXJlRGF0
YSgpIGludm9jYXRpb25zIG9uIHRoZSBjYWxsZXIgc2l0ZS4KKyAgICBOb2RlUmFyZURhdGEqIHNl
dFRyZWVTY29wZShUcmVlU2NvcGUqKTsKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50Kik7
CiAKICAgICBlbnVtIEVkaXRhYmxlTGV2ZWwgeyBFZGl0YWJsZSwgUmljaGx5RWRpdGFibGUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggMzViYWQ1MWNlOTEwMTg4MTliMmRjODY0MDJl
NWRmZGU3OTA0NzU2Zi4uOTFmM2MyOTViZWFhMjIxZmYxNzg4ZDhmOWM4NDI0YmQ4MDAwMTVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJI
VE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGVS
YXJlRGF0YS5oIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0xMzcsNSArMTM4LDE2IEBAIGJvb2wgVHJlZVNjb3BlOjphcHBseUF1dGhv
clNoZWV0cygpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgVHJlZVNjb3BlOjph
ZG9wdElmTmVlZGVkKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKHRoaXMpOworICAgIEFTU0VS
VChub2RlKTsKKyAgICBBU1NFUlQoIW5vZGUtPmlzRG9jdW1lbnROb2RlKCkpOworICAgIEFTU0VS
VCghbm9kZS0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKKyAgICBUcmVlU2NvcGVBZG9wdGVyIGFkb3B0
ZXIobm9kZSwgdGhpcyk7CisgICAgaWYgKGFkb3B0ZXIubmVlZHNTY29wZUNoYW5nZSgpKQorICAg
ICAgICBhZG9wdGVyLmV4ZWN1dGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggY2JlM2VlMDdhYTk2ZTVhZjQ1Yzg2N2NlOGViMzZlNmYx
MzcwOGFmZC4uZmQ2YzNjYjhkZjllZjVhOTAxZjE2M2MyYTY0YzZiYjA0OWNkMDAxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKIAorICAgIC8vIFVzZWQgYnkgdGhlIGJh
c2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KKyAgICB2b2lk
IGFkb3B0SWZOZWVkZWQoTm9kZSopOworCiBwcm90ZWN0ZWQ6CiAgICAgVHJlZVNjb3BlKERvY3Vt
ZW50KiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZUNvbnRhaW5lcik7CiAgICAgdmlydHVhbCB+
VHJlZVNjb3BlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTllMWJiYWY5MDhhMmEwMWZmZDU3NTdhOTEzNDE0OTFkOGNiNGE4MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAtMCww
ICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJOb2RlUmFyZURhdGEuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBTaGFkb3dSb290KiBzaGFkb3dSb290Rm9yKE5v
ZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKK30KKwordm9pZCBUcmVlU2NvcGVBZG9wdGVyOjpt
b3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQobmVlZHNT
Y29wZUNoYW5nZSgpKTsKKworICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRv
Y3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNo
ZSBmb3IKKyAgICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFu
Z2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCisgICAg
Ly8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9N
VHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKKyAgICAvLyB3ZSBlbnN1
cmUgdGhhdCB0aGUgY29sbGVjdGlvbiBjYWNoZSB3aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRl
ZCB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJhY2suCisgICAgRG9jdW1lbnQqIG9sZERvY3Vt
ZW50ID0gbV9vbGRTY29wZS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQg
PSBtX25ld1Njb3BlLT5kb2N1bWVudCgpOworICAgIGJvb2wgd2lsbE1vdmVUb05ld0RvY3VtZW50
ID0gb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQ7CisgICAgaWYgKG9sZERvY3VtZW50ICYmIHdp
bGxNb3ZlVG9OZXdEb2N1bWVudCkKKyAgICAgICAgb2xkRG9jdW1lbnQtPmluY0RPTVRyZWVWZXJz
aW9uKCk7CisKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+
dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgeworICAgICAgICBOb2RlUmFyZURhdGEqIHJhcmVEYXRh
ID0gbm9kZS0+c2V0VHJlZVNjb3BlKG5ld0RvY3VtZW50ID09IG1fbmV3U2NvcGUgPyAwIDogbV9u
ZXdTY29wZSk7CisgICAgICAgIGlmIChyYXJlRGF0YSAmJiByYXJlRGF0YS0+bm9kZUxpc3RzKCkp
IHsKKyAgICAgICAgICAgIGlmIChtX29sZFNjb3BlKQorICAgICAgICAgICAgICAgIG1fb2xkU2Nv
cGUtPnJlbW92ZU5vZGVMaXN0Q2FjaGUoKTsKKyAgICAgICAgICAgIG1fbmV3U2NvcGUtPmFkZE5v
ZGVMaXN0Q2FjaGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aWxsTW92ZVRvTmV3RG9j
dW1lbnQpCisgICAgICAgICAgICBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQobm9kZSwgb2xkRG9jdW1l
bnQsIG5ld0RvY3VtZW50KTsKKworICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hh
ZG93Um9vdEZvcihub2RlKSkgeworICAgICAgICAgICAgc2hhZG93LT5zZXRQYXJlbnRUcmVlU2Nv
cGUobV9uZXdTY29wZSk7CisgICAgICAgICAgICBpZiAod2lsbE1vdmVUb05ld0RvY3VtZW50KQor
ICAgICAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1bWVudChzaGFkb3csIG9sZERvY3VtZW50
LCBuZXdEb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVHJlZVNjb3BlQWRv
cHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KE5vZGUqIHJvb3QsIERvY3VtZW50KiBvbGREb2N1
bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdAoreworICAgIGZvciAoTm9kZSogbm9k
ZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHJvb3QpKSB7Cisg
ICAgICAgIG1vdmVOb2RlVG9OZXdEb2N1bWVudChub2RlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1l
bnQpOworICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdEZvcihub2Rl
KSkKKyAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1bWVudChzaGFkb3csIG9sZERvY3VtZW50
LCBuZXdEb2N1bWVudCk7CisgICAgfQorfQorCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGJvb2wg
ZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQ7CitzdGF0aWMgRG9jdW1lbnQqIG9sZERvY3Vt
ZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoOworCit2b2lkIFRyZWVTY29wZUFk
b3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KiBvbGRE
b2N1bWVudCkKK3sKKyAgICBBU1NFUlQoIWRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsK
KyAgICBBU1NFUlRfVU5VU0VEKG9sZERvY3VtZW50LCBvbGREb2N1bWVudCA9PSBvbGREb2N1bWVu
dERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aCk7CisgICAgZGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWQgPSB0cnVlOworfQorI2VuZGlmCisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRl
cjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBvbGREb2N1bWVu
dCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdAoreworICAgIEFTU0VSVCghbm9kZS0+aW5E
b2N1bWVudCgpIHx8IG9sZERvY3VtZW50ICE9IG5ld0RvY3VtZW50KTsKKworICAgIG5ld0RvY3Vt
ZW50LT5ndWFyZFJlZigpOworICAgIGlmIChvbGREb2N1bWVudCkgeworICAgICAgICBvbGREb2N1
bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KG5vZGUsIG5ld0RvY3VtZW50KTsK
KyAgICAgICAgb2xkRG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKKyAgICB9CisKKyAgICBub2RlLT5z
ZXREb2N1bWVudChuZXdEb2N1bWVudCk7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgZGlkTW92ZVRv
TmV3RG9jdW1lbnRXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBvbGREb2N1bWVudERpZE1vdmVUb05l
d0RvY3VtZW50V2FzQ2FsbGVkV2l0aCA9IG9sZERvY3VtZW50OworI2VuZGlmCisKKyAgICBub2Rl
LT5kaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCk7CisgICAgQVNTRVJUKGRpZE1vdmVU
b05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVB
ZG9wdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJiZDRkNGYwMWU3ZDIzY2M2MzA1YzEzODIwMDU1NjUxNmU1
OTIwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAo
bXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisjaWZuZGVmIFRyZWVT
Y29wZUFkb3B0ZXJfaAorI2RlZmluZSBUcmVlU2NvcGVBZG9wdGVyX2gKKworI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUcmVlU2NvcGVBZG9wdGVy
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBUcmVlU2NvcGVBZG9wdGVyKE5vZGUqIHRvQWRvcHQs
IFRyZWVTY29wZSogbmV3U2NvcGUpOworCisgICAgdm9pZCBleGVjdXRlKCkgY29uc3QgeyBtb3Zl
VHJlZVRvTmV3U2NvcGUobV90b0Fkb3B0KTsgfQorICAgIGJvb2wgbmVlZHNTY29wZUNoYW5nZSgp
IGNvbnN0IHsgcmV0dXJuIG1fb2xkU2NvcGUgIT0gbV9uZXdTY29wZTsgfQorCisjaWZkZWYgTkRF
QlVHCisgICAgc3RhdGljIHZvaWQgZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQo
RG9jdW1lbnQqKSB7IH0KKyNlbHNlCisgICAgc3RhdGljIHZvaWQgZW5zdXJlRGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWQoRG9jdW1lbnQqKTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIHZv
aWQgbW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqKSBjb25zdDsKKyAgICB2b2lkIG1vdmVUcmVlVG9O
ZXdEb2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9j
dW1lbnQpIGNvbnN0OworICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1
bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CisKKyAgICBO
b2RlKiBtX3RvQWRvcHQ7CisgICAgVHJlZVNjb3BlKiBtX25ld1Njb3BlOworICAgIFRyZWVTY29w
ZSogbV9vbGRTY29wZTsKK307CisKK2lubGluZSBUcmVlU2NvcGVBZG9wdGVyOjpUcmVlU2NvcGVB
ZG9wdGVyKE5vZGUqIHRvQWRvcHQsIFRyZWVTY29wZSogbmV3U2NvcGUpCisgICAgOiBtX3RvQWRv
cHQodG9BZG9wdCkKKyAgICAsIG1fbmV3U2NvcGUobmV3U2NvcGUpCisgICAgLCBtX29sZFNjb3Bl
KHRvQWRvcHQtPnRyZWVTY29wZSgpKQoreworICAgIEFTU0VSVChuZXdTY29wZSk7Cit9CisKK30K
KworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121244</attachid>
            <date>2012-01-05 02:21:59 -0800</date>
            <delta_ts>2012-01-05 07:03:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75290-20120105192157.patch</filename>
            <type>text/plain</type>
            <size>31209</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNzU1Cm5ldyBt
b2RlIDEwMDY0NAppbmRleCA1Y2ZhMTJkOGQ5NmZkMzE0NGI5MDVjNWY0NTNlMmMzYTliN2Y1M2Y0
Li5hYzk1ZWU4ZTYzMGM5ZGEwYTI2MjgyNGRmN2Q5NDAwOTkyOGIxNWZkCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MCBAQAorMjAxMi0wMS0wNCAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbUmVmYWN0b3JpbmddIE1vdmluZyBiZXR3ZWVuIFRyZWVTY29wZXMgc2hv
dWxkIGJlIGRvbmUgYnkgaXRzIG93biBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZXh0cmFjdGVkIE5vZGU6OnNldFRyZWVT
Y29wZVJlY3Vyc2l2ZWx5KCksCisgICAgICAgIHNldERvY3VtZW50UmVjdXJzaXZlbHkoKSBhbmQg
YSBwYXJ0IG9mIHNldERvY3VtZW50KCkgaW50byBhIG5ldworICAgICAgICBjbGFzcyBjYWxsZWQg
VHJlZVNjb3BlQWRvcHRlci4gQnkgZG9pbmcgdGhpcywgdGhlIGlkZWEgb2YKKyAgICAgICAgbW92
aW5nIGEgbm9kZSBmcm9tIHNjb3BlIHRvIHNjb3BlLCB0aGF0IHdhcyBvcmlnaW5hbGx5IGhpZGRl
bgorICAgICAgICBiZWhpbmQgdGhlIGZvcmVzdCBvZiBOb2RlIEFQSXMsIGhhcyBiZWNvbWUgY2xl
YXJlci4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBjaGFuZ2UgaXMgYSBwcmVwYXJhdGlvbiBm
b3IgQnVnIDU5ODE2LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3JhbCBjaGFu
Z2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9k
ZS5jcHA6IEZvbGxvd2VkIHRoZSByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6OnRha2VBbGxDaGlsZHJlbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVy
Tm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJl
cGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3
ZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKToKKyAgICAgICAgKiBkb20v
RE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IEZvbGxvd2VkIHRl
IHJlbmFtaW5nLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvY1R5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkb3B0Tm9kZSk6CisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOiBGb2xsb3dlZCB0ZSByZW5hbWluZy4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlbW92ZVNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnNldERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldFRy
ZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAg
ICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmFk
b3B0SWZOZWVkZWQpOiBtb3ZlZCBmcm9tIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KCkKKyAgICAg
ICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlQWRvcHRlcjo6VHJlZVNjb3BlQWRvcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1
bWVudCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdh
c0NhbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpleGVjdXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om5lZWRzU2NvcGVDaGFuZ2UoKSk6
CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjpzaGFkb3dSb290Rm9yKToKKwog
MjAxMi0wMS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgSW1wcm92ZSBjaGFyYWN0ZXJzQXJlQWxsQVNDSUkoKSB0byBjb21wYXJlIG11bHRpcGxl
IGNoYXJhY3RlcnMgYXQgYSB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJkOTVlMTljMjg3
YjUwMzI0YWEyMTI1MDZmNjk1MDM2MmFlZmYwNjIuLjljNWM3M2I4MmY2YjQzNWMzZjc3MzkzYzQw
YjdiNmY2ZjFmMmVhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MTAsNiArNjEwLDcgQEAg
U0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9UcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcAog
ICAgIGRvbS9UcmF2ZXJzYWwuY3BwCiAgICAgZG9tL1RyZWVTY29wZS5jcHAKKyAgICBkb20vVHJl
ZVNjb3BlQWRvcHRlci5jcHAKICAgICBkb20vVHJlZVdhbGtlci5jcHAKICAgICBkb20vVUlFdmVu
dC5jcHAKICAgICBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDgzMjI5Y2FiMjdkOTQ0ZGIyN2Q3YzIxNGVlZWVmNDhiYjU2MDIzYzku
LjI0NjIzZmVkYjdmYmRlYTI1MmM2MTY0MmM3OWUzMjNiNDk2OTVkZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMTY3NCw2ICsxNjc0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZURlcHRoTGltaXQuaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiMTJmNWU1Nzg2Njg3ZDUw
NDBjZmMzZTIxM2RmNDVjYjU3MTYxMjQ3Li41ZTdmNWFmNWU3NjMyMjQ3N2NjYmY4YjA5ZjJkNDlm
YzhiNjU4ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTU3NCw2ICs1NzQsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vVG91Y2hMaXN0LmNwcCBcCiAgICAgZG9tL1RyYXZlcnNhbC5jcHAgXAogICAgIGRv
bS9UcmVlU2NvcGUuY3BwIFwKKyAgICBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHAgXAogICAgIGRv
bS9UcmVlV2Fsa2VyLmNwcCBcCiAgICAgZG9tL1VJRXZlbnQuY3BwIFwKICAgICBkb20vVUlFdmVu
dFdpdGhLZXlTdGF0ZS5jcHAgXApAQCAtMTY3MCw2ICsxNjcxLDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgZG9tL1RyYXZlcnNhbC5oIFwKICAgICBkb20vVHJlZURlcHRoTGltaXQuaCBcCiAgICAgZG9t
L1RyZWVTY29wZS5oIFwKKyAgICBkb20vVHJlZVNjb3BlQWRvcHRlci5oIFwKICAgICBkb20vVHJl
ZVdhbGtlci5oIFwKICAgICBkb20vVUlFdmVudC5oIFwKICAgICBkb20vVUlFdmVudFdpdGhLZXlT
dGF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlNTgxYzAyZGMxYzcwMjYxNjhlMjRjMTZjNjE3
YjY5MmM5MWE4OThiLi45YzQ1ZjRjZTAwODUzMjcxMjM1Mjk4YzZjZTJjNjYyMTQwZDI4OWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC01NDU2LDYgKzU0NTYsOCBAQAogICAgICAgICAgICAgJ2RvbS9U
cmVlRGVwdGhMaW1pdC5oJywKICAgICAgICAgICAgICdkb20vVHJlZVNjb3BlLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL1RyZWVTY29wZS5oJywKKyAgICAgICAgICAgICdkb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgnLAogICAgICAg
ICAgICAgJ2RvbS9UcmVlV2Fsa2VyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1RyZWVXYWxrZXIu
aCcsCiAgICAgICAgICAgICAnZG9tL1VJRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZDQ0M2FkMzkzNzk5NDMzMzliMjg0MWE1
MmFlOWMzMGM4NmYwNDhlNy4uNWI1MDY0ODllYWY2NjE1NDQ1MWY0YjQwMWFlYTFiNGY5OTM5MjQ2
NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTUxNzc0LDYgKzUxNzc0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxUcmVlU2NvcGVBZG9wdGVyLmNwcCIKKwkJCQk+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFRyZWVTY29w
ZUFkb3B0ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFRyZWVXYWxrZXIuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3MTRkZTZjNTJhNTVjYzk1MmI3NjJjOTYzMzNkOTM1NzM0ODEwMmRiLi5iODlmMDRhYTYz
MjQyODMxODIyZjQwNGE4Y2I1ZGM5MTljMmNjNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTA5LDYgKzM1MDksOCBAQAog
CQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFC
OSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyog
VGV4dEV2ZW50SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3
RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8q
IFRleHRDaGVja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE3N0UxRkVGMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVE
MTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCAqLzsgfTsKKwkJQTc3RTFG
RjAxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVTY29wZUFkb3B0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAv
KiBUcmVlU2NvcGVBZG9wdGVyLmggKi87IH07CiAJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAv
KiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3Bw
ICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1
MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OwogCQlBNzhFNTI2RjEzNDZCRDE3MDBB
RDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNo
YWRvd0VsZW1lbnQuY3BwICovOyB9OwpAQCAtMTA3ODAsNiArMTA3ODIsOCBAQAogCQlBNzc5Nzky
NTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnRJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVj
a2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tpbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc3RTFGRUQxNEFBQ0I2RTAwNUI3Q0I2IC8q
IFRyZWVTY29wZUFkb3B0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHJlZVNjb3BlQWRvcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3
N0UxRkVFMTRBQUNCNkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyZWVTY29wZUFkb3B0ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TWFya2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUy
MzdBIC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkQx
MzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXRlclNoYWRvd0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjE1MzMsNiArMjE1MzcsOCBAQAogCQkJCTM3RkQ0Mjk3MTE4
MzY4NDYwMDkzQzAyOSAvKiBUcmVlRGVwdGhMaW1pdC5oICovLAogCQkJCTE0RDY0QjVBMTM0QTVC
NkIwMEU1OEZEQSAvKiBUcmVlU2NvcGUuY3BwICovLAogCQkJCTE0RDY0QjVCMTM0QTVCNkIwMEU1
OEZEQSAvKiBUcmVlU2NvcGUuaCAqLywKKwkJCQlBNzdFMUZFRDE0QUFDQjZFMDA1QjdDQjYgLyog
VHJlZVNjb3BlQWRvcHRlci5jcHAgKi8sCisJCQkJQTc3RTFGRUUxNEFBQ0I2RTAwNUI3Q0I2IC8q
IFRyZWVTY29wZUFkb3B0ZXIuaCAqLywKIAkJCQk4NTRGRTcyRTBBMjI5N0JFMDA1OEQ3QUQgLyog
VHJlZVdhbGtlci5jcHAgKi8sCiAJCQkJODU0RkU3MkYwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVX
YWxrZXIuaCAqLywKIAkJCQkxQTc1MEQzQzBBOTBERTM1MDAwRkYyMTUgLyogVHJlZVdhbGtlci5p
ZGwgKi8sCkBAIC0yNDc4NSw2ICsyNDc5MSw3IEBACiAJCQkJODU0RkU3MzcwQTIyOTdCRTAwNThE
N0FEIC8qIFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdGRDQyOTgxMTgzNjg0NjAw
OTNDMDI5IC8qIFRyZWVEZXB0aExpbWl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ2NEI1RDEz
NEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzdFMUZG
MDE0QUFDQjZFMDA1QjdDQjYgLyogVHJlZVNjb3BlQWRvcHRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQxOUQyQzUwQ0VBNkY2MTAwRkY1MDdBIC8qIFRyZWVTaGFyZWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1NEZFNzM5MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyOEE2ODEwRjY1OUNDMDA4Qzc4MTMgLyogVHlwZXNldHRpbmdGZWF0dXJl
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcxNyw2ICsyNzcyNCw3IEBACiAJCQkJNDlFOTExRDEw
RUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NTRGRTczNjBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0RDY0QjVDMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVlU2NvcGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc3RTFGRUYxNEFBQ0I2RTAwNUI3Q0I2IC8qIFRyZWVT
Y29wZUFkb3B0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzgwQTIyOTdCRTAwNThE
N0FEIC8qIFRyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTkwOTlFNjQ5
MjAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFC
NEQwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggNDljYWE4ZTIxMDk0YmU0NTgxODJlMzA0MzVj
MWY0Njg0N2Y4OWUwZC4uZDVjZDA5YjlmZGFmOTk3ZjQ3ODBmMjNmMTY1Y2JlN2JjYTQ3MDhmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnRha2VBbGxDaGlsZHJlbkZyb20oQ29udGFpbmVyTm9kZSogb2xkUGFy
ZW50KQogICAgICAgICAvLyBGSVhNRTogVG9nZXRoZXIgd2l0aCBhZG9wdE5vZGUgYWJvdmUsIHRo
ZSB0cmVlIHNjb3BlIG1pZ2h0IGdldCB1cGRhdGVkIHJlY3Vyc2l2ZWx5IHR3aWNlCiAgICAgICAg
IC8vIChpZiB0aGUgZG9jdW1lbnQgY2hhbmdlZCBvciBvbGRQYXJlbnQgd2FzIGluIGEgc2hhZG93
IHRyZWUsIEFORCAqdGhpcyBpcyBpbiBhIHNoYWRvdyB0cmVlKS4KICAgICAgICAgLy8gQ2FuIHdl
IGRvIGJldHRlcj8KLSAgICAgICAgY2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVT
Y29wZSgpKTsKKyAgICAgICAgdHJlZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQoY2hpbGQuZ2V0KCkp
OwogICAgICAgICBpZiAoYXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkpCiAgICAgICAg
ICAgICBjaGlsZC0+YXR0YWNoKCk7CiAgICAgfQpAQCAtMTc1LDcgKzE3NSw3IEBAIGJvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IHJlZkNoaWxkLCBFeGNlCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbElu
c2VydERPTU5vZGUoZG9jdW1lbnQoKSwgY2hpbGQsIHRoaXMpOwogI2VuZGlmCiAKLSAgICAgICAg
Y2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICAgICAgdHJl
ZVNjb3BlKCktPmFkb3B0SWZOZWVkZWQoY2hpbGQpOwogCiAgICAgICAgIGluc2VydEJlZm9yZUNv
bW1vbihuZXh0LmdldCgpLCBjaGlsZCk7CiAKQEAgLTMyOSw3ICszMjksNyBAQCBib29sIENvbnRh
aW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBv
bGRDaGlsZCwgRXhjZQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNl
cnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLmdldCgpLCB0aGlzKTsKICNlbmRpZgogCi0gICAg
ICAgIGNoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0cmVlU2NvcGUoKSk7CisgICAgICAg
IHRyZWVTY29wZSgpLT5hZG9wdElmTmVlZGVkKGNoaWxkLmdldCgpKTsKIAogICAgICAgICAvLyBB
ZGQgY2hpbGQgYWZ0ZXIgInByZXYiLgogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CkBA
IC01MDksNyArNTA5LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3ZWVuKE5vZGUq
IHByZXZpb3VzQ2hpbGQsIE5vZGUqIG5leHRDaGlsZCwgTm9kZSogb2wKICAgICBvbGRDaGlsZC0+
c2V0TmV4dFNpYmxpbmcoMCk7CiAgICAgb2xkQ2hpbGQtPnNldFBhcmVudCgwKTsKIAotICAgIG9s
ZENoaWxkLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICBkb2N1bWVu
dCgpLT5hZG9wdElmTmVlZGVkKG9sZENoaWxkKTsKIAogICAgIGFsbG93RXZlbnREaXNwYXRjaCgp
OwogfQpAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRy
ZW4oKQogICAgICAgICBuLT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAgICAgICAgIG4tPnNldE5l
eHRTaWJsaW5nKDApOwogICAgICAgICBuLT5zZXRQYXJlbnQoMCk7Ci0gICAgICAgIG4tPnNldFRy
ZWVTY29wZVJlY3Vyc2l2ZWx5KGRvY3VtZW50KCkpOworICAgICAgICBkb2N1bWVudCgpLT5hZG9w
dElmTmVlZGVkKG4uZ2V0KCkpOwogCiAgICAgICAgIG1fZmlyc3RDaGlsZCA9IG5leHQ7CiAgICAg
ICAgIGlmIChuID09IG1fbGFzdENoaWxkKQpAQCAtNjQ5LDcgKzY0OSw3IEBAIGJvb2wgQ29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMsIGJvCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2Vy
dERPTU5vZGUoZG9jdW1lbnQoKSwgY2hpbGQsIHRoaXMpOwogI2VuZGlmCiAKLSAgICAgICAgY2hp
bGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgpKTsKKyAgICAgICAgdHJlZVNj
b3BlKCktPmFkb3B0SWZOZWVkZWQoY2hpbGQpOwogCiAgICAgICAgIC8vIEFwcGVuZCBjaGlsZCB0
byB0aGUgZW5kIG9mIHRoZSBsaXN0CiAgICAgICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKQEAg
LTY5Nyw3ICs2OTcsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiAgICAgTm9kZSogbGFzdCA9IG1fbGFzdENoaWxkOwogICAg
IC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgdGFrZSBhIFBhc3NSZWZQdHIuCiAgICAgYXBw
ZW5kQ2hpbGRUb0NvbnRhaW5lcjxOb2RlLCBDb250YWluZXJOb2RlPihuZXdDaGlsZC5nZXQoKSwg
dGhpcyk7Ci0gICAgbmV3Q2hpbGQtPnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KHRyZWVTY29wZSgp
KTsKKyAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRlZChuZXdDaGlsZC5nZXQoKSk7CiAgICAg
CiAgICAgYWxsb3dFdmVudERpc3BhdGNoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CmluZGV4IGQwYmNlY2FhMmQwOGQxMjFjZTM4ZTExNGNlNzdmMmQ4MzM1N2ZhNDguLjU1MDk0NjUz
ZjVmMjM5NDZmZDQ0M2U0ODlmMTM3MzMzODE0ZmI2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcApAQCAtMTI5LDYgKzEyOSw3IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlTGli
eHNsdC5jcHAiCiAjaW5jbHVkZSAiVHJhdmVyc2FsLmNwcCIKICNpbmNsdWRlICJUcmVlU2NvcGUu
Y3BwIgorI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuY3BwIgogI2luY2x1ZGUgIlRyZWVXYWxr
ZXIuY3BwIgogI2luY2x1ZGUgIlVJRXZlbnQuY3BwIgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5
U3RhdGUuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWY0NDhjNDk2Mzk1OWFhYjMw
YjU4MjhmZTZhNmVlMzA1OWUyNWJmMy4uYzhkYzU3NDk3NTU1ZjA5YmNjODlhZjRjODZmZTU3MjM4
OGYyNTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MTIsNyArNzEyLDcgQEAgdm9p
ZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkK
ICAgICBBU1NFUlQoIW1fZG9jVHlwZSB8fCAhZG9jVHlwZSk7CiAgICAgbV9kb2NUeXBlID0gZG9j
VHlwZTsKICAgICBpZiAobV9kb2NUeXBlKQotICAgICAgICBtX2RvY1R5cGUtPnNldFRyZWVTY29w
ZVJlY3Vyc2l2ZWx5KHRoaXMpOworICAgICAgICB0aGlzLT5hZG9wdElmTmVlZGVkKG1fZG9jVHlw
ZS5nZXQoKSk7CiB9CiAKIERPTUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1wbGVtZW50YXRp
b24oKQpAQCAtOTQyLDcgKzk0Miw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
ICAgICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7
CiAgICAgfQogCi0gICAgc291cmNlLT5zZXRUcmVlU2NvcGVSZWN1cnNpdmVseSh0aGlzKTsKKyAg
ICB0aGlzLT5hZG9wdElmTmVlZGVkKHNvdXJjZS5nZXQoKSk7CiAKICAgICByZXR1cm4gc291cmNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDk2NzliMTIyOWZkMTJhNTdhOGQ0ZjZlMmYw
MjY4ZmM2MzdkN2JlZjEuLjQzODY5Mzk3ZDVhODRhNDY3MDU0N2ViM2U2ZTFmN2Y1ZWQ0OWFlMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEyMTgsNyArMTIxOCw3IEBAIHZvaWQgRWxlbWVu
dDo6cmVtb3ZlU2hhZG93Um9vdCgpCiAgICAgICAgICAgICBvbGRSb290LT5kZXRhY2goKTsKIAog
ICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dIb3N0KDApOwotICAgICAgICBvbGRSb290LT5zZXRU
cmVlU2NvcGVSZWN1cnNpdmVseShkb2N1bWVudCgpKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YWRv
cHRJZk5lZWRlZChvbGRSb290LmdldCgpKTsKICAgICAgICAgaWYgKG9sZFJvb3QtPmluRG9jdW1l
bnQoKSkKICAgICAgICAgICAgIG9sZFJvb3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAg
ICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDllNmRkNWZhYzZmZGVlMGZlMGM2Y2MzYTdkMjQ5
YTJhNWZhOTZjNDkuLjIzNDUzNjE3ODM4YWFlNTljMGY2MDQxNzBlMmY2ZTUxZTUxM2I1ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKQEAgLTkwLDYgKzkwLDcgQEAKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJU
cmVlU2NvcGVBZG9wdGVyLmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZl
bnRXaXRoS2V5U3RhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgpAQCAt
NDE3LDM3ICs0MTgsMzAgQEAgTm9kZTo6fk5vZGUoKQogICAgICAgICBkb2MtPmd1YXJkRGVyZWYo
KTsKIH0KIAotI2lmbmRlZiBOREVCVUcKLQotc3RhdGljIGJvb2wgZGlkTW92ZVRvTmV3RG9jdW1l
bnRXYXNDYWxsZWQ7Ci1zdGF0aWMgRG9jdW1lbnQqIG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWRXaXRoOwotCi0jZW5kaWYKLSAgICAKIHZvaWQgTm9kZTo6c2V0RG9jdW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIEFTU0VSVCghaW5Eb2N1bWVudCgpIHx8IG1f
ZG9jdW1lbnQgPT0gZG9jdW1lbnQpOwogICAgIGlmIChpbkRvY3VtZW50KCkgfHwgbV9kb2N1bWVu
dCA9PSBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG9jdW1lbnQtPmd1YXJkUmVm
KCk7Ci0KLSAgICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBtX2RvY3VtZW50LT5tb3ZlTm9k
ZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQodGhpcywgZG9jdW1lbnQpOwotICAgICAgICBtX2RvY3Vt
ZW50LT5ndWFyZERlcmVmKCk7Ci0gICAgfQotCi0gICAgRG9jdW1lbnQqIG9sZERvY3VtZW50ID0g
bV9kb2N1bWVudDsKICAgICBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7Cit9CiAKLSNpZm5kZWYgTkRF
QlVHCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQgPSBmYWxzZTsKLSAgICBvbGRE
b2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aCA9IG9sZERvY3VtZW50Owot
I2VuZGlmCitOb2RlUmFyZURhdGEqIE5vZGU6OnNldFRyZWVTY29wZShUcmVlU2NvcGUqIHNjb3Bl
KQoreworICAgIGlmICghc2NvcGUpIHsKKyAgICAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKKyAg
ICAgICAgICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCk7CisgICAgICAgICAgICBk
YXRhLT5zZXRUcmVlU2NvcGUoMCk7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAg
fQogCi0gICAgZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQpOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CiAKLSAgICBBU1NFUlQoZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQp
OworICAgIE5vZGVSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CisgICAgZGF0YS0+
c2V0VHJlZVNjb3BlKHNjb3BlKTsKKyAgICByZXR1cm4gZGF0YTsKIH0KIAogVHJlZVNjb3BlKiBO
b2RlOjp0cmVlU2NvcGUoKSBjb25zdApAQCAtNDU5LDUzICs0NTMsNiBAQCBUcmVlU2NvcGUqIE5v
ZGU6OnRyZWVTY29wZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjb3BlID8gc2NvcGUgOiBtX2RvY3Vt
ZW50OwogfQogCi12b2lkIE5vZGU6OnNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5KFRyZWVTY29wZSog
bmV3VHJlZVNjb3BlKQotewotICAgIEFTU0VSVCh0aGlzKTsKLSAgICBBU1NFUlQoIWlzRG9jdW1l
bnROb2RlKCkpOwotICAgIEFTU0VSVChuZXdUcmVlU2NvcGUpOwotICAgIEFTU0VSVCghbV9kZWxl
dGlvbkhhc0JlZ3VuKTsKLQotICAgIFRyZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9IHRyZWVT
Y29wZSgpOwotICAgIGlmIChjdXJyZW50VHJlZVNjb3BlID09IG5ld1RyZWVTY29wZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgRG9jdW1lbnQqIGN1cnJlbnREb2N1bWVudCA9IGRvY3VtZW50KCk7
Ci0gICAgRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0gbmV3VHJlZVNjb3BlLT5kb2N1bWVudCgpOwot
ICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2
ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKLSAgICAvLyB0aGF0
IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2ls
bCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCi0gICAgLy8gb2YgdGhlIGRvY3VtZW50
IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhl
IGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKLSAgICAvLyB3ZSBlbnN1cmUgdGhhdCB0aGUgY29sbGVj
dGlvbiBjYWNoZSB3aWxsIGJlIGludmFsaWRhdGVkIGFzIG5lZWRlZCB3aGVuIHRoZSBlbGVtZW50
IGlzIG1vdmVkIGJhY2suCi0gICAgaWYgKGN1cnJlbnREb2N1bWVudCAmJiBjdXJyZW50RG9jdW1l
bnQgIT0gbmV3RG9jdW1lbnQpCi0gICAgICAgIGN1cnJlbnREb2N1bWVudC0+aW5jRE9NVHJlZVZl
cnNpb24oKTsKLQotICAgIGZvciAoTm9kZSogbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2Rl
LT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChuZXdUcmVlU2NvcGUgPT0g
bmV3RG9jdW1lbnQpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpKQotICAg
ICAgICAgICAgICAgIG5vZGUtPnJhcmVEYXRhKCktPnNldFRyZWVTY29wZSgwKTsKLSAgICAgICAg
ICAgIC8vIFNldHRpbmcgdGhlIG5ldyBkb2N1bWVudCB0cmVlIHNjb3BlIHdpbGwgYmUgaGFuZGxl
ZCBpbXBsaWNpdGx5Ci0gICAgICAgICAgICAvLyBieSBzZXREb2N1bWVudCgpIGJlbG93LgotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIG5vZGUtPmVuc3VyZVJhcmVEYXRhKCktPnNldFRyZWVT
Y29wZShuZXdUcmVlU2NvcGUpOwotCi0gICAgICAgIGlmIChub2RlLT5oYXNSYXJlRGF0YSgpICYm
IG5vZGUtPnJhcmVEYXRhKCktPm5vZGVMaXN0cygpKSB7Ci0gICAgICAgICAgICBpZiAoY3VycmVu
dFRyZWVTY29wZSkKLSAgICAgICAgICAgICAgICBjdXJyZW50VHJlZVNjb3BlLT5yZW1vdmVOb2Rl
TGlzdENhY2hlKCk7Ci0gICAgICAgICAgICBuZXdUcmVlU2NvcGUtPmFkZE5vZGVMaXN0Q2FjaGUo
KTsKLSAgICAgICAgfQotCi0gICAgICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsK
LQotICAgICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHRvRWxlbWVudChub2Rl
KS0+c2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBzaGFkb3dSb290LT5zZXRQYXJlbnRUcmVl
U2NvcGUobmV3VHJlZVNjb3BlKTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50RG9jdW1lbnQgIT0g
bmV3RG9jdW1lbnQpCi0gICAgICAgICAgICAgICAgc2hhZG93Um9vdC0+c2V0RG9jdW1lbnRSZWN1
cnNpdmVseShuZXdEb2N1bWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIE5vZGVSYXJlRGF0
YSogTm9kZTo6cmFyZURhdGEoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsK
QEAgLTg1MSwxOSArNzk4LDYgQEAgaW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBzaGFkb3dSb290
KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93Um9vdCgpIDogMDsKIH0KIAotdm9pZCBOb2RlOjpzZXREb2N1bWVudFJl
Y3Vyc2l2ZWx5KERvY3VtZW50KiBuZXdEb2N1bWVudCkKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQo
KSAhPSBuZXdEb2N1bWVudCk7Ci0KLSAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBu
b2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBub2RlLT5zZXRE
b2N1bWVudChuZXdEb2N1bWVudCk7Ci0gICAgICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cg
PSBzaGFkb3dSb290KG5vZGUpKQotICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1bWVudFJlY3Vy
c2l2ZWx5KG5ld0RvY3VtZW50KTsKLSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIE5vZGU6OnNldFN0
eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIG1fbm9kZUZsYWdz
ID0gKG1fbm9kZUZsYWdzICYgflN0eWxlQ2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBlOwpAQCAtMjQ4
MSwxMiArMjQxNSw3IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAKIHZvaWQg
Tm9kZTo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogewotICAg
IEFTU0VSVCghZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIEFTU0VSVF9VTlVT
RUQob2xkRG9jdW1lbnQsIG9sZERvY3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9j
dW1lbnRXYXNDYWxsZWRXaXRoKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBkaWRNb3ZlVG9OZXdE
b2N1bWVudFdhc0NhbGxlZCA9IHRydWU7Ci0jZW5kaWYKKyAgICBUcmVlU2NvcGVBZG9wdGVyOjpl
bnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChvbGREb2N1bWVudCk7CiAKICAgICAv
LyBGSVhNRTogRXZlbnQgbGlzdGVuZXIgdHlwZXMgZm9yIHRoaXMgbm9kZSBzaG91bGQgYmUgc2V0
IG9uIHRoZSBuZXcgb3duZXIgZG9jdW1lbnQgaGVyZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZmE2OWI3
NTk0MGIzZDQxODdiYzk3NDUzNTYzZGE5Y2FiZDFiNTk2Zi4uMmU3ZTFmOTYwNWFjNzFiNTllOWJk
MDViNTdkZjZkY2E1MjA2Mjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMDQsNiArMTA0LDcgQEAgZW51
bSBTdHlsZUNoYW5nZVR5cGUgewogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVi
bGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFRyZWVTaGFyZWQ8Q29udGFpbmVyTm9kZT4gewog
ICAgIGZyaWVuZCBjbGFzcyBEb2N1bWVudDsKICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOwor
ICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGVBZG9wdGVyOwogCiBwdWJsaWM6CiAgICAgZW51bSBO
b2RlVHlwZSB7CkBAIC0zODMsOSArMzg0LDYgQEAgcHVibGljOgogCiAgICAgVHJlZVNjb3BlKiB0
cmVlU2NvcGUoKSBjb25zdDsKIAotICAgIC8vIFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtZXRob2Rz
IChlLmcuLCBhcHBlbmRDaGlsZCgpKS4KLSAgICB2b2lkIHNldFRyZWVTY29wZVJlY3Vyc2l2ZWx5
KFRyZWVTY29wZSopOwotCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbm9kZSBpcyBhc3Nv
Y2lhdGVkIHdpdGggYSBkb2N1bWVudCBhbmQgaXMgaW4gaXRzIGFzc29jaWF0ZWQgZG9jdW1lbnQn
cwogICAgIC8vIG5vZGUgdHJlZSwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgIGJvb2wgaW5Eb2N1bWVu
dCgpIGNvbnN0IApAQCAtNjk4LDkgKzY5Niw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFy
SGFzQ3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpIHsgY2xlYXJGbGFnKEhhc0N1c3RvbVN0eWxlRm9y
UmVuZGVyZXJGbGFnKTsgfQogCiBwcml2YXRlOgotICAgIC8vIERvIG5vdCB1c2UgdGhpcyBtZXRo
b2QgdG8gY2hhbmdlIHRoZSBkb2N1bWVudCBvZiBhIG5vZGUgdW50aWwgYWZ0ZXIgdGhlIG5vZGUg
aGFzIGJlZW4KLSAgICAvLyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGRvY3VtZW50LgotICAg
IHZvaWQgc2V0RG9jdW1lbnRSZWN1cnNpdmVseShEb2N1bWVudCopOworICAgIC8vIFRoZXNlIEFQ
SSBzaG91bGQgYmUgb25seSB1c2VkIGZvciBhIHRyZWUgc2NvcGUgbWlncmF0aW9uLgorICAgIC8v
IHNldFRyZWVTY29wZSgpIHJldHVybnMgTm9kZVJhcmVEYXRhIHRvIHNhdmUgZXh0cmEgbm9kZVJh
cmVEYXRhKCkgaW52b2NhdGlvbnMgb24gdGhlIGNhbGxlciBzaXRlLgorICAgIE5vZGVSYXJlRGF0
YSogc2V0VHJlZVNjb3BlKFRyZWVTY29wZSopOwogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1l
bnQqKTsKIAogICAgIGVudW0gRWRpdGFibGVMZXZlbCB7IEVkaXRhYmxlLCBSaWNobHlFZGl0YWJs
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAzNWJhZDUxY2U5MTAxODgxOWIyZGM4
NjQwMmU1ZGZkZTc5MDQ3NTZmLi45MWYzYzI5NWJlYWEyMjFmZjE3ODhkOGY5Yzg0MjRiZDgwMDAx
NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1
ZGUgIkhUTUxNYXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCisjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTEzNyw1ICsxMzgsMTYgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5
QXV0aG9yU2hlZXRzKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBUcmVlU2Nv
cGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQodGhpcyk7CisgICAg
QVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghbm9kZS0+aXNEb2N1bWVudE5vZGUoKSk7CisgICAg
QVNTRVJUKCFub2RlLT5tX2RlbGV0aW9uSGFzQmVndW4pOworICAgIFRyZWVTY29wZUFkb3B0ZXIg
YWRvcHRlcihub2RlLCB0aGlzKTsKKyAgICBpZiAoYWRvcHRlci5uZWVkc1Njb3BlQ2hhbmdlKCkp
CisgICAgICAgIGFkb3B0ZXIuZXhlY3V0ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBjYmUzZWUwN2FhOTZlNWFmNDVjODY3Y2U4ZWIz
NmU2ZjEzNzA4YWZkLi5mZDZjM2NiOGRmOWVmNWE5MDFmMTYzYzJhNjRjNmJiMDQ5Y2QwMDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC02NCw2ICs2NCw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBhcHBseUF1dGhvclNoZWV0cygpIGNvbnN0OwogCisgICAgLy8gVXNlZCBieSB0
aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENoaWxkKCkpLgorICAg
IHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CisKIHByb3RlY3RlZDoKICAgICBUcmVlU2NvcGUo
RG9jdW1lbnQqLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlQ29udGFpbmVyKTsKICAgICB2aXJ0
dWFsIH5UcmVlU2NvcGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGVBZG9wdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMTk1YTI1YmVjMzM5NTkwNTY0YjVlYzcwNWU4ZDEwZGYzMWRlOTk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCkBA
IC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3RG
b3IoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3dSb290KCkgOiAwOworfQorCit2b2lkIFRyZWVTY29wZUFkb3B0
ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAoreworICAgIEFTU0VSVChu
ZWVkc1Njb3BlQ2hhbmdlKCkpOworCisgICAgLy8gSWYgYW4gZWxlbWVudCBpcyBtb3ZlZCBmcm9t
IGEgZG9jdW1lbnQgYW5kIHRoZW4gZXZlbnR1YWxseSBiYWNrIGFnYWluIHRoZSBjb2xsZWN0aW9u
IGNhY2hlIGZvcgorICAgIC8vIHRoYXQgZWxlbWVudCBtYXkgY29udGFpbiBzdGFsZSBkYXRhIGFz
IGNoYW5nZXMgbWFkZSB0byBpdCB3aWxsIGhhdmUgdXBkYXRlZCB0aGUgRE9NVHJlZVZlcnNpb24K
KyAgICAvLyBvZiB0aGUgZG9jdW1lbnQgaXQgd2FzIG1vdmVkIHRvLiBCeSBpbmNyZWFzaW5nIHRo
ZSBET01UcmVlVmVyc2lvbiBvZiB0aGUgZG9uYXRpbmcgZG9jdW1lbnQgaGVyZQorICAgIC8vIHdl
IGVuc3VyZSB0aGF0IHRoZSBjb2xsZWN0aW9uIGNhY2hlIHdpbGwgYmUgaW52YWxpZGF0ZWQgYXMg
bmVlZGVkIHdoZW4gdGhlIGVsZW1lbnQgaXMgbW92ZWQgYmFjay4KKyAgICBEb2N1bWVudCogb2xk
RG9jdW1lbnQgPSBtX29sZFNjb3BlLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50KiBuZXdEb2N1
bWVudCA9IG1fbmV3U2NvcGUtPmRvY3VtZW50KCk7CisgICAgYm9vbCB3aWxsTW92ZVRvTmV3RG9j
dW1lbnQgPSBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudDsKKyAgICBpZiAob2xkRG9jdW1lbnQg
JiYgd2lsbE1vdmVUb05ld0RvY3VtZW50KQorICAgICAgICBvbGREb2N1bWVudC0+aW5jRE9NVHJl
ZVZlcnNpb24oKTsKKworICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBu
b2RlLT50cmF2ZXJzZU5leHROb2RlKHJvb3QpKSB7CisgICAgICAgIE5vZGVSYXJlRGF0YSogcmFy
ZURhdGEgPSBub2RlLT5zZXRUcmVlU2NvcGUobmV3RG9jdW1lbnQgPT0gbV9uZXdTY29wZSA/IDAg
OiBtX25ld1Njb3BlKTsKKyAgICAgICAgaWYgKHJhcmVEYXRhICYmIHJhcmVEYXRhLT5ub2RlTGlz
dHMoKSkgeworICAgICAgICAgICAgaWYgKG1fb2xkU2NvcGUpCisgICAgICAgICAgICAgICAgbV9v
bGRTY29wZS0+cmVtb3ZlTm9kZUxpc3RDYWNoZSgpOworICAgICAgICAgICAgbV9uZXdTY29wZS0+
YWRkTm9kZUxpc3RDYWNoZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbGxNb3ZlVG9O
ZXdEb2N1bWVudCkKKyAgICAgICAgICAgIG1vdmVOb2RlVG9OZXdEb2N1bWVudChub2RlLCBvbGRE
b2N1bWVudCwgbmV3RG9jdW1lbnQpOworCisgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cg
PSBzaGFkb3dSb290Rm9yKG5vZGUpKSB7CisgICAgICAgICAgICBzaGFkb3ctPnNldFBhcmVudFRy
ZWVTY29wZShtX25ld1Njb3BlKTsKKyAgICAgICAgICAgIGlmICh3aWxsTW92ZVRvTmV3RG9jdW1l
bnQpCisgICAgICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9j
dW1lbnQsIG5ld0RvY3VtZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBUcmVlU2Nv
cGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQqIG9s
ZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Cit7CisgICAgZm9yIChOb2Rl
KiBub2RlID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUocm9vdCkp
IHsKKyAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUsIG9sZERvY3VtZW50LCBuZXdE
b2N1bWVudCk7CisgICAgICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290Rm9y
KG5vZGUpKQorICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9j
dW1lbnQsIG5ld0RvY3VtZW50KTsKKyAgICB9Cit9CisKKyNpZm5kZWYgTkRFQlVHCitzdGF0aWMg
Ym9vbCBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOworc3RhdGljIERvY3Vt
ZW50KiBvbGREb2N1bWVudERpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkV2l0aCA9IE5VTEw7
CisKK3ZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXND
YWxsZWQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQoreworICAgIEFTU0VSVCghZGlkTW92ZVRvTmV3
RG9jdW1lbnRXYXNDYWxsZWQpOworICAgIEFTU0VSVF9VTlVTRUQob2xkRG9jdW1lbnQsIG9sZERv
Y3VtZW50ID09IG9sZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoKTsK
KyAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IHRydWU7Cit9CisjZW5kaWYKKwor
dm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwg
RG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKCFub2RlLT5pbkRvY3VtZW50KCkgfHwgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1l
bnQpOworCisgICAgbmV3RG9jdW1lbnQtPmd1YXJkUmVmKCk7CisgICAgaWYgKG9sZERvY3VtZW50
KSB7CisgICAgICAgIG9sZERvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQo
bm9kZSwgbmV3RG9jdW1lbnQpOworICAgICAgICBvbGREb2N1bWVudC0+Z3VhcmREZXJlZigpOwor
ICAgIH0KKworICAgIG5vZGUtPnNldERvY3VtZW50KG5ld0RvY3VtZW50KTsKKworI2lmbmRlZiBO
REVCVUcKKyAgICBkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCA9IGZhbHNlOworICAgIG9s
ZERvY3VtZW50RGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWRXaXRoID0gb2xkRG9jdW1lbnQ7
CisjZW5kaWYKKworICAgIG5vZGUtPmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsK
KyAgICBBU1NFUlQoZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmJkNGQ0ZjAxZTdkMjNj
YzYzMDVjMTM4MjAwNTU2NTE2ZTU5MjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMp
IDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMp
IDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKyNpZm5kZWYgVHJlZVNjb3BlQWRvcHRlcl9oCisjZGVmaW5lIFRyZWVTY29wZUFkb3B0
ZXJfaAorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFRyZWVTY29wZUFkb3B0ZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFRyZWVTY29wZUFk
b3B0ZXIoTm9kZSogdG9BZG9wdCwgVHJlZVNjb3BlKiBuZXdTY29wZSk7CisKKyAgICB2b2lkIGV4
ZWN1dGUoKSBjb25zdCB7IG1vdmVUcmVlVG9OZXdTY29wZShtX3RvQWRvcHQpOyB9CisgICAgYm9v
bCBuZWVkc1Njb3BlQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9vbGRTY29wZSAhPSBtX25ld1Nj
b3BlOyB9CisKKyNpZmRlZiBOREVCVUcKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVEaWRNb3ZlVG9O
ZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCopIHsgfQorI2Vsc2UKKyAgICBzdGF0aWMgdm9p
ZCBlbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCopOworI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgdm9pZCBtb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSopIGNvbnN0Owor
ICAgIHZvaWQgbW92ZVRyZWVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jdW1l
bnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CisgICAgdm9pZCBtb3ZlTm9kZVRvTmV3
RG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3Vt
ZW50KSBjb25zdDsKKworICAgIE5vZGUqIG1fdG9BZG9wdDsKKyAgICBUcmVlU2NvcGUqIG1fbmV3
U2NvcGU7CisgICAgVHJlZVNjb3BlKiBtX29sZFNjb3BlOworfTsKKworaW5saW5lIFRyZWVTY29w
ZUFkb3B0ZXI6OlRyZWVTY29wZUFkb3B0ZXIoTm9kZSogdG9BZG9wdCwgVHJlZVNjb3BlKiBuZXdT
Y29wZSkKKyAgICA6IG1fdG9BZG9wdCh0b0Fkb3B0KQorICAgICwgbV9uZXdTY29wZShuZXdTY29w
ZSkKKyAgICAsIG1fb2xkU2NvcGUodG9BZG9wdC0+dHJlZVNjb3BlKCkpCit7CisgICAgQVNTRVJU
KG5ld1Njb3BlKTsKK30KKworfQorCisjZW5kaWYK
</data>
<flag name="commit-queue"
          id="121671"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>