<?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>112858</bug_id>
          
          <creation_ts>2013-03-20 17:30:48 -0700</creation_ts>
          <short_desc>Remove upcastPointer from ActiveDOMObject constructor</short_desc>
          <delta_ts>2013-03-21 16:31:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Russell McClellan">russell.mcclellan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>859881</commentid>
    <comment_count>0</comment_count>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-20 17:30:48 -0700</bug_when>
    <thetext>There&apos;s an &quot;upcast&quot; pointer in the ActiveDOMObject constructor.  This was introduced in the original implementation of ActiveDOMObject here (https://bugs.webkit.org/show_bug.cgi?id=21642).  There&apos;s no real documentation on what it&apos;s supposed to be used for, so I have to imagine that the idea is that it holds a pointer to the most-derived class.  I guess this was put in with the idea that it was going to be used somewhere, but for the life of me I can&apos;t see anywhere that uses it.  I&apos;ve tested removing it on chromium and webkit for mac, and it seems to do fine without it (i.e. the layouttests pass).

The reason I want to remove it is I&apos;m trying to make a whole class hierarchy (AudioNodes) into ActiveDOMObjects to solve a GC issue.  Having the extra upcast pointer argument means I&apos;d have to thread the argument through the AudioNode constructor and the constructor of every base class derived from it, which doesn&apos;t really sound incredibly fun.

Is this actually used somewhere, and I just missed it?  This is probably the most likely scenario.  If it is not used anywhere, does this look like a safe change to you guys?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859886</commentid>
    <comment_count>1</comment_count>
      <attachid>194149</attachid>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-20 17:36:18 -0700</bug_when>
    <thetext>Created attachment 194149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859917</commentid>
    <comment_count>2</comment_count>
      <attachid>194149</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-20 18:24:41 -0700</bug_when>
    <thetext>Comment on attachment 194149
Patch

Does it need to be a hashset? Maybe vector is enough, isn&apos;t it? (I cannot imagine a situation where we want to remove active DOM objects from the hash set before a ScriptExecutionContext is destructed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859927</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-20 18:39:12 -0700</bug_when>
    <thetext>&gt; I cannot imagine a situation where we want to remove active DOM objects from the hash set before a ScriptExecutionContext is destructed.

When the object itself is destroyed.  For example, an XMLHttpRequest object that gets garbage collected after finishing it&apos;s network request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859949</commentid>
    <comment_count>4</comment_count>
      <attachid>194149</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-20 19:18:24 -0700</bug_when>
    <thetext>Comment on attachment 194149
Patch

Attachment 194149 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17207479</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859960</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-20 19:36:45 -0700</bug_when>
    <thetext>&gt; the idea is that it holds a pointer to the most-derived class.  I guess this was put in with the idea that it was going to be used somewhere

It used to be necessary for garbage collection, see &lt;http://trac.webkit.org/changeset/37649/trunk/WebCore/bindings/js/JSDOMBinding.cpp&gt;. The reason was of course that an object that had a JS wrapper could have a different address than its ActiveDOMObject part in multiple inheritance scenarios.

I _think_ that changes in garbage collection have obsoleted the need.

&gt; The reason I want to remove it is I&apos;m trying to make a whole class hierarchy (AudioNodes) into ActiveDOMObjects to solve a GC issue.

A general word of caution - ActiveDOMObject has very strict requirements of what can be done from suspend/resume functions. ScriptExecutionContext::suspendActiveDOMObjects() iterates over the HashMap, and if any new objects are created or destroyed during iteration, it&apos;s an instant security bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860274</commentid>
    <comment_count>6</comment_count>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-21 06:24:11 -0700</bug_when>
    <thetext>&gt; A general word of caution - ActiveDOMObject has very strict requirements of what can be done from suspend/resume functions. ScriptExecutionContext::suspendActiveDOMObjects() iterates over the HashMap, and if any new objects are created or destroyed during iteration, it&apos;s an instant security bug.

These actually do not need suspend and resume, they&apos;re only ActiveDOMObjects so that they can alert the GC that they shouldn&apos;t be collected when they have pending activity.  There&apos;s some precedence for this usage, i.e. AudioContext.  Does this make sense?  Are there other side-effects to making something an ActiveDOMObject?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860309</commentid>
    <comment_count>7</comment_count>
      <attachid>194257</attachid>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-21 07:11:12 -0700</bug_when>
    <thetext>Created attachment 194257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860315</commentid>
    <comment_count>8</comment_count>
      <attachid>194257</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-21 07:25:20 -0700</bug_when>
    <thetext>Comment on attachment 194257
Patch

Attachment 194257 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17255067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860389</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-21 08:51:03 -0700</bug_when>
    <thetext>I think that using ActiveDOMObject when not needing suspending is an overkill. These don&apos;t scale well, as the whole list is iterated when suspend/resume happens.

Regardless, I think that this patch is awesome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860401</commentid>
    <comment_count>10</comment_count>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-21 09:04:43 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I think that using ActiveDOMObject when not needing suspending is an overkill. These don&apos;t scale well, as the whole list is iterated when suspend/resume happens.

Yeah, I agree.  Unfortunately the only alternative right now that I can think of is custom bindings (i.e. the &quot;CustomIsReachable&quot; IDL attribute), and that feels like even more overkill.  Maybe it would be good at some future date to abstract out the &quot;pending activity&quot; behavior from the &quot;suspend/resume&quot; behavior,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860403</commentid>
    <comment_count>11</comment_count>
      <attachid>194277</attachid>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-21 09:13:08 -0700</bug_when>
    <thetext>Created attachment 194277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860414</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-21 09:34:41 -0700</bug_when>
    <thetext>&gt; the only alternative right now that I can think of is custom bindings

This actually makes more sense to me. Anyway, this discussion is off topic for this bug, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860746</commentid>
    <comment_count>13</comment_count>
    <who name="Russell McClellan">russell.mcclellan</who>
    <bug_when>2013-03-21 14:53:45 -0700</bug_when>
    <thetext>sorry about the efl failures, didn&apos;t test that locally.  Look good to everyone now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860802</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-21 15:48:30 -0700</bug_when>
    <thetext>This patch looks good to me, from a GC perspective. upcastPointer used to be used during GC years ago, but is no longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860854</commentid>
    <comment_count>15</comment_count>
      <attachid>194277</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 16:31:04 -0700</bug_when>
    <thetext>Comment on attachment 194277
Patch

Clearing flags on attachment: 194277

Committed r146537: &lt;http://trac.webkit.org/changeset/146537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860855</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 16:31:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194149</attachid>
            <date>2013-03-20 17:36:18 -0700</date>
            <delta_ts>2013-03-21 07:11:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112858-20130320203207.patch</filename>
            <type>text/plain</type>
            <size>32302</size>
            <attacher name="Russell McClellan">russell.mcclellan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjQxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAzLTIwICBSdXNzZWxs
IE1jQ2xlbGxhbiAgPHJ1c3NlbGwubWNjbGVsbGFuQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1v
dmUgdXBjYXN0UG9pbnRlciBmcm9tIEFjdGl2ZURPTU9iamVjdCBjb25zdHJ1Y3RvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODU4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2V0IHJpZCBvZiBhIHBl
c2t5LCB1bnVzZWQgYXJndW1lbnQgaW4gdGhlIEFjdGl2ZURPTU9iamVjdCdzIGNvbnN0cnVjdG9y
LgorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6RE9NRmlsZVN5c3RlbSk6CisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVdyaXRlcjo6RmlsZVdyaXRlcik6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlOjpJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RUTUZTZW5kZXI6
OlJUQ0RUTUZTZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OlJUQ1Bl
ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdElt
cGwpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0SW1wbDo6UlRDVm9pZFJlcXVlc3RJ
bXBsKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2VudGVyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6OkRh
dGFiYXNlQ29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6CisgICAgICAgICog
Y3NzL0ZvbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6Rm9udExv
YWRlcik6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY3RpdmVET01PYmplY3Q6OkFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgICogZG9tL0Fj
dGl2ZURPTU9iamVjdC5oOgorICAgICAgICAoQWN0aXZlRE9NT2JqZWN0KToKKyAgICAgICAgKiBk
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVE
T01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN0
b3BBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmRpZENyZWF0ZUFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWN0aXZlRE9NT2JqZWN0cyk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVSZWFkZXI6OkZpbGVSZWFkZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudDo6SFRNTE1hcnF1ZWVF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXJlcjo6UHJlcmVuZGVyZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OkV2ZW50U291cmNlKToK
KyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lcjo6U3VzcGVuZGFibGVUaW1lcik6CisgICAgICAgICogd29ya2Vycy9B
YnN0cmFjdFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdFdvcmtlcjo6QWJz
dHJhY3RXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorCiAyMDEzLTAzLTIwICBKYWVodW4gTGltICA8bGphZWh1
bi5saW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW2NzczMtdGV4dF0gUGFyc2luZyAtd2Via2l0
LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3MzLXRleHQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5j
cHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9ET01GaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBQYXNz
UmVmUHRyPERPTUZpbGVTeXN0ZW0+IERPTUZpbGVTeXN0ZW06CiAKIERPTUZpbGVTeXN0ZW06OkRP
TUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25zdCBLVVJMJiByb290VVJMLCBQYXNzT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQogICAgIDogRE9NRmlsZVN5c3Rl
bUJhc2UoY29udGV4dCwgbmFtZSwgdHlwZSwgcm9vdFVSTCwgYXN5bmNGaWxlU3lzdGVtKQotICAg
ICwgQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbS9GaWxlV3JpdGVyLmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw3ICs1NSw3IEBAIFBhc3NSZWZQdHI8RmlsZVdyaXRlcj4gRmlsZVdyaXRlcjo6Y3JlYXQKIH0K
IAogRmlsZVdyaXRlcjo6RmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01P
YmplY3QoY29udGV4dCkKICAgICAsIG1fcmVhZHlTdGF0ZShJTklUKQogICAgICwgbV9vcGVyYXRp
b25JblByb2dyZXNzKE9wZXJhdGlvbk5vbmUpCiAgICAgLCBtX3F1ZXVlZE9wZXJhdGlvbihPcGVy
YXRpb25Ob25lKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDEsNyArMjQxLDcgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbj4gR2VvbG9jYXRpb246OmNyZQog
fQogCiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93bikKIHsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlPiBJREJEYXRhYmFzZTo6Y3JlCiB9CiAKIElEQkRhdGFiYXNl
OjpJREJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQs
IHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fYmFja2VuZChi
YWNrZW5kKQogICAgICwgbV9jbG9zZVBlbmRpbmcoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRTdG9w
cGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXQKIH0KIAogSURCUmVx
dWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBl
IHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCi0gICAgOiBBY3RpdmVET01P
YmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAg
ICwgbV9yZXN1bHQoMCkKICAgICAsIG1fZXJyb3JDb2RlKDApCiAgICAgLCBtX2NvbnRleHRTdG9w
cGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05MSw3ICs5MSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGUK
IAogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9iamVjdFN0b3Jl
TmFtZXMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYiwg
SURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0
YSYgcHJldmlvdXNNZXRhZGF0YSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlz
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2lkKGlkKQogICAgICwg
bV9kYXRhYmFzZShkYikKICAgICAsIG1fb2JqZWN0U3RvcmVOYW1lcyhvYmplY3RTdG9yZU5hbWVz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3
IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IE1lZGlhU291cmNlOjpjcmUKIH0KIAogTWVkaWFT
b3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSkKICAgICAsIG1fYXN5
bmNFdmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCiB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcg
KzQyLDcgQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVhbQogfQogCiBN
ZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQpCi0gICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQog
ICAgICwgbV9zdG9wcGVkKGZhbHNlKQogICAgICwgbV9jb21wb25lbnQoY29tcG9uZW50KQogewpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1
OSw3IEBAIFBhc3NSZWZQdHI8UlRDRFRNRlNlbmRlcj4gUlRDRFRNRlNlbmRlcjoKIH0KIAogUlRD
RFRNRlNlbmRlcjo6UlRDRFRNRlNlbmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrLCBQYXNzT3duUHRyPFJUQ0RUTUZT
ZW5kZXJIYW5kbGVyPiBoYW5kbGVyKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fdHJhY2sodHJhY2sp
CiAgICAgLCBtX2R1cmF0aW9uKGRlZmF1bHRUb25lRHVyYXRpb25NcykKICAgICAsIG1faW50ZXJU
b25lR2FwKGRlZmF1bHRJbnRlclRvbmVHYXBNcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCShyZXZp
c2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDcgKzEzMiw3IEBAIFBhc3NS
ZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb24KIH0KIAogUlRDUGVlckNvbm5lY3Rp
b246OlJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiBjb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
KQogICAgICwgbV9zaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZVN0YWJsZSkKICAgICAsIG1f
aWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGVOZXcpCiAgICAgLCBtX2ljZUNvbm5l
Y3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGVTdGFydGluZykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBQYXNzUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJCiB9CiAKIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDog
QWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhzdWNjZXNz
Q2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNyArNDIsNyBAQCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdEltcGw+IFJUQ1N0
YXRzCiB9CiAKIFJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdEltcGwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiBj
YWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikKLSAgICA6IEFj
dGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKICAgICAsIG1fc3RyZWFtKHNl
bGVjdG9yID8gc2VsZWN0b3ItPmNvbXBvbmVudCgpLT5zdHJlYW0oKSA6IDApCiAgICAgLCBtX2Nv
bXBvbmVudChzZWxlY3RvciA/IHNlbGVjdG9yLT5jb21wb25lbnQoKSA6IDApCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVx
dWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDcgKzQ4LDcgQEAgUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IFJUQ1ZvaWRSZQogfQog
CiBSVENWb2lkUmVxdWVzdEltcGw6OlJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCi0gICAgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
KQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQogICAgICwgbV9lcnJv
ckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24gMTQ2
Mjk0KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDEzICs1NCwxMyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbigpCi0gICAgOiBBY3RpdmVET01PYmpl
Y3QoMCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgwKQogewogfQogCiAjaWYgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQogTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3Qg
S1VSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYywgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKQotICAgIDogQWN0
aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCkKICAgICAsIG1faXNIVE1MKHRydWUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX25v
dGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKQEAgLTgxLDcgKzgxLDcgQEAgTm90aWZpY2F0aW9u
OjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYgdQogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQogTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkksIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbkNlbnRlcj4gcHJvdmlkZXIpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhp
cykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9pc0hUTUwoZmFsc2Up
CiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9ib2R5KGJvZHkpCkBAIC0xMDMsNyArMTAz
LDcgQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJgogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxlKQotICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkK
ICAgICAsIG1faXNIVE1MKGZhbHNlKQogICAgICwgbV90aXRsZSh0aXRsZSkKICAgICAsIG1fc3Rh
dGUoSWRsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbkNlbnRlcj4gTm90aWZpY2F0CiB9CiAKIE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0
aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5vdGlmaWNhdGlvbkNs
aWVudCogY2xpZW50KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2
Miw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3AoKQogfQogCiBTcGVlY2hSZWNvZ25p
dGlvbjo6U3BlZWNoUmVjb2duaXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
LSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQpCiAgICAgLCBtX2dyYW1tYXJzKFNwZWVjaEdyYW1tYXJMaXN0OjpjcmVhdGUo
KSkgLy8gRklYTUU6IFRoZSBzcGVjIGlzIG5vdCBjbGVhciBvbiB0aGUgZGVmYXVsdCB2YWx1ZSBm
b3IgdGhlIGdyYW1tYXJzIGF0dHJpYnV0ZS4KICAgICAsIG1fY29udGludW91cyhmYWxzZSkKICAg
ICAsIG1faW50ZXJpbVJlc3VsdHMoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQ29udGV4dD4gQXVkaW9D
b250ZXh0OjpjCiAKIC8vIENvbnN0cnVjdG9yIGZvciByZW5kZXJpbmcgdG8gdGhlIGF1ZGlvIGhh
cmR3YXJlLgogQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50KQot
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGRvY3VtZW50KQogICAgICwgbV9pc1N0b3BTY2hlZHVsZWQoZmFsc2UpCiAgICAgLCBtX2lz
SW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZChmYWxzZSkK
QEAgLTE0OCw3ICsxNDgsNyBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCog
ZG9jCiAKIC8vIENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChub24tcmVhbHRpbWUpIHJlbmRlcmlu
Zy4KIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVS
YXRlKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9pc1N0b3BTY2hlZHVsZWQoZmFsc2UpCiAgICAg
LCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZChm
YWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlQ29udGV4dC5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIAogRGF0YWJhc2VDb250
ZXh0OjpEYXRhYmFzZUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAg
ICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQpCiAgICAgLCBtX2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAgICAgLCBtX2lzUmVn
aXN0ZXJlZCh0cnVlKSAvLyB3aWxsIHJlZ2lzdGVyIG9uIGNvbnN0cnVjdGlvbiBiZWxvdy4KICAg
ICAsIG1faGFzUmVxdWVzdGVkVGVybWluYXRpb24oZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAkocmV2aXNpb24gMTQ2Mjk0
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBjaGFyKiBXZWJTb2NrZXQ6OnN1
YlByb3RvY29sU2VwZXJhCiB9CiAKIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykK
KyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9zdGF0ZShDT05ORUNUSU5H
KQogICAgICwgbV9idWZmZXJlZEFtb3VudCgwKQogICAgICwgbV9idWZmZXJlZEFtb3VudEFmdGVy
Q2xvc2UoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAJKHJldmlzaW9uIDE0NjI5
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgTG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5RXJyb3IoKSAK
IH0KIAogRm9udExvYWRlcjo6Rm9udExvYWRlcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBB
Y3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9j
dW1lbnQpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sb2FkaW5nQ291bnQo
MCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwCShyZXZpc2lv
biAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFj
dGl2ZURPTU9iamVjdDo6QWN0aXZlRE9NT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIHZvaWQqIHVwY2FzdFBvaW50ZXIpCitBY3RpdmVET01PYmpl
Y3Q6OkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkKICAgICAsIG1fcGVuZGluZ0FjdGl2aXR5Q291bnQoMCkKICNpZiAhQVNTRVJU
X0RJU0FCTEVECkBAIC00NSw3ICs0NSw3IEBAIEFjdGl2ZURPTU9iamVjdDo6QWN0aXZlRE9NT2Jq
ZWN0KFNjcmlwdEUKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KHRoaXMsIHVwY2FzdFBvaW50ZXIpOworICAg
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KHRoaXMp
OwogfQogCiBBY3RpdmVET01PYmplY3Q6On5BY3RpdmVET01PYmplY3QoKQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWN0aXZlRE9NT2JqZWN0IDogcHVibGlj
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBBY3RpdmVET01PYmpl
Y3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHZvaWQqIHVwY2FzdFBvaW50ZXIpOworICAgIEFj
dGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICAvLyBzdXNwZW5k
SWZOZWVkZWQoKSBzaG91bGQgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBhZnRlciBvYmplY3QgY29u
c3RydWN0aW9uIHRvIHN5bmNocm9uaXplCiAgICAgLy8gdGhlIHN1c3BlbmQgc3RhdGUgd2l0aCB0
aGF0IGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4MCwxMSArMTgwLDExIEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y2FuU3Vz
cGVuZEEKIHsKICAgICAvLyBObyBwcm90ZWN0aW9uIGFnYWluc3QgbV9hY3RpdmVET01PYmplY3Rz
IGNoYW5naW5nIGR1cmluZyBpdGVyYXRpb246IGNhblN1c3BlbmQoKSBzaG91bGRuJ3QgZXhlY3V0
ZSBhcmJpdHJhcnkgSlMuCiAgICAgbV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3RzID0gdHJ1ZTsK
LSAgICBIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgYWN0aXZlT2Jq
ZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8QWN0
aXZlRE9NT2JqZWN0Kiwgdm9pZCo+OjppdGVyYXRvciBpdGVyID0gbV9hY3RpdmVET01PYmplY3Rz
LmJlZ2luKCk7IGl0ZXIgIT0gYWN0aXZlT2JqZWN0c0VuZDsgKytpdGVyKSB7Ci0gICAgICAgIEFT
U0VSVChpdGVyLT5rZXktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKLSAgICAg
ICAgQVNTRVJUKGl0ZXItPmtleS0+c3VzcGVuZElmTmVlZGVkQ2FsbGVkKCkpOwotICAgICAgICBp
ZiAoIWl0ZXItPmtleS0+Y2FuU3VzcGVuZCgpKSB7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6
aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAg
ICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9i
amVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAg
ICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAg
ICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAg
aWYgKCEoKml0ZXIpLT5jYW5TdXNwZW5kKCkpIHsKICAgICAgICAgICAgIG1faXRlcmF0aW5nQWN0
aXZlRE9NT2JqZWN0cyA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CkBAIC0xOTcsMTEgKzE5NywxMSBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1
c3BlbmRBY3RpCiB7CiAgICAgLy8gTm8gcHJvdGVjdGlvbiBhZ2FpbnN0IG1fYWN0aXZlRE9NT2Jq
ZWN0cyBjaGFuZ2luZyBkdXJpbmcgaXRlcmF0aW9uOiBzdXNwZW5kKCkgc2hvdWxkbid0IGV4ZWN1
dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IHRydWU7
Ci0gICAgSGFzaE1hcDxBY3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJhdG9yIGFjdGl2ZU9i
amVjdHNFbmQgPSBtX2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEFj
dGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0
cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgewotICAgICAgICBB
U1NFUlQoaXRlci0+a2V5LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gdGhpcyk7Ci0gICAg
ICAgIEFTU0VSVChpdGVyLT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKLSAgICAgICAg
aXRlci0+a2V5LT5zdXNwZW5kKHdoeSk7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0
b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAgICBmb3Ig
KEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9iamVjdHMu
YmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgQVNT
RVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAgICAgICAg
QVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAgKCppdGVy
KS0+c3VzcGVuZCh3aHkpOwogICAgIH0KICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMg
PSBmYWxzZTsKICAgICBtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQgPSB0cnVlOwpAQCAt
MjEzLDExICsyMTMsMTEgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3Rp
dgogICAgIG1fYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCA9IGZhbHNlOwogICAgIC8vIE5v
IHByb3RlY3Rpb24gYWdhaW5zdCBtX2FjdGl2ZURPTU9iamVjdHMgY2hhbmdpbmcgZHVyaW5nIGl0
ZXJhdGlvbjogcmVzdW1lKCkgc2hvdWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1f
aXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01P
YmplY3QqLCB2b2lkKj46Oml0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9i
amVjdHMuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6
aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2
ZU9iamVjdHNFbmQ7ICsraXRlcikgewotICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgPT0gdGhpcyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1
c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKLSAgICAgICAgaXRlci0+a2V5LT5yZXN1bWUoKTsKKyAg
ICBBY3RpdmVET01PYmplY3RzU2V0OjppdGVyYXRvciBhY3RpdmVPYmplY3RzRW5kID0gbV9hY3Rp
dmVET01PYmplY3RzLmVuZCgpOworICAgIGZvciAoQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0
b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVj
dHNFbmQ7ICsraXRlcikgeworICAgICAgICBBU1NFUlQoKCppdGVyKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpID09IHRoaXMpOworICAgICAgICBBU1NFUlQoKCppdGVyKS0+c3VzcGVuZElmTmVl
ZGVkQ2FsbGVkKCkpOworICAgICAgICAoKml0ZXIpLT5yZXN1bWUoKTsKICAgICB9CiAgICAgbV9p
dGVyYXRpbmdBY3RpdmVET01PYmplY3RzID0gZmFsc2U7CiB9CkBAIC0yMjcsMTEgKzIyNywxMSBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN0b3BBY3RpdmVECiAgICAgbV9hY3RpdmVE
T01PYmplY3RzQXJlU3RvcHBlZCA9IHRydWU7CiAgICAgLy8gTm8gcHJvdGVjdGlvbiBhZ2FpbnN0
IG1fYWN0aXZlRE9NT2JqZWN0cyBjaGFuZ2luZyBkdXJpbmcgaXRlcmF0aW9uOiBzdG9wKCkgc2hv
dWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2Jq
ZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJh
dG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9y
IChIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0
aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikg
ewotICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0g
dGhpcyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgp
KTsKLSAgICAgICAgaXRlci0+a2V5LT5zdG9wKCk7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6
aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAg
ICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9i
amVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAg
ICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAg
ICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAg
KCppdGVyKS0+c3RvcCgpOwogICAgIH0KICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMg
PSBmYWxzZTsKIApAQCAtMjQ3LDE0ICsyNDcsMTMgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpzdXNwZW5kQWN0aQogICAgICAgICBvYmplY3QtPnN1c3BlbmQobV9yZWFzb25Gb3JTdXNw
ZW5kaW5nQWN0aXZlRE9NT2JqZWN0cyk7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KEFjdGl2ZURPTU9iamVjdCogb2JqZWN0LCB2b2lk
KiB1cGNhc3RQb2ludGVyKQordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaWRDcmVhdGVB
Y3RpdmVET01PYmplY3QoQWN0aXZlRE9NT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgQVNTRVJUKG9i
amVjdCk7Ci0gICAgQVNTRVJUKHVwY2FzdFBvaW50ZXIpOwogICAgIEFTU0VSVCghbV9pbkRlc3Ry
dWN0b3IpOwogICAgIGlmIChtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMpCiAgICAgICAgIENS
QVNIKCk7Ci0gICAgbV9hY3RpdmVET01PYmplY3RzLmFkZChvYmplY3QsIHVwY2FzdFBvaW50ZXIp
OworICAgIG1fYWN0aXZlRE9NT2JqZWN0cy5hZGQob2JqZWN0KTsKIH0KIAogdm9pZCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Ojp3aWxsRGVzdHJveUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmpl
Y3QqIG9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1
ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgpAQCAtMTAzLDE0ICsxMDIsMTQgQEAgcHVibGljOgogICAgIGJvb2wgYWN0
aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9iamVj
dHNBcmVTdG9wcGVkOyB9CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgY29uc3RydWN0b3IgYW5k
IGRlc3RydWN0b3JzIG9mIEFjdGl2ZURPTU9iamVjdC4KLSAgICB2b2lkIGRpZENyZWF0ZUFjdGl2
ZURPTU9iamVjdChBY3RpdmVET01PYmplY3QqLCB2b2lkKiB1cGNhc3RQb2ludGVyKTsKKyAgICB2
b2lkIGRpZENyZWF0ZUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmplY3QqKTsKICAgICB2b2lk
IHdpbGxEZXN0cm95QWN0aXZlRE9NT2JqZWN0KEFjdGl2ZURPTU9iamVjdCopOwogCiAgICAgLy8g
Q2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW4gQWN0aXZlRE9NT2JqZWN0IHRvIHN5
bmNocm9uaXplIHN1c3BlbmQgc3RhdGUuCiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0
SWZOZWVkZWQoQWN0aXZlRE9NT2JqZWN0Kik7CiAKLSAgICB0eXBlZGVmIGNvbnN0IEhhc2hNYXA8
QWN0aXZlRE9NT2JqZWN0Kiwgdm9pZCo+IEFjdGl2ZURPTU9iamVjdHNNYXA7Ci0gICAgQWN0aXZl
RE9NT2JqZWN0c01hcCYgYWN0aXZlRE9NT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZl
RE9NT2JqZWN0czsgfQorICAgIHR5cGVkZWYgSGFzaFNldDxBY3RpdmVET01PYmplY3QqPiBBY3Rp
dmVET01PYmplY3RzU2V0OworICAgIGNvbnN0IEFjdGl2ZURPTU9iamVjdHNTZXQmIGFjdGl2ZURP
TU9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9iamVjdHM7IH0KIAogICAgIHZv
aWQgZGlkQ3JlYXRlRGVzdHJ1Y3Rpb25PYnNlcnZlcihDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ciopOwogICAgIHZvaWQgd2lsbERlc3Ryb3lEZXN0cnVjdGlvbk9ic2VydmVyKENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyKik7CkBAIC0yMDMsNyArMjAyLDcgQEAgcHJpdmF0ZToKIAogICAgIEhh
c2hTZXQ8TWVzc2FnZVBvcnQqPiBtX21lc3NhZ2VQb3J0czsKICAgICBIYXNoU2V0PENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyKj4gbV9kZXN0cnVjdGlvbk9ic2VydmVyczsKLSAgICBIYXNoTWFw
PEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPiBtX2FjdGl2ZURPTU9iamVjdHM7CisgICAgQWN0aXZl
RE9NT2JqZWN0c1NldCBtX2FjdGl2ZURPTU9iamVjdHM7CiAgICAgYm9vbCBtX2l0ZXJhdGluZ0Fj
dGl2ZURPTU9iamVjdHM7CiAgICAgYm9vbCBtX2luRGVzdHJ1Y3RvcjsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1
Niw3IEBAIFBhc3NSZWZQdHI8RmlsZVJlYWRlcj4gRmlsZVJlYWRlcjo6Y3JlYXQKIH0KIAogRmls
ZVJlYWRlcjo6RmlsZVJlYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAg
IDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCkKICAgICAsIG1fc3RhdGUoRU1QVFkpCiAgICAgLCBtX2Fib3J0aW5nKGZhbHNlKQog
ICAgICwgbV9yZWFkVHlwZShGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNCaW5hcnlTdHJpbmcpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAogaW5saW5lIEhUTUxNYXJxdWVlRWxlbWVudDo6SFRNTE1hcnF1ZWVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
LCB0aGlzKQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKG1hcnF1ZWVUYWcpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDcgKzIzNiw3IEBA
IHByaXZhdGU6CiAKIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBh
cnNlcikKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgQWN0aXZl
RE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
KQogICAgICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUaW1lckZp
cmVkKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6
OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIo
dGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjIsNyArNDYy
LDcgQEAgUGFzc093blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUgogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQqIHBh
c3NlZENhbnZhcywgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
OjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KHBh
c3NlZENhbnZhcykKLSAgICAsIEFjdGl2ZURPTU9iamVjdChwYXNzZWRDYW52YXMtPmRvY3VtZW50
KCksIHRoaXMpCisgICAgLCBBY3RpdmVET01PYmplY3QocGFzc2VkQ2FudmFzLT5kb2N1bWVudCgp
KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2RyYXdpbmdCdWZmZXIoMCkKICAg
ICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIodGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL1ByZXJlbmRlcmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJlcmVuZGVyZXIuY3BwCShyZXZpc2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJlcmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIFBh
c3NPd25QdHI8UHJlcmVuZGVyZXI+IFByZXJlbmRlcmVyOjpjcmUKIH0KIAogUHJlcmVuZGVyZXI6
OlByZXJlbmRlcmVyKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChk
b2N1bWVudCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1f
aW5pdGlhbGl6ZWRDbGllbnQoZmFsc2UpCiAgICAgLCBtX2NsaWVudCgwKQogewpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAJKHJldmlzaW9uIDE0NjI5NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyBFdmVudFNv
dXJjZTo6ZGVmYXVsdFJlY29ubmVjdERlbGF5ID0gMzAwMDsKIAogaW5saW5lIEV2ZW50U291cmNl
OjpFdmVudFNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IERpY3Rpb25hcnkmIGV2ZW50U291cmNlSW5pdCkKLSAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAg
ICAgLCBtX3VybCh1cmwpCiAgICAgLCBtX3dpdGhDcmVkZW50aWFscyhmYWxzZSkKICAgICAsIG1f
c3RhdGUoQ09OTkVDVElORykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVU
aW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5k
YWJsZVRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBTdXNwZW5kYWJsZVRpbWVyOjpTdXNwZW5kYWJsZVRpbWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwg
dGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9uZXh0RmlyZUlu
dGVydmFsKDApCiAgICAgLCBtX3JlcGVhdEludGVydmFsKDApCiAgICAgLCBtX2FjdGl2ZShmYWxz
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCShyZXZp
c2lvbiAxNDYyOTQpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBBYnN0cmFjdFdvcmtlcjo6QWJzdHJhY3RXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0
aXZlRE9NT2JqZWN0KGNvbnRleHQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTQ2Mjk0KQorKysgU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDEwICsxODEs
OSBAQCBXb3JrZXJOYXZpZ2F0b3IqIFdvcmtlckNvbnRleHQ6Om5hdmlnYXRvCiAKIGJvb2wgV29y
a2VyQ29udGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICBBY3RpdmVET01P
YmplY3RzTWFwJiBhY3RpdmVPYmplY3RzID0gYWN0aXZlRE9NT2JqZWN0cygpOwotICAgIEFjdGl2
ZURPTU9iamVjdHNNYXA6OmNvbnN0X2l0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBhY3RpdmVP
YmplY3RzLmVuZCgpOwotICAgIGZvciAoQWN0aXZlRE9NT2JqZWN0c01hcDo6Y29uc3RfaXRlcmF0
b3IgaXRlciA9IGFjdGl2ZU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5k
OyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGl0ZXItPmtleS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkp
CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6Y29uc3RfaXRlcmF0b3IgYWN0aXZlT2JqZWN0c0Vu
ZCA9IGFjdGl2ZURPTU9iamVjdHMoKS5lbmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNT
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBhY3RpdmVET01PYmplY3RzKCkuYmVnaW4oKTsgaXRl
ciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCgqaXRlciktPmhh
c1BlbmRpbmdBY3Rpdml0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE0NjI5NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4MCw3ICsxODAsNyBAQCBQYXNzUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBYTUxIdHRwUmVx
dWVzCiB9CiAKIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdp
bikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9N
T2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVk
ZW50aWFscyhmYWxzZSkKICNpZiBFTkFCTEUoWEhSX1RJTUVPVVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194257</attachid>
            <date>2013-03-21 07:11:12 -0700</date>
            <delta_ts>2013-03-21 09:13:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112858-20130321100700.patch</filename>
            <type>text/plain</type>
            <size>31285</size>
            <attacher name="Russell McClellan">russell.mcclellan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDEzLTAzLTIxICBSdXNzZWxs
IE1jQ2xlbGxhbiAgPHJ1c3NlbGwubWNjbGVsbGFuQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1v
dmUgdXBjYXN0UG9pbnRlciBmcm9tIEFjdGl2ZURPTU9iamVjdCBjb25zdHJ1Y3RvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODU4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChz
aG91bGQgbm90IGFmZmVjdCBiZWhhdmlvcikuCisKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkv
QmF0dGVyeU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeU1hbmFnZXI6OkJh
dHRlcnlNYW5hZ2VyKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlV3JpdGVyOjpGaWxlV3JpdGVyKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpH
ZW9sb2NhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFu
c2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
RFRNRlNlbmRlcjo6UlRDRFRNRlNlbmRlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbjo6UlRDUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6UlRDU3Rh
dHNSZXF1ZXN0SW1wbCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVx
dWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpSVENW
b2lkUmVxdWVzdEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50
ZXIpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
Q29udGV4dDo6RGF0YWJhc2VDb250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6V2ViU29ja2V0KToK
KwogMjAxMy0wMy0yMSAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRl
bC5jb20+CiAKICAgICAgICAgW0VGTF1bV2ViR0xdIEltcGxlbWVudCBhIGNvbW1vbiBHcmFwaGlj
c1N1cmZhY2UgSW1wbGVtZW50YXRpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Jh
dHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgQmF0dGVyeU1hbmFnZXI6On5CYXR0ZXJ5TWFuYWdlcigp
CiB9CiAKIEJhdHRlcnlNYW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcihOYXZpZ2F0b3IqIG5hdmlnYXRv
cikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCks
IHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QobmF2aWdhdG9yLT5mcmFtZSgpLT5kb2N1bWVu
dCgpKQogICAgICwgbV9iYXR0ZXJ5Q29udHJvbGxlcihCYXR0ZXJ5Q29udHJvbGxlcjo6ZnJvbShu
YXZpZ2F0b3ItPmZyYW1lKCktPnBhZ2UoKSkpCiAgICAgLCBtX2JhdHRlcnlTdGF0dXMoMCkKIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmls
ZVN5c3RlbS5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgs
NyBAQCBQYXNzUmVmUHRyPERPTUZpbGVTeXN0ZW0+IERPTUZpbGVTeXN0ZW06CiAKIERPTUZpbGVT
eXN0ZW06OkRPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25zdCBLVVJMJiByb290VVJM
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQogICAgIDogRE9N
RmlsZVN5c3RlbUJhc2UoY29udGV4dCwgbmFtZSwgdHlwZSwgcm9vdFVSTCwgYXN5bmNGaWxlU3lz
dGVtKQotICAgICwgQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw3ICs1NSw3IEBAIFBhc3NSZWZQdHI8RmlsZVdyaXRlcj4gRmlsZVdyaXRlcjo6
Y3JlYXQKIH0KIAogRmlsZVdyaXRlcjo6RmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fcmVhZHlTdGF0ZShJTklUKQogICAgICwg
bV9vcGVyYXRpb25JblByb2dyZXNzKE9wZXJhdGlvbk5vbmUpCiAgICAgLCBtX3F1ZXVlZE9wZXJh
dGlvbihPcGVyYXRpb25Ob25lKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDEsNyArMjQxLDcgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbj4gR2VvbG9jYXRp
b246OmNyZQogfQogCiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5r
bm93bikKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyAr
NTksNyBAQCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBJREJEYXRhYmFzZTo6Y3JlCiB9CiAKIElE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzKQotICAgIDogQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1f
YmFja2VuZChiYWNrZW5kKQogICAgICwgbV9jbG9zZVBlbmRpbmcoZmFsc2UpCiAgICAgLCBtX2Nv
bnRleHRTdG9wcGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw3ICs2OCw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXQKIH0K
IAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6
OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCi0gICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0KQogICAgICwgbV9yZXN1bHQoMCkKICAgICAsIG1fZXJyb3JDb2RlKDApCiAgICAgLCBtX2Nv
bnRleHRTdG9wcGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rp
b246Om1vZGUKIAogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9i
amVjdFN0b3JlTmFtZXMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1vZGUsIElEQkRhdGFi
YXNlKiBkYiwgSURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCwgY29uc3QgSURCRGF0YWJh
c2VNZXRhZGF0YSYgcHJldmlvdXNNZXRhZGF0YSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2lkKGlk
KQogICAgICwgbV9kYXRhYmFzZShkYikKICAgICAsIG1fb2JqZWN0U3RvcmVOYW1lcyhvYmplY3RT
dG9yZU5hbWVzKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw3ICs1MCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IE1lZGlhU291cmNlOjpjcmUKIH0K
IAogTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSkKICAg
ICAsIG1fYXN5bmNFdmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDcgQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVh
bQogfQogCiBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogICAgICwgbV9jb21wb25lbnQoY29tcG9u
ZW50KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1G
U2VuZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8UlRDRFRNRlNlbmRlcj4gUlRDRFRNRlNlbmRlcjoK
IH0KIAogUlRDRFRNRlNlbmRlcjo6UlRDRFRNRlNlbmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrLCBQYXNzT3duUHRy
PFJUQ0RUTUZTZW5kZXJIYW5kbGVyPiBoYW5kbGVyKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fdHJh
Y2sodHJhY2spCiAgICAgLCBtX2R1cmF0aW9uKGRlZmF1bHRUb25lRHVyYXRpb25NcykKICAgICAs
IG1faW50ZXJUb25lR2FwKGRlZmF1bHRJbnRlclRvbmVHYXBNcykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDcgKzEzMiw3
IEBAIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb24KIH0KIAogUlRDUGVl
ckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0KQogICAgICwgbV9zaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZVN0YWJsZSkK
ICAgICAsIG1faWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGVOZXcpCiAgICAgLCBt
X2ljZUNvbm5lY3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGVTdGFydGluZykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDY0
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJCiB9CiAKIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaykKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlz
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFj
ayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdElt
cGw+IFJUQ1N0YXRzCiB9CiAKIFJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdElt
cGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikK
LSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKICAgICAsIG1f
c3RyZWFtKHNlbGVjdG9yID8gc2VsZWN0b3ItPmNvbXBvbmVudCgpLT5zdHJlYW0oKSA6IDApCiAg
ICAgLCBtX2NvbXBvbmVudChzZWxlY3RvciA/IHNlbGVjdG9yLT5jb21wb25lbnQoKSA6IDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IFJUQ1Zv
aWRSZQogfQogCiBSVENWb2lkUmVxdWVzdEltcGw6OlJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vz
c0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0KQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQogICAg
ICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAkocmV2
aXNpb24gMTQ2NDU5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDEzICs1NCwxMyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbigpCi0gICAgOiBBY3Rp
dmVET01PYmplY3QoMCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgwKQogewogfQogCiAj
aWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogTm90aWZpY2F0aW9uOjpOb3RpZmljYXRp
b24oY29uc3QgS1VSTCYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNl
cHRpb25Db2RlJiBlYywgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IHByb3ZpZGVyKQot
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmpl
Y3QoY29udGV4dCkKICAgICAsIG1faXNIVE1MKHRydWUpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAg
ICAgLCBtX25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKQEAgLTgxLDcgKzgxLDcgQEAgTm90
aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYgdQogCiAjaWYgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkksIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvbkNlbnRlcj4gcHJvdmlkZXIpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29u
dGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9pc0hU
TUwoZmFsc2UpCiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9ib2R5KGJvZHkpCkBAIC0x
MDMsNyArMTAzLDcgQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJgog
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxlKQotICAg
IDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCkKICAgICAsIG1faXNIVE1MKGZhbHNlKQogICAgICwgbV90aXRsZSh0aXRsZSkKICAg
ICAsIG1fc3RhdGUoSWRsZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCShyZXZpc2lvbiAx
NDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2VudGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0CiB9CiAKIE5vdGlmaWNhdGlvbkNlbnRlcjo6
Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5vdGlm
aWNhdGlvbkNsaWVudCogY2xpZW50KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fY2xpZW50KGNsaWVu
dCkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTYyLDcgKzE2Miw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3AoKQogfQogCiBTcGVl
Y2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0
aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2dyYW1tYXJzKFNwZWVjaEdyYW1tYXJMaXN0
OjpjcmVhdGUoKSkgLy8gRklYTUU6IFRoZSBzcGVjIGlzIG5vdCBjbGVhciBvbiB0aGUgZGVmYXVs
dCB2YWx1ZSBmb3IgdGhlIGdyYW1tYXJzIGF0dHJpYnV0ZS4KICAgICAsIG1fY29udGludW91cyhm
YWxzZSkKICAgICAsIG1faW50ZXJpbVJlc3VsdHMoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNDY0
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQ29udGV4
dD4gQXVkaW9Db250ZXh0OjpjCiAKIC8vIENvbnN0cnVjdG9yIGZvciByZW5kZXJpbmcgdG8gdGhl
IGF1ZGlvIGhhcmR3YXJlLgogQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgIDogQWN0
aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9pc1N0b3BTY2hlZHVsZWQoZmFsc2UpCiAg
ICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hl
ZChmYWxzZSkKQEAgLTE0OCw3ICsxNDgsNyBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChE
b2N1bWVudCogZG9jCiAKIC8vIENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChub24tcmVhbHRpbWUp
IHJlbmRlcmluZy4KIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50KiBkb2N1bWVu
dCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9h
dCBzYW1wbGVSYXRlKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9pc1N0b3BTY2hlZHVsZWQoZmFs
c2UpCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAgLCBtX2lzQXVkaW9UaHJlYWRG
aW5pc2hlZChmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIAogRGF0
YWJhc2VDb250ZXh0OjpEYXRhYmFzZUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2hhc09wZW5EYXRhYmFzZXMoZmFsc2UpCiAgICAg
LCBtX2lzUmVnaXN0ZXJlZCh0cnVlKSAvLyB3aWxsIHJlZ2lzdGVyIG9uIGNvbnN0cnVjdGlvbiBi
ZWxvdy4KICAgICAsIG1faGFzUmVxdWVzdGVkVGVybWluYXRpb24oZmFsc2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAkocmV2aXNp
b24gMTQ2NDU5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBjaGFyKiBXZWJT
b2NrZXQ6OnN1YlByb3RvY29sU2VwZXJhCiB9CiAKIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9zdGF0ZShD
T05ORUNUSU5HKQogICAgICwgbV9idWZmZXJlZEFtb3VudCgwKQogICAgICwgbV9idWZmZXJlZEFt
b3VudEFmdGVyQ2xvc2UoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAJKHJldmlz
aW9uIDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgTG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5
RXJyb3IoKSAKIH0KIAogRm9udExvYWRlcjo6Rm9udExvYWRlcihEb2N1bWVudCogZG9jdW1lbnQp
Ci0gICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCisgICAgOiBBY3RpdmVET01P
YmplY3QoZG9jdW1lbnQpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sb2Fk
aW5nQ291bnQoMCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3Bw
CShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUFjdGl2ZURPTU9iamVjdDo6QWN0aXZlRE9NT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHZvaWQqIHVwY2FzdFBvaW50ZXIpCitBY3Rp
dmVET01PYmplY3Q6OkFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAsIG1fcGVuZGluZ0FjdGl2aXR5Q291bnQoMCkKICNp
ZiAhQVNTRVJUX0RJU0FCTEVECkBAIC00NSw3ICs0NSw3IEBAIEFjdGl2ZURPTU9iamVjdDo6QWN0
aXZlRE9NT2JqZWN0KFNjcmlwdEUKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KHRoaXMsIHVwY2FzdFBvaW50
ZXIpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlkQ3JlYXRlQWN0aXZlRE9NT2Jq
ZWN0KHRoaXMpOwogfQogCiBBY3RpdmVET01PYmplY3Q6On5BY3RpdmVET01PYmplY3QoKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAkocmV2aXNpb24gMTQ2NDU5KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWN0aXZlRE9NT2JqZWN0
IDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBBY3Rp
dmVET01PYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHZvaWQqIHVwY2FzdFBvaW50ZXIp
OworICAgIEFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICAv
LyBzdXNwZW5kSWZOZWVkZWQoKSBzaG91bGQgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBhZnRlciBv
YmplY3QgY29uc3RydWN0aW9uIHRvIHN5bmNocm9uaXplCiAgICAgLy8gdGhlIHN1c3BlbmQgc3Rh
dGUgd2l0aCB0aGF0IGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCShyZXZpc2lvbiAxNDY0NTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4MCwxMSArMTgwLDExIEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6Y2FuU3VzcGVuZEEKIHsKICAgICAvLyBObyBwcm90ZWN0aW9uIGFnYWluc3QgbV9hY3RpdmVE
T01PYmplY3RzIGNoYW5naW5nIGR1cmluZyBpdGVyYXRpb246IGNhblN1c3BlbmQoKSBzaG91bGRu
J3QgZXhlY3V0ZSBhcmJpdHJhcnkgSlMuCiAgICAgbV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3Rz
ID0gdHJ1ZTsKLSAgICBIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3Ig
YWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKLSAgICBmb3IgKEhh
c2hNYXA8QWN0aXZlRE9NT2JqZWN0Kiwgdm9pZCo+OjppdGVyYXRvciBpdGVyID0gbV9hY3RpdmVE
T01PYmplY3RzLmJlZ2luKCk7IGl0ZXIgIT0gYWN0aXZlT2JqZWN0c0VuZDsgKytpdGVyKSB7Ci0g
ICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlz
KTsKLSAgICAgICAgQVNTRVJUKGl0ZXItPmtleS0+c3VzcGVuZElmTmVlZGVkQ2FsbGVkKCkpOwot
ICAgICAgICBpZiAoIWl0ZXItPmtleS0+Y2FuU3VzcGVuZCgpKSB7CisgICAgQWN0aXZlRE9NT2Jq
ZWN0c1NldDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5l
bmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2Fj
dGl2ZURPTU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIp
IHsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0
aGlzKTsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsK
KyAgICAgICAgaWYgKCEoKml0ZXIpLT5jYW5TdXNwZW5kKCkpIHsKICAgICAgICAgICAgIG1faXRl
cmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CkBAIC0xOTcsMTEgKzE5NywxMSBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnN1c3BlbmRBY3RpCiB7CiAgICAgLy8gTm8gcHJvdGVjdGlvbiBhZ2FpbnN0IG1fYWN0
aXZlRE9NT2JqZWN0cyBjaGFuZ2luZyBkdXJpbmcgaXRlcmF0aW9uOiBzdXNwZW5kKCkgc2hvdWxk
bid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0
cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJhdG9y
IGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9yIChI
YXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZl
RE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgewot
ICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gdGhp
cyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsK
LSAgICAgICAgaXRlci0+a2V5LT5zdXNwZW5kKHdoeSk7CisgICAgQWN0aXZlRE9NT2JqZWN0c1Nl
dDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsK
KyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURP
TU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAg
ICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsK
KyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAg
ICAgKCppdGVyKS0+c3VzcGVuZCh3aHkpOwogICAgIH0KICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURP
TU9iamVjdHMgPSBmYWxzZTsKICAgICBtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQgPSB0
cnVlOwpAQCAtMjEzLDExICsyMTMsMTEgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpy
ZXN1bWVBY3RpdgogICAgIG1fYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCA9IGZhbHNlOwog
ICAgIC8vIE5vIHByb3RlY3Rpb24gYWdhaW5zdCBtX2FjdGl2ZURPTU9iamVjdHMgY2hhbmdpbmcg
ZHVyaW5nIGl0ZXJhdGlvbjogcmVzdW1lKCkgc2hvdWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpT
LgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxB
Y3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBtX2Fj
dGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCos
IHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVy
ICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgewotICAgICAgICBBU1NFUlQoaXRlci0+a2V5
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gdGhpcyk7Ci0gICAgICAgIEFTU0VSVChpdGVy
LT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKLSAgICAgICAgaXRlci0+a2V5LT5yZXN1
bWUoKTsKKyAgICBBY3RpdmVET01PYmplY3RzU2V0OjppdGVyYXRvciBhY3RpdmVPYmplY3RzRW5k
ID0gbV9hY3RpdmVET01PYmplY3RzLmVuZCgpOworICAgIGZvciAoQWN0aXZlRE9NT2JqZWN0c1Nl
dDo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFj
dGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgeworICAgICAgICBBU1NFUlQoKCppdGVyKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpID09IHRoaXMpOworICAgICAgICBBU1NFUlQoKCppdGVyKS0+c3Vz
cGVuZElmTmVlZGVkQ2FsbGVkKCkpOworICAgICAgICAoKml0ZXIpLT5yZXN1bWUoKTsKICAgICB9
CiAgICAgbV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3RzID0gZmFsc2U7CiB9CkBAIC0yMjcsMTEg
KzIyNywxMSBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN0b3BBY3RpdmVECiAgICAg
bV9hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCA9IHRydWU7CiAgICAgLy8gTm8gcHJvdGVjdGlv
biBhZ2FpbnN0IG1fYWN0aXZlRE9NT2JqZWN0cyBjaGFuZ2luZyBkdXJpbmcgaXRlcmF0aW9uOiBz
dG9wKCkgc2hvdWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1faXRlcmF0aW5nQWN0
aXZlRE9NT2JqZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01PYmplY3QqLCB2b2lk
Kj46Oml0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7
Ci0gICAgZm9yIChIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgaXRl
ciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7
ICsraXRlcikgewotICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgPT0gdGhpcyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1c3BlbmRJZk5lZWRl
ZENhbGxlZCgpKTsKLSAgICAgICAgaXRlci0+a2V5LT5zdG9wKCk7CisgICAgQWN0aXZlRE9NT2Jq
ZWN0c1NldDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5l
bmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2Fj
dGl2ZURPTU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIp
IHsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0
aGlzKTsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsK
KyAgICAgICAgKCppdGVyKS0+c3RvcCgpOwogICAgIH0KICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURP
TU9iamVjdHMgPSBmYWxzZTsKIApAQCAtMjQ3LDE0ICsyNDcsMTMgQEAgdm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aQogICAgICAgICBvYmplY3QtPnN1c3BlbmQobV9yZWFz
b25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0cyk7CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KEFjdGl2ZURPTU9iamVjdCogb2Jq
ZWN0LCB2b2lkKiB1cGNhc3RQb2ludGVyKQordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpk
aWRDcmVhdGVBY3RpdmVET01PYmplY3QoQWN0aXZlRE9NT2JqZWN0KiBvYmplY3QpCiB7CiAgICAg
QVNTRVJUKG9iamVjdCk7Ci0gICAgQVNTRVJUKHVwY2FzdFBvaW50ZXIpOwogICAgIEFTU0VSVCgh
bV9pbkRlc3RydWN0b3IpOwogICAgIGlmIChtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMpCiAg
ICAgICAgIENSQVNIKCk7Ci0gICAgbV9hY3RpdmVET01PYmplY3RzLmFkZChvYmplY3QsIHVwY2Fz
dFBvaW50ZXIpOworICAgIG1fYWN0aXZlRE9NT2JqZWN0cy5hZGQob2JqZWN0KTsKIH0KIAogdm9p
ZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp3aWxsRGVzdHJveUFjdGl2ZURPTU9iamVjdChBY3Rp
dmVET01PYmplY3QqIG9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBA
QAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxl
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTAzLDE0ICsxMDIsMTQgQEAgcHVibGljOgogICAg
IGJvb2wgYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZURPTU9iamVjdHNBcmVTdG9wcGVkOyB9CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgY29uc3Ry
dWN0b3IgYW5kIGRlc3RydWN0b3JzIG9mIEFjdGl2ZURPTU9iamVjdC4KLSAgICB2b2lkIGRpZENy
ZWF0ZUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmplY3QqLCB2b2lkKiB1cGNhc3RQb2ludGVy
KTsKKyAgICB2b2lkIGRpZENyZWF0ZUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmplY3QqKTsK
ICAgICB2b2lkIHdpbGxEZXN0cm95QWN0aXZlRE9NT2JqZWN0KEFjdGl2ZURPTU9iamVjdCopOwog
CiAgICAgLy8gQ2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW4gQWN0aXZlRE9NT2Jq
ZWN0IHRvIHN5bmNocm9uaXplIHN1c3BlbmQgc3RhdGUuCiAgICAgdm9pZCBzdXNwZW5kQWN0aXZl
RE9NT2JqZWN0SWZOZWVkZWQoQWN0aXZlRE9NT2JqZWN0Kik7CiAKLSAgICB0eXBlZGVmIGNvbnN0
IEhhc2hNYXA8QWN0aXZlRE9NT2JqZWN0Kiwgdm9pZCo+IEFjdGl2ZURPTU9iamVjdHNNYXA7Ci0g
ICAgQWN0aXZlRE9NT2JqZWN0c01hcCYgYWN0aXZlRE9NT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJu
IG1fYWN0aXZlRE9NT2JqZWN0czsgfQorICAgIHR5cGVkZWYgSGFzaFNldDxBY3RpdmVET01PYmpl
Y3QqPiBBY3RpdmVET01PYmplY3RzU2V0OworICAgIGNvbnN0IEFjdGl2ZURPTU9iamVjdHNTZXQm
IGFjdGl2ZURPTU9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9iamVjdHM7IH0K
IAogICAgIHZvaWQgZGlkQ3JlYXRlRGVzdHJ1Y3Rpb25PYnNlcnZlcihDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciopOwogICAgIHZvaWQgd2lsbERlc3Ryb3lEZXN0cnVjdGlvbk9ic2VydmVyKENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyKik7CkBAIC0yMDMsNyArMjAyLDcgQEAgcHJpdmF0ZToK
IAogICAgIEhhc2hTZXQ8TWVzc2FnZVBvcnQqPiBtX21lc3NhZ2VQb3J0czsKICAgICBIYXNoU2V0
PENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKj4gbV9kZXN0cnVjdGlvbk9ic2VydmVyczsKLSAg
ICBIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPiBtX2FjdGl2ZURPTU9iamVjdHM7Cisg
ICAgQWN0aXZlRE9NT2JqZWN0c1NldCBtX2FjdGl2ZURPTU9iamVjdHM7CiAgICAgYm9vbCBtX2l0
ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHM7CiAgICAgYm9vbCBtX2luRGVzdHJ1Y3RvcjsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCShyZXZpc2lvbiAxNDY0NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw3IEBAIFBhc3NSZWZQdHI8RmlsZVJlYWRlcj4gRmlsZVJlYWRlcjo6Y3JlYXQK
IH0KIAogRmlsZVJlYWRlcjo6RmlsZVJlYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKICAgICAsIG1fc3RhdGUoRU1QVFkpCiAgICAgLCBtX2Fib3J0aW5n
KGZhbHNlKQogICAgICwgbV9yZWFkVHlwZShGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNCaW5hcnlT
dHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxNYXJxdWVlRWxlbWVudDo6SFRNTE1hcnF1ZWVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgQWN0aXZlRE9NT2JqZWN0
KGRvY3VtZW50LCB0aGlzKQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogewogICAg
IEFTU0VSVChoYXNUYWdOYW1lKG1hcnF1ZWVUYWcpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDcg
KzIzNiw3IEBAIHByaXZhdGU6CiAKIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNy
ZWF0ZWRCeVBhcnNlcikKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQotICAg
ICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgICwgQWN0aXZlRE9NT2JqZWN0
KGRvY3VtZW50KQogICAgICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6Omxv
YWRUaW1lckZpcmVkKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIodGhpcywgJkhUTUxNZWRp
YUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1Byb2dy
ZXNzVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZp
cmVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NjIsNyArNDYyLDcgQEAgUGFzc093blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUgog
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0Vs
ZW1lbnQqIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0KHBhc3NlZENhbnZhcykKLSAgICAsIEFjdGl2ZURPTU9iamVjdChwYXNzZWRDYW52YXMt
PmRvY3VtZW50KCksIHRoaXMpCisgICAgLCBBY3RpdmVET01PYmplY3QocGFzc2VkQ2FudmFzLT5k
b2N1bWVudCgpKQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2RyYXdpbmdCdWZm
ZXIoMCkKICAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIodGhpcywgJldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2
MCw3IEBAIFBhc3NPd25QdHI8UHJlcmVuZGVyZXI+IFByZXJlbmRlcmVyOjpjcmUKIH0KIAogUHJl
cmVuZGVyZXI6OlByZXJlbmRlcmVyKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEFjdGl2ZURP
TU9iamVjdChkb2N1bWVudCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkK
ICAgICAsIG1faW5pdGlhbGl6ZWRDbGllbnQoZmFsc2UpCiAgICAgLCBtX2NsaWVudCgwKQogewpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAJKHJldmlzaW9uIDE0NjQ1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9u
ZyBFdmVudFNvdXJjZTo6ZGVmYXVsdFJlY29ubmVjdERlbGF5ID0gMzAwMDsKIAogaW5saW5lIEV2
ZW50U291cmNlOjpFdmVudFNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IERpY3Rpb25hcnkmIGV2ZW50U291cmNlSW5pdCkKLSAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQpCiAgICAgLCBtX3VybCh1cmwpCiAgICAgLCBtX3dpdGhDcmVkZW50aWFscyhmYWxzZSkK
ICAgICAsIG1fc3RhdGUoQ09OTkVDVElORykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3Vz
cGVuZGFibGVUaW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdXNwZW5kYWJsZVRpbWVyOjpTdXNwZW5kYWJsZVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9u
ZXh0RmlyZUludGVydmFsKDApCiAgICAgLCBtX3JlcGVhdEludGVydmFsKDApCiAgICAgLCBtX2Fj
dGl2ZShmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIu
Y3BwCShyZXZpc2lvbiAxNDY0NTkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0
V29ya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBBYnN0cmFjdFdvcmtlcjo6QWJzdHJhY3RXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQor
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTQ2NDU5KQorKysgU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgx
LDEwICsxODEsOSBAQCBXb3JrZXJOYXZpZ2F0b3IqIFdvcmtlckNvbnRleHQ6Om5hdmlnYXRvCiAK
IGJvb2wgV29ya2VyQ29udGV4dDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICBB
Y3RpdmVET01PYmplY3RzTWFwJiBhY3RpdmVPYmplY3RzID0gYWN0aXZlRE9NT2JqZWN0cygpOwot
ICAgIEFjdGl2ZURPTU9iamVjdHNNYXA6OmNvbnN0X2l0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQg
PSBhY3RpdmVPYmplY3RzLmVuZCgpOwotICAgIGZvciAoQWN0aXZlRE9NT2JqZWN0c01hcDo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IGFjdGl2ZU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVP
YmplY3RzRW5kOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGl0ZXItPmtleS0+aGFzUGVuZGluZ0Fj
dGl2aXR5KCkpCisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6Y29uc3RfaXRlcmF0b3IgYWN0aXZl
T2JqZWN0c0VuZCA9IGFjdGl2ZURPTU9iamVjdHMoKS5lbmQoKTsKKyAgICBmb3IgKEFjdGl2ZURP
TU9iamVjdHNTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBhY3RpdmVET01PYmplY3RzKCkuYmVn
aW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCgq
aXRlciktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9u
IDE0NjQ1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4MCw3ICsxODAsNyBAQCBQYXNzUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBY
TUxIdHRwUmVxdWVzCiB9CiAKIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDog
QWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2lu
Y2x1ZGVDcmVkZW50aWFscyhmYWxzZSkKICNpZiBFTkFCTEUoWEhSX1RJTUVPVVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194277</attachid>
            <date>2013-03-21 09:13:08 -0700</date>
            <delta_ts>2013-03-21 16:31:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112858-20130321120855.patch</filename>
            <type>text/plain</type>
            <size>33874</size>
            <attacher name="Russell McClellan">russell.mcclellan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk0IEBACisyMDEzLTAzLTIxICBSdXNzZWxs
IE1jQ2xlbGxhbiAgPHJ1c3NlbGwubWNjbGVsbGFuQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1v
dmUgdXBjYXN0UG9pbnRlciBmcm9tIEFjdGl2ZURPTU9iamVjdCBjb25zdHJ1Y3RvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODU4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBwZXNreSBh
cmd1bWVudCB0byBBY3RpdmVET01PYmplY3QgY29uc3RydWN0b3IgdGhhdCBpcyBubyBsb25nZXIK
KyAgICAgICAgdXNlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgKG5vIGNoYW5nZSBpbiBiZWhh
dmlvcikuCisKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeU1hbmFnZXI6OkJhdHRlcnlNYW5hZ2VyKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW0vRmlsZVdyaXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpG
aWxlV3JpdGVyKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpHZW9sb2NhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
OjpNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNlbmRlcjo6UlRDRFRNRlNl
bmRlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rp
b24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6UlRDU3RhdHNSZXF1ZXN0SW1wbCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpSVENWb2lkUmVxdWVzdEltcGwpOgorICAg
ICAgICAqIE1vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ29ubmVjdGlvbjo6TmV0d29ya0luZm9Db25uZWN0
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2VudGVyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6OkRh
dGFiYXNlQ29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6CisgICAgICAgICog
Y3NzL0ZvbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6Rm9udExv
YWRlcik6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY3RpdmVET01PYmplY3Q6OkFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgICogZG9tL0Fj
dGl2ZURPTU9iamVjdC5oOgorICAgICAgICAoQWN0aXZlRE9NT2JqZWN0KToKKyAgICAgICAgKiBk
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVE
T01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN0
b3BBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmRpZENyZWF0ZUFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWN0aXZlRE9NT2JqZWN0cyk6
CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVSZWFkZXI6OkZpbGVSZWFkZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudDo6SFRNTE1hcnF1ZWVF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQcmVyZW5kZXJlcjo6UHJlcmVuZGVyZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OkV2ZW50U291cmNlKToK
KyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VzcGVuZGFibGVUaW1lcjo6U3VzcGVuZGFibGVUaW1lcik6CisgICAgICAgICogd29ya2Vycy9B
YnN0cmFjdFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdFdvcmtlcjo6QWJz
dHJhY3RXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorCiAyMDEzLTAzLTE4ICBBbmRyZXkgS29zeWFrb3YgIDxj
YXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUGFpbnQgcmVjdGFu
Z2xlcyBzaG93biBvbiBob3ZlciBvdmVyIFRpbWVsaW5lJ3MgcGFpbnQgcmVjb3JkcyBvY2Nhc2lv
bmFsbHkgaGF2ZSB3cm9uZyBvZmZzZXRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Jh
dHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgQmF0dGVyeU1hbmFnZXI6On5CYXR0ZXJ5TWFuYWdlcigp
CiB9CiAKIEJhdHRlcnlNYW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcihOYXZpZ2F0b3IqIG5hdmlnYXRv
cikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCks
IHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QobmF2aWdhdG9yLT5mcmFtZSgpLT5kb2N1bWVu
dCgpKQogICAgICwgbV9iYXR0ZXJ5Q29udHJvbGxlcihCYXR0ZXJ5Q29udHJvbGxlcjo6ZnJvbShu
YXZpZ2F0b3ItPmZyYW1lKCktPnBhZ2UoKSkpCiAgICAgLCBtX2JhdHRlcnlTdGF0dXMoMCkKIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmls
ZVN5c3RlbS5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgs
NyBAQCBQYXNzUmVmUHRyPERPTUZpbGVTeXN0ZW0+IERPTUZpbGVTeXN0ZW06CiAKIERPTUZpbGVT
eXN0ZW06OkRPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtVHlwZSB0eXBlLCBjb25zdCBLVVJMJiByb290VVJM
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQogICAgIDogRE9N
RmlsZVN5c3RlbUJhc2UoY29udGV4dCwgbmFtZSwgdHlwZSwgcm9vdFVSTCwgYXN5bmNGaWxlU3lz
dGVtKQotICAgICwgQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmNwcAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw3ICs1NSw3IEBAIFBhc3NSZWZQdHI8RmlsZVdyaXRlcj4gRmlsZVdyaXRlcjo6
Y3JlYXQKIH0KIAogRmlsZVdyaXRlcjo6RmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fcmVhZHlTdGF0ZShJTklUKQogICAgICwg
bV9vcGVyYXRpb25JblByb2dyZXNzKE9wZXJhdGlvbk5vbmUpCiAgICAgLCBtX3F1ZXVlZE9wZXJh
dGlvbihPcGVyYXRpb25Ob25lKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDEsNyArMjQxLDcgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbj4gR2VvbG9jYXRp
b246OmNyZQogfQogCiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5r
bm93bikKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyAr
NTksNyBAQCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBJREJEYXRhYmFzZTo6Y3JlCiB9CiAKIElE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzKQotICAgIDogQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1f
YmFja2VuZChiYWNrZW5kKQogICAgICwgbV9jbG9zZVBlbmRpbmcoZmFsc2UpCiAgICAgLCBtX2Nv
bnRleHRTdG9wcGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw3ICs2OCw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXQKIH0K
IAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6
OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCi0gICAgOiBB
Y3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0KQogICAgICwgbV9yZXN1bHQoMCkKICAgICAsIG1fZXJyb3JDb2RlKDApCiAgICAgLCBtX2Nv
bnRleHRTdG9wcGVkKGZhbHNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rp
b246Om1vZGUKIAogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG9i
amVjdFN0b3JlTmFtZXMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlIG1vZGUsIElEQkRhdGFi
YXNlKiBkYiwgSURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCwgY29uc3QgSURCRGF0YWJh
c2VNZXRhZGF0YSYgcHJldmlvdXNNZXRhZGF0YSkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2lkKGlk
KQogICAgICwgbV9kYXRhYmFzZShkYikKICAgICAsIG1fb2JqZWN0U3RvcmVOYW1lcyhvYmplY3RT
dG9yZU5hbWVzKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw3ICs1MCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IE1lZGlhU291cmNlOjpjcmUKIH0K
IAogTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSkKICAg
ICAsIG1fYXN5bmNFdmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDcgQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBNZWRpYVN0cmVh
bQogfQogCiBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBjb21wb25lbnQpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogICAgICwgbV9zdG9wcGVkKGZhbHNlKQogICAgICwgbV9jb21wb25lbnQoY29tcG9u
ZW50KQogewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1G
U2VuZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBAIFBhc3NSZWZQdHI8UlRDRFRNRlNlbmRlcj4gUlRDRFRNRlNlbmRlcjoK
IH0KIAogUlRDRFRNRlNlbmRlcjo6UlRDRFRNRlNlbmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrLCBQYXNzT3duUHRy
PFJUQ0RUTUZTZW5kZXJIYW5kbGVyPiBoYW5kbGVyKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fdHJh
Y2sodHJhY2spCiAgICAgLCBtX2R1cmF0aW9uKGRlZmF1bHRUb25lRHVyYXRpb25NcykKICAgICAs
IG1faW50ZXJUb25lR2FwKGRlZmF1bHRJbnRlclRvbmVHYXBNcykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDcgKzEzMiw3
IEBAIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IFJUQ1BlZXJDb24KIH0KIAogUlRDUGVl
ckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiwgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0KQogICAgICwgbV9zaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZVN0YWJsZSkK
ICAgICAsIG1faWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGVOZXcpCiAgICAgLCBt
X2ljZUNvbm5lY3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGVTdGFydGluZykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDY0
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJCiB9CiAKIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaykKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlz
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFj
ayhzdWNjZXNzQ2FsbGJhY2spCiAgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdElt
cGw+IFJUQ1N0YXRzCiB9CiAKIFJUQ1N0YXRzUmVxdWVzdEltcGw6OlJUQ1N0YXRzUmVxdWVzdElt
cGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxSVENTdGF0c0Nh
bGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBzZWxlY3RvcikK
LSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQpCiAgICAgLCBtX3N1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaykKICAgICAsIG1f
c3RyZWFtKHNlbGVjdG9yID8gc2VsZWN0b3ItPmNvbXBvbmVudCgpLT5zdHJlYW0oKSA6IDApCiAg
ICAgLCBtX2NvbXBvbmVudChzZWxlY3RvciA/IHNlbGVjdG9yLT5jb21wb25lbnQoKSA6IDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdEltcGw+IFJUQ1Zv
aWRSZQogfQogCiBSVENWb2lkUmVxdWVzdEltcGw6OlJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vz
c0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0KQogICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQogICAg
ICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5l
Y3Rpb24uY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25l
dHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDcgQEAgUGFzc1JlZlB0cjxOZXR3b3JrSW5mb0Nvbm5lY3Rpb24+IE5ldHdvcgogfQog
CiBOZXR3b3JrSW5mb0Nvbm5lY3Rpb246Ok5ldHdvcmtJbmZvQ29ubmVjdGlvbihOYXZpZ2F0b3Iq
IG5hdmlnYXRvcikKLSAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3ItPmZyYW1lKCktPmRv
Y3VtZW50KCksIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QobmF2aWdhdG9yLT5mcmFtZSgp
LT5kb2N1bWVudCgpKQogICAgICwgbV9jb250cm9sbGVyKE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6
ZnJvbShuYXZpZ2F0b3ItPmZyYW1lKCktPnBhZ2UoKSkpCiAgICAgLCBtX25ldHdvcmtJbmZvKDAp
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU0LDEzICs1NCwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOb3RpZmljYXRpb246Ok5v
dGlmaWNhdGlvbigpCi0gICAgOiBBY3RpdmVET01PYmplY3QoMCwgdGhpcykKKyAgICA6IEFjdGl2
ZURPTU9iamVjdCgwKQogewogfQogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQog
Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYgdXJsLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYywgUGFzc1JlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IHByb3ZpZGVyKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1faXNIVE1MKHRydWUp
CiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRl
cikKQEAgLTgxLDcgKzgxLDcgQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VS
TCYgdQogCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogTm90aWZpY2F0aW9uOjpO
b3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25z
dCBTdHJpbmcmIGljb25VUkksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2Vw
dGlvbkNvZGUmIGVjLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gcHJvdmlkZXIpCi0g
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0KQogICAgICwgbV9pc0hUTUwoZmFsc2UpCiAgICAgLCBtX3RpdGxlKHRpdGxlKQog
ICAgICwgbV9ib2R5KGJvZHkpCkBAIC0xMDMsNyArMTAzLDcgQEAgTm90aWZpY2F0aW9uOjpOb3Rp
ZmljYXRpb24oY29uc3QgU3RyaW5nJgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBOb3Rp
ZmljYXRpb246Ok5vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIHRpdGxlKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMp
CisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1faXNIVE1MKGZhbHNlKQog
ICAgICwgbV90aXRsZSh0aXRsZSkKICAgICAsIG1fc3RhdGUoSWRsZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DZW50ZXIuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTAsNyArNTAsNyBAQCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gTm90aWZpY2F0CiB9
CiAKIE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQotICAgIDogQWN0
aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAJKHJldmlzaW9uIDE0
NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgU3BlZWNoUmVjb2du
aXRpb246OnN0b3AoKQogfQogCiBTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2dy
YW1tYXJzKFNwZWVjaEdyYW1tYXJMaXN0OjpjcmVhdGUoKSkgLy8gRklYTUU6IFRoZSBzcGVjIGlz
IG5vdCBjbGVhciBvbiB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGdyYW1tYXJzIGF0dHJpYnV0
ZS4KICAgICAsIG1fY29udGludW91cyhmYWxzZSkKICAgICAsIG1faW50ZXJpbVJlc3VsdHMoZmFs
c2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBA
QCBQYXNzUmVmUHRyPEF1ZGlvQ29udGV4dD4gQXVkaW9Db250ZXh0OjpjCiAKIC8vIENvbnN0cnVj
dG9yIGZvciByZW5kZXJpbmcgdG8gdGhlIGF1ZGlvIGhhcmR3YXJlLgogQXVkaW9Db250ZXh0OjpB
dWRpb0NvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGRv
Y3VtZW50LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9p
c1N0b3BTY2hlZHVsZWQoZmFsc2UpCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiAgICAg
LCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZChmYWxzZSkKQEAgLTE0OCw3ICsxNDgsNyBAQCBBdWRp
b0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jCiAKIC8vIENvbnN0cnVjdG9yIGZv
ciBvZmZsaW5lIChub24tcmVhbHRpbWUpIHJlbmRlcmluZy4KIEF1ZGlvQ29udGV4dDo6QXVkaW9D
b250ZXh0KERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6
ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKQotICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGRvY3VtZW50LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAg
ICwgbV9pc1N0b3BTY2hlZHVsZWQoZmFsc2UpCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2Up
CiAgICAgLCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZChmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIAogRGF0YWJhc2VDb250ZXh0OjpEYXRhYmFzZUNvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2hhc09w
ZW5EYXRhYmFzZXMoZmFsc2UpCiAgICAgLCBtX2lzUmVnaXN0ZXJlZCh0cnVlKSAvLyB3aWxsIHJl
Z2lzdGVyIG9uIGNvbnN0cnVjdGlvbiBiZWxvdy4KICAgICAsIG1faGFzUmVxdWVzdGVkVGVybWlu
YXRpb24oZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw3ICsx
NDMsNyBAQCBjb25zdCBjaGFyKiBXZWJTb2NrZXQ6OnN1YlByb3RvY29sU2VwZXJhCiB9CiAKIFdl
YlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogICAgICwgbV9zdGF0ZShDT05ORUNUSU5HKQogICAgICwgbV9idWZmZXJlZEFtb3Vu
dCgwKQogICAgICwgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UoMCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvRm9udExvYWRlci5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQg
TG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5RXJyb3IoKSAKIH0KIAogRm9udExvYWRlcjo6Rm9udExv
YWRlcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQs
IHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiAgICAgLCBtX2RvY3VtZW50
KGRvY3VtZW50KQogICAgICwgbV9sb2FkaW5nQ291bnQoMCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01PYmplY3QuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFjdGl2ZURPTU9iamVjdDo6QWN0aXZlRE9N
T2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHZv
aWQqIHVwY2FzdFBvaW50ZXIpCitBY3RpdmVET01PYmplY3Q6OkFjdGl2ZURPTU9iamVjdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgIDogQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAsIG1fcGVu
ZGluZ0FjdGl2aXR5Q291bnQoMCkKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC00NSw3ICs0NSw3
IEBAIEFjdGl2ZURPTU9iamVjdDo6QWN0aXZlRE9NT2JqZWN0KFNjcmlwdEUKICAgICAgICAgcmV0
dXJuOwogCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhy
ZWFkKCkpOwotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlkQ3JlYXRlQWN0aXZlRE9N
T2JqZWN0KHRoaXMsIHVwY2FzdFBvaW50ZXIpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+ZGlkQ3JlYXRlQWN0aXZlRE9NT2JqZWN0KHRoaXMpOwogfQogCiBBY3RpdmVET01PYmplY3Q6
On5BY3RpdmVET01PYmplY3QoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3Qu
aAkocmV2aXNpb24gMTQ2NDc2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQWN0aXZlRE9NT2JqZWN0IDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyIHsKIHB1YmxpYzoKLSAgICBBY3RpdmVET01PYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIHZvaWQqIHVwY2FzdFBvaW50ZXIpOworICAgIEFjdGl2ZURPTU9iamVjdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CiAKICAgICAvLyBzdXNwZW5kSWZOZWVkZWQoKSBzaG91bGQgYmUgY2Fs
bGVkIGV4YWN0bHkgb25jZSBhZnRlciBvYmplY3QgY29uc3RydWN0aW9uIHRvIHN5bmNocm9uaXpl
CiAgICAgLy8gdGhlIHN1c3BlbmQgc3RhdGUgd2l0aCB0aGF0IGluIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMSArMTgwLDExIEBAIGJv
b2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y2FuU3VzcGVuZEEKIHsKICAgICAvLyBObyBwcm90
ZWN0aW9uIGFnYWluc3QgbV9hY3RpdmVET01PYmplY3RzIGNoYW5naW5nIGR1cmluZyBpdGVyYXRp
b246IGNhblN1c3BlbmQoKSBzaG91bGRuJ3QgZXhlY3V0ZSBhcmJpdHJhcnkgSlMuCiAgICAgbV9p
dGVyYXRpbmdBY3RpdmVET01PYmplY3RzID0gdHJ1ZTsKLSAgICBIYXNoTWFwPEFjdGl2ZURPTU9i
amVjdCosIHZvaWQqPjo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1fYWN0aXZlRE9NT2Jq
ZWN0cy5lbmQoKTsKLSAgICBmb3IgKEhhc2hNYXA8QWN0aXZlRE9NT2JqZWN0Kiwgdm9pZCo+Ojpp
dGVyYXRvciBpdGVyID0gbV9hY3RpdmVET01PYmplY3RzLmJlZ2luKCk7IGl0ZXIgIT0gYWN0aXZl
T2JqZWN0c0VuZDsgKytpdGVyKSB7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKLSAgICAgICAgQVNTRVJUKGl0ZXItPmtleS0+c3Vz
cGVuZElmTmVlZGVkQ2FsbGVkKCkpOwotICAgICAgICBpZiAoIWl0ZXItPmtleS0+Y2FuU3VzcGVu
ZCgpKSB7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0Vu
ZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNT
ZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBh
Y3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1
c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5jYW5TdXNwZW5k
KCkpIHsKICAgICAgICAgICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IGZhbHNlOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xOTcsMTEgKzE5NywxMSBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpCiB7CiAgICAgLy8gTm8g
cHJvdGVjdGlvbiBhZ2FpbnN0IG1fYWN0aXZlRE9NT2JqZWN0cyBjaGFuZ2luZyBkdXJpbmcgaXRl
cmF0aW9uOiBzdXNwZW5kKCkgc2hvdWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1f
aXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01P
YmplY3QqLCB2b2lkKj46Oml0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9i
amVjdHMuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6
aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2
ZU9iamVjdHNFbmQ7ICsraXRlcikgewotICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgPT0gdGhpcyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1
c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKLSAgICAgICAgaXRlci0+a2V5LT5zdXNwZW5kKHdoeSk7
CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IG1f
YWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6Oml0
ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVP
YmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1c3BlbmRJ
Zk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAgKCppdGVyKS0+c3VzcGVuZCh3aHkpOwogICAgIH0K
ICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMgPSBmYWxzZTsKICAgICBtX2FjdGl2ZURP
TU9iamVjdHNBcmVTdXNwZW5kZWQgPSB0cnVlOwpAQCAtMjEzLDExICsyMTMsMTEgQEAgdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdgogICAgIG1fYWN0aXZlRE9NT2JqZWN0
c0FyZVN1c3BlbmRlZCA9IGZhbHNlOwogICAgIC8vIE5vIHByb3RlY3Rpb24gYWdhaW5zdCBtX2Fj
dGl2ZURPTU9iamVjdHMgY2hhbmdpbmcgZHVyaW5nIGl0ZXJhdGlvbjogcmVzdW1lKCkgc2hvdWxk
bid0IGV4ZWN1dGUgYXJiaXRyYXJ5IEpTLgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0
cyA9IHRydWU7Ci0gICAgSGFzaE1hcDxBY3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJhdG9y
IGFjdGl2ZU9iamVjdHNFbmQgPSBtX2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9yIChI
YXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZl
RE9NT2JqZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgewot
ICAgICAgICBBU1NFUlQoaXRlci0+a2V5LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gdGhp
cyk7Ci0gICAgICAgIEFTU0VSVChpdGVyLT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsK
LSAgICAgICAgaXRlci0+a2V5LT5yZXN1bWUoKTsKKyAgICBBY3RpdmVET01PYmplY3RzU2V0Ojpp
dGVyYXRvciBhY3RpdmVPYmplY3RzRW5kID0gbV9hY3RpdmVET01PYmplY3RzLmVuZCgpOworICAg
IGZvciAoQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2Jq
ZWN0cy5iZWdpbigpOyBpdGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgeworICAgICAg
ICBBU1NFUlQoKCppdGVyKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpID09IHRoaXMpOworICAg
ICAgICBBU1NFUlQoKCppdGVyKS0+c3VzcGVuZElmTmVlZGVkQ2FsbGVkKCkpOworICAgICAgICAo
Kml0ZXIpLT5yZXN1bWUoKTsKICAgICB9CiAgICAgbV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3Rz
ID0gZmFsc2U7CiB9CkBAIC0yMjcsMTEgKzIyNywxMSBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnN0b3BBY3RpdmVECiAgICAgbV9hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCA9IHRy
dWU7CiAgICAgLy8gTm8gcHJvdGVjdGlvbiBhZ2FpbnN0IG1fYWN0aXZlRE9NT2JqZWN0cyBjaGFu
Z2luZyBkdXJpbmcgaXRlcmF0aW9uOiBzdG9wKCkgc2hvdWxkbid0IGV4ZWN1dGUgYXJiaXRyYXJ5
IEpTLgogICAgIG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyA9IHRydWU7Ci0gICAgSGFzaE1h
cDxBY3RpdmVET01PYmplY3QqLCB2b2lkKj46Oml0ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBt
X2FjdGl2ZURPTU9iamVjdHMuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEFjdGl2ZURPTU9iamVj
dCosIHZvaWQqPjo6aXRlcmF0b3IgaXRlciA9IG1fYWN0aXZlRE9NT2JqZWN0cy5iZWdpbigpOyBp
dGVyICE9IGFjdGl2ZU9iamVjdHNFbmQ7ICsraXRlcikgewotICAgICAgICBBU1NFUlQoaXRlci0+
a2V5LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgPT0gdGhpcyk7Ci0gICAgICAgIEFTU0VSVChp
dGVyLT5rZXktPnN1c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKLSAgICAgICAgaXRlci0+a2V5LT5z
dG9wKCk7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldDo6aXRlcmF0b3IgYWN0aXZlT2JqZWN0c0Vu
ZCA9IG1fYWN0aXZlRE9NT2JqZWN0cy5lbmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNT
ZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBtX2FjdGl2ZURPTU9iamVjdHMuYmVnaW4oKTsgaXRlciAhPSBh
Y3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSA9PSB0aGlzKTsKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPnN1
c3BlbmRJZk5lZWRlZENhbGxlZCgpKTsKKyAgICAgICAgKCppdGVyKS0+c3RvcCgpOwogICAgIH0K
ICAgICBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMgPSBmYWxzZTsKIApAQCAtMjQ3LDE0ICsy
NDcsMTMgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aQogICAgICAg
ICBvYmplY3QtPnN1c3BlbmQobV9yZWFzb25Gb3JTdXNwZW5kaW5nQWN0aXZlRE9NT2JqZWN0cyk7
CiB9CiAKLXZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlkQ3JlYXRlQWN0aXZlRE9NT2Jq
ZWN0KEFjdGl2ZURPTU9iamVjdCogb2JqZWN0LCB2b2lkKiB1cGNhc3RQb2ludGVyKQordm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaWRDcmVhdGVBY3RpdmVET01PYmplY3QoQWN0aXZlRE9N
T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgQVNTRVJUKG9iamVjdCk7Ci0gICAgQVNTRVJUKHVwY2Fz
dFBvaW50ZXIpOwogICAgIEFTU0VSVCghbV9pbkRlc3RydWN0b3IpOwogICAgIGlmIChtX2l0ZXJh
dGluZ0FjdGl2ZURPTU9iamVjdHMpCiAgICAgICAgIENSQVNIKCk7Ci0gICAgbV9hY3RpdmVET01P
YmplY3RzLmFkZChvYmplY3QsIHVwY2FzdFBvaW50ZXIpOworICAgIG1fYWN0aXZlRE9NT2JqZWN0
cy5hZGQob2JqZWN0KTsKIH0KIAogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp3aWxsRGVz
dHJveUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmplY3QqIG9iamVjdCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAkocmV2aXNpb24gMTQ2NDc2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgog
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTAzLDE0
ICsxMDIsMTQgQEAgcHVibGljOgogICAgIGJvb2wgYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQo
KSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkOyB9CiAKICAgICAv
LyBDYWxsZWQgZnJvbSB0aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3JzIG9mIEFjdGl2ZURP
TU9iamVjdC4KLSAgICB2b2lkIGRpZENyZWF0ZUFjdGl2ZURPTU9iamVjdChBY3RpdmVET01PYmpl
Y3QqLCB2b2lkKiB1cGNhc3RQb2ludGVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZUFjdGl2ZURPTU9i
amVjdChBY3RpdmVET01PYmplY3QqKTsKICAgICB2b2lkIHdpbGxEZXN0cm95QWN0aXZlRE9NT2Jq
ZWN0KEFjdGl2ZURPTU9iamVjdCopOwogCiAgICAgLy8gQ2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1
Y3Rpb24gb2YgYW4gQWN0aXZlRE9NT2JqZWN0IHRvIHN5bmNocm9uaXplIHN1c3BlbmQgc3RhdGUu
CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0SWZOZWVkZWQoQWN0aXZlRE9NT2JqZWN0
Kik7CiAKLSAgICB0eXBlZGVmIGNvbnN0IEhhc2hNYXA8QWN0aXZlRE9NT2JqZWN0Kiwgdm9pZCo+
IEFjdGl2ZURPTU9iamVjdHNNYXA7Ci0gICAgQWN0aXZlRE9NT2JqZWN0c01hcCYgYWN0aXZlRE9N
T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlRE9NT2JqZWN0czsgfQorICAgIHR5cGVk
ZWYgSGFzaFNldDxBY3RpdmVET01PYmplY3QqPiBBY3RpdmVET01PYmplY3RzU2V0OworICAgIGNv
bnN0IEFjdGl2ZURPTU9iamVjdHNTZXQmIGFjdGl2ZURPTU9iamVjdHMoKSBjb25zdCB7IHJldHVy
biBtX2FjdGl2ZURPTU9iamVjdHM7IH0KIAogICAgIHZvaWQgZGlkQ3JlYXRlRGVzdHJ1Y3Rpb25P
YnNlcnZlcihDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciopOwogICAgIHZvaWQgd2lsbERlc3Ry
b3lEZXN0cnVjdGlvbk9ic2VydmVyKENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKik7CkBAIC0y
MDMsNyArMjAyLDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8TWVzc2FnZVBvcnQqPiBtX21l
c3NhZ2VQb3J0czsKICAgICBIYXNoU2V0PENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKj4gbV9k
ZXN0cnVjdGlvbk9ic2VydmVyczsKLSAgICBIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQq
PiBtX2FjdGl2ZURPTU9iamVjdHM7CisgICAgQWN0aXZlRE9NT2JqZWN0c1NldCBtX2FjdGl2ZURP
TU9iamVjdHM7CiAgICAgYm9vbCBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHM7CiAgICAgYm9v
bCBtX2luRGVzdHJ1Y3RvcjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
Y3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIFBhc3NSZWZQdHI8RmlsZVJl
YWRlcj4gRmlsZVJlYWRlcjo6Y3JlYXQKIH0KIAogRmlsZVJlYWRlcjo6RmlsZVJlYWRlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQsIHRoaXMpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fc3RhdGUo
RU1QVFkpCiAgICAgLCBtX2Fib3J0aW5nKGZhbHNlKQogICAgICwgbV9yZWFkVHlwZShGaWxlUmVh
ZGVyTG9hZGVyOjpSZWFkQXNCaW5hcnlTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcg
KzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxNYXJxdWVl
RWxlbWVudDo6SFRNTE1hcnF1ZWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQorICAgICwgQWN0aXZlRE9N
T2JqZWN0KGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG1hcnF1ZWVUYWcpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNp
b24gMTQ2NDc2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAKIEhUTUxNZWRpYUVs
ZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKICAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQotICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlz
KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9sb2FkVGltZXIodGhp
cywgJkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUaW1lckZpcmVkKQogICAgICwgbV9wcm9ncmVzc0V2
ZW50VGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVk
KQogICAgICwgbV9wbGF5YmFja1Byb2dyZXNzVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNDY0
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjIsNyArNDYyLDcgQEAgUGFzc093blB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+IFdlYkdMUgogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQqIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMp
CiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKLSAgICAsIEFjdGl2
ZURPTU9iamVjdChwYXNzZWRDYW52YXMtPmRvY3VtZW50KCksIHRoaXMpCisgICAgLCBBY3RpdmVE
T01PYmplY3QocGFzc2VkQ2FudmFzLT5kb2N1bWVudCgpKQogICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCiAgICAgLCBtX2RyYXdpbmdCdWZmZXIoMCkKICAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9z
dEV2ZW50VGltZXIodGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZGlzcGF0Y2hDb250ZXh0
TG9zdEV2ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJlbmRlcmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCShyZXZp
c2lvbiAxNDY0NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NPd25QdHI8UHJlcmVuZGVyZXI+IFBy
ZXJlbmRlcmVyOjpjcmUKIH0KIAogUHJlcmVuZGVyZXI6OlByZXJlbmRlcmVyKERvY3VtZW50KiBk
b2N1bWVudCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykKKyAgICA6IEFj
dGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1faW5pdGlhbGl6ZWRDbGllbnQoZmFsc2Up
CiAgICAgLCBtX2NsaWVudCgwKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5j
cHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyBFdmVudFNvdXJjZTo6ZGVmYXVsdFJlY29ubmVjdERl
bGF5ID0gMzAwMDsKIAogaW5saW5lIEV2ZW50U291cmNlOjpFdmVudFNvdXJjZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IERpY3Rpb25hcnkm
IGV2ZW50U291cmNlSW5pdCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQor
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3VybCh1cmwpCiAgICAgLCBt
X3dpdGhDcmVkZW50aWFscyhmYWxzZSkKICAgICAsIG1fc3RhdGUoQ09OTkVDVElORykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAkocmV2aXNpb24gMTQ2NDc2
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdXNwZW5kYWJs
ZVRpbWVyOjpTdXNwZW5kYWJsZVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
Ci0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0KQogICAgICwgbV9uZXh0RmlyZUludGVydmFsKDApCiAgICAgLCBtX3JlcGVh
dEludGVydmFsKDApCiAgICAgLCBtX2FjdGl2ZShmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuY3BwCShyZXZpc2lvbiAxNDY0NzYpCisrKyBTb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NyArNDcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBYnN0cmFjdFdvcmtlcjo6QWJzdHJh
Y3RXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiB7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAkocmV2
aXNpb24gMTQ2NDc2KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDEwICsxODEsOSBAQCBXb3JrZXJOYXZpZ2F0b3IqIFdv
cmtlckNvbnRleHQ6Om5hdmlnYXRvCiAKIGJvb2wgV29ya2VyQ29udGV4dDo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKIHsKLSAgICBBY3RpdmVET01PYmplY3RzTWFwJiBhY3RpdmVPYmplY3Rz
ID0gYWN0aXZlRE9NT2JqZWN0cygpOwotICAgIEFjdGl2ZURPTU9iamVjdHNNYXA6OmNvbnN0X2l0
ZXJhdG9yIGFjdGl2ZU9iamVjdHNFbmQgPSBhY3RpdmVPYmplY3RzLmVuZCgpOwotICAgIGZvciAo
QWN0aXZlRE9NT2JqZWN0c01hcDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGFjdGl2ZU9iamVjdHMu
YmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyArK2l0ZXIpIHsKLSAgICAgICAgaWYg
KGl0ZXItPmtleS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpCisgICAgQWN0aXZlRE9NT2JqZWN0c1Nl
dDo6Y29uc3RfaXRlcmF0b3IgYWN0aXZlT2JqZWN0c0VuZCA9IGFjdGl2ZURPTU9iamVjdHMoKS5l
bmQoKTsKKyAgICBmb3IgKEFjdGl2ZURPTU9iamVjdHNTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIg
PSBhY3RpdmVET01PYmplY3RzKCkuYmVnaW4oKTsgaXRlciAhPSBhY3RpdmVPYmplY3RzRW5kOyAr
K2l0ZXIpIHsKKyAgICAgICAgaWYgKCgqaXRlciktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE0NjQ3NikKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw3ICsxODAsNyBAQCBQYXNz
UmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBYTUxIdHRwUmVxdWVzCiB9CiAKIFhNTEh0dHBSZXF1ZXN0
OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKLSAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0LCB0aGlzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBt
X2FzeW5jKHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxzZSkKICNpZiBFTkFC
TEUoWEhSX1RJTUVPVVQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>