<?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>120564</bug_id>
          
          <creation_ts>2013-08-31 12:16:54 -0700</creation_ts>
          <short_desc>Converting StackIterator to a callback interface</short_desc>
          <delta_ts>2013-09-04 08:59:36 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>chris_curtis</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923326</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:16:54 -0700</bug_when>
    <thetext>It was proposed that using a callback interface for the StackIterator will reduce the complexity of code for decoding inlined frames from the various JIT tiers.  Secondly, it was also proposed that the increase in complexity for the clients of the StackIterator (as a result of adopting a callback interface) will not be too significant, and that this cost will only be incurred rarely because we seldom need to add new clients of the StackIterator.  This bug tracks the work for converting the StackIterator to a callback interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923327</commentid>
    <comment_count>1</comment_count>
      <attachid>210202</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:56:03 -0700</bug_when>
    <thetext>Created attachment 210202
the patch.

This patch has run all javascriptcore and layout tests with no regressions.  Benchmark details to follow shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923328</commentid>
    <comment_count>2</comment_count>
      <attachid>210203</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:57:28 -0700</bug_when>
    <thetext>Created attachment 210203
jsc benchmark run 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923329</commentid>
    <comment_count>3</comment_count>
      <attachid>210204</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:57:47 -0700</bug_when>
    <thetext>Created attachment 210204
jsc benchmark run 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923330</commentid>
    <comment_count>4</comment_count>
      <attachid>210205</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:58:05 -0700</bug_when>
    <thetext>Created attachment 210205
jsc benchmark run 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923331</commentid>
    <comment_count>5</comment_count>
      <attachid>210206</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 12:58:26 -0700</bug_when>
    <thetext>Created attachment 210206
jsc benchmark run 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923332</commentid>
    <comment_count>6</comment_count>
      <attachid>210207</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 13:02:59 -0700</bug_when>
    <thetext>Created attachment 210207
Benchmark component results from the runs that are consistently different between the baseline and this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923334</commentid>
    <comment_count>7</comment_count>
      <attachid>210208</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-31 13:07:11 -0700</bug_when>
    <thetext>Created attachment 210208
Summary of performance differences between the baseline and this patch.

If you look at the total or overall benchmark scores, there is no significant differences.

However, if you look at the specific benchmark components, then there are 5 components that are consistently slower with the patch, and 2 that are consistently faster.  These (also shown the summary file) are:

Patch is slower than baseline:
                                run 3                        run 4                        run 5                        run 6
 regexp                       ! definitely 1.0069x slower  ! definitely 1.0180x slower  ! definitely 1.0196x slower  ! definitely 1.0054x slower
 HashMap-put-get-iterate      ! definitely 1.0424x slower  ! definitely 1.0300x slower  ! definitely 1.0492x slower  ! definitely 1.0568x slower
 Int16Array-to-Int32Array-set ! definitely 1.0615x slower  ! definitely 1.0492x slower  ! definitely 1.0414x slower  ! definitely 1.0586x slower
 string-long-ident-equality   ! definitely 1.0419x slower  ! definitely 1.0358x slower  ! definitely 1.0454x slower  ! definitely 1.0390x slower
 string-var-equality          ! definitely 1.0251x slower  ! definitely 1.0255x slower  ! definitely 1.0254x slower  ! definitely 1.0240x slower

Patch is faster than baseline:
                                run 3                        run 4                        run 5                        run 6
 json-parse-financial         ^ definitely 1.0151x faster  ^ definitely 1.0246x faster  ^ definitely 1.0153x faster  ^ definitely 1.0193x faster
 json-stringify-tinderbox     ^ definitely 1.0176x faster  ^ definitely 1.0397x faster  ^ definitely 1.0361x faster  ^ definitely 1.0469x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923337</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 13:10:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=210208) [details]
&gt; Summary of performance differences between the baseline and this patch.
&gt; 
&gt; If you look at the total or overall benchmark scores, there is no significant differences.
&gt; 
&gt; However, if you look at the specific benchmark components, then there are 5 components that are consistently slower with the patch, and 2 that are consistently faster.  These (also shown the summary file) are:
&gt; 
&gt; Patch is slower than baseline:
&gt;                                 run 3                        run 4                        run 5                        run 6
&gt;  regexp                       ! definitely 1.0069x slower  ! definitely 1.0180x slower  ! definitely 1.0196x slower  ! definitely 1.0054x slower
&gt;  HashMap-put-get-iterate      ! definitely 1.0424x slower  ! definitely 1.0300x slower  ! definitely 1.0492x slower  ! definitely 1.0568x slower
&gt;  Int16Array-to-Int32Array-set ! definitely 1.0615x slower  ! definitely 1.0492x slower  ! definitely 1.0414x slower  ! definitely 1.0586x slower
&gt;  string-long-ident-equality   ! definitely 1.0419x slower  ! definitely 1.0358x slower  ! definitely 1.0454x slower  ! definitely 1.0390x slower
&gt;  string-var-equality          ! definitely 1.0251x slower  ! definitely 1.0255x slower  ! definitely 1.0254x slower  ! definitely 1.0240x slower
&gt; 
&gt; Patch is faster than baseline:
&gt;                                 run 3                        run 4                        run 5                        run 6
&gt;  json-parse-financial         ^ definitely 1.0151x faster  ^ definitely 1.0246x faster  ^ definitely 1.0153x faster  ^ definitely 1.0193x faster
&gt;  json-stringify-tinderbox     ^ definitely 1.0176x faster  ^ definitely 1.0397x faster  ^ definitely 1.0361x faster  ^ definitely 1.0469x faster

It&apos;s not a good idea to get excited about individual benchmark changes, especially when they&apos;re in the 1-5% range.  What is important are the overall numbers.  You should care the individual benchmark numbers only if you have a substantial change in the benchmark suite averages (i.e. the lines marked with a  &apos;*&apos;).

If you have as many benchmarks as we do, then anytime you breathe on the system (for example change the layout of any code in JavaScriptCore or any other framework by making an innocuous change to some function) you would expect some benchmarks to have &quot;significant&quot; changes.  It&apos;s best to ignore that so long as the averages don&apos;t change significantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923361</commentid>
    <comment_count>9</comment_count>
      <attachid>210202</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 15:41:12 -0700</bug_when>
    <thetext>Comment on attachment 210202
the patch.

Any particular reason you didn&apos;t use a functor based approach, like we use in a bunch of other places in the system?  See for example MarkedSpace::forEachLiveCell() or DFG::clobberize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923422</commentid>
    <comment_count>10</comment_count>
      <attachid>210232</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-09-01 01:29:03 -0700</bug_when>
    <thetext>Created attachment 210232
patch 2: functor version.

To answer Filip, there&apos;s no reason why we shouldn&apos;t use functors for the callback instead.  It&apos;s just an oversight of mine.  Patch 2 applies the functor pattern and makes StackIterator::iterate() a template function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923791</commentid>
    <comment_count>11</comment_count>
      <attachid>210232</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-02 12:21:29 -0700</bug_when>
    <thetext>Comment on attachment 210232
patch 2: functor version.

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

I&apos;m worried about StackIterator::find() - does this method need to exist?

&gt; Source/JavaScriptCore/interpreter/StackIterator.h:119
&gt; +    class Functor {
&gt; +    public:
&gt; +        Status operator()(StackIterator&amp;) { return Done; }
&gt; +    };

I don&apos;t think you need to declare this.  And you don&apos;t need the various implementations to subclass this.

&gt; Source/JavaScriptCore/runtime/JSFunction.cpp:209
&gt; +    RetrieveArgumentsFunctor functor;
&gt;      StackIterator iter = exec-&gt;find(functionObj);
&gt; -    return iter != exec-&gt;end() ? JSValue(iter-&gt;arguments()) : jsNull();
&gt; +    iter.iterate(functor);
&gt; +    return functor.result();

This is confusing. Wouldn&apos;t it be better to have find() be part of the functor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924111</commentid>
    <comment_count>12</comment_count>
      <attachid>210393</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-09-03 11:25:55 -0700</bug_when>
    <thetext>Created attachment 210393
patch 3: removed StackIterator::find().



(In reply to comment #11)
&gt; (From update of attachment 210232 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210232&amp;action=review
&gt; 
&gt; I&apos;m worried about StackIterator::find() - does this method need to exist?

StackIterator::find() is now removed in patch 3.

&gt; &gt; Source/JavaScriptCore/interpreter/StackIterator.h:119
&gt; &gt; +    class Functor {
&gt; &gt; +    public:
&gt; &gt; +        Status operator()(StackIterator&amp;) { return Done; }
&gt; &gt; +    };
&gt; 
&gt; I don&apos;t think you need to declare this.  And you don&apos;t need the various implementations to subclass this.

The only reason I wanted to provide this is because it makes it clear to the implementers of Functor subclasses as to what the prototype the functor is expected to have.  Sure, it can be inferred from the implementation of StackIterator::iterate() (or from other subclasses of StackIterator::Functor), but I think it&apos;s better to state it explicitly as the expected interface.  I change the code to just be a prototype without an implementation, and added a comment to indicate that the subclass should implement that method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924125</commentid>
    <comment_count>13</comment_count>
      <attachid>210393</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-09-03 11:49:59 -0700</bug_when>
    <thetext>Comment on attachment 210393
patch 3: removed StackIterator::find().

I just re-read Filip&apos;s comment.  Will remove StackIterator::Functor and replace it with a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924163</commentid>
    <comment_count>14</comment_count>
      <attachid>210405</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-09-03 13:00:16 -0700</bug_when>
    <thetext>Created attachment 210405
patch 4: Removed StackIterator::Functor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924212</commentid>
    <comment_count>15</comment_count>
      <attachid>210405</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-03 16:50:30 -0700</bug_when>
    <thetext>Comment on attachment 210405
patch 4: Removed StackIterator::Functor.

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

r=me if you come up with a better name for that one functor.

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:102
&gt; +class CreateScriptCallStackFunctor2 {

Better name?  It&apos;s OK to be descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924221</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-09-03 17:26:47 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r155013: &lt;http://trac.webkit.org/r155013&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924457</commentid>
    <comment_count>17</comment_count>
      <attachid>210405</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-04 08:59:36 -0700</bug_when>
    <thetext>Comment on attachment 210405
patch 4: Removed StackIterator::Functor.

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

&gt; Source/JavaScriptCore/interpreter/StackIterator.cpp:481
&gt; +    StackIterator iter = topCallFrame-&gt;begin();
&gt; +    iter.iterate(functor);

It&apos;s pretty strange to continue calling this an iterator, and allocating it as an object.

In C++, the idiomatic way to use &quot;begin()&quot; is to allocate an object that represents your state, increment it, and compare to &quot;end()&quot;. In a callback-based design, there shouldn&apos;t be any iterator object with any state of its own.

&gt; Source/JavaScriptCore/interpreter/StackIterator.h:125
&gt; +            gotoNextFrameWithFilter();

It&apos;s also strange to have two kinds of filter: one built into the iterator, and then the functor. In cases where we want to filter frames, the functor should do the filtering.

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:148
&gt; +    size_t numberOfFrames = iter.numberOfFrames();

The functor should do this calculation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210202</attachid>
            <date>2013-08-31 12:56:03 -0700</date>
            <delta_ts>2013-09-01 01:29:03 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-120564.patch</filename>
            <type>text/plain</type>
            <size>36110</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDEzLTA4LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
b252ZXJ0aW5nIFN0YWNrSXRlcmF0b3IgdG8gYSBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1NjQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0
UmVmLmNwcDoKKyAgICAgICAgKGJhY2t0cmFjZUNhbGxiYWNrKToKKyAgICAgICAgKEpTQ29udGV4
dENyZWF0ZUJhY2t0cmFjZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpkdW1w
UmVnaXN0ZXJzQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZHVtcFJlZ2lz
dGVycyk6CisgICAgICAgIChKU0M6OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChKU0M6Omdl
dFN0YWNrVHJhY2VDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpnZXRTdGFj
a1RyYWNlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnN0YWNrVHJhY2VBc1N0cmluZyk6
CisgICAgICAgIChKU0M6OnVud2luZENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0
ZXI6OnVud2luZCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tJ
dGVyYXRvcjo6aXRlcmF0ZSk6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6Om51bWJlck9m
RnJhbWVzKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6Z290b0ZyYW1lQXRJbmRleCk6
CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OmdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKToK
KyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6cmVzZXRJdGVyYXRvcik6CisgICAgICAgIChK
U0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjpwcmludCk6CisgICAgICAgIChkZWJ1Z1ByaW50Q2Fs
bEZyYW1lKToKKyAgICAgICAgKGRlYnVnUHJpbnRTdGFja0NhbGxiYWNrKToKKyAgICAgICAgKGRl
YnVnUHJpbnRTdGFjayk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oOgor
ICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6aW5kZXgpOgorICAgICAgICAqIGpz
Yy5jcHA6CisgICAgICAgIChmdW5jdGlvbkpTQ1N0YWNrQ2FsbGJhY2spOgorICAgICAgICAoZnVu
Y3Rpb25KU0NTdGFjayk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OmFkZFBhcmVudEZvckNvbnNvbGVTdGFydENhbGxiYWNrKToKKyAgICAg
ICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6YWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KToKKyAg
ICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpyZXRyaWV2ZUFy
Z3VtZW50c0NhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6cmV0cmlldmVBcmd1bWVudHMpOgorICAg
ICAgICAoSlNDOjpyZXRyaWV2ZUNhbGxlckZ1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoSlND
OjpyZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVyQ2Fs
bGJhY2spOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jUHJvdG9HZXR0ZXIpOgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jUHJvdG9TZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChKU0M6Omdsb2Jh
bEZ1bmNQcm90b1NldHRlcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZDYWxsYmFj
ayk6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOgorCiAy
MDEzLTA4LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IEVTNiBTZXQgY2xhc3MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAx
NTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzI2LDE0ICszMjYsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkRlcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK3N0
YXRpYyBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgZnVuY3Rpb25KU0NTdGFja0NhbGxiYWNrKFN0YWNr
SXRlcmF0b3ImIGl0ZXIsIHZvaWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBTdHJpbmdCdWlsZGVy
JiB0cmFjZSA9ICpyZWludGVycHJldF9jYXN0PFN0cmluZ0J1aWxkZXIqPihjYWxsYmFja0FyZ3Mp
OworICAgIHRyYWNlLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiICAgICV6dSAgICVzXG4iLCBpdGVy
LT5pbmRleCgpLCBpdGVyLT50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4g
U3RhY2tJdGVyYXRvcjo6Q29udGludWU7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25KU0NTdGFjayhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgU3RyaW5nQnVpbGRl
ciB0cmFjZTsKICAgICB0cmFjZS5hcHBlbmRMaXRlcmFsKCItLT4gU3RhY2sgdHJhY2U6XG4iKTsK
IAotICAgIGludCBpID0gMDsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJl
Z2luKCk7IGl0ZXIgIT0gZXhlYy0+ZW5kKCk7ICsraXRlciwgKytpKQotICAgICAgICB0cmFjZS5h
cHBlbmQoU3RyaW5nOjpmb3JtYXQoIiAgICAlaSAgICVzXG4iLCBpLCBpdGVyLT50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigp
OworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdGlvbkpTQ1N0YWNrQ2FsbGJhY2ssICZ0cmFjZSk7CiAg
ICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE1NDkw
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEyLDMwICsyMTIsMjcgQEAgSlNHbG9iYWxDb250ZXh0UmVmIEpTQ29udGV4
dEdldEdsb2JhbENvbgogCiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKIH0KLSAgICAKLUpTU3RyaW5nUmVmIEpTQ29udGV4
dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYgY3R4LCB1bnNpZ25lZCBtYXhTdGFja1NpemUp
CisKK3N0cnVjdCBCYWNrdHJhY2VBcmdzIHsKKyAgICBTdHJpbmdCdWlsZGVyJiBidWlsZGVyOwor
ICAgIHVuc2lnbmVkIHJlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworfTsKKworc3Rh
dGljIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBiYWNrdHJhY2VDYWxsYmFjayhTdGFja0l0ZXJhdG9y
JiBpdGVyLCB2b2lkKiBjYWxsYmFja0FyZ3MpCiB7Ci0gICAgaWYgKCFjdHgpIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBFeGVj
U3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0g
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIENhbGxGcmFtZSogZnJhbWUgPSBleGVjLT52
bSgpLnRvcENhbGxGcmFtZTsKLSAgICBzaXplX3QgaSA9IDA7Ci0gICAgQVNTRVJUKG1heFN0YWNr
U2l6ZSk7Ci0gICAgZm9yIChTdGFja0l0ZXJhdG9yIGl0ZXIgPSBmcmFtZS0+YmVnaW4oKTsgaXRl
ciAhPSBmcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsraXRlciwgKytpKSB7Ci0gICAg
ICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBpdGVyLT5jYWxsZWUoKTsKKyAgICBCYWNrdHJhY2VBcmdz
JiBhcmdzID0gKnJlaW50ZXJwcmV0X2Nhc3Q8QmFja3RyYWNlQXJncyo+KGNhbGxiYWNrQXJncyk7
CisgICAgaWYgKGFyZ3MucmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKICAgICAg
ICAgLy8gSWYgY2FsbGVlIGlzIHVua25vd24sIGJ1dCB3ZSd2ZSBub3QgYWRkZWQgYW55IGZyYW1l
IHlldCwgd2Ugc2hvdWxkCiAgICAgICAgIC8vIHN0aWxsIGFkZCB0aGUgZnJhbWUsIGJlY2F1c2Ug
c29tZXRoaW5nIGNhbGxlZCB1cywgYW5kIGdhdmUgdXMgYXJndW1lbnRzLgotICAgICAgICBpZiAo
IWNhbGxlZSAmJiBpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIEpTT2JqZWN0KiBjYWxs
ZWUgPSBpdGVyLT5jYWxsZWUoKTsKKyAgICAgICAgaWYgKCFjYWxsZWUgJiYgaXRlci0+aW5kZXgo
KSkKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOwogCisgICAgICAgIFN0
cmluZ0J1aWxkZXImIGJ1aWxkZXIgPSBhcmdzLmJ1aWxkZXI7CiAgICAgICAgIGlmICghYnVpbGRl
ci5pc0VtcHR5KCkpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0ZXItPmluZGV4KCkpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVyLT5mdW5jdGlvbk5h
bWUoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKCkgYXQgIik7CkBAIC0yNDks
OCArMjQ2LDI5IEBAIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0MKICAg
ICAgICAgfQogCiAgICAgICAgIGlmICghY2FsbGVlKQotICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKworICAgICAgICBhcmdzLnJlbWFp
bmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlLS07CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpDb250aW51ZTsKICAgICB9CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7Cit9
CisKK0pTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYgY3R4
LCB1bnNpZ25lZCBtYXhTdGFja1NpemUpCit7CisgICAgaWYgKCFjdHgpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBFeGVjU3Rh
dGUqIGV4ZWMgPSB0b0pTKGN0eCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIENhbGxGcmFtZSogZnJhbWUgPSBleGVjLT52bSgp
LnRvcENhbGxGcmFtZTsKKworICAgIEFTU0VSVChtYXhTdGFja1NpemUpOworICAgIFN0YWNrSXRl
cmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAgIEJhY2t0cmFjZUFyZ3MgYXJncyA9IHsg
YnVpbGRlciwgbWF4U3RhY2tTaXplIH07CisgICAgaXRlci5pdGVyYXRlKGJhY2t0cmFjZUNhbGxi
YWNrLCAmYXJncyk7CiAKICAgICByZXR1cm4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShidWlsZGVy
LnRvU3RyaW5nKCkpLmxlYWtSZWYoKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
Mjg1LDcgKzI4NSw2IEBAIG5hbWVzcGFjZSBKU0MgIHsKIAogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdGFja0l0ZXJhdG9yIGJlZ2luKFN0YWNrSXRlcmF0b3I6OkZyYW1lRmlsdGVyID0gMCk7
CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrSXRlcmF0b3IgZmluZChKU0Z1bmN0aW9u
KiBjYWxsZWVGdW5jdGlvbk9iaiwgU3RhY2tJdGVyYXRvcjo6RnJhbWVGaWx0ZXIgPSAwKTsKLSAg
ICAgICAgU3RhY2tJdGVyYXRvciBlbmQoKSB7IHJldHVybiBTdGFja0l0ZXJhdG9yOjplbmQoKTsg
fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IGludHB0cl90IEhvc3RDYWxs
RnJhbWVGbGFnID0gMTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjc0LDYgKzI3NCwyOCBAQCB2b2lkIEludGVycHJldGVyOjpkdW1wQ2FsbEZyYW1lKENhbGxGcmFt
CiAgICAgZHVtcFJlZ2lzdGVycyhjYWxsRnJhbWUpOwogfQogCitzdHJ1Y3QgRHVtcFJlZ2lzdGVy
QXJncyB7CisgICAgYm9vbCBoYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBjb25zdCBSZWdpc3Rl
ciomIGl0OworfTsKKworc3RhdGljIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBkdW1wUmVnaXN0ZXJz
Q2FsbGJhY2soU3RhY2tJdGVyYXRvciYgaXRlciwgdm9pZCogY2FsbGJhY2tBcmdzKQoreworICAg
IER1bXBSZWdpc3RlckFyZ3MmIGFyZ3MgPSAqcmVpbnRlcnByZXRfY2FzdDxEdW1wUmVnaXN0ZXJB
cmdzKj4oY2FsbGJhY2tBcmdzKTsKKyAgICBjb25zdCBSZWdpc3RlciomIGl0ID0gYXJncy5pdDsK
KyAgICBpZiAoIWFyZ3MuaGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgYXJncy5oYXNT
a2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpD
b250aW51ZTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICB1bnNpZ25lZCB1
bnVzZWRDb2x1bW4gPSAwOworICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIHVu
dXNlZENvbHVtbik7CisgICAgZGF0YUxvZ0YoIltSZXR1cm5WUENdICAgICAgICAgICAgICAgIHwg
JTEwcCB8ICVkIChsaW5lICVkKVxuIiwgaXQsIGl0ZXItPmJ5dGVjb2RlT2Zmc2V0KCksIGxpbmUp
OworICAgICsraXQ7CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7Cit9CisKIHZvaWQg
SW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAg
ZGF0YUxvZ0YoIlJlZ2lzdGVyIGZyYW1lOiBcblxuIik7CkBAIC0zMDksMTUgKzMzMSwxMSBAQCB2
b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtCiAgICAgaWYgKHBjLmhhc0pJ
VFJldHVybkFkZHJlc3MoKSkKICAgICAgICAgZGF0YUxvZ0YoIltSZXR1cm5KSVRQQ10gICAgICAg
ICAgICAgIHwgJTEwcCB8ICVwIFxuIiwgaXQsIHBjLmppdFJldHVybkFkZHJlc3MoKS52YWx1ZSgp
KTsKICNlbmRpZgorCiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigp
OwotICAgICsraXRlcjsKLSAgICBpZiAoaXRlciAhPSBjYWxsRnJhbWUtPmVuZCgpKSB7Ci0gICAg
ICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgICAgICB1bnNpZ25lZCB1bnVzZWRDb2x1bW4gPSAw
OwotICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4p
OwotICAgICAgICBkYXRhTG9nRigiW1JldHVyblZQQ10gICAgICAgICAgICAgICAgfCAlMTBwIHwg
JWQgKGxpbmUgJWQpXG4iLCBpdCwgaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKSwgbGluZSk7Ci0gICAg
ICAgICsraXQ7Ci0gICAgfQorICAgIER1bXBSZWdpc3RlckFyZ3MgYXJncyA9IHsgZmFsc2UsIGl0
IH07CisgICAgaXRlci5pdGVyYXRlKGR1bXBSZWdpc3RlcnNDYWxsYmFjaywgJmFyZ3MpOworCiAg
ICAgZGF0YUxvZ0YoIltDb2RlQmxvY2tdICAgICAgICAgICAgICAgIHwgJTEwcCB8ICVwIFxuIiwg
aXQsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkpOwogICAgICsraXQ7CiAgICAgZGF0YUxvZ0YoIi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKQEAgLTM2Niw3ICszODQsNyBAQCBib29sIEludGVycHJl
dGVyOjppc09wY29kZShPcGNvZGUgb3Bjb2RlCiAjZW5kaWYKIH0KIAotTkVWRVJfSU5MSU5FIGJv
b2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbGxGcmFtZShTdGFja0l0ZXJhdG9yJiBpdGVyLCBKU1Zh
bHVlIGV4Y2VwdGlvblZhbHVlKQorc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrSXRl
cmF0b3ImIGl0ZXIsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiB7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBpdGVyLT5jYWxsRnJhbWUoKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGl0ZXItPmNvZGVCbG9jaygpOwpAQCAtNDc0LDE1ICs0OTIsMTkgQEAgU3RyaW5nIFN0YWNrRnJh
bWU6OnRvU3RyaW5nKENhbGxGcmFtZSogYwogICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5n
KCkuaW1wbCgpOwogfQogCi12b2lkIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKFZlY3RvcjxT
dGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKK3N0cnVjdCBHZXRTdGFj
a1RyYWNlQXJncyB7CisgICAgVk0mIHZtOworICAgIFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0
czsKKyAgICBzaXplX3QgcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmU7Cit9OworCitz
dGF0aWMgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIGdldFN0YWNrVHJhY2VDYWxsYmFjayhTdGFja0l0
ZXJhdG9yJiBpdGVyLCB2b2lkKiBjYWxsYmFja0FyZ3MpCiB7Ci0gICAgVk0mIHZtID0gbV92bTsK
LSAgICBBU1NFUlQoIXZtLnRvcENhbGxGcmFtZS0+aGFzSG9zdENhbGxGcmFtZUZsYWcoKSk7Ci0g
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSB2bS50b3BDYWxsRnJhbWU7Ci0gICAgaWYgKCFjYWxs
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJh
bWUtPmJlZ2luKCk7Ci0gICAgZm9yICg7IGl0ZXIgIT0gY2FsbEZyYW1lLT5lbmQoKSAmJiBtYXhT
dGFja1NpemUtLTsgKytpdGVyKSB7CisgICAgR2V0U3RhY2tUcmFjZUFyZ3MmIGFyZ3MgPSAqcmVp
bnRlcnByZXRfY2FzdDxHZXRTdGFja1RyYWNlQXJncyo+KGNhbGxiYWNrQXJncyk7CisgICAgVk0m
IHZtID0gYXJncy52bTsKKyAgICBWZWN0b3I8U3RhY2tGcmFtZT4mIHJlc3VsdHMgPSBhcmdzLnJl
c3VsdHM7CisKKyAgICBpZiAoYXJncy5yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkg
ewogICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKICAgICAgICAgICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gaXRlci0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBTdGFja0ZyYW1l
IHMgPSB7CkBAIC01MDIsOSArNTI0LDI3IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJh
Y2UoVmVjdG9yPFMKICAgICAgICAgICAgIFN0YWNrRnJhbWUgcyA9IHsgU3Ryb25nPEpTT2JqZWN0
Pih2bSwgaXRlci0+Y2FsbGVlKCkpLCBTdGFja0ZyYW1lTmF0aXZlQ29kZSwgU3Ryb25nPEV4ZWN1
dGFibGVCYXNlPigpLCBTdHJvbmc8VW5saW5rZWRDb2RlQmxvY2s+KCksIDAsIDAsIDAsIDAsIDAs
IFN0cmluZygpfTsKICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHMpOwogICAgICAgICB9Cisg
ICAgCisgICAgICAgIGFyZ3MucmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUtLTsKKyAg
ICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOwogICAgIH0KKyAgICByZXR1cm4g
U3RhY2tJdGVyYXRvcjo6RG9uZTsKIH0KLUpTU3RyaW5nKiBJbnRlcnByZXRlcjo6IHN0YWNrVHJh
Y2VBc1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNl
KQorCit2b2lkIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKFZlY3RvcjxTdGFja0ZyYW1lPiYg
cmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKK3sKKyAgICBWTSYgdm0gPSBtX3ZtOworICAg
IEFTU0VSVCghdm0udG9wQ2FsbEZyYW1lLT5oYXNIb3N0Q2FsbEZyYW1lRmxhZygpKTsKKyAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IHZtLnRvcENhbGxGcmFtZTsKKyAgICBpZiAoIWNhbGxGcmFt
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1l
LT5iZWdpbigpOworICAgIEdldFN0YWNrVHJhY2VBcmdzIGFyZ3MgPSB7IHZtLCByZXN1bHRzLCBt
YXhTdGFja1NpemUgfTsKKyAgICBpdGVyLml0ZXJhdGUoZ2V0U3RhY2tUcmFjZUNhbGxiYWNrLCAm
YXJncyk7Cit9CisKK0pTU3RyaW5nKiBJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKEV4
ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNrVHJhY2UpCiB7CiAgICAgLy8g
RklYTUU6IEpTU3RyaW5nSm9pbmVyIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRoYW4gU3RyaW5n
QnVpbGRlciBoZXJlLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTUxNiw2ICs1NTYs
NDAgQEAgSlNTdHJpbmcqIEludGVycHJldGVyOjogc3RhY2tUcmFjZUFzU3RyaQogICAgIHJldHVy
biBqc1N0cmluZygmZXhlYy0+dm0oKSwgYnVpbGRlci50b1N0cmluZygpKTsKIH0KIAorc3RydWN0
IFVud2luZEFyZ3MgeworICAgIENhbGxGcmFtZSomIGNhbGxGcmFtZTsKKyAgICBKU1ZhbHVlJiBl
eGNlcHRpb25WYWx1ZTsKKyAgICBib29sIGlzVGVybWluYXRpb247CisgICAgQ29kZUJsb2NrKiYg
Y29kZUJsb2NrOworICAgIEhhbmRsZXJJbmZvKiYgaGFuZGxlcjsKK307CisKK3N0YXRpYyBTdGFj
a0l0ZXJhdG9yOjpTdGF0dXMgdW53aW5kQ2FsbGJhY2soU3RhY2tJdGVyYXRvciYgaXRlciwgdm9p
ZCogY2FsbGJhY2tBcmdzKQoreworICAgIFVud2luZEFyZ3MmIGFyZ3MgPSAqcmVpbnRlcnByZXRf
Y2FzdDxVbndpbmRBcmdzKj4oY2FsbGJhY2tBcmdzKTsKKyAgICBDYWxsRnJhbWUqJiBjYWxsRnJh
bWUgPSBhcmdzLmNhbGxGcmFtZTsKKyAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CisgICAg
SlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUgPSBhcmdzLmV4Y2VwdGlvblZhbHVlOworICAgIGJvb2wg
aXNUZXJtaW5hdGlvbiA9IGFyZ3MuaXNUZXJtaW5hdGlvbjsKKyAgICBDb2RlQmxvY2sqJiBjb2Rl
QmxvY2sgPSBhcmdzLmNvZGVCbG9jazsKKyAgICBIYW5kbGVySW5mbyomIGhhbmRsZXIgPSBhcmdz
LmhhbmRsZXI7CisKKyAgICBjYWxsRnJhbWUgPSBpdGVyLT5jYWxsRnJhbWUoKTsKKyAgICBjb2Rl
QmxvY2sgPSBpdGVyLT5jb2RlQmxvY2soKTsKKyAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9
IGl0ZXItPmJ5dGVjb2RlT2Zmc2V0KCk7CisKKyAgICBpZiAoaXNUZXJtaW5hdGlvbiB8fCAhKGhh
bmRsZXIgPSBjb2RlQmxvY2stPmhhbmRsZXJGb3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNl
dCkpKSB7CisgICAgICAgIGlmICghdW53aW5kQ2FsbEZyYW1lKGl0ZXIsIGV4Y2VwdGlvblZhbHVl
KSkgeworICAgICAgICAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJs
ZWRQcm9maWxlcigpKQorICAgICAgICAgICAgICAgIHByb2ZpbGVyLT5leGNlcHRpb25VbndpbmQo
Y2FsbEZyYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworICAg
ICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOwor
CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworfQorCiBORVZFUl9JTkxJTkUg
SGFuZGxlckluZm8qIEludGVycHJldGVyOjp1bndpbmQoQ2FsbEZyYW1lKiYgY2FsbEZyYW1lLCBK
U1ZhbHVlJiBleGNlcHRpb25WYWx1ZSwgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiB7CiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwpAQCAtNTQ5LDIy
ICs2MjMsMTMgQEAgTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dQogICAg
IEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gMDsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7
CiAgICAgQVNTRVJUKGNhbGxGcmFtZSA9PSB2bS50b3BDYWxsRnJhbWUpOwotICAgIGZvciAoU3Rh
Y2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOyBpdGVyICE9IGNhbGxGcmFtZS0+
ZW5kKCk7ICsraXRlcikgewotICAgICAgICBjYWxsRnJhbWUgPSBpdGVyLT5jYWxsRnJhbWUoKTsK
LSAgICAgICAgY29kZUJsb2NrID0gaXRlci0+Y29kZUJsb2NrKCk7Ci0gICAgICAgIGJ5dGVjb2Rl
T2Zmc2V0ID0gaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKTsKLQotICAgICAgICBpZiAoaXNUZXJtaW5h
dGlvbiB8fCAhKGhhbmRsZXIgPSBjb2RlQmxvY2stPmhhbmRsZXJGb3JCeXRlY29kZU9mZnNldChi
eXRlY29kZU9mZnNldCkpKSB7Ci0gICAgICAgICAgICBpZiAoIXVud2luZENhbGxGcmFtZShpdGVy
LCBleGNlcHRpb25WYWx1ZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoTGVnYWN5UHJvZmlsZXIq
IHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgICAgICAgICAgICAgIHBy
b2ZpbGVyLT5leGNlcHRpb25VbndpbmQoY2FsbEZyYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBicmVhazsK
LSAgICB9CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOworICAg
IFVud2luZEFyZ3MgYXJncyA9IHsgY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSwgaXNUZXJtaW5h
dGlvbiwgY29kZUJsb2NrLCBoYW5kbGVyIH07CisgICAgaXRlci5pdGVyYXRlKHVud2luZENhbGxi
YWNrLCAmYXJncyk7CisgICAgaWYgKCFoYW5kbGVyKQorICAgICAgICByZXR1cm4gMDsKIAotICAg
IGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUtPnZtKCkuZW5hYmxlZFBy
b2ZpbGVyKCkpCisgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQ
cm9maWxlcigpKQogICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGNhbGxGcmFtZSk7
CiAKICAgICAvLyBVbndpbmQgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiB0aGUgZXhjZXB0aW9uIGhh
bmRsZXIncyBjYWxsIGZyYW1lLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NjIsNyArMjYyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgZXhlY3V0ZShD
YWxsRnJhbWVDbG9zdXJlJik7CiAKICAgICAgICAgdm9pZCBnZXRTdGFja1RyYWNlKFZlY3RvcjxT
dGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwotICAgICAgICBORVZFUl9JTkxJTkUgYm9vbCB1bndpbmRD
YWxsRnJhbWUoU3RhY2tJdGVyYXRvciYsIEpTVmFsdWUpOwogCiAgICAgICAgIHZvaWQgZHVtcFJl
Z2lzdGVycyhDYWxsRnJhbWUqKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAxNTQ5
MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDEzICs0MiwyNCBAQCBTdGFja0l0ZXJhdG9yOjpTdGFj
a0l0ZXJhdG9yKENhbGxGcmFtZSogCiAgICAgcmVzZXRJdGVyYXRvcigpOwogfQogCit2b2lkIFN0
YWNrSXRlcmF0b3I6Oml0ZXJhdGUoU3RhY2tJdGVyYXRvcjo6Q2FsbGJhY2sgY2FsbGJhY2ssIHZv
aWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBTdGF0dXMgc3RhdHVzID0gQ29udGludWU7CisgICAg
d2hpbGUgKG1fZnJhbWUuY2FsbEZyYW1lKCkpIHsKKyAgICAgICAgc3RhdHVzID0gY2FsbGJhY2so
KnRoaXMsIGNhbGxiYWNrQXJncyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gQ29udGludWUpCisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsKKyAg
ICB9Cit9CisKIHNpemVfdCBTdGFja0l0ZXJhdG9yOjpudW1iZXJPZkZyYW1lcygpCiB7Ci0gICAg
aW50IHNhdmVkRnJhbWVJbmRleCA9IG1fZnJhbWVJbmRleDsKKyAgICBpbnQgc2F2ZWRGcmFtZUlu
ZGV4ID0gbV9mcmFtZS5pbmRleCgpOwogICAgIHJlc2V0SXRlcmF0b3IoKTsKICAgICB3aGlsZSAo
bV9mcmFtZS5jYWxsRnJhbWUoKSkKICAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsK
LSAgICBzaXplX3QgbnVtYmVyT2ZGcmFtZXMgPSBtX2ZyYW1lSW5kZXg7CisgICAgc2l6ZV90IG51
bWJlck9mRnJhbWVzID0gbV9mcmFtZS5pbmRleCgpOwogCiAgICAgcmVzZXRJdGVyYXRvcigpOwog
ICAgIGdvdG9GcmFtZUF0SW5kZXgoc2F2ZWRGcmFtZUluZGV4KTsKQEAgLTU4LDcgKzY5LDcgQEAg
c2l6ZV90IFN0YWNrSXRlcmF0b3I6Om51bWJlck9mRnJhbWVzKCkKIAogdm9pZCBTdGFja0l0ZXJh
dG9yOjpnb3RvRnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAgICB3aGlsZSAobV9mcmFt
ZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFtZUluZGV4ICE9IGluZGV4KSkKKyAgICB3aGlsZSAobV9m
cmFtZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFtZS5pbmRleCgpICE9IGluZGV4KSkKICAgICAgICAg
Z290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsKIH0KIApAQCAtODMsMjAgKzk0LDE1IEBAIHZvaWQg
U3RhY2tJdGVyYXRvcjo6Z290b05leHRGcmFtZVdpdGhGaWwKICAgICAgICAgaWYgKCFtX2ZyYW1l
LmNhbGxGcmFtZSgpIHx8ICFtX2ZpbHRlciB8fCAhbV9maWx0ZXIoJm1fZnJhbWUpKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIG1fZnJhbWVJbmRleCsrOworICAgIG1fZnJhbWUubV9p
bmRleCsrOwogfQogCiB2b2lkIFN0YWNrSXRlcmF0b3I6OnJlc2V0SXRlcmF0b3IoKQogewotICAg
IG1fZnJhbWVJbmRleCA9IDA7CisgICAgbV9mcmFtZS5tX2luZGV4ID0gMDsKICAgICByZWFkRnJh
bWUobV9zdGFydEZyYW1lKTsKIH0KIAotU3RhY2tJdGVyYXRvciBTdGFja0l0ZXJhdG9yOjplbmQo
KQotewotICAgIHJldHVybiBTdGFja0l0ZXJhdG9yKDAsIDApOwotfQotCiB2b2lkIFN0YWNrSXRl
cmF0b3I6OmZpbmQoSlNGdW5jdGlvbiogZnVuY3Rpb25PYmopCiB7CiAgICAgQVNTRVJUKGZ1bmN0
aW9uT2JqKTsKQEAgLTQwNCw4ICs0MTAsMTMgQEAgdm9pZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6
cHJpbnQoaW50IGluZAogewogICAgIGludCBpID0gaW5kZW50TGV2ZWw7CiAKKyAgICBpZiAoIXRo
aXMtPmNhbGxGcmFtZSgpKSB7CisgICAgICAgIHByaW50aWYoaSwgImZyYW1lIDB4MFxuIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMt
PmNvZGVCbG9jaygpOwotICAgIHByaW50aWYoaSwgImZyYW1lICVwIHtcbiIsIHRoaXMpOworICAg
IHByaW50aWYoaSwgImZyYW1lICVwIHtcbiIsIHRoaXMtPmNhbGxGcmFtZSgpKTsKIAogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gbV9jYWxsRnJhbWU7CiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJG
cmFtZSA9IHRoaXMtPmNhbGxlckZyYW1lKCk7CkBAIC00NjAsNiArNDcxLDggQEAgdm9pZCBTdGFj
a0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQoaW50IGluZAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNp
Zm5kZWYgTkRFQlVHCit1c2luZyBKU0M6OlN0YWNrSXRlcmF0b3I7CisKIC8vIEZvciBkZWJ1Z2dp
bmcgdXNlCiB2b2lkIGRlYnVnUHJpbnRDYWxsRnJhbWUoSlNDOjpDYWxsRnJhbWUqKTsKIHZvaWQg
ZGVidWdQcmludFN0YWNrKEpTQzo6Q2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUpOwpAQCAtNDY4LDE2
ICs0ODEsMjEgQEAgdm9pZCBkZWJ1Z1ByaW50Q2FsbEZyYW1lKEpTQzo6Q2FsbEZyYW1lKgogewog
ICAgIGlmICghY2FsbEZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgSlNDOjpTdGFja0l0ZXJh
dG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0g
Y2FsbEZyYW1lLT5iZWdpbigpOworICAgIGl0ZXItPnByaW50KDIpOworfQorCitzdGF0aWMgU3Rh
Y2tJdGVyYXRvcjo6U3RhdHVzIGRlYnVnUHJpbnRTdGFja0NhbGxiYWNrKFN0YWNrSXRlcmF0b3Im
IGl0ZXIsIHZvaWQqKQorewogICAgIGl0ZXItPnByaW50KDIpOworICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpDb250aW51ZTsKIH0KIAogdm9pZCBkZWJ1Z1ByaW50U3RhY2soSlNDOjpDYWxsRnJh
bWUqIHRvcENhbGxGcmFtZSkKIHsKICAgICBpZiAoIXRvcENhbGxGcmFtZSkKICAgICAgICAgcmV0
dXJuOwotICAgIEpTQzo6U3RhY2tJdGVyYXRvciBpdGVyID0gdG9wQ2FsbEZyYW1lLT5iZWdpbigp
OwotICAgIGZvciAoOyBpdGVyICE9IHRvcENhbGxGcmFtZS0+ZW5kKCk7ICsraXRlcikKLSAgICAg
ICAgaXRlci0+cHJpbnQoMik7CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gdG9wQ2FsbEZyYW1l
LT5iZWdpbigpOworICAgIGl0ZXIuaXRlcmF0ZShkZWJ1Z1ByaW50U3RhY2tDYWxsYmFjaywgMCk7
CiB9CiAjZW5kaWYgLy8gIU5ERUJVRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1N0YWNrSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIE5hdGl2ZQogICAgICAg
ICB9OwogCisgICAgICAgIHNpemVfdCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7IH0K
ICAgICAgICAgc2l6ZV90IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgY29uc3QgeyByZXR1
cm4gbV9hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsgfQogICAgICAgICBDYWxsRnJhbWUqIGNh
bGxlckZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZXJGcmFtZTsgfQogICAgICAgICBKU09i
amVjdCogY2FsbGVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsZWU7IH0KQEAgLTg5LDYgKzkwLDcg
QEAgcHVibGljOgogICAgICAgICB2b2lkIHJldHJpZXZlRXhwcmVzc2lvbkluZm8oaW50JiBkaXZv
dCwgaW50JiBzdGFydE9mZnNldCwgaW50JiBlbmRPZmZzZXQsIHVuc2lnbmVkJiBsaW5lLCB1bnNp
Z25lZCYgY29sdW1uKTsKICAgICAgICAgdm9pZCBzZXRUb0VuZCgpOwogCisgICAgICAgIHNpemVf
dCBtX2luZGV4OwogICAgICAgICBzaXplX3QgbV9hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsK
ICAgICAgICAgQ2FsbEZyYW1lKiBtX2NhbGxlckZyYW1lOwogICAgICAgICBKU09iamVjdCogbV9j
YWxsZWU7CkBAIC0xMDYsMjAgKzEwOCwyNCBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIGJvb2wg
KCpGcmFtZUZpbHRlcikoRnJhbWUqKTsKIAorICAgIGVudW0gU3RhdHVzIHsKKyAgICAgICAgQ29u
dGludWUgPSAwLAorICAgICAgICBEb25lID0gMQorICAgIH07CisKKyAgICB0eXBlZGVmIFN0YXR1
cyAoKkNhbGxiYWNrKShTdGFja0l0ZXJhdG9yJiwgdm9pZCogY2FsbGJhY2tBcmdzKTsKKyAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGl0ZXJhdGUoQ2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQXJn
cyk7CisKICAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgbnVtYmVyT2ZGcmFtZXMoKTsKIAog
ICAgIEZyYW1lJiBvcGVyYXRvciooKSB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgQUxXQVlTX0lO
TElORSBGcmFtZSogb3BlcmF0b3ItPigpIHsgcmV0dXJuICZtX2ZyYW1lOyB9CiAKLSAgICBpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0YWNrSXRlcmF0b3ImKTsKLSAgICBib29sIG9wZXJh
dG9yIT0oY29uc3QgU3RhY2tJdGVyYXRvciYgb3RoZXIpIHsgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOyB9Ci0gICAgdm9pZCBvcGVyYXRvcisrKCkgeyBnb3RvTmV4dEZyYW1lV2l0aEZpbHRlcigp
OyB9CiAgICAgdm9pZCBmaW5kKEpTRnVuY3Rpb24qKTsKIAogcHJpdmF0ZToKICAgICBKU19FWFBP
UlRfUFJJVkFURSBTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogc3RhcnRGcmFtZSwgRnJhbWVGaWx0
ZXIgPSAwKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBTdGFja0l0ZXJhdG9yIGVu
ZCgpOwogICAgIHZvaWQgZ290b0ZyYW1lQXRJbmRleChzaXplX3QgZnJhbWVJbmRleCk7CiAgICAg
dm9pZCBnb3RvTmV4dEZyYW1lKCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBnb3RvTmV4
dEZyYW1lV2l0aEZpbHRlcigpOwpAQCAtMTMyLDIyICsxMzgsMTIgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgQ2FsbEZyYW1lKiBtX3N0YXJ0RnJhbWU7Ci0gICAgc2l6ZV90IG1fZnJhbWVJbmRl
eDsKICAgICBGcmFtZUZpbHRlciBtX2ZpbHRlcjsKICAgICBGcmFtZSBtX2ZyYW1lOwogCiAgICAg
ZnJpZW5kIGNsYXNzIEV4ZWNTdGF0ZTsKIH07CiAKLWlubGluZSBib29sIFN0YWNrSXRlcmF0b3I6
Om9wZXJhdG9yPT0oY29uc3QgU3RhY2tJdGVyYXRvciYgb3RoZXIpCi17Ci0gICAgcmV0dXJuICht
X2ZyYW1lLmNhbGxGcmFtZSgpID09IG90aGVyLm1fZnJhbWUuY2FsbEZyYW1lKCkpCi0jaWYgRU5B
QkxFKERGR19KSVQpCi0gICAgICAgICYmIChtX2ZyYW1lLmlubGluZUNhbGxGcmFtZSgpID09IG90
aGVyLm1fZnJhbWUuaW5saW5lQ2FsbEZyYW1lKCkpCi0jZW5kaWYKLSAgICAgICAgOyAKLX0KLQog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0l0ZXJhdG9yX2gKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5j
cHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsMjAgKzU3LDQ2IEBAIFBy
b2ZpbGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1MKICAgICAgICAgYWRkUGFyZW50
Rm9yQ29uc29sZVN0YXJ0KGV4ZWMpOwogfQogCitzdHJ1Y3QgQWRkUGFyZW50Rm9yQ29uc29sZVN0
YXJ0QXJncyB7CisgICAgRXhlY1N0YXRlKiBleGVjOworICAgIGJvb2wgaGFzU2tpcHBlZEZpcnN0
RnJhbWU7CisgICAgYm9vbCBmb3VuZFBhcmVudDsgCisgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiYg
aGVhZDsKKyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjdXJyZW50Tm9kZTsKK307CisKK3N0YXRp
YyBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgYWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0Q2FsbGJhY2so
U3RhY2tJdGVyYXRvciYgaXRlciwgdm9pZCogY2FsbGJhY2tBcmdzKQoreworICAgIEFkZFBhcmVu
dEZvckNvbnNvbGVTdGFydEFyZ3MmIGFyZ3MgPSAqcmVpbnRlcnByZXRfY2FzdDxBZGRQYXJlbnRG
b3JDb25zb2xlU3RhcnRBcmdzKj4oY2FsbGJhY2tBcmdzKTsKKyAgICBpZiAoIWFyZ3MuaGFzU2tp
cHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgYXJncy5oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRy
dWU7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICB9CisKKyAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSBhcmdzLmV4ZWM7CisgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiYg
aGVhZCA9IGFyZ3MuaGVhZDsKKyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjdXJyZW50Tm9kZSA9
IGFyZ3MuY3VycmVudE5vZGU7CisKKyAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICB1bnNpZ25l
ZCB1bnVzZWRDb2x1bW4gPSAwOworICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUs
IHVudXNlZENvbHVtbik7CisgICAgY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKGV4
ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihleGVjLCBpdGVyLT5jYWxs
ZWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUpLCBoZWFkLmdldCgpLCBoZWFkLmdldCgpKTsK
KyAgICBoZWFkLT5pbnNlcnROb2RlKGN1cnJlbnROb2RlLmdldCgpKTsKKworICAgIGFyZ3MuZm91
bmRQYXJlbnQgPSB0cnVlOworICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworfQorCiB2
b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmFkZFBhcmVudEZvckNvbnNvbGVTdGFydChFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+YmVnaW4oKTsKLSAgICAr
K2l0ZXI7Ci0gICAgaWYgKGl0ZXIgPT0gZXhlYy0+ZW5kKCkpIHsKKyAgICBBZGRQYXJlbnRGb3JD
b25zb2xlU3RhcnRBcmdzIGFyZ3MgPSB7IGV4ZWMsIGZhbHNlLCBmYWxzZSwgbV9oZWFkLCBtX2N1
cnJlbnROb2RlIH07CisgICAgaXRlci5pdGVyYXRlKGFkZFBhcmVudEZvckNvbnNvbGVTdGFydENh
bGxiYWNrLCAmYXJncyk7CisKKyAgICBpZiAoIWFyZ3MuZm91bmRQYXJlbnQpIHsKICAgICAgICAg
bV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoZXhlYywgTGVnYWN5UHJvZmlsZXI6
OmNyZWF0ZUNhbGxJZGVudGlmaWVyKGV4ZWMsIEpTVmFsdWUoKSwgU3RyaW5nKCksIDApLCBtX2hl
YWQuZ2V0KCksIG1faGVhZC5nZXQoKSk7CiAgICAgICAgIG1faGVhZC0+aW5zZXJ0Tm9kZShtX2N1
cnJlbnROb2RlLmdldCgpKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB1bnNpZ25lZCBs
aW5lID0gMDsKLSAgICB1bnNpZ25lZCB1bnVzZWRDb2x1bW4gPSAwOwotICAgIGl0ZXItPmNvbXB1
dGVMaW5lQW5kQ29sdW1uKGxpbmUsIHVudXNlZENvbHVtbik7Ci0gICAgbV9jdXJyZW50Tm9kZSA9
IFByb2ZpbGVOb2RlOjpjcmVhdGUoZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVu
dGlmaWVyKGV4ZWMsIGl0ZXItPmNhbGxlZSgpLCBpdGVyLT5zb3VyY2VVUkwoKSwgbGluZSksIG1f
aGVhZC5nZXQoKSwgbV9oZWFkLmdldCgpKTsKLSAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJy
ZW50Tm9kZS5nZXQoKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgUHJvZmlsZUdlbmVyYXRvcjo6dGl0
bGUoKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsMTAgKzE4MiwxOSBAQCBD
YWxsVHlwZSBKU0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqCiAgICAgcmV0dXJuIENhbGxU
eXBlSlM7CiB9CiAKK3N0YXRpYyBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgcmV0cmlldmVBcmd1bWVu
dHNDYWxsYmFjayhTdGFja0l0ZXJhdG9yJiBpdGVyLCB2b2lkKiBjYWxsYmFja0FyZ3MpCit7Cisg
ICAgSlNWYWx1ZSYgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSo+KGNhbGxiYWNr
QXJncyk7CisgICAgcmVzdWx0ID0gSlNWYWx1ZShpdGVyLT5hcmd1bWVudHMoKSk7CisgICAgcmV0
dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7Cit9CisKIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQXJn
dW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogZnVuY3Rpb25PYmopCiB7CiAgICAg
U3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+ZmluZChmdW5jdGlvbk9iaik7Ci0gICAgcmV0dXJu
IGl0ZXIgIT0gZXhlYy0+ZW5kKCkgPyBKU1ZhbHVlKGl0ZXItPmFyZ3VtZW50cygpKSA6IGpzTnVs
bCgpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgaXRlci5pdGVyYXRlKHJl
dHJpZXZlQXJndW1lbnRzQ2FsbGJhY2ssICZyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQpAQCAtMjAzLDEyICsyMTIsMzIgQEAgc3Rh
dGljIGJvb2wgc2tpcE92ZXJCb3VuZEZ1bmN0aW9ucyhTdGFjawogICAgIHJldHVybiBzaG91bGRT
a2lwOwogfQogCitzdHJ1Y3QgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkFyZ3MgeworICAgIGJvb2wg
aGFzU2tpcHBlZEZpcnN0RnJhbWU7CisgICAgSlNWYWx1ZSYgcmVzdWx0OworfTsKKworc3RhdGlj
IFN0YWNrSXRlcmF0b3I6OlN0YXR1cyByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uQ2FsbGJhY2soU3Rh
Y2tJdGVyYXRvciYgaXRlciwgdm9pZCogY2FsbGJhY2tBcmdzKQoreworICAgIFJldHJpZXZlQ2Fs
bGVyRnVuY3Rpb25BcmdzJiBhcmdzID0gKnJlaW50ZXJwcmV0X2Nhc3Q8UmV0cmlldmVDYWxsZXJG
dW5jdGlvbkFyZ3MqPihjYWxsYmFja0FyZ3MpOworICAgIGlmICghYXJncy5oYXNTa2lwcGVkRmly
c3RGcmFtZSkgeworICAgICAgICBhcmdzLmhhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgIH0KKworICAgIEpTVmFs
dWUmIHJlc3VsdCA9IGFyZ3MucmVzdWx0OworICAgIGlmIChpdGVyLT5jYWxsZWUoKSkKKyAgICAg
ICAgcmVzdWx0ID0gaXRlci0+Y2FsbGVlKCk7CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRv
bmU7Cit9CisKIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKIHsKICAgICBTdGFja0l0ZXJhdG9yIGl0
ZXIgPSBleGVjLT5maW5kKGZ1bmN0aW9uT2JqLCBza2lwT3ZlckJvdW5kRnVuY3Rpb25zKTsKLSAg
ICBpZiAoaXRlciAhPSBleGVjLT5lbmQoKSkKLSAgICAgICAgKytpdGVyOwotICAgIHJldHVybiBp
dGVyICE9IGV4ZWMtPmVuZCgpICYmIGl0ZXItPmNhbGxlZSgpID8gaXRlci0+Y2FsbGVlKCkgOiBq
c051bGwoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVsbCgpOworICAgIFJldHJpZXZlQ2Fs
bGVyRnVuY3Rpb25BcmdzIGFyZ3MgPSB7IGZhbHNlLCByZXN1bHQgfTsKKyAgICBpdGVyLml0ZXJh
dGUocmV0cmlldmVDYWxsZXJGdW5jdGlvbkNhbGxiYWNrLCAmYXJncyk7CisgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAogSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwNiw2ICs3MDYs
MjkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVAogICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogfQogCitzdHJ1Y3QgR2xvYmFsRnVuY1Byb3RvR2V0
dGVyQXJncyB7CisgICAgYm9vbCBoYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBKU09iamVjdCog
dGhpc09iamVjdDsKKyAgICBFbmNvZGVkSlNWYWx1ZSYgcmVzdWx0OworfTsKKworc3RhdGljIFN0
YWNrSXRlcmF0b3I6OlN0YXR1cyBnbG9iYWxGdW5jUHJvdG9HZXR0ZXJDYWxsYmFjayhTdGFja0l0
ZXJhdG9yJiBpdGVyLCB2b2lkKiBjYWxsYmFja0FyZ3MpCit7CisgICAgR2xvYmFsRnVuY1Byb3Rv
R2V0dGVyQXJncyYgYXJncyA9ICpyZWludGVycHJldF9jYXN0PEdsb2JhbEZ1bmNQcm90b0dldHRl
ckFyZ3MqPihjYWxsYmFja0FyZ3MpOworICAgIGlmICghYXJncy5oYXNTa2lwcGVkRmlyc3RGcmFt
ZSkgeworICAgICAgICBhcmdzLmhhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgIH0KKyAgICAKKyAgICBKU09iamVj
dCogdGhpc09iamVjdCA9IGFyZ3MudGhpc09iamVjdDsKKyAgICBFbmNvZGVkSlNWYWx1ZSYgcmVz
dWx0ID0gYXJncy5yZXN1bHQ7CisKKyAgICBpZiAodGhpc09iamVjdC0+YWxsb3dzQWNjZXNzRnJv
bShpdGVyLT5jYWxsRnJhbWUoKSkpCisgICAgICAgIHJlc3VsdCA9IEpTVmFsdWU6OmVuY29kZSh0
aGlzT2JqZWN0LT5wcm90b3R5cGUoKSk7CisKKyAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9u
ZTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9HZXR0
ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU09iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBOb3RTdHJp
Y3RNb2RlKSk7CkBAIC03MTQsMTEgKzczNywzMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhp
c1ZhbHVlKCkuc3ludGhlc2l6ZVByb3RvdHlwZShleGVjKSk7CiAKICAgICBTdGFja0l0ZXJhdG9y
IGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoKGl0ZXIgPT0gZXhl
Yy0+ZW5kKCkpIHx8ICF0aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGl0ZXItPmNhbGxGcmFt
ZSgpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICBFbmNvZGVkSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CisgICAgR2xvYmFsRnVuY1Byb3RvR2V0dGVyQXJncyBhcmdzID0geyBmYWxzZSwgdGhpc09iamVj
dCwgcmVzdWx0IH07CisgICAgaXRlci5pdGVyYXRlKGdsb2JhbEZ1bmNQcm90b0dldHRlckNhbGxi
YWNrLCAmYXJncyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IEdsb2JhbEZ1bmNQ
cm90b1NldHRlckFyZ3MgeworICAgIGJvb2wgaGFzU2tpcHBlZEZpcnN0RnJhbWU7CisgICAgYm9v
bCBhbGxvd3NBY2Nlc3M7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3Q7Cit9OworCitzdGF0aWMg
U3RhY2tJdGVyYXRvcjo6U3RhdHVzIGdsb2JhbEZ1bmNQcm90b1NldHRlckNhbGxiYWNrKFN0YWNr
SXRlcmF0b3ImIGl0ZXIsIHZvaWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBHbG9iYWxGdW5jUHJv
dG9TZXR0ZXJBcmdzJiBhcmdzID0gKnJlaW50ZXJwcmV0X2Nhc3Q8R2xvYmFsRnVuY1Byb3RvU2V0
dGVyQXJncyo+KGNhbGxiYWNrQXJncyk7CisgICAgaWYgKCFhcmdzLmhhc1NraXBwZWRGaXJzdEZy
YW1lKSB7CisgICAgICAgIGFyZ3MuaGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAg
ICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgfQorCisgICAgSlNPYmplY3Qq
IHRoaXNPYmplY3QgPSBhcmdzLnRoaXNPYmplY3Q7CisgICAgYm9vbCYgYWxsb3dzQWNjZXNzID0g
YXJncy5hbGxvd3NBY2Nlc3M7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmpl
Y3QtPnByb3RvdHlwZSgpKTsKKyAgICBhbGxvd3NBY2Nlc3MgPSB0aGlzT2JqZWN0LT5hbGxvd3NB
Y2Nlc3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKTsKKyAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6
RG9uZTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9T
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjKQpAQCAtNzMyLDggKzc3NSw5IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1AKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJlZ2lu
KCk7Ci0gICAgKytpdGVyOwotICAgIGlmICgoaXRlciA9PSBleGVjLT5lbmQoKSkgfHwgIXRoaXNP
YmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAgIEdsb2JhbEZ1
bmNQcm90b1NldHRlckFyZ3MgYXJncyA9IHsgZmFsc2UsIGZhbHNlLCB0aGlzT2JqZWN0IH07Cisg
ICAgaXRlci5pdGVyYXRlKGdsb2JhbEZ1bmNQcm90b1NldHRlckNhbGxiYWNrLCAmYXJncyk7Cisg
ICAgaWYgKCFhcmdzLmFsbG93c0FjY2VzcykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIC8vIFNldHRpbmcgX19wcm90b19fIHRvIGEgbm9uLW9i
amVjdCwgbm9uLW51bGwgdmFsdWUgaXMgc2lsZW50bHkgaWdub3JlZCB0byBtYXRjaCBNb3ppbGxh
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsMTYg
KzEzMSwzOCBAQCBDYWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoCiAgICAg
cmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAorc3RydWN0IE9iamVjdENvbnN0cnVjdG9yR2V0UHJv
dG90eXBlT2ZBcmdzIHsKKyAgICBib29sIGhhc1NraXBwZWRGaXJzdEZyYW1lOworICAgIEpTT2Jq
ZWN0KiBvYmplY3Q7CisgICAgRW5jb2RlZEpTVmFsdWUmIHJlc3VsdDsKK307CisKK3N0YXRpYyBT
dGFja0l0ZXJhdG9yOjpTdGF0dXMgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkNhbGxi
YWNrKFN0YWNrSXRlcmF0b3ImIGl0ZXIsIHZvaWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBPYmpl
Y3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mQXJncyYgYXJncyA9ICpyZWludGVycHJldF9jYXN0
PE9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZBcmdzKj4oY2FsbGJhY2tBcmdzKTsKKyAg
ICBpZiAoIWFyZ3MuaGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgYXJncy5oYXNTa2lw
cGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250
aW51ZTsKKyAgICB9CisKKyAgICBKU09iamVjdCogb2JqZWN0ID0gYXJncy5vYmplY3Q7CisgICAg
RW5jb2RlZEpTVmFsdWUmIHJlc3VsdCA9IGFyZ3MucmVzdWx0OworICAgIAorICAgIGlmIChvYmpl
Y3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAgICAgICByZXN1bHQg
PSBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5wcm90b3R5cGUoKSk7CisgICAgcmV0dXJuIFN0YWNr
SXRlcmF0b3I6OkRvbmU7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKCFl
eGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlcXVlc3RlZCBwcm90
b3R5cGUgb2YgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhbiBvYmplY3QuIikpKTsKICAgICBKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIFN0YWNrSXRlcmF0
b3IgaXRlciA9IGV4ZWMtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwotICAgIGlmICgoaXRlciA9PSBl
eGVjLT5lbmQoKSkgfHwgIW9iamVjdC0+YWxsb3dzQWNjZXNzRnJvbShpdGVyLT5jYWxsRnJhbWUo
KSkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QtPnByb3RvdHlwZSgpKTsKKyAgICBFbmNvZGVk
SlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgT2Jq
ZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkFyZ3MgYXJncyA9IHsgZmFsc2UsIG9iamVjdCwg
cmVzdWx0IH07CisgICAgaXRlci5pdGVyYXRlKG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBl
T2ZDYWxsYmFjaywgJmFyZ3MpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTI0KQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTMtMDgtMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIENv
bnZlcnRpbmcgU3RhY2tJdGVyYXRvciB0byBhIGNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDU2NC4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNlbmRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBS
ZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFja0NhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2tDYWxsYmFjazIpOgorCiAyMDEzLTA4LTMwICBC
cmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBC
dWlsZCBmaXggYWZ0ZXIgcjE1NDkyMS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiAxNTQ5MDIp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDYgKzEwOCwyMyBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJl
cXVlc3Q6Om9wZW4oRXhlY1N0YXRlCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKK3N0
cnVjdCBTZW5kQXJncyB7CisgICAgYm9vbCBoYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBib29s
IGhhc1ZpYWJsZUZyYW1lOworfTsKKworc3RhdGljIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBzZW5k
Q2FsbGJhY2soU3RhY2tJdGVyYXRvciYsIHZvaWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBTZW5k
QXJncyYgYXJncyA9ICpyZWludGVycHJldF9jYXN0PFNlbmRBcmdzKj4oY2FsbGJhY2tBcmdzKTsK
KyAgICBpZiAoIWFyZ3MuaGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgYXJncy5oYXNT
a2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpD
b250aW51ZTsKKyAgICB9CisKKyAgICBhcmdzLmhhc1ZpYWJsZUZyYW1lID0gdHJ1ZTsKKyAgICBy
ZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKK30KKwogSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0
OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kWE1MSHR0cFJlcXVlc3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IGltcGwoKS0+dXJsKCkpOwpAQCAtMTM1LDggKzE1Miw5IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVx
dWVzdDo6c2VuZChFeGVjU3RhdGUKICAgICB9CiAKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBl
eGVjLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoaXRlciAhPSBleGVjLT5lbmQoKSkg
eworICAgIFNlbmRBcmdzIGFyZ3MgPSB7IGZhbHNlLCBmYWxzZSB9OworICAgIGl0ZXIuaXRlcmF0
ZShzZW5kQ2FsbGJhY2ssICZhcmdzKTsKKyAgICBpZiAoYXJncy5oYXNWaWFibGVGcmFtZSkgewog
ICAgICAgICB1bnNpZ25lZCBsaW5lID0gMDsKICAgICAgICAgdW5zaWduZWQgdW51c3VlZENvbHVt
biA9IDA7CiAgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIHVudXN1ZWRD
b2x1bW4pOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NCwxNyArNTQsMzYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogCitzdHJ1Y3QgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrQXJncyB7Cisg
ICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4mIGZyYW1lczsKKyAgICBzaXplX3QgcmVtYWluaW5n
Q2FwYWNpdHlGb3JGcmFtZUNhcHR1cmU7Cit9OworCitzdGF0aWMgU3RhY2tJdGVyYXRvcjo6U3Rh
dHVzIGNyZWF0ZVNjcmlwdENhbGxTdGFja0NhbGxiYWNrKFN0YWNrSXRlcmF0b3ImIGl0ZXIsIHZv
aWQqIGNhbGxiYWNrQXJncykKK3sKKyAgICBDcmVhdGVTY3JpcHRDYWxsU3RhY2tBcmdzJiBhcmdz
ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrQXJncyo+KGNhbGxiYWNr
QXJncyk7CisgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4mIGZyYW1lcyA9IGFyZ3MuZnJhbWVz
OworCisgICAgaWYgKGFyZ3MucmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKKyAg
ICAgICAgdW5zaWduZWQgbGluZTsKKyAgICAgICAgdW5zaWduZWQgY29sdW1uOworICAgICAgICBp
dGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOworICAgICAgICBmcmFtZXMu
YXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5mdW5jdGlvbk5hbWUoKSwgaXRlci0+c291cmNl
VVJMKCksIGxpbmUsIGNvbHVtbikpOworCisgICAgICAgIGFyZ3MucmVtYWluaW5nQ2FwYWNpdHlG
b3JGcmFtZUNhcHR1cmUtLTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVl
OworICAgIH0KKyAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKK30KKwogUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3QgbWF4U3RhY2tT
aXplLCBib29sIGVtcHR5SXNBbGxvd2VkKQogewogICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+
IGZyYW1lczsKICAgICBpZiAoSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVj
U3RhdGU6OmN1cnJlbnRTdGF0ZSgpKSB7CiAgICAgICAgIENhbGxGcmFtZSogZnJhbWUgPSBleGVj
LT52bSgpLnRvcENhbGxGcmFtZTsKLSAgICAgICAgZm9yIChTdGFja0l0ZXJhdG9yIGl0ZXIgPSBm
cmFtZS0+YmVnaW4oKTsgaXRlciAhPSBmcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsr
aXRlcikgewotICAgICAgICAgICAgdW5zaWduZWQgbGluZTsKLSAgICAgICAgICAgIHVuc2lnbmVk
IGNvbHVtbjsKLSAgICAgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNv
bHVtbik7Ci0gICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5m
dW5jdGlvbk5hbWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbikpOwotICAgICAg
ICB9CisgICAgICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAgICAg
ICBDcmVhdGVTY3JpcHRDYWxsU3RhY2tBcmdzIGFyZ3MgPSB7IGZyYW1lcywgbWF4U3RhY2tTaXpl
IH07CisgICAgICAgIGl0ZXIuaXRlcmF0ZShjcmVhdGVTY3JpcHRDYWxsU3RhY2tDYWxsYmFjaywg
JmFyZ3MpOwogICAgIH0KICAgICBpZiAoZnJhbWVzLmlzRW1wdHkoKSAmJiAhZW1wdHlJc0FsbG93
ZWQpIHsKICAgICAgICAgLy8gTm8gZnJhbWVzIGZvdW5kLiBJdCBtYXkgaGFwcGVuIGluIHRoZSBj
YXNlIHdoZXJlCkBAIC03NSwyNSArOTQsNDkgQEAgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNyZWF0ZVNjcmlwdAogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFtZXMp
OwogfQogCi1QYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQorc3RydWN0IENyZWF0
ZVNjcmlwdENhbGxTdGFja0FyZ3MyIHsKKyAgICBib29sIG5lZWRUb1NraXBBRnJhbWU7CisgICAg
c2l6ZV90IHJlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworICAgIFZlY3RvcjxTY3Jp
cHRDYWxsRnJhbWU+JiBmcmFtZXM7Cit9OworCitzdGF0aWMgU3RhY2tJdGVyYXRvcjo6U3RhdHVz
IGNyZWF0ZVNjcmlwdENhbGxTdGFja0NhbGxiYWNrMihTdGFja0l0ZXJhdG9yJiBpdGVyLCB2b2lk
KiBjYWxsYmFja0FyZ3MpCiB7Ci0gICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwot
ICAgIEFTU0VSVChleGVjKTsKLSAgICBDYWxsRnJhbWUqIGZyYW1lID0gZXhlYy0+dm0oKS50b3BD
YWxsRnJhbWU7Ci0gICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUtPmJlZ2luKCk7Ci0gICAg
aWYgKGl0ZXIubnVtYmVyT2ZGcmFtZXMoKSA+IDEpCi0gICAgICAgICsraXRlcjsKLSAgICBmb3Ig
KDsgaXRlciAhPSBmcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsraXRlcikgeworICAg
IENyZWF0ZVNjcmlwdENhbGxTdGFja0FyZ3MyJiBhcmdzID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Q3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrQXJnczIqPihjYWxsYmFja0FyZ3MpOworICAgIFZlY3RvcjxTY3Jp
cHRDYWxsRnJhbWU+JiBmcmFtZXMgPSBhcmdzLmZyYW1lczsKKworICAgIGlmIChhcmdzLm5lZWRU
b1NraXBBRnJhbWUpIHsKKyAgICAgICAgYXJncy5uZWVkVG9Ta2lwQUZyYW1lID0gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICB9CisKKyAgICBpZiAo
YXJncy5yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgewogICAgICAgICAvLyBUaGlz
IGVhcmx5IGV4aXQgaXMgbmVjZXNzYXJ5IHRvIG1haW50YWluIG91ciBvbGQgYmVoYXZpb3VyCiAg
ICAgICAgIC8vIGJ1dCB0aGUgc3RhY2sgdHJhY2Ugd2UgcHJvZHVjZSBub3cgaXMgY29tcGxldGUg
YW5kIGhhbmRsZXMgYWxsCiAgICAgICAgIC8vIHdheXMgaW4gd2hpY2ggY29kZSBtYXkgYmUgcnVu
bmluZwogICAgICAgICBpZiAoIWl0ZXItPmNhbGxlZSgpICYmIGZyYW1lcy5zaXplKCkpCi0gICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOwor
CiAgICAgICAgIHVuc2lnbmVkIGxpbmU7CiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbjsKICAgICAg
ICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKICAgICAgICAgZnJh
bWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoaXRlci0+ZnVuY3Rpb25OYW1lKCksIGl0ZXItPnNv
dXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pKTsKKworICAgICAgICBhcmdzLnJlbWFpbmluZ0NhcGFj
aXR5Rm9yRnJhbWVDYXB0dXJlLS07CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250
aW51ZTsKICAgICB9CisgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7Cit9CisKK1Bhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCit7CisgICAgVmVjdG9yPFNjcmlwdENhbGxG
cmFtZT4gZnJhbWVzOworICAgIEFTU0VSVChleGVjKTsKKyAgICBDYWxsRnJhbWUqIGZyYW1lID0g
ZXhlYy0+dm0oKS50b3BDYWxsRnJhbWU7CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUt
PmJlZ2luKCk7CisgICAgc2l6ZV90IG51bWJlck9mRnJhbWVzID0gaXRlci5udW1iZXJPZkZyYW1l
cygpOworICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0FyZ3MyIGFyZ3MgPSB7IChudW1iZXJPZkZy
YW1lcyA+IDEpLCBtYXhTdGFja1NpemUsIGZyYW1lcyB9OworICAgIGl0ZXIuaXRlcmF0ZShjcmVh
dGVTY3JpcHRDYWxsU3RhY2tDYWxsYmFjazIsICZhcmdzKTsKICAgICByZXR1cm4gU2NyaXB0Q2Fs
bFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210203</attachid>
            <date>2013-08-31 12:57:28 -0700</date>
            <delta_ts>2013-08-31 12:57:28 -0700</delta_ts>
            <desc>jsc benchmark run 3</desc>
            <filename>jsc-bench3.txt</filename>
            <type>text/plain</type>
            <size>36447</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">MTk2NC8xOTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW5lcmF0aW5nIGJlbmNobWFyayByZXBvcnQg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvSW50ZXJuYWwvU3VuU3BpZGVyVjhTcGlkZXJPY3RhbmVL
cmFrZW5KU0JlbmNoSlNSZWdyZXNzRFNQX2FsYmlvbl8yMDEzMDgzMV8wMTQzX3JlcG9ydC50eHQK
QW5kIHJhdyBkYXRhIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M0L0ludGVybmFsL1N1blNwaWRlclY4
U3BpZGVyT2N0YW5lS3Jha2VuSlNCZW5jaEpTUmVncmVzc0RTUF9hbGJpb25fMjAxMzA4MzFfMDE0
My5qc29uCgpCZW5jaG1hcmsgcmVwb3J0IGZvciBTdW5TcGlkZXIsIFY4U3BpZGVyLCBPY3RhbmUs
IEtyYWtlbiwgSlNCZW5jaCwgSlNSZWdyZXNzLCBhbmQgRFNQIG9uIGFsYmlvbiAoTWFjUHJvNSwx
KS4KClZNcyB0ZXN0ZWQ6CiJDb25mIzEiIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M1L09wZW5Tb3Vy
Y2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9EdW1wUmVuZGVyVHJlZSAocjE1NDkwOCkKIkNvbmYjMiIg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0R1
bXBSZW5kZXJUcmVlIChyMTU0OTA4KQoKQ29sbGVjdGVkIDEyIHNhbXBsZXMgcGVyIGJlbmNobWFy
ay9WTSwgd2l0aCA0IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxs
IHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiBVc2VkIDEKYmVuY2htYXJrIGl0
ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNp
ZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWlu
Zy4gUmVwb3J0aW5nCmJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5j
ZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAg
ICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjI3OTkrLTAuMjYwMyAgICAgPyAgICAgIDcuMzEw
NistMC4yOTM3ICAgICAgICA/CiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMDQ1MCstMC4xMjUzICAgICAgICAgICAg
Ny45NjI4Ky0wLjA2NjEgICAgICAgICAgbWlnaHQgYmUgMS4wMTAzeCBmYXN0ZXIKICAgM2QtcmF5
dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS4yMjgxKy0wLjM0NjggICAgICAgICAgICA5LjA4ODgrLTAuMjQ4NSAgICAgICAgICBtaWdo
dCBiZSAxLjAxNTN4IGZhc3RlcgogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0OTcrLTAuMzQ2NiAgICAgICAgICAg
IDIuNTI1MistMC4zMzEzICAgICAgICAKICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4zOTM3Ky0wLjA2NTEgICAgICAg
ICAgICA3LjM2NTErLTAuMDYxMiAgICAgICAgCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTMzMSstMC4wNDk5ICAg
ICA/ICAgICAgMy45NTE5Ky0wLjA1NDYgICAgICAgID8KICAgYWNjZXNzLW5zaWV2ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MjQ5Ky0wLjA4
MTggICAgICAgICAgICA0Ljg4MjUrLTAuMTA1NCAgICAgICAgCiAgIGJpdG9wcy0zYml0LWJpdHMt
aW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODAyNCst
MC4wNDIxICAgICBeICAgICAgMS43MTQ3Ky0wLjAyODYgICAgICAgIF4gZGVmaW5pdGVseSAxLjA1
MTF4IGZhc3RlcgogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjQ2NTYrLTAuMDkzMSAgICAgPyAgICAgIDYuNDkxMCst
MC4wNjk4ICAgICAgICA/CiAgIGJpdG9wcy1iaXR3aXNlLWFuZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjQxMistMC4wMzQ4ICAgICAgICAgICAgMi41
ODYzKy0wLjA3MTEgICAgICAgICAgbWlnaHQgYmUgMS4wMjEyeCBmYXN0ZXIKICAgYml0b3BzLW5z
aWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC40NzM4Ky0wLjA1NDQgICAgICAgICAgICA0LjQ0OTArLTAuMDU3NyAgICAgICAgCiAgIGNvbnRy
b2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuODEzOSstMC4wNTA5ICAgICA/ICAgICAgMi44MTg0Ky0wLjAzMzMgICAgICAgID8KICAg
Y3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNS43Mzc5Ky0wLjI5MzUgICAgID8gICAgICA1LjkwMTQrLTAuMzE4NSAgICAgICAg
PyBtaWdodCBiZSAxLjAyODV4IHNsb3dlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjExNjkrLTAuMDc1NyAgICAg
PyAgICAgIDMuMTU3NSstMC4wNTg1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMHggc2xvd2VyCiAg
IGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuODYzOCstMC4wNTEzICAgICA/ICAgICAgMi44NzI1Ky0wLjA1MzEgICAgICAg
ID8KICAgZGF0ZS1mb3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMi4zMTYyKy0xLjAxOTcgICAgID8gICAgIDEyLjM3MTYrLTAuOTQ4NiAg
ICAgICAgPwogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4LjUzNjIrLTAuNjE0MiAgICAgPyAgICAgIDguNTk5NCstMC42
OTYzICAgICAgICA/CiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuODM0MistMC4wNTc0ICAgICA/ICAgICAgMy44Mzg2
Ky0wLjA0NzggICAgICAgID8KICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4wMTYzKy0wLjAzOTkgICAgICAgICAgIDEw
LjAxNDIrLTAuMDU1MyAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzcwMSstMC4wNDU3ICAgICA/ICAg
ICAgMi43OTE3Ky0wLjA1NTEgICAgICAgID8KICAgcmVnZXhwLWRuYSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45NzY0Ky0wLjUyOTUgICAg
ICAgICAgIDExLjkzMzkrLTAuNTQ4NyAgICAgICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMDEyMSstMC41MjYw
ICAgICA/ICAgICAgNi4xMTU4Ky0wLjUxNzQgICAgICAgID8gbWlnaHQgYmUgMS4wMTcyeCBzbG93
ZXIKICAgc3RyaW5nLWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMS41ODQxKy0wLjE1MDkgICAgICAgICAgIDExLjU3NTcrLTAuMTQ1NSAg
ICAgICAgCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTQuNDMyNSstMC4xNzc0ICAgICAgICAgICAxNC40MjA3Ky0wLjEx
NTEgICAgICAgIAogICBzdHJpbmctdW5wYWNrLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMwLjM2MjcrLTAuMzg3MyAgICAgICAgICAgMzAuMTEwOCst
MC4yMDQ5ICAgICAgICAKICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41MjUzKy0wLjIyMTMgICAgID8gICAgICA4LjU5
OTgrLTAuMjY0MyAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy40NDc1Ky0wLjA5OTAgICAgICAgICAg
ICA3LjQ0MDQrLTAuMTA5MSAgICAgICAgICBtaWdodCBiZSAxLjAwMTB4IGZhc3RlcgogICA8Z2Vv
bWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1LjkzNjkrLTAuMDc5NSAgICAgICAgICAgIDUuOTMwMSstMC4wOTAwICAgICAgICAgIG1p
Z2h0IGJlIDEuMDAxMXggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODQzNCstMC4wNjU2ICAgICAgICAg
ICAgNC44MjE0Ky0wLjA3NTMgICAgICAgICAgbWlnaHQgYmUgMS4wMDQ2eCBmYXN0ZXIKCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgClY4U3BpZGVyOgogICBjcnlwdG8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc4LjY1ODYrLTAu
NDk4MCAgICAgICAgICAgNzguNDc2MSstMC4yOTIzICAgICAgICAKICAgZGVsdGFibHVlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ny45MzU5
Ky0xLjQyODUgICAgICAgICAgIDk3Ljc2ODErLTEuMTEwOCAgICAgICAgCiAgIGVhcmxleS1ib3ll
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjgu
NzUyMCstMC43NzU2ICAgICAgICAgICA2OC40MjgzKy0wLjU2NDEgICAgICAgIAogICByYXl0cmFj
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQwLjI0OTYrLTIuOTQyNCAgICAgPyAgICAgNDEuNzY1NistMy44NzE0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDM3N3ggc2xvd2VyCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTYuMDUxOCstMC4zNjkwICAgICAgICAgICA5
Ni4wNTAxKy0wLjM0NjAgICAgICAgIAogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA5LjI1NDkrLTEuMTYzNSAgICAgICAg
ICAxMDguOTU0OCstMS4xMzQxICAgICAgICAKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OC4zNDk5Ky0yLjcxMjAgICAg
ICAgICAgIDU4LjE2MzcrLTIuNjA2MiAgICAgICAgCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc4LjQ2NDcrLTAuNjc5
NCAgICAgPyAgICAgNzguNTE1MystMC42NDE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwNnggc2xv
d2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzQuNjg2MistMC44MzQ0ICAgICA/ICAgICA3NC44OTI3Ky0wLjg5MTcg
ICAgICAgID8gbWlnaHQgYmUgMS4wMDI4eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MC41MDE0Ky0xLjA2
MzEgICAgID8gICAgIDcwLjkxODIrLTEuMjU2OSAgICAgICAgPyBtaWdodCBiZSAxLjAwNTl4IHNs
b3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKT2N0YW5lIGFuZCBWOHY3OgogICBl
bmNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAuNDUzNjArLTAuMDAwNDkgICAgPyAgICAgMC40NTM4MCstMC4wMDA2MyAgICAgICA/
CiAgIGRlY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOC4yNzM3OCstMC4wMDkwNyAgICAgICAgICA4LjI3MzI3Ky0wLjAxMTQ3ICAg
ICAgIAogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgIDAuNjUzNjgrLTAuMDgzODggICAgPyAgICAgMC42NzEzMistMC4wNzAw
MCAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MHggc2xvd2VyCiAgIGVhcmxleSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44NTA5NistMC4w
MTMzMCAgICA/ICAgICAwLjg1OTc3Ky0wLjAxNTU2ICAgICAgID8gbWlnaHQgYmUgMS4wMTA0eCBz
bG93ZXIKICAgYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEyLjE0NzczKy0wLjIxOTI2ICAgICAgICAgMTIuMDc0ODYrLTAuMjAy
MDkgICAgICAgCiAgIHJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeDIgICAgICAgNC4yMjY4MCstMC4wNTczMSAgICAgICAgICA0LjE5NDQ2Ky0w
LjA0Mjc0ICAgICAgIAogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHgyICAgICAgMjkuNTk4MDUrLTAuMDMzNjggICAgISAgICAyOS44MDIz
NystMC4wNjYyMSAgICAgICAhIGRlZmluaXRlbHkgMS4wMDY5eCBzbG93ZXIKICAgcmljaGFyZHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAw
LjMwNDA2Ky0wLjAwMzg1ICAgID8gICAgIDAuMzA2NDArLTAuMDA1MTggICAgICAgPwogICBzcGxh
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAg
ICAgIDAuNjU4NjMrLTAuMDMxNjkgICAgICAgICAgMC42NDQ4MystMC4wMTk5OSAgICAgICAgIG1p
Z2h0IGJlIDEuMDIxNHggZmFzdGVyCiAgIG5hdmllci1zdG9rZXMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAxMC4zOTUwMistMC4wMTAwOCAgICAgICAg
IDEwLjM5MDc3Ky0wLjAxMDQ0ICAgICAgIAogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDEzODQrLTAuMDQyNTkgICAg
PyAgICAgMC40MTM5OCstMC4wNDMwNSAgICAgICA/CiAgIGpxdWVyeSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMDkyNystMC42NjY5
NSAgICA/ICAgICA1LjExMzIwKy0wLjY2ODIzICAgICAgID8KICAgZ2JlbXUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDk0LjIzMzEzKy00
Ljc2MjU4ICAgICAgICAgOTMuMTM0MzcrLTUuNDM5MzkgICAgICAgICBtaWdodCBiZSAxLjAxMTh4
IGZhc3RlcgogICBtYW5kcmVlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHgyICAgICAxODMuMzk3NzgrLTAuNjQ1MjYgICAgPyAgIDE4My44MTc2MystMC41
MzY5MCAgICAgICA/CiAgIHBkZmpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICA5Mi40MDE1NCstMC4xOTI0MSAgICA/ICAgIDkyLjc3Njk5
Ky0wLjM0MDExICAgICAgID8KICAgYm94MmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDMzLjk5MjIxKy0wLjUwNzkzICAgID8gICAgMzQu
MTA4MjcrLTAuNDMwOTggICAgICAgPwoKVjh2NzoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjA4NzQxKy0wLjAyMTc5
ICAgID8gICAgIDcuMTA1MTMrLTAuMDE3NDkgICAgICAgPyBtaWdodCBiZSAxLjAwMjV4IHNsb3dl
cgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMzgzNzcrLTAuMDM0NjMgICAgPyAgICAgMi4zODk0OSstMC4wMjg4OSAg
ICAgICA/IG1pZ2h0IGJlIDEuMDAyNHggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45MzY2NSstMC4wMTg1
MiAgICA/ICAgICAwLjk0MjIyKy0wLjAxNjgxICAgICAgID8gbWlnaHQgYmUgMS4wMDU5eCBzbG93
ZXIKCk9jdGFuZSBpbmNsdWRpbmcgVjh2NzoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjY1MjczKy0wLjQxMDczICAg
ICAgICAgMzUuNjQ5MzcrLTAuNDg5MDUgICAgICAgICBtaWdodCBiZSAxLjAwMDF4IGZhc3Rlcgog
ICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuOTAzMzArLTAuMDkyMzEgICAgPyAgICAgNi45MTMzMistMC4xMTcwNSAgICAg
ICA/IG1pZ2h0IGJlIDEuMDAxNXggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMDg1NistMC4wMjI3MiAg
ICA/ICAgICAxLjMxNTg4Ky0wLjAyODAzICAgICAgID8gbWlnaHQgYmUgMS4wMDU2eCBzbG93ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCktyYWtlbjoKICAgYWktYXN0YXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDEuNTY5
Ky0wLjc1OSAgICAgICAgICAgIDUwMC44NjArLTAuNDkzICAgICAgICAgCiAgIGF1ZGlvLWJlYXQt
ZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ0
LjQ3MistNi4wNzYgICAgICAgICAgICAyNDIuMDc1Ky0yLjc5NSAgICAgICAgIAogICBhdWRpby1k
ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDI5OC45NDkrLTMuMDE1ICAgICAgICAgICAgMjk3Ljk5NCstMC42NjIgICAgICAgICAKICAgYXVk
aW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNDEuMzE4Ky0wLjU1MSAgICAgID8gICAgIDE0MS4zNzYrLTAuNDQwICAgICAgICAgPwog
ICBhdWRpby1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIzNS43OTkrLTEuNzk0ICAgICAgPyAgICAgMjM1LjgzNSstMi4wMTIgICAgICAg
ICA/CiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjg0LjUyNistMS4xNDAgICAgICA/ICAgICAyODQuOTM2Ky0xLjUyMyAg
ICAgICAgID8KICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNTAuNTE3Ky0wLjMwMCAgICAgICAgICAgIDE1MC4zODcrLTAu
MTk5ICAgICAgICAgCiAgIGltYWdpbmctZ2F1c3NpYW4tYmx1ciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzgzLjgwOSstMC4zMzIgICAgICA/ICAgICAzODMuODQ4
Ky0wLjUwMiAgICAgICAgID8KICAganNvbi1wYXJzZS1maW5hbmNpYWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzYuODk3Ky0wLjQ0NSAgICAgIF4gICAgICA3
NS43NTcrLTAuMjY1ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE1MXggZmFzdGVyCiAgIGpzb24t
c3RyaW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTAwLjExOSstMC4zMjIgICAgICBeICAgICAgOTguMzkyKy0wLjk3NiAgICAgICAgIF4gZGVm
aW5pdGVseSAxLjAxNzZ4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNi44NzQrLTMuNDU1ICAgICAgICAg
ICAgMTA1Ljg0OSstMi41OTkgICAgICAgICAKICAgc3RhbmZvcmQtY3J5cHRvLWNjbSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjAuNzU4Ky0xLjcwOCAgICAg
ID8gICAgIDEyMS44OTgrLTIuNTI2ICAgICAgICAgPwogICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1Mi4yNDkrLTEuMjE2
ICAgICAgPyAgICAgMjU0Ljk0OCstMS45NjIgICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwN3ggc2xv
d2VyCiAgIHN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0aXZlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk4LjA5MCstMC41MzMgICAgICA/ICAgICAgOTkuMTU4Ky0wLjgzMSAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTA5eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEzLjk5NistMC41
NzYgICAgICAgICAgICAyMTMuODA4Ky0wLjQyNSAgICAgICAgICAgbWlnaHQgYmUgMS4wMDA5eCBm
YXN0ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxODMuNTQ2Ky0wLjY1MyAgICAgICAgICAgIDE4My4yMzUrLTAuNTA1
ICAgICAgICAgICBtaWdodCBiZSAxLjAwMTd4IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1OC40OTYrLTAu
NzEwICAgICAgICAgICAgMTU3Ljk5OSstMC41NDkgICAgICAgICAgIG1pZ2h0IGJlIDEuMDAzMXgg
ZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAgICBDb25mIzIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU0JlbmNoOgogICBhbWF6b24g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjY2NjcrLTAuMzEyOCAgICAgPyAgICAgIDkuODMzMystMC4zNjY4ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE3Mnggc2xvd2VyCiAgIGZhY2Vib29rICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuNTAwMCstMC41MDY5ICAgICA/ICAgICAz
Ny42NjY3Ky0wLjY4MTggICAgICAgID8KICAgZ29vZ2xlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NS44MzMzKy0wLjk3MDUgICAgID8g
ICAgIDY2LjE2NjcrLTEuMDA3NiAgICAgICAgPwogICB0d2l0dGVyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjMzMzMrLTAuMzEyOCAg
ICAgPyAgICAgIDkuNTgzMystMC4zMjcyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2OHggc2xvd2Vy
CiAgIHlhaG9vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMzMzMystMC4zMTI4ICAgICA/ICAgICAgMy41ODMzKy0wLjMyNzIgICAg
ICAgID8gbWlnaHQgYmUgMS4wNzUweCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuMTMzMystMC4yMDUx
ICAgICA/ICAgICAyNS4zNjY3Ky0wLjIwMTUgICAgICAgID8gbWlnaHQgYmUgMS4wMDkzeCBzbG93
ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNC45MDE5Ky0wLjI4ODggICAgID8gICAgIDE1LjI3NjcrLTAuMjg5NyAg
ICAgICAgPyBtaWdodCBiZSAxLjAyNTJ4IHNsb3dlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljk5NjQrLTAuNDMx
MiAgICAgPyAgICAgIDkuNDMxMistMC40NTczICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4M3ggc2xv
d2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAgICBDb25mIzIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFkYXB0LXRv
LWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjEuMzg1MCstMC4wMzIyICAgICA/ICAgICAyMS40MDU0Ky0wLjAyOTUgICAgICAgID8KICAgYWxp
YXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC45MzYxKy0wLjAzOTAgICAgID8gICAgICAwLjk2NjErLTAuMDM1MyAgICAgICAgPyBt
aWdodCBiZSAxLjAzMjB4IHNsb3dlcgogICBhbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg2ODErLTEuMzEzOCAgICAgICAg
ICAgIDMuODYzMystMS4zMjQ3ICAgICAgICAKICAgYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45MDUxKy0wLjA1MzkgICAg
ICAgICAgICAwLjg5MzgrLTAuMDU2NSAgICAgICAgICBtaWdodCBiZSAxLjAxMjZ4IGZhc3Rlcgog
ICBhcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA4LjQ2NDErLTIuMDA4NSAgICAgPyAgICAgIDguNTAzOSstMS45OTg4ICAgICAg
ICA/CiAgIGFycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2VzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzguMjAxMCstMzAuNzgyNSAgICAgICAgICA2OC42NjgyKy0yNC4yMDY0
ICAgICAgICAgbWlnaHQgYmUgMS4xMzg4eCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMzI4Ky0wLjA0
NDkgICAgID8gICAgICA1LjE0MTgrLTAuMDYwNiAgICAgICAgPwogICBhcnJheS13aXRoLWRvdWJs
ZS1pbmNyZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAxMjEr
LTAuMTEyNSAgICAgICAgICAgIDMuOTU4MystMC4wNDg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEz
NnggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLW11bC1hZGQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuMjIyOCstMC4wNDYzICAgICA/ICAgICAgNy4yNTI3Ky0w
LjA1MDEgICAgICAgID8KICAgYXJyYXktd2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41MDE2Ky0wLjAzMTkgICAgICAgICAgICA3LjUw
MDErLTAuMDM3MiAgICAgICAgCiAgIGFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguODczMystMC4wNDIxICAgICA/ICAgICAg
OC44ODQyKy0wLjA0NjcgICAgICAgID8KICAgYXJyYXktd2l0aC1pbnQzMi1vci1kb3VibGUtc3Vt
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41OTMyKy0wLjA0NzMgICAgID8g
ICAgICA3LjYxMjArLTAuMDU1OSAgICAgICAgPwogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxv
Yy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgMTE5LjA2NTIrLTAuOTkwNSAg
ICAgICAgICAxMTguNjU5MSstMC45MzEyICAgICAgICAKICAgQXJyYXlCdWZmZXItRGF0YVZpZXct
YWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC44MDY1Ky0zLjUw
OTUgICAgICAgICAgIDM4LjE3ODArLTMuOTIzMyAgICAgICAgICBtaWdodCBiZSAxLjAxNjV4IGZh
c3RlcgogICBBcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZzZXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4LjMzOTArLTAuMDU4MCAgICAgPyAgICAgIDguMzU1NCstMC4wMzU3
ICAgICAgICA/CiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQg
ICAgICAgICAgICAgICAgICAgICAyMjEuNjI0OCstMjMuODEyOCAgICA/ICAgIDIyMi4xNDMzKy0y
My42NzQ1ICAgICAgID8KICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmct
bGl2ZWQtZnJhZ21lbnRlZCAgICAgICAgIDE3NC4wNDI3Ky0yLjYwNTIgICAgICAgICAgMTczLjk0
NzkrLTIuNzY0NiAgICAgICAgCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAxMjQuNDgwNistMi4wNzM1ICAgICAgICAgIDEy
NC4yNzE1Ky0xLjM1MzEgICAgICAgIAogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9u
Zy1saXZlZC1idWZmZXIgICAgICAgICAgICAgICAgICAgIDc1LjE3NDcrLTEwLjE3MDIgICAgICAg
ICAgNzQuNzMyNistMTAuMjgwNSAgICAgICAKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9j
LWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy40MDc3Ky0zLjkxODQgICAg
ICAgICAgIDM3LjEwNDYrLTMuNzI2NCAgICAgICAgCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1h
bGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuNjgzOSstMy45OTAy
ICAgICAgICAgICAzMi41NDkxKy0zLjkwMjggICAgICAgIAogICBiaWctaW50LW11bCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU5MTMrLTAu
MDM4MCAgICAgICAgICAgIDQuNTY5NCstMC4wNDMyICAgICAgICAKICAgYm9vbGVhbi10ZXN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xNTk5
Ky0wLjA1NjYgICAgID8gICAgICA0LjE3OTcrLTAuMDY1MSAgICAgICAgPwogICBicmFuY2gtZm9s
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjU0MzUrLTAuMDUxNiAgICAgICAgICAgIDQuNDk3OSstMC4wNDA5ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEwMXggZmFzdGVyCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuMzg5MCstMC4wNTQ4ICAgICAgICAgICAxMy4z
ODYzKy0wLjA0MzMgICAgICAgIAogICBjZWxsLWFyZ3VtZW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjk4NTIrLTAuMjUyMCAgICAgPyAgICAg
MTQuMTQ1OSstMC4yMjQwICAgICAgICA/IG1pZ2h0IGJlIDEuMDExNXggc2xvd2VyCiAgIGNmZy1z
aW1wbGlmeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNjQzMSstMC4wNTE1ICAgICAgICAgICAgMy42MzY3Ky0wLjA1OTUgICAgICAgIAogICBj
bXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDExLjcxNTUrLTAuMzUxOSAgICAgICAgICAgMTEuNTAyMistMC4yODU4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE4NXggZmFzdGVyCiAgIGNvbnN0YW50LXRlc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTY5MCstMC4wODk4ICAgICA/
ICAgICAgOC4xODQ3Ky0wLjA2NTEgICAgICAgID8KICAgRGF0YVZpZXctY3VzdG9tLXByb3BlcnRp
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzNS44MTA3Ky0yLjc3NDMg
ICAgID8gICAgMTM2LjU2NTkrLTMuMzQ0MiAgICAgICAgPwogICBkZWxheS10ZWFyLW9mZi1hcmd1
bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI2NDUrLTAu
MDQ1OSAgICAgPyAgICAgIDMuMjkwMystMC4wMzYyICAgICAgICA/CiAgIGRpcmVjdC1hcmd1bWVu
dHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuODE0
MCstMC4wNDM3ICAgICAgICAgICAgMC44MDA3Ky0wLjAzNzEgICAgICAgICAgbWlnaHQgYmUgMS4w
MTY2eCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMC4yNzU4Ky0wLjA0NDAgICAgICAgICAgIDEwLjI1NTEr
LTAuMDI4MSAgICAgICAgCiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTIzNCstMC42Mzk1ICAgICAgICAgICAgNi4y
OTIxKy0wLjYxMTAgICAgICAgICAgbWlnaHQgYmUgMS4wMzY4eCBmYXN0ZXIKICAgZW1wdHktc3Ry
aW5nLXBsdXMtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
My41Nzc0Ky0wLjMzMjQgICAgID8gICAgIDEzLjYxMDMrLTAuMzIxMCAgICAgICAgPwogICBlbXNj
cmlwdGVuLWN1YmUyaGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ4LjYxNTgrLTMuMTA2NCAgICAgPyAgICAgNDguODAzMistMy4xNjMyICAgICAgICA/CiAg
IGVtc2NyaXB0ZW4tbWVtb3BzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDk3NjcuNjc2NistMzI1LjU3ODAgICA/ICAgOTc3Mi40OTk2Ky0zMzIuMjY3NCAgICAg
ID8KICAgZXh0ZXJuYWwtYXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4yMjc3Ky0wLjE0MjcgICAgICAgICAgICAyLjIyMTUrLTAuMTU1NSAg
ICAgICAgCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuNjk5OCstMC4yNTE2ICAgICAgICAgICAgMy42MjkxKy0wLjM2
MzcgICAgICAgICAgbWlnaHQgYmUgMS4wMTk1eCBmYXN0ZXIKICAgRmxvYXQzMkFycmF5LW1hdHJp
eC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yMTc3Ky0w
LjE5NzUgICAgID8gICAgICA2LjIyNzUrLTAuMjI3MSAgICAgICAgPwogICBGbG9hdDMyQXJyYXkt
dG8tRmxvYXQ2NEFycmF5LXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyLjg4
NjUrLTAuNjc4NCAgICAgICAgICAgOTIuNDg4MistMC45NTUxICAgICAgICAKICAgRmxvYXQ2NEFy
cmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
Ni42Mjc4Ky0zLjQ3ODEgICAgICAgICAgMTI2LjEzNDMrLTMuODYzMiAgICAgICAgCiAgIEZsb2F0
NjRBcnJheS10by1JbnQxNkFycmF5LXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMTIuNzc0NSstMC42NDAxICAgICAgICAgIDExMi42Mzc2Ky0wLjYwMzggICAgICAgIAogICBm
b2xkLWRvdWJsZS10by1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI0LjE5NTArLTAuMjY1MSAgICAgPyAgICAgMjQuNDc0NystMC40ODY3ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTQ3MSstMC4wNDQ1ICAgICA/
ICAgICAgMi45NTEzKy0wLjA1NjUgICAgICAgID8KICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41MzgzKy0wLjEzNTYg
ICAgID8gICAgICA0LjU5MzIrLTAuMTE0MSAgICAgICAgPyBtaWdodCBiZSAxLjAxMjF4IHNsb3dl
cgogICBnZXQtYnktaWQtY2hhaW4tZnJvbS10cnktYmxvY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjMwMDArLTAuMDcyNiAgICAgICAgICAgIDYuMjUzNistMC4wMzEyICAg
ICAgICAKICAgZ2V0LWJ5LWlkLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMS44NjI2Ky0wLjMwMzggICAgID8gICAgIDIyLjAzNjgrLTAuMzUy
MCAgICAgICAgPwogICBnZXQtYnktaWQtc2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIyLjE2MDMrLTAuMzEwMCAgICAgICAgICAgMjEuOTUwMCst
MC4zNTA5ICAgICAgICAKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0My43MDA3Ky0xLjA1NDggICAgID8gICAgIDQ0Ljc2
ODArLTEuNDcyMCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDR4IHNsb3dlcgogICBIYXNoTWFwLXB1
dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUx
LjI4NjMrLTAuNDc3OSAgICAgISAgICAgNTMuNDYyMSstMC43NTI4ICAgICAgICAhIGRlZmluaXRl
bHkgMS4wNDI0eCBzbG93ZXIKICAgSGFzaE1hcC1zdHJpbmctcHV0LWdldC1pdGVyYXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MS42NjczKy0wLjU5ODIgICAgID8gICAgIDYy
Ljk4MTArLTEuMDg0NyAgICAgICAgPyBtaWdodCBiZSAxLjAyMTN4IHNsb3dlcgogICBpbXVsLWRv
dWJsZS1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE2LjYxMTkrLTAuMDI4MSAgICAgPyAgICAgMTYuNzA2NistMC4xNjE2ICAgICAgICA/CiAgIGlt
dWwtaW50LW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTQuOTMwMCstMC4xNjY2ICAgICAgICAgICAxNC44OTYzKy0wLjEzNTMgICAgICAgIAog
ICBpbXVsLW1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIwLjkzMDQrLTAuMDQwNyAgICAgPyAgICAgMjEuNjQwMystMS4wNTYyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDMzOXggc2xvd2VyCiAgIGluLWZvdXItY2FzZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuODE0MistMC4wNTg4ICAg
ICA/ICAgICAyNC44NzQ3Ky0wLjA2MTAgICAgICAgID8KICAgaW4tb25lLWNhc2UtZmFsc2UgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS42NzM3Ky0wLjA0
MzMgICAgICAgICAgIDExLjY1OTcrLTAuMDUzNyAgICAgICAgCiAgIGluLW9uZS1jYXNlLXRydWUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNzM0MSst
MC4xMTI2ICAgICAgICAgICAxMS42OTM4Ky0wLjA2NDcgICAgICAgIAogICBpbi10d28tY2FzZXMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjA3
OTIrLTAuMDcxMCAgICAgPyAgICAgMTIuMDg3NCstMC4wODk2ICAgICAgICA/CiAgIGluZGV4ZWQt
cHJvcGVydGllcy1pbi1vYmplY3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuOTE1MCstMC4wNDgzICAgICA/ICAgICAgMy45MzkyKy0wLjA3MjcgICAgICAgID8KICAgaW5s
aW5lLWFyZ3VtZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS40NTAxKy0wLjA1MjUgICAgICAgICAgICAxLjQzMDQrLTAuMDM4OSAgICAgICAgICBt
aWdodCBiZSAxLjAxMzh4IGZhc3RlcgogICBpbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjE1MjQrLTEuNzUwNSAgICAgICAg
ICAgMjQuNjE0OCstMC4yOTQ4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxOHggZmFzdGVyCiAgIGlu
bGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDYuNTIxNCstMC4wODIyICAgICA/ICAgICAgNi43MzI1Ky0wLjIyODggICAgICAgID8g
bWlnaHQgYmUgMS4wMzI0eCBzbG93ZXIKICAgaW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy44NTQ4Ky0wLjEzMzEgICAgID8g
ICAgIDEzLjg2NjcrLTAuMTYzNiAgICAgICAgPwogICBpbnQtb3Itb3RoZXItYWJzLXRoZW4tZ2V0
LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjM3MTkrLTAuMDY2MCAg
ICAgPyAgICAgIDguNDQ5NistMC4xODQzICAgICAgICA/CiAgIGludC1vci1vdGhlci1hYnMtemVy
by10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuNDc3MSstMC4w
ODY0ICAgICA/ICAgICAzNC41Mzg2Ky0wLjE5MTEgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFk
ZC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42OTUy
Ky0wLjAzNjQgICAgID8gICAgICA5Ljc0NjArLTAuMDQxOCAgICAgICAgPwogICBpbnQtb3Itb3Ro
ZXItYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjkzMzQrLTAuMDY0MiAgICAgPyAgICAgIDkuOTQ4NSstMC4wNzg4ICAgICAgICA/CiAgIGludC1v
ci1vdGhlci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDUuODE0NistMC4wNDUzICAgICA/ICAgICAgNS44NDQ3Ky0wLjA2MzMgICAgICAgID8KICAg
aW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNi43NjQwKy0wLjA0NzkgICAgICAgICAgICA2LjcyNDkrLTAuMDQ1MiAgICAgICAg
CiAgIGludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuODk2MSstMC4wNjE4ICAgICAgICAgICAgNi44NDI0Ky0wLjA2OTYgICAg
ICAgIAogICBpbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjcyMDgrLTAuMDU3NCAgICAgPyAgICAgIDUuNzMxNistMC4wNTI0
ICAgICAgICA/CiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDYuMTE0NSstMC4wNDY3ICAgICA/ICAgICAgNi4xNDkxKy0w
LjA0NTggICAgICAgID8KICAgaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41OTU1Ky0wLjA3MDIgICAgID8gICAgICA3LjYw
MzUrLTAuMDU1NSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnkt
dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjQ4NjIrLTEuMTE2NyAgICAgICAgICAg
MzUuMjI5NSstMC44ODY4ICAgICAgICAKICAgaW50LW9yLW90aGVyLXN1Yi10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4wODY4Ky0wLjA1NDYgICAgID8g
ICAgIDEwLjExNjQrLTAuMDkxNiAgICAgICAgPwogICBpbnQtb3Itb3RoZXItc3ViICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljc4ODgrLTAuMDQ1MCAg
ICAgPyAgICAgIDcuNzk4MSstMC4wNTk1ICAgICAgICA/CiAgIGludC1vdmVyZmxvdy1sb2NhbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuMjI4MCstMC4w
NTAwICAgICAgICAgICAxMS4xOTA2Ky0wLjAzNTMgICAgICAgIAogICBJbnQxNkFycmF5LWFsbG9j
LWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg4Ljc5MzIr
LTIuMjc2NyAgICAgICAgICAgODguNDQ1NystMi4xODAwICAgICAgICAKICAgSW50MTZBcnJheS1i
dWJibGUtc29ydC13aXRoLWJ5dGVMZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAgICA0NS45
NjExKy0wLjE0NjAgICAgICAgICAgIDQ1LjkzODArLTAuMDc3OSAgICAgICAgCiAgIEludDE2QXJy
YXktYnViYmxlLXNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDUuMzI4MystMC4xMTk0ICAgICA/ICAgICA0NS4zNjc2Ky0wLjEyNjQgICAgICAgID8KICAgSW50
MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS45NTIwKy0wLjA0NDUgICAgID8gICAgICAxLjk3MjErLTAuMDI5NiAgICAgICAgPyBt
aWdodCBiZSAxLjAxMDN4IHNsb3dlcgogICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgzLjg1MjQrLTAuNDQ2NCAgICAgISAg
ICAgODkuMDA1NystMC41MTIyICAgICAgICAhIGRlZmluaXRlbHkgMS4wNjE1eCBzbG93ZXIKICAg
SW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDgzMC45MjA0Ky0xMTkuODcxOCAgID8gICAgODMxLjE0MjYrLTEyMC4yMDk3ICAgICAg
PwogICBJbnQzMkFycmF5LWFsbG9jLWh1Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNzE4LjQ4NDcrLTIuMDY2MyAgICAgICAgICA3MTcuODk1MystMi42NjM2ICAg
ICAgICAKICAgSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk1Mi40NzQxKy0zMi45MTI3ICAgICAgICAgOTQ1LjY0MjErLTI5Ljgz
NzggICAgICAgCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDAuMjU4NCstMC4yODc0ICAgICAgICAgICA0MC4xMjU1Ky0w
LjIzNTIgICAgICAgIAogICBJbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTAzLjM2MjgrLTAuOTEwMyAgICAgICAgICAxMDMuMDE1
MystMC43MTM4ICAgICAgICAKICAgSW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4yNTYxKy0yLjk0MTAgICAgID8gICAgICA3
LjI3NTQrLTIuOTQ5OSAgICAgICAgPwogICBJbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9j
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjQ4NzYrLTEuOTkwNiAgICAgPyAg
ICAgMjAuNzY4MCstMS45OTk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzN3ggc2xvd2VyCiAgIElu
dDhBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzkuNjc5NSstMS41NjM3ICAgICAgICAgICA3OS41OTIxKy0xLjY4NjUgICAgICAgIAog
ICBJbnQ4QXJyYXktbG9hZC13aXRoLWJ5dGVMZW5ndGggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0LjY1NDgrLTAuMDQyNyAgICAgICAgICAgIDQuNjQ5OCstMC4wNDA3ICAgICAg
ICAKICAgSW50OEFycmF5LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC42MzI4Ky0wLjA1NzAgICAgICAgICAgICA0LjU4NTkrLTAuMDMzNSAg
ICAgICAgICBtaWdodCBiZSAxLjAxMDJ4IGZhc3RlcgogICBpbnRlZ2VyLWRpdmlkZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjcxMjgrLTAuMDkw
MyAgICAgICAgICAgMTQuNjQzNystMC4wNjc2ICAgICAgICAKICAgaW50ZWdlci1tb2R1bG8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45MzQzKy0w
LjA0MzggICAgICAgICAgICAxLjkyNDQrLTAuMDY0NyAgICAgICAgCiAgIGxvdHMtb2YtZmllbGRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuMzc3
MCstMi4xNjc4ICAgICAgICAgICAxNS4yMjE5Ky0yLjM4MzMgICAgICAgICAgbWlnaHQgYmUgMS4w
MTAyeCBmYXN0ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC43NTcwKy0wLjYyODQgICAgICAgICAgICA0LjcyNjcr
LTAuNjIwMyAgICAgICAgCiAgIG1ha2Utcm9wZS1jc2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuODkwNSstMC4yMDExICAgICA/ICAgICAyMC4w
MTMzKy0wLjE2NzUgICAgICAgID8KICAgbWFyc2FnbGlhICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5NC43NjY5Ky0wLjY5NTQgICAgID8gICAg
NDk1LjE4MzMrLTAuMjU5OSAgICAgICAgPwogICBtZXRob2Qtb24tbnVtYmVyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjM1NjUrLTAuNjA1NSAgICAg
PyAgICAgMjUuNDc0MSstMC40MjMzICAgICAgICA/CiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzA1NistMC4wMTYw
ICAgICA/ICAgICAgMC4zMDgyKy0wLjAxMjQgICAgICAgID8KICAgbmVnYXRpdmUtemVyby1tb2R1
bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODY2Ky0w
LjAxNDEgICAgID8gICAgICAwLjI5MTArLTAuMDE1NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNTV4
IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjI4MzArLTAuMDE2NiAgICAgICAgICAgIDAuMjc4OSstMC4w
MTcxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0OHggZmFzdGVyCiAgIG5lc3RlZC1mdW5jdGlvbi1w
YXJzaW5nLXJhbmRvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzODIuOTk1Myst
MTEuODUxNiAgICA/ICAgIDM4NC44NjkyKy0xMS41NjIzICAgICAgID8KICAgbmVzdGVkLWZ1bmN0
aW9uLXBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MS45
ODM1Ky0zLjYzOTEgICAgID8gICAgIDUyLjE2MTMrLTMuNTQ4NyAgICAgICAgPwogICBuZXctYXJy
YXktYnVmZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjc0OTMrLTAuMTM2NiAgICAgPyAgICAgIDMuNzQ5NystMC4wODAyICAgICAgICA/CiAgIG5l
dy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTQuMjg0OSstMi4zMTE0ICAgICAgICAgICAxNC4yNjc2Ky0yLjM1OTUgICAgICAgIAog
ICBuZXctYXJyYXktZGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI2Ljk3ODMrLTAuMDY3OCAgICAgPyAgICAgMjcuMDAwNSstMC4wNTk4ICAgICAg
ICA/CiAgIG5ldy1hcnJheS1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTIuOTExMSstMy4wMTI2ICAgICA/ICAgICAxMy4wMzAyKy0zLjMyMjUg
ICAgICAgID8KICAgbnVtYmVyLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4xMzQ1Ky0wLjA1MjIgICAgICAgICAgICA0LjEwNjArLTAu
MDY0NiAgICAgICAgCiAgIG9iamVjdC1jbG9zdXJlLWNhbGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDguMzA3NistMC40ODQ2ICAgICA/ICAgICAgOC44MTQz
Ky0xLjE1MzQgICAgICAgID8gbWlnaHQgYmUgMS4wNjEweCBzbG93ZXIKICAgb2JqZWN0LXRlc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41
NTM2Ky0wLjA5MzUgICAgID8gICAgICA0LjYwODMrLTAuMTMwMCAgICAgICAgPyBtaWdodCBiZSAx
LjAxMjB4IHNsb3dlcgogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDg4LjczNDUrLTAuMjI5MiAgICAgPyAgICAgODkuNTk4
NystMC45NzU0ICAgICAgICA/CiAgIHBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMDA5OSstMC4wODIyICAgICA/ICAgICAy
MC4xMDYyKy0wLjE2MDMgICAgICAgID8KICAgcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5
LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45NjU0Ky0wLjA4MjQgICAgICAg
ICAgIDExLjk0OTkrLTAuMDkyNCAgICAgICAgCiAgIHB1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxh
bmstaW5kZXhpbmctdHlwZSAgICAgICAgICAgICAgICAgICAgICAgMjAuMDU2MystMC40MTI5ICAg
ICAgICAgICAxOS4yMDE5Ky0wLjc3MTkgICAgICAgICAgbWlnaHQgYmUgMS4wNDQ1eCBmYXN0ZXIK
ICAgcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxOS4xODc2Ky0wLjEwNTUgICAgICAgICAgIDE5LjE3MjcrLTAuMDcwNCAgICAg
ICAgCiAgIHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjkuODgwNCstMC4wNTEzICAgICAgICAgICAyOS44MzA0Ky0wLjA0MzUg
ICAgICAgIAogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMyLjk1MzYrLTAuMjgyNiAgICAgICAgICAgMzIuOTQ3NistMC4y
MTI2ICAgICAgICAKICAgc2xvdy1hcnJheS1wcm9maWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC40MTI1Ky0wLjIwNjAgICAgID8gICAgICA0LjU3MDYr
LTAuMjMwNCAgICAgICAgPyBtaWdodCBiZSAxLjAzNTh4IHNsb3dlcgogICBzbG93LWNvbnZlcmdl
bmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUw
MjYrLTAuMDQ1NCAgICAgICAgICAgIDMuNDczNSstMC4wNDEzICAgICAgICAKICAgc3BhcnNlLWNv
bmRpdGlvbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MS4yOTg1Ky0wLjA2MjAgICAgID8gICAgICAxLjMwMjcrLTAuMDU4OCAgICAgICAgPwogICBzcGxp
Y2UtdG8tcmVtb3ZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ0LjcyNTcrLTAuMTczNSAgICAgXiAgICAgNDQuMzI5NSstMC4xMDM2ICAgICAgICBeIGRl
ZmluaXRlbHkgMS4wMDg5eCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44MDY3Ky0xLjQzMDIgICAgID8g
ICAgICA0LjgxNTMrLTEuNDM3NCAgICAgICAgPwogICBzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc2MTQrLTEuNDU2MyAg
ICAgICAgICAgIDQuNzU3NistMS40MTM4ICAgICAgICAKICAgc3RyaW5nLWNvbmNhdC1wYWlyLXNp
bXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4zMzc5Ky0wLjUw
NTUgICAgID8gICAgIDE4LjQ1NDMrLTAuNTY3NSAgICAgICAgPwogICBzdHJpbmctY29uY2F0LXNp
bXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjU4MTEr
LTAuNTcwNiAgICAgICAgICAgMTguNDYwOSstMC40OTM4ICAgICAgICAKICAgc3RyaW5nLWNvbnMt
cmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4w
MDgzKy0wLjgzOTkgICAgID8gICAgIDE0LjA1MjgrLTAuODUxMSAgICAgICAgPwogICBzdHJpbmct
Y29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE0LjcwNjYrLTAuOTA1MCAgICAgICAgICAgMTQuNjc0OCstMC44NTg2ICAgICAgICAKICAgc3Ry
aW5nLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Mi43MzU1Ky0wLjQxMTYgICAgID8gICAgIDQzLjQyNzcrLTAuMzIzNyAgICAgICAgPyBt
aWdodCBiZSAxLjAxNjJ4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljc3NDYrLTAuMTM2MCAgICAgICAg
ICAgMTYuNjI3NCstMC4xODU4ICAgICAgICAKICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJv
dW5kcy1pbnNhbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44OTc1Ky0wLjEwNjYgICAg
ID8gICAgICA0LjkzNDgrLTAuMDY3NSAgICAgICAgPwogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQt
b2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU0ODgrLTAuMDM4
MyAgICAgPyAgICAgIDQuNjMyOCstMC4wOTM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4NXggc2xv
d2VyCiAgIHN0cmluZy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuODc1OSstMC4wNDk4ICAgICA/ICAgICAgMy45MjY3Ky0wLjA3MjAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTMxeCBzbG93ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40OTUwKy0wLjA0
MDEgICAgID8gICAgICAyLjUxNDErLTAuMDM3MyAgICAgICAgPwogICBzdHJpbmctbG9uZy1pZGVu
dC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjkyNTYr
LTAuMTExNCAgICAgISAgICAgMzguNDcyNSstMC4xMjI4ICAgICAgICAhIGRlZmluaXRlbHkgMS4w
NDE5eCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1hcml0aCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0NS4xMjM3Ky0wLjQ1NzQgICAgID8gICAgIDQ1LjE1ODIr
LTAuNDcyOSAgICAgICAgPwogICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg5Ljk2MDIrLTAuNzk3MSAgICAgPyAgICAgOTAu
ODA4MystMS45Mjk4ICAgICAgICA/CiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDQ4MistMC4wNjkxICAgICA/ICAg
ICAgNC4xMTM3Ky0wLjA2OTQgICAgICAgID8gbWlnaHQgYmUgMS4wMTYyeCBzbG93ZXIKICAgc3Ry
aW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2OC4wMDI1Ky0wLjQ2OTYgICAgICEgICAgIDY5LjcwNzgrLTAuMTkwMSAgICAgICAgISBk
ZWZpbml0ZWx5IDEuMDI1MXggc2xvd2VyCiAgIHN0cnVjdHVyZS1ob2lzdC1vdmVyLXRyYW5zaXRp
b25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODE0NistMC41OTUzICAgICAg
ICAgICAgMy43NzY3Ky0wLjYwMDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTAweCBmYXN0ZXIKICAg
c3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4yMDc5Ky0wLjA0OTggICAgID8gICAgICAzLjIxNzMrLTAuMDU5MSAgICAgICAg
PwogICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjY0NjIrLTAuMDUyMyAgICAgICAgICAgIDcuNjIwMSstMC4wNDUyICAg
ICAgICAKICAgc3dpdGNoLWNvbnN0YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMi4zNDk0Ky0yLjUwNjIgICAgICAgICAgIDEyLjExMDQrLTIuNTYx
NyAgICAgICAgICBtaWdodCBiZSAxLjAxOTd4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2lj
LWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjYyNTkrLTAu
NDQyNCAgICAgICAgICAgMjAuNDMwMistMC4yMDEyICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1i
YXNpYy1iaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS44NjM2
Ky0wLjU1NjcgICAgID8gICAgIDIyLjE2NTgrLTEuMzc3NiAgICAgICAgPyBtaWdodCBiZSAxLjAx
Mzh4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLXZhciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIwLjIxMTYrLTAuMDY4OSAgICAgICAgICAgMjAuMTk2OCst
MC4wNzEzICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxOS4zOTIyKy0wLjIyNjggICAgID8gICAgIDE5LjUz
MzUrLTAuMzEyNSAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LjA0MDErLTAuMDk5MSAgICAgPyAgICAg
MjguMDY3NSstMC4wNjA0ICAgICAgICA/CiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyLXZh
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuMDMyOCstMC4wNTYwICAgICA/
ICAgICAyMi4wODg0Ky0wLjA1NDcgICAgICAgID8KICAgc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93
ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi42OTI0Ky0wLjA2MDEg
ICAgICAgICAgIDE2LjY0MDArLTAuMDMxNSAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctc2hvcnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNjUxNistMC4w
NTM0ICAgICA/ICAgICAxNi43OTgxKy0wLjEyMzQgICAgICAgID8KICAgc3dpdGNoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4zMTk0
Ky0yLjY0MzkgICAgICAgICAgIDE2LjE3NDgrLTIuODM1MyAgICAgICAgCiAgIHRlYXItb2ZmLWFy
Z3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MjE0OSstMC4wNTE1ICAgICAgICAgICAgMi4xOTEyKy0wLjA0NzMgICAgICAgICAgbWlnaHQgYmUg
MS4wMTA4eCBmYXN0ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zMzExKy0wLjAyODMgICAgID8gICAgICAzLjM2
MDgrLTAuMDU0OCAgICAgICAgPwogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjA3NDcrLTAuMDg1NyAgICAgICAgICAg
MjAuMDE5MistMC4wNjk3ICAgICAgICAKICAgdG8taW50MzItYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS4wMjc4Ky0wLjAyNDggICAgID8g
ICAgIDIxLjA1MTUrLTAuMTU2MiAgICAgICAgPwogICB1bmRlZmluZWQtdGVzdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI2MDYrLTAuMDUxNSAg
ICAgPyAgICAgIDQuMjc2MystMC4wMzE3ICAgICAgICA/CgogICA8YXJpdGhtZXRpYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3LjU2OTMrLTEu
OTY0NyAgICAgPyAgICAxMDcuNTkxOSstMi4wODA0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMngg
c2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTQuMjU5MCstMC4xMzg5ICAgICA/ICAgICAxNC4yNzQ2Ky0wLjEy
NjkgICAgICAgID8gbWlnaHQgYmUgMS4wMDExeCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MTc0Ky0w
LjA3MTkgICAgID8gICAgICA0LjkyMjQrLTAuMDU5MiAgICAgICAgPyBtaWdodCBiZSAxLjAwMTB4
IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKRFNQOgogICBmaWx0cnItcG9z
dGVyaXplLXRpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQx
LjU2OTcrLTEuMTkxNSAgICAgICAgICAgNDEuNDcxMSstMS4wNzEzICAgICAgICAKICAgZmlsdHJy
LXRpbnQtY29udHJhc3Qtc2F0LWJyaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2Ny42OTMxKy0wLjI5NDQgICAgICAgICAgIDY3LjUwMjArLTAuMTc1NiAgICAgICAgCiAgIGZp
bHRyci10aW50LXNhdC1hZGotY29udHItbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzguNDA4MystMi4yOTAwICAgICA/ICAgICA3OS40ODI3Ky0yLjkzNzcgICAgICAgID8g
bWlnaHQgYmUgMS4wMTM3eCBzbG93ZXIKICAgZmlsdHJyLWJsdXItb3ZlcmxheS1zYXQtY29udHIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwOC4xNjEzKy03LjYxMTIgICAgID8g
ICAgMjA4LjUyNzUrLTcuNDg3OSAgICAgICAgPwogICBmaWx0cnItc2F0LWJsdXItbXVsdC1zaGFy
cGVuLWNvbnRyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ2LjgzMzIrLTIuNDU5NiAg
ICAgPyAgICAyNDcuNDk4MistMi41NDM1ICAgICAgICA/CiAgIGZpbHRyci1zZXBpYS1iaWFzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuODYyMistMy4x
NzI4ICAgICA/ICAgICAzMS45MjI2Ky0zLjE0NDEgICAgICAgID8KICAgcm91dGU5LXZwOCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAgIDkyMi41ODk3
Ky0zLjE3NjAgICAgID8gICAgOTI1LjU2NjgrLTMuOTMzOSAgICAgICAgPwogICBzdGFyZmllbGQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1ICAgICAxMjM2
Ljk4NTgrLTUuODk1MiAgICAgICAgIDEyMDcuNTAwOSstMjkuNTA5MSAgICAgICAgIG1pZ2h0IGJl
IDEuMDI0NHggZmFzdGVyCiAgIGJlbGxhcmQtanNsaW51eCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDUgICAgIDI4OTAuMDAwMCstMTEuNzU5NCAgICA/ICAgMjg5Ni45
MTY3Ky0xNC4wNDIyICAgICAgID8KICAgenluYXBzLXF1YWtlMyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAgMTMyMi42NTUzKy01NC4zNDg2ICAgID8gICAx
MzM5LjMxNDYrLTQyLjEzNDcgICAgICAgPyBtaWdodCBiZSAxLjAxMjZ4IHNsb3dlcgogICB6eW5h
cHMtbWFuZGVsYnJvdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1ICAg
ICAxMDI0LjYyMDQrLTMuNzI3MCAgICAgPyAgIDEwMjcuMTAxMystNC4wMjc0ICAgICAgICA/CiAg
IGFtbW9qcy1hc20tanMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eDUgICAgICAyNTMuNDU2NistMTIuNTQyMSAgICAgICAgIDI0OS4zMzEzKy0xMy4wMTg3ICAgICAg
ICAgbWlnaHQgYmUgMS4wMTY1eCBmYXN0ZXIKICAgYW1tb2pzLXJlZ3VsYXItanMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAgIDIzOC42MzcyKy0xMS4wNjgxICAg
ID8gICAgMjQzLjA2MzArLTExLjI3MDUgICAgICAgPyBtaWdodCBiZSAxLjAxODV4IHNsb3dlcgoK
ICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDk3OC41MTg0Ky01LjE1ODggICAgID8gICAgOTc4LjU0NTgrLTUuNzYxMyAgICAg
ICAgPyBtaWdodCBiZSAxLjAwMDB4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkzLjA4NjYrLTYuNDg3MiAg
ICAgPyAgICA1OTMuMTk0MystNy41MzU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMnggc2xvd2Vy
CiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyNjguMTg0NCstOS43MDI0ICAgICA/ICAgIDI2OC41MjY0Ky05Ljc5NTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMDEzeCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAg
ICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCkFsbCBiZW5jaG1hcmtzOgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIzLjQ4OTgrLTEuMjU1OSAgICAgPyAgICAy
MjMuNTAxNystMS4wNzIwICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMXggc2xvd2VyCiAgIDxnZW9t
ZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjUuMjkzNSstMC4xNjU5ICAgICA/ICAgICAyNS4zMjExKy0wLjE1NTMgICAgICAgID8gbWln
aHQgYmUgMS4wMDExeCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43NTI0Ky0wLjA0NjAgICAgID8gICAg
ICA0Ljc2NDYrLTAuMDU3OCAgICAgICAgPyBtaWdodCBiZSAxLjAwMjZ4IHNsb3dlcgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6CiAgIDxz
Y2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDAuMzYyMistMC4xMTA4ICAgICA/ICAgICA0MC40MzUzKy0wLjEwNDQgICAgICAgID8g
bWlnaHQgYmUgMS4wMDE4eCBzbG93ZXIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210204</attachid>
            <date>2013-08-31 12:57:47 -0700</date>
            <delta_ts>2013-08-31 12:57:47 -0700</delta_ts>
            <desc>jsc benchmark run 4</desc>
            <filename>jsc-bench4.txt</filename>
            <type>text/plain</type>
            <size>36682</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">MTk2NC8xOTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW5lcmF0aW5nIGJlbmNobWFyayByZXBvcnQg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvSW50ZXJuYWwvU3VuU3BpZGVyVjhTcGlkZXJPY3RhbmVL
cmFrZW5KU0JlbmNoSlNSZWdyZXNzRFNQX2FsYmlvbl8yMDEzMDgzMV8wMjU2X3JlcG9ydC50eHQK
QW5kIHJhdyBkYXRhIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M0L0ludGVybmFsL1N1blNwaWRlclY4
U3BpZGVyT2N0YW5lS3Jha2VuSlNCZW5jaEpTUmVncmVzc0RTUF9hbGJpb25fMjAxMzA4MzFfMDI1
Ni5qc29uCgpCZW5jaG1hcmsgcmVwb3J0IGZvciBTdW5TcGlkZXIsIFY4U3BpZGVyLCBPY3RhbmUs
IEtyYWtlbiwgSlNCZW5jaCwgSlNSZWdyZXNzLCBhbmQgRFNQIG9uIGFsYmlvbiAoTWFjUHJvNSwx
KS4KClZNcyB0ZXN0ZWQ6CiJDb25mIzEiIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M1L09wZW5Tb3Vy
Y2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9EdW1wUmVuZGVyVHJlZSAocjE1NDkwOCkKIkNvbmYjMiIg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0R1
bXBSZW5kZXJUcmVlIChyMTU0OTA4KQoKQ29sbGVjdGVkIDEyIHNhbXBsZXMgcGVyIGJlbmNobWFy
ay9WTSwgd2l0aCA0IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxs
IHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiBVc2VkIDEKYmVuY2htYXJrIGl0
ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNp
ZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWlu
Zy4gUmVwb3J0aW5nCmJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5j
ZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAg
ICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjMzMDMrLTAuMzM2MCAgICAgICAgICAgIDcuMjg1
MSstMC4yNDYyICAgICAgICAKICAgM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4wODM3Ky0wLjA3NzYgICAgICAgICAgICA4
LjAyNzMrLTAuMDgzMyAgICAgICAgCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguOTUwNCstMC4xNDkxICAgICA/ICAg
ICAgOS4yNDA0Ky0wLjMyMzMgICAgICAgID8gbWlnaHQgYmUgMS4wMzI0eCBzbG93ZXIKICAgYWNj
ZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi40ODk4Ky0wLjM1OTggICAgID8gICAgICAyLjU1NzkrLTAuMzMzNiAgICAgICAgPyBt
aWdodCBiZSAxLjAyNzN4IHNsb3dlcgogICBhY2Nlc3MtZmFubmt1Y2ggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM0NDUrLTAuMDQ5MCAgICAgPyAg
ICAgIDcuNDAzNystMC4wNjEyICAgICAgICA/CiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTA5MSstMC4wNDk0ICAg
ICA/ICAgICAgMy45ODQ2Ky0wLjA0NjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTkzeCBzbG93ZXIK
ICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC45MDM0Ky0wLjA3NjcgICAgICAgICAgICA0Ljg3MTIrLTAuMDg0NCAgICAg
ICAgCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEuNzkwOCstMC4wNTE4ICAgICAgICAgICAgMS43ODgyKy0wLjA1NDQg
ICAgICAgIAogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2LjQyODYrLTAuMDg4NyAgICAgICAgICAgIDYuNDIyMSstMC4w
NTc0ICAgICAgICAKICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi42MTIzKy0wLjA5NjggICAgICAgICAgICAyLjU1NjEr
LTAuMDczOCAgICAgICAgICBtaWdodCBiZSAxLjAyMjB4IGZhc3RlcgogICBiaXRvcHMtbnNpZXZl
LWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ1
NDArLTAuMDU2NiAgICAgPyAgICAgIDQuNTE0OSstMC4wNDIxICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEzN3ggc2xvd2VyCiAgIGNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuODg4NistMC4wNjQyICAgICAgICAgICAgMi44MjQ2
Ky0wLjA0MDggICAgICAgICAgbWlnaHQgYmUgMS4wMjI2eCBmYXN0ZXIKICAgY3J5cHRvLWFlcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43
NzAwKy0wLjQwOTEgICAgID8gICAgICA1Ljc4NDcrLTAuMjgwMyAgICAgICAgPwogICBjcnlwdG8t
bWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjA2NjArLTAuMDU0NiAgICAgPyAgICAgIDMuMTc4MystMC4wNzI1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDM2Nnggc2xvd2VyCiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODc0NistMC4wNjY1ICAgICAgICAgICAg
Mi44NDc1Ky0wLjA1OTYgICAgICAgIAogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjIwNDcrLTEuMDE0MyAgICAgPyAg
ICAgMTIuMzAwNSstMS4wMDc5ICAgICAgICA/CiAgIGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNjI4MistMC42Njk1ICAg
ICAgICAgICAgOC42MTM2Ky0wLjY2MjUgICAgICAgIAogICBtYXRoLWNvcmRpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjgyMzQrLTAuMDU0
MCAgICAgICAgICAgIDMuNzg3NystMC4wNDE1ICAgICAgICAKICAgbWF0aC1wYXJ0aWFsLXN1bXMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS45OTU4Ky0w
LjA2MDMgICAgICAgICAgICA5Ljk4NjMrLTAuMDUxMSAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwt
bm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzY1
MistMC4wNDg5ICAgICA/ICAgICAgMi43Nzg3Ky0wLjA0NDcgICAgICAgID8KICAgcmVnZXhwLWRu
YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MS44ODc4Ky0wLjUyMDYgICAgID8gICAgIDExLjk0MzYrLTAuNTE5OSAgICAgICAgPwogICBzdHJp
bmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1Ljk3NzkrLTAuNTA3NCAgICAgPyAgICAgIDYuMDU4NCstMC40OTgxICAgICAgICA/IG1p
Z2h0IGJlIDEuMDEzNXggc2xvd2VyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNTk0OCstMC4xODMyICAgICA/ICAg
ICAxMS42ODY3Ky0wLjExODAgICAgICAgID8KICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC40OTkwKy0wLjI0MDQgICAg
ID8gICAgIDE0LjU4MjErLTAuMTczMSAgICAgICAgPwogICBzdHJpbmctdW5wYWNrLWNvZGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5Ljk1NDgrLTAuMzAz
MiAgICAgPyAgICAgMzAuMDM0OSstMC4yODE3ICAgICAgICA/CiAgIHN0cmluZy12YWxpZGF0ZS1p
bnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNTgzNCst
MC4yMjc2ICAgICA/ICAgICAgOC44MDMzKy0wLjI5MzIgICAgICAgID8gbWlnaHQgYmUgMS4wMjU2
eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuNDE1OCstMC4xMTQ0ICAgICA/ICAgICAgNy40NTYzKy0w
LjA3NTAgICAgICAgID8gbWlnaHQgYmUgMS4wMDU1eCBzbG93ZXIKICAgPGdlb21ldHJpYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45MTU1
Ky0wLjA4NDAgICAgID8gICAgICA1Ljk0NDkrLTAuMDYzOCAgICAgICAgPyBtaWdodCBiZSAxLjAw
NTB4IHNsb3dlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjgyMTgrLTAuMDY4MyAgICAgPyAgICAgIDQuODQyMCst
MC4wNTgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDA0Mnggc2xvd2VyCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29uZiMxICAgICAgICAgICAgICAgICAgICBDb25mIzIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIApWOFNwaWRlcjoKICAgY3J5cHRvICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3OC43MDc5Ky0wLjU1MjkgICAgICAg
ICAgIDc4LjUzOTgrLTAuMjY2MCAgICAgICAgCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTguNDkyNSstMS4wNTg0ICAg
ICAgICAgICA5OC4wNzUzKy0xLjE5MzYgICAgICAgIAogICBlYXJsZXktYm95ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4LjUxNDgrLTAuNzcz
NSAgICAgICAgICAgNjguNTExNSstMC43OTcxICAgICAgICAKICAgcmF5dHJhY2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0My4wNzg0Ky00
LjUxNDEgICAgID8gICAgIDQzLjM3MjArLTQuNjAyNiAgICAgICAgPwogICByZWdleHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1Ljgy
NjArLTAuMzQ3MyAgICAgPyAgICAgOTYuMjgxNystMC4zMTcxICAgICAgICA/CiAgIHJpY2hhcmRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MTAuMTc3NystMS41Mzg2ICAgICAgICAgIDExMC4xMDg2Ky0xLjQ3MTYgICAgICAgIAogICBzcGxh
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU4LjY1OTIrLTMuMDQ4NSAgICAgICAgICAgNTcuOTc2OSstMy4yMjU0ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDExOHggZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5LjA2NTIrLTAuNTk3MCAgICAgICAg
ICAgNzguOTgwOCstMC41Njk3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxMXggZmFzdGVyCiAgIDxn
ZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzUuNDk2NystMC45NDk4ICAgICAgICAgICA3NS40MTE4Ky0wLjk2ODIgICAgICAgICAg
bWlnaHQgYmUgMS4wMDExeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MS42MDk3Ky0xLjQzNDMgICAgICAg
ICAgIDcxLjU0MjArLTEuNDYxMCAgICAgICAgICBtaWdodCBiZSAxLjAwMDl4IGZhc3RlcgoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKT2N0YW5lIGFuZCBWOHY3OgogICBlbmNyeXB0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
NDU1NzQrLTAuMDA0MTcgICAgICAgICAgMC40NTM4MSstMC4wMDA3MSAgICAgICAKICAgZGVjcnlw
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4LjI3Mjc2Ky0wLjAxMTAyICAgICAgICAgIDguMjYyMTkrLTAuMDA4NDAgICAgICAgCiAgIGRl
bHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIg
ICAgICAgMC42MjEyOCstMC4wNTA0MiAgICA/ICAgICAwLjY1MjA3Ky0wLjA2MDY0ICAgICAgID8g
bWlnaHQgYmUgMS4wNDk2eCBzbG93ZXIKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg1NDE4Ky0wLjAxMzYxICAgICAg
ICAgIDAuODQ2MzgrLTAuMDEwMDQgICAgICAgCiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4wMjMxMSstMC4wNTczMSAg
ICA/ICAgIDEyLjEzNzc1Ky0wLjIyNDI2ICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA0LjIyNTA4Ky0wLjAz
ODkzICAgICAgICAgIDQuMTk5MDcrLTAuMDI5ODIgICAgICAgCiAgIHJlZ2V4cCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAyOS41OTgzMyst
MC4wNTY4MSAgICAhICAgIDMwLjEzMjIxKy0wLjIxMDk2ICAgICAgICEgZGVmaW5pdGVseSAxLjAx
ODB4IHNsb3dlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAgIDAuMzA1ODkrLTAuMDAxNjggICAgICAgICAgMC4zMDI2OSst
MC4wMDIyNyAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNnggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC42MzU1
OCstMC4wMDg4NiAgICAgICAgICAwLjYzNDM2Ky0wLjAwNzA0ICAgICAgIAogICBuYXZpZXItc3Rv
a2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMTAu
Mzk1MTcrLTAuMDA3OTIgICAgPyAgICAxMC4zOTg5NistMC4wMjg5NCAgICAgICA/CiAgIGNsb3N1
cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC40MTMzNistMC4wNDI3NCAgICA/ICAgICAwLjQxNDk2Ky0wLjA0MjUxICAgICAgID8KICAg
anF1ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjEyMDU1Ky0wLjY2NzIyICAgID8gICAgIDUuMTI1NTQrLTAuNjY3NzAgICAgICAg
PwogICBnYmVtdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICAgOTIuMTc0OTErLTUuODY1MjQgICAgPyAgICA5My45NTM3NCstNS4xMzEwNSAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE5M3ggc2xvd2VyCiAgIG1hbmRyZWVsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDE4NC4xNTY4OCstMC42NjU4
NyAgICA/ICAgMTg0LjE2NjczKy0wLjc1OTgzICAgICAgID8KICAgcGRmanMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDkyLjI1NjAyKy0w
LjMwOTU5ICAgID8gICAgOTIuNzQ5MDcrLTAuMTkxMDYgICAgICAgPwogICBib3gyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMzQuMTU1
MjArLTAuNDM3NjMgICAgICAgICAzMy45NjU0MCstMC40MTA0OCAgICAgICAKClY4djc6CiAgIDxh
cml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy4wNzMwMystMC4wMTA0NiAgICAhICAgICA3LjE0NjE4Ky0wLjAyOTg2ICAgICAgICEg
ZGVmaW5pdGVseSAxLjAxMDN4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzYyNTYrLTAuMDI1MDggICAg
PyAgICAgMi4zNzU0MistMC4wMjczNSAgICAgICA/IG1pZ2h0IGJlIDEuMDA1NHggc2xvd2VyCiAg
IDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC45Mjc3OSstMC4wMTM3OSAgICA/ICAgICAwLjkzMDQyKy0wLjAxNTk0ICAgICAg
ID8gbWlnaHQgYmUgMS4wMDI4eCBzbG93ZXIKCk9jdGFuZSBpbmNsdWRpbmcgVjh2NzoKICAgPGFy
aXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM1LjU0NTcxKy0wLjUxMjc1ICAgID8gICAgMzUuNzUxODkrLTAuNDQxMzYgICAgICAgPyBt
aWdodCBiZSAxLjAwNTh4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuODU3NTgrLTAuMDk0OTMgICAgPyAg
ICAgNi44OTI2MCstMC4wOTk5NiAgICAgICA/IG1pZ2h0IGJlIDEuMDA1MXggc2xvd2VyCiAgIDxo
YXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS4yOTc5NSstMC4wMjAzMyAgICA/ICAgICAxLjMwMTg5Ky0wLjAyMzY2ICAgICAgID8g
bWlnaHQgYmUgMS4wMDMweCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAg
ICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkty
YWtlbjoKICAgYWktYXN0YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1MDEuMzA4Ky0wLjQ5OSAgICAgICAgICAgIDUwMS4xMDQrLTAuNTU0
ICAgICAgICAgCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjQ2LjI5MistNC40NjEgICAgICAgICAgICAyNDUuNzUwKy0z
LjEzMCAgICAgICAgIAogICBhdWRpby1kZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI5Ny4wMDQrLTAuNzUxICAgICAgPyAgICAgMjk4LjQ4
MistMC43NzQgICAgICAgICA/CiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQxLjMwNSstMC41NzkgICAgICA/ICAgICAx
NDEuMzk0Ky0wLjM3OSAgICAgICAgID8KICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMzUuNjk4Ky0yLjI0NSAgICAgICAg
ICAgIDIzNS40MzkrLTEuNzk5ICAgICAgICAgCiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjg0Ljc1NistMS4xNTkgICAg
ICA/ICAgICAyODUuMjY5Ky0xLjUxOSAgICAgICAgID8KICAgaW1hZ2luZy1kZXNhdHVyYXRlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTAuNDM1Ky0wLjE4
MCAgICAgICAgICAgIDE1MC40MDMrLTAuMTY4ICAgICAgICAgCiAgIGltYWdpbmctZ2F1c3NpYW4t
Ymx1ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzg0LjA1NCst
MC44MzcgICAgICAgICAgICAzODMuODA4Ky0wLjI3NiAgICAgICAgIAogICBqc29uLXBhcnNlLWZp
bmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ny40
MTMrLTAuMTkzICAgICAgXiAgICAgIDc1LjU1MistMC4xMDEgICAgICAgICBeIGRlZmluaXRlbHkg
MS4wMjQ2eCBmYXN0ZXIKICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEuMjEyKy0wLjc0MSAgICAgIF4gICAgICA5Ny4z
NDMrLTAuNDk2ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDM5N3ggZmFzdGVyCiAgIHN0YW5mb3Jk
LWNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTAyLjM3OCstMC43MjYgICAgICA/ICAgICAxMDUuNTAyKy0yLjQ0OCAgICAgICAgID8gbWlnaHQg
YmUgMS4wMzA1eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLWNjbSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTguNzYzKy01LjMwMSAgICAgID8gICAgIDEy
Mi40ODYrLTEuNzQ5ICAgICAgICAgPyBtaWdodCBiZSAxLjAzMTR4IHNsb3dlcgogICBzdGFuZm9y
ZC1jcnlwdG8tcGJrZGYyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDI1MS4zNDIrLTEuMDM2ICAgICAgISAgICAgMjUzLjcwMCstMS4xMjQgICAgICAgICAhIGRlZmlu
aXRlbHkgMS4wMDk0eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTguMjc5Ky0wLjQxMyAgICAgID8gICAg
ICA5OC41NDUrLTAuNDI5ICAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTMuNTg4Ky0wLjYzOCAgICAg
ID8gICAgIDIxMy45MTMrLTAuNTY5ICAgICAgICAgPyBtaWdodCBiZSAxLjAwMTV4IHNsb3dlcgog
ICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE4Mi45NzMrLTAuNzk3ICAgICAgPyAgICAgMTgzLjE2MSstMC41NzggICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDAxMHggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTU3Ljg1MistMC44ODMgICAg
ICAgICAgICAxNTcuNzQzKy0wLjU0MSAgICAgICAgICAgbWlnaHQgYmUgMS4wMDA3eCBmYXN0ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTQmVuY2g6CiAgIGFtYXpvbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNjY2
NystMC4zMTI4ICAgICAgICAgICAgOS41MDAwKy0wLjMzMTggICAgICAgICAgbWlnaHQgYmUgMS4w
MTc1eCBmYXN0ZXIKICAgZmFjZWJvb2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNy4xNjY3Ky0wLjUzMDQgICAgID8gICAgIDM3LjU4MzMr
LTAuNzM5OSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICBnb29nbGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2LjE2
NjcrLTAuODkxNyAgICAgICAgICAgNjYuMDAwMCstMC43NjYzICAgICAgICAKICAgdHdpdHRlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OS41ODMzKy0wLjMyNzIgICAgICAgICAgICA5LjU4MzMrLTAuMzI3MiAgICAgICAgCiAgIHlhaG9v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuNjY2NystMC4zMTI4ICAgICA/ICAgICAgMy43NTAwKy0wLjI4NzQgICAgICAgID8gbWln
aHQgYmUgMS4wMjI3eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuMjUwMCstMC4yNjA2ICAgICA/ICAg
ICAyNS4yODMzKy0wLjE5ODggICAgICAgID8gbWlnaHQgYmUgMS4wMDEzeCBzbG93ZXIKICAgPGdl
b21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNS4yNjE4Ky0wLjM1MjQgICAgID8gICAgIDE1LjMwNTkrLTAuMzI1MSAgICAgICAgPyBt
aWdodCBiZSAxLjAwMjl4IHNsb3dlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjUyMDUrLTAuNDYyMCAgICAgPyAg
ICAgIDkuNjEwNystMC40Mjk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDA5NXggc2xvd2VyCgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAgICBDb25mIzIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFkYXB0LXRvLWRvdWJsZS1k
aXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuNDQyNyst
MC4wNTg0ICAgICAgICAgICAyMS4zOTQ5Ky0wLjA0MTIgICAgICAgIAogICBhbGlhc2VkLWFyZ3Vt
ZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjk2
ODgrLTAuMDMyNCAgICAgICAgICAgIDAuOTY4NCstMC4wNDEzICAgICAgICAKICAgYWxsb2NhdGUt
YmlnLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My45MTQzKy0xLjI5OTQgICAgICAgICAgICAzLjg5NTIrLTEuMzA3NSAgICAgICAgCiAgIGFyaXR5
LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuODQ1MistMC4wNDM3ICAgICA/ICAgICAgMC44NjM5Ky0wLjA1NTAgICAgICAgID8gbWln
aHQgYmUgMS4wMjIxeCBzbG93ZXIKICAgYXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVy
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC40OTY0Ky0yLjA0MTcgICAgID8gICAg
ICA4LjU4NzQrLTIuMDI4MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMDd4IHNsb3dlcgogICBhcnJh
eS1ub25hcnJheS1wb2x5bW9yaHBpYy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDY2LjU3MjkrLTE5Ljc4NzcgICAgPyAgICAgNjguMzc5MystMjQuMjUzMyAgICAgICA/IG1p
Z2h0IGJlIDEuMDI3MXggc2xvd2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTQ5OSstMC4wNTA0ICAgICA/ICAg
ICAgNS4xNjk1Ky0wLjA0OTAgICAgICAgID8KICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4wMDI3Ky0wLjExMDQgICAg
ID8gICAgICA0LjAxMjYrLTAuMTA4NCAgICAgICAgPwogICBhcnJheS13aXRoLWRvdWJsZS1tdWwt
YWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjI5MjErLTAuMDM3
NSAgICAgICAgICAgIDcuMjY0NSstMC4wNjYxICAgICAgICAKICAgYXJyYXktd2l0aC1kb3VibGUt
c3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy40ODg1Ky0w
LjA0MDggICAgID8gICAgICA3LjUwODIrLTAuMDQ0NyAgICAgICAgPwogICBhcnJheS13aXRoLWlu
dDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljkw
OTgrLTAuMDUyOSAgICAgICAgICAgIDguODc1OSstMC4wMzYzICAgICAgICAKICAgYXJyYXktd2l0
aC1pbnQzMi1vci1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ny41ODA4Ky0wLjA0NDkgICAgICAgICAgICA3LjU2MDkrLTAuMDM2MCAgICAgICAgCiAgIEFycmF5
QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAg
ICAxMTguOTg1NistMS4xMDU4ICAgICAgICAgIDExOC43NzgyKy0xLjI2OTEgICAgICAgIAogICBB
cnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDM4Ljc2NTgrLTMuNzA4MSAgICAgICAgICAgMzguMjI4OSstMy43OTU4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE0MHggZmFzdGVyCiAgIEFycmF5QnVmZmVyLUludDMyQXJyYXktYnl0ZU9m
ZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzE0MystMC4wNDA0ICAgICA/
ICAgICAgOC40MDgwKy0wLjEwMTkgICAgICAgID8gbWlnaHQgYmUgMS4wMTEzeCBzbG93ZXIKICAg
QXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZCAgICAgICAgICAgICAg
ICAgICAgIDIyMS45MjAxKy0yMy45MDgzICAgID8gICAgMjIxLjk5MTIrLTIzLjQwMjkgICAgICAg
PwogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVu
dGVkICAgICAgICAgMTc0LjU1NTgrLTIuNTM2MiAgICAgICAgICAxNzQuMTI3NCstMi43NjM2ICAg
ICAgICAKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAg
ICAgICAgICAgICAgICAgIDEyNC42MDczKy0xLjQ0NTMgICAgICAgICAgMTI0LjE2NzArLTEuNDkw
NiAgICAgICAgCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxpdmVkLWJ1ZmZl
ciAgICAgICAgICAgICAgICAgICAgNzMuODQ3NCstOS44MjE3ICAgICA/ICAgICA3NS4yNjI4Ky0x
MC41MjgwICAgICAgID8gbWlnaHQgYmUgMS4wMTkyeCBzbG93ZXIKICAgQXJyYXlCdWZmZXItSW50
OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy41NTg1
Ky00LjA0NjUgICAgICAgICAgIDM3LjE2MTYrLTMuNjMyMiAgICAgICAgICBtaWdodCBiZSAxLjAx
MDd4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMyLjUyNTgrLTMuOTczMyAgICAgPyAgICAgMzIuNzYwNyst
My45ODI1ICAgICAgICA/CiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTkwMystMC4wNzEyICAgICAgICAgICAgNC41
NTkzKy0wLjA0NzkgICAgICAgIAogICBib29sZWFuLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjIyOTErLTAuMDU3MCAgICAgICAgICAg
IDQuMjIwNCstMC4wNDMzICAgICAgICAKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NDM3Ky0wLjA0ODAgICAgICAg
ICAgICA0LjUzNzYrLTAuMDM1NCAgICAgICAgCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNDA4MystMC4wNDM2ICAg
ICA/ICAgICAxMy40MjMwKy0wLjA1MDAgICAgICAgID8KICAgY2VsbC1hcmd1bWVudCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4wMTM1Ky0wLjIz
MDAgICAgID8gICAgIDE0LjA1NzErLTAuMjU3MiAgICAgICAgPwogICBjZmctc2ltcGxpZnkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjYzOTYr
LTAuMDYxMiAgICAgPyAgICAgIDMuNjQ0OSstMC4wNDgzICAgICAgICA/CiAgIGNtcGVxLW9iai10
by1vYmotb3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEu
NjQzMSstMC4yMzQwICAgICAgICAgICAxMS41NjM4Ky0wLjI2OTcgICAgICAgIAogICBjb25zdGFu
dC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4LjIwMDQrLTAuMTA0NyAgICAgICAgICAgIDguMTY1MistMC4xMDU5ICAgICAgICAKICAgRGF0
YVZpZXctY3VzdG9tLXByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEzNS40NTM2Ky0yLjc5NjkgICAgID8gICAgMTM2LjM4NjUrLTIuOTIzNSAgICAgICAgPwog
ICBkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjMzNzQrLTAuMDQ5NSAgICAgICAgICAgIDMuMjc5NystMC4wMzkxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE3NnggZmFzdGVyCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNzc2NSstMC4wMzgwICAg
ICA/ICAgICAgMC44Mjg5Ky0wLjA3MzcgICAgICAgID8gbWlnaHQgYmUgMS4wNjc1eCBzbG93ZXIK
ICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMC4zMDc3Ky0wLjA1MDkgICAgICAgICAgIDEwLjI3OTgrLTAuMDQ5NiAgICAg
ICAgCiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuNDk0NCstMC42MDI1ICAgICAgICAgICAgNi4zMTIzKy0wLjYwNDAg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjg5eCBmYXN0ZXIKICAgZW1wdHktc3RyaW5nLXBsdXMtaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy42NzAxKy0wLjI4
NTMgICAgICAgICAgIDEzLjU1NzArLTAuMzE4OSAgICAgICAgCiAgIGVtc2NyaXB0ZW4tY3ViZTJo
YXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDguNDU2OSst
My4xNTc4ICAgICAgICAgICA0OC40MzM2Ky0zLjEzNDggICAgICAgIAogICBlbXNjcmlwdGVuLW1l
bW9wcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NzY4LjA3
NDMrLTMyNS45NzI0ICAgICAgIDk2MjQuNzQ4NystMjUxLjQyNTUgICAgICAgIG1pZ2h0IGJlIDEu
MDE0OXggZmFzdGVyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjIwMystMC4xNDU5ICAgICAgICAgICAgMi4yMTIw
Ky0wLjE2NjIgICAgICAgIAogICBleHRlcm5hbC1hcmd1bWVudHMtcHV0Ynl2YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUzMzArLTAuMjgxNSAgICAgPyAgICAgIDMu
NjM1MSstMC4zNjI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI4OXggc2xvd2VyCiAgIEZsb2F0MzJB
cnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuMjA5NCstMC4xNjk1ICAgICA/ICAgICAgNi4yMzQ3Ky0wLjIxMjggICAgICAgID8KICAgRmxv
YXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5My41MDQxKy0wLjU0NTIgICAgICAgICAgIDkyLjQ4MzUrLTAuOTI2NCAgICAgICAgICBt
aWdodCBiZSAxLjAxMTB4IGZhc3RlcgogICBGbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI1LjczMTIrLTQuNzI0NSAgICAgICAg
ICAxMjUuMjU5MistNC4yMzYxICAgICAgICAKICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXkt
c2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMi45MzgxKy0wLjY5OTggICAg
ID8gICAgMTE0LjE4MTQrLTEuMjA3OSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTB4IHNsb3dlcgog
ICBmb2xkLWRvdWJsZS10by1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI0LjM3NDkrLTAuNDgzNyAgICAgICAgICAgMjQuMzA5NCstMC4zMDg2ICAgICAg
ICAKICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy4wMDk3Ky0wLjA2MjcgICAgICAgICAgICAyLjk4MzErLTAuMDYwNiAg
ICAgICAgCiAgIGZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuNDg4NistMC4xMTk4ICAgICA/ICAgICAgNC41ODIxKy0wLjEy
NzAgICAgICAgID8gbWlnaHQgYmUgMS4wMjA4eCBzbG93ZXIKICAgZ2V0LWJ5LWlkLWNoYWluLWZy
b20tdHJ5LWJsb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yNzAwKy0w
LjAzMTkgICAgICAgICAgICA2LjI2MjArLTAuMDQ1MyAgICAgICAgCiAgIGdldC1ieS1pZC1wcm90
by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuOTQ3
NystMC4zMTkyICAgICAgICAgICAyMS45Mzg3Ky0wLjMwMzkgICAgICAgIAogICBnZXQtYnktaWQt
c2VsZi1vci1wcm90byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIy
LjIyMDMrLTAuMzMyOCAgICAgICAgICAgMjEuNzA4MystMC4zNDk2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDIzNnggZmFzdGVyCiAgIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlLWtleXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuOTA3NystMC45MjM4ICAgICA/ICAgICA0NS4z
NTU2Ky0xLjIwOTQgICAgICAgID8gbWlnaHQgYmUgMS4wMzMweCBzbG93ZXIKICAgSGFzaE1hcC1w
dXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
MS41NDEwKy0wLjUyNTAgICAgICEgICAgIDUzLjA4NzErLTAuNTk1NSAgICAgICAgISBkZWZpbml0
ZWx5IDEuMDMwMHggc2xvd2VyCiAgIEhhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjIuMDE3NCstMC43NjYwICAgICA/ICAgICA2
Mi44MDI0Ky0wLjgzNTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTI3eCBzbG93ZXIKICAgaW11bC1k
b3VibGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNi42NjQwKy0wLjA2MDQgICAgID8gICAgIDE2LjgwNDcrLTAuMjA3NyAgICAgICAgPwogICBp
bXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE0Ljc4NDErLTAuMDI3MCAgICAgPyAgICAgMTQuODY0MCstMC4xMzQyICAgICAgICA/
CiAgIGltdWwtbWl4ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjAuOTI1NistMC4wNDA5ICAgICA/ICAgICAyMC45ODMzKy0wLjEyNTkgICAg
ICAgID8KICAgaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyNC44MzY1Ky0wLjA5OTggICAgICAgICAgIDI0Ljc5NjQrLTAuMDU3
NCAgICAgICAgCiAgIGluLW9uZS1jYXNlLWZhbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTEuNjg3NSstMC4wNjY1ICAgICA/ICAgICAxMS43MDEwKy0w
LjA0MDIgICAgICAgID8KICAgaW4tb25lLWNhc2UtdHJ1ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMS43NDg2Ky0wLjA2MjggICAgICAgICAgIDExLjY5
ODcrLTAuMDYwNyAgICAgICAgCiAgIGluLXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMDc0MCstMC4wNjE0ICAgICAgICAgICAx
Mi4wNDg2Ky0wLjA1NDAgICAgICAgIAogICBpbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0cyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjkyNTMrLTAuMDM2MiAgICAgICAg
ICAgIDMuOTEyOCstMC4wNDcxICAgICAgICAKICAgaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3MgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40NDg1Ky0wLjAzNzUgICAg
ICAgICAgICAxLjQ0NTErLTAuMDQ3MCAgICAgICAgCiAgIGlubGluZS1hcmd1bWVudHMtbG9jYWwt
ZXNjYXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuNTc2MSstMC4xODA1
ICAgICAgICAgICAyNC4yNzEzKy0wLjE0NDkgICAgICAgICAgbWlnaHQgYmUgMS4wMTI2eCBmYXN0
ZXIKICAgaW5saW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNi41NjUwKy0wLjA4MjkgICAgID8gICAgICA2LjU5MTcrLTAuMDc2OCAg
ICAgICAgPwogICBpbmxpbmVkLXB1dC1ieS1pZC10cmFuc2l0aW9uICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEzLjk0NTErLTAuMTAxMCAgICAgPyAgICAgMTQuMDEzNCstMC4x
NDQxICAgICAgICA/CiAgIGludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDguNjAyOCstMC4xNTk3ICAgICA/ICAgICAgOC42Mjkw
Ky0wLjIxNTMgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNC42MzI1Ky0wLjE3NzcgICAgID8gICAgIDM0
LjY4OTYrLTAuMjUzMCAgICAgICAgPwogICBpbnQtb3Itb3RoZXItYWRkLXRoZW4tZ2V0LWJ5LXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjY5NzcrLTAuMDM5OCAgICAgPyAg
ICAgIDkuNzYzMistMC4xMTk1ICAgICAgICA/CiAgIGludC1vci1vdGhlci1hZGQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuOTM4OCstMC4wNjExICAg
ICAgICAgICAgOS45MzE3Ky0wLjA2NjAgICAgICAgIAogICBpbnQtb3Itb3RoZXItZGl2LXRoZW4t
Z2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljg2NjErLTAuMDUx
MSAgICAgICAgICAgIDUuODQzMystMC4wOTEzICAgICAgICAKICAgaW50LW9yLW90aGVyLW1heC10
aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi43MjcyKy0w
LjAzOTMgICAgID8gICAgICA2Ljc2NzErLTAuMDUyMyAgICAgICAgPwogICBpbnQtb3Itb3RoZXIt
bWluLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljgw
MzMrLTAuMDQyNiAgICAgICAgICAgIDYuNzY3NystMC4wMzU0ICAgICAgICAKICAgaW50LW9yLW90
aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NS42OTkyKy0wLjA2NzkgICAgID8gICAgICA1LjcwNzQrLTAuMDM3MyAgICAgICAgPwogICBpbnQt
b3Itb3RoZXItbXVsLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjIxMzcrLTAuMDYwOCAgICAgICAgICAgIDYuMTI0MistMC4wNDgxICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE0NnggZmFzdGVyCiAgIGludC1vci1vdGhlci1uZWctdGhlbi1nZXQtYnktdmFs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNTg3MCstMC4wNDA0ICAgICA/ICAg
ICAgNy42NjgzKy0wLjA1ODkgICAgICAgID8gbWlnaHQgYmUgMS4wMTA3eCBzbG93ZXIKICAgaW50
LW9yLW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzNC4zNTYyKy0wLjM5OTUgICAgID8gICAgIDM1LjAzOTErLTAuODQ2MSAgICAgICAgPyBt
aWdodCBiZSAxLjAxOTl4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjExODMrLTAuMDQ0NiAgICAgXiAg
ICAgMTAuMDM3MistMC4wMzQxICAgICAgICBeIGRlZmluaXRlbHkgMS4wMDgxeCBmYXN0ZXIKICAg
aW50LW9yLW90aGVyLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNy44MTU3Ky0wLjA1MzAgICAgICAgICAgICA3Ljc4NjMrLTAuMDM3MSAgICAgICAg
CiAgIGludC1vdmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuMjY5OCstMC4xMzMwICAgICAgICAgICAxMS4xODE0Ky0wLjA3NTggICAg
ICAgIAogICBJbnQxNkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDg4LjcwNTQrLTIuMDI0NyAgICAgICAgICAgODguMzUwNistMi4xMjc2
ICAgICAgICAKICAgSW50MTZBcnJheS1idWJibGUtc29ydC13aXRoLWJ5dGVMZW5ndGggICAgICAg
ICAgICAgICAgICAgICAgICAgICA0NS45Mjg5Ky0wLjA2MDEgICAgICAgICAgIDQ1LjkwNDYrLTAu
MDYyMCAgICAgICAgCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDUuMzI5MSstMC4xMzE1ICAgICA/ICAgICA0NS4zNjcy
Ky0wLjEyNDUgICAgICAgID8KICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45MjM4Ky0wLjA0OTEgICAgID8gICAgICAx
Ljk1MzcrLTAuMDU2OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTV4IHNsb3dlcgogICBJbnQxNkFy
cmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDg1LjMxNjErLTAuOTIzOCAgICAgISAgICAgODkuNTEzMCstMC42Njk4ICAgICAgICAhIGRlZmlu
aXRlbHkgMS4wNDkyeCBzbG93ZXIKICAgSW50MzJBcnJheS1hbGxvYy1odWdlLWxvbmctbGl2ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgzMi45MDI5Ky0xMTkuNTUyNiAgID8gICAg
ODQ0Ljc3ODYrLTExNS4yMjA3ICAgICAgPyBtaWdodCBiZSAxLjAxNDN4IHNsb3dlcgogICBJbnQz
MkFycmF5LWFsbG9jLWh1Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNzE4LjA3MjMrLTIuMjA4NSAgICAgICAgICA3MTcuODY4NSstMy4xODExICAgICAgICAKICAg
SW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDk1NC4yMTUxKy0zMy42MTkyICAgICAgICAgOTU0LjA2NjErLTM0LjEzMjAgICAgICAg
CiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNDAuMDk3OCstMC4yNTQ4ICAgICA/ICAgICA0MC4yMzkxKy0wLjMyMjcgICAg
ICAgID8KICAgSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEwMi45NTEwKy0wLjY3OTIgICAgID8gICAgMTAzLjk2MTArLTEuMzk5
MCAgICAgICAgPwogICBJbnQzMkFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3LjM0NDErLTIuOTk5OSAgICAgICAgICAgIDcuMjAyOSst
Mi45NDQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5NnggZmFzdGVyCiAgIEludDMyQXJyYXktSW50
OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMjIx
MystMS45OTMxICAgICA/ICAgICAyMC42NTkyKy0yLjAzNTUgICAgICAgID8gbWlnaHQgYmUgMS4w
MjE3eCBzbG93ZXIKICAgSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3OS41NTA3Ky0xLjU5MTIgICAgICAgICAgIDc5LjQ5Njgr
LTEuNzY4MSAgICAgICAgCiAgIEludDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjAzNSstMC4wMzE0ICAgICA/ICAgICAgNC42
NDE4Ky0wLjA0NjkgICAgICAgID8KICAgSW50OEFycmF5LWxvYWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42NTgzKy0wLjA3NjQgICAgICAgICAg
ICA0LjYzNTkrLTAuMDYyMSAgICAgICAgCiAgIGludGVnZXItZGl2aWRlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuNzI3NCstMC4wNzM1ICAgICAg
ICAgICAxNC42NTk5Ky0wLjA3MTMgICAgICAgIAogICBpbnRlZ2VyLW1vZHVsbyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg2MDIrLTAuMDM0OCAg
ICAgPyAgICAgIDEuOTQ5NSstMC4wNjE0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4MHggc2xvd2Vy
CiAgIGxvdHMtb2YtZmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTUuMDY1NystMi4zODA1ICAgICAgICAgICAxNC45MDE3Ky0yLjM0NTMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTEweCBmYXN0ZXIKICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MjgxKy0wLjU5MDMg
ICAgID8gICAgICA0LjY1MDYrLTAuNjE0MyAgICAgICAgPwogICBtYWtlLXJvcGUtY3NlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5Ljc1ODYrLTAu
MjE0NCAgICAgPyAgICAgMTkuOTEyOCstMC4xNTAzICAgICAgICA/CiAgIG1hcnNhZ2xpYSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OTQuMjI2
NistMC42Mzc2ICAgICA/ICAgIDQ5NC45MzIyKy0wLjM1OTMgICAgICAgID8KICAgbWV0aG9kLW9u
LW51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
NS4wMTYyKy0wLjI0MDYgICAgID8gICAgIDI1Ljc5MjQrLTAuNjU3MCAgICAgICAgPyBtaWdodCBi
ZSAxLjAzMTB4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLWRpdmlkZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMyMzArLTAuMDE5MiAgICAgICAgICAgIDAu
MzA4NystMC4wMTQzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2NXggZmFzdGVyCiAgIG5lZ2F0aXZl
LXplcm8tbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzA2OCstMC4wMTQ5ICAgICAgICAgICAgMC4yOTQ2Ky0wLjAxOTQgICAgICAgICAgbWlnaHQg
YmUgMS4wNDEyeCBmYXN0ZXIKICAgbmVnYXRpdmUtemVyby1uZWdhdGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODUwKy0wLjAyMTMgICAgID8gICAgICAw
LjI5NjQrLTAuMDI0NiAgICAgICAgPyBtaWdodCBiZSAxLjA0MDN4IHNsb3dlcgogICBuZXN0ZWQt
ZnVuY3Rpb24tcGFyc2luZy1yYW5kb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MzgyLjcyOTcrLTExLjYxODkgICAgPyAgICAzODUuMDIwMystMTEuNDMwOSAgICAgICA/CiAgIG5l
c3RlZC1mdW5jdGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTEuOTQ2OSstMy41OTczICAgICA/ICAgICA1Mi4yMTQ0Ky0zLjYxNjggICAgICAgID8K
ICAgbmV3LWFycmF5LWJ1ZmZlci1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy43OTMzKy0wLjE0NTUgICAgID8gICAgICAzLjgwOTgrLTAuMTMxNSAgICAg
ICAgPwogICBuZXctYXJyYXktYnVmZmVyLXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE0LjA5NTArLTIuMjU0NCAgICAgPyAgICAgMTQuMTQxMistMi4yOTYz
ICAgICAgICA/CiAgIG5ldy1hcnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjYuOTY0MistMC4wNTMxICAgICAgICAgICAyNi45NDYxKy0w
LjA0NTUgICAgICAgIAogICBuZXctYXJyYXktcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjc1MzErLTIuNzc3NiAgICAgICAgICAgMTIuNTU4
MistMi41MzExICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NXggZmFzdGVyCiAgIG51bWJlci10ZXN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQu
MTM2MistMC4wNzAwICAgICAgICAgICAgNC4xMDQ5Ky0wLjA1MzIgICAgICAgIAogICBvYmplY3Qt
Y2xvc3VyZS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4Ljc4OTgrLTEuMTgxNiAgICAgPyAgICAgIDkuMDQ3MCstMS41MjM0ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDI5M3ggc2xvd2VyCiAgIG9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTcxMSstMC4wNzcxICAgICA/ICAgICAg
NC42NDUwKy0wLjEzNjMgICAgICAgID8gbWlnaHQgYmUgMS4wMTYyeCBzbG93ZXIKICAgcG9seS1z
dHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4OS4zMDc4Ky0wLjk0ODggICAgID8gICAgIDg5Ljg5OTQrLTEuMzk3NSAgICAgICAgPwogICBw
b2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIwLjAxMjArLTAuMDkzMSAgICAgICAgICAgMTkuOTMzOSstMC4wNzU3ICAgICAgICAK
ICAgcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMS45NjQ3Ky0wLjEwOTMgICAgICAgICAgIDExLjk1MTgrLTAuMDU0MCAgICAg
ICAgCiAgIHB1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxhbmstaW5kZXhpbmctdHlwZSAgICAgICAg
ICAgICAgICAgICAgICAgMTkuNTE1NistMC41Mzc2ICAgICAgICAgICAxOS4zNzk3Ky0wLjQyNjQg
ICAgICAgIAogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE5LjEyMjArLTAuMDQ0MyAgICAgPyAgICAgMTkuMTYwMistMC4w
OTE4ICAgICAgICA/CiAgIHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzAuMDAzNCstMC4xOTc1ICAgICAgICAgICAyOS44MjI3
Ky0wLjAzOTUgICAgICAgIAogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjg2OTUrLTAuMjIxMiAgICAgPyAgICAgMzIu
OTg4OCstMC4yNjQ5ICAgICAgICA/CiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJnZW5jZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDczOCstMC4yMjI4ICAgICAgICAg
ICAgNC40NzE3Ky0wLjI2MDIgICAgICAgIAogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUwODErLTAuMDQ2OSAgICAg
PyAgICAgIDMuNTM0OSstMC4wNTcxICAgICAgICA/CiAgIHNwYXJzZS1jb25kaXRpb25hbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzIxMistMC4wNTYy
ICAgICAgICAgICAgMS4yOTkyKy0wLjA2NjMgICAgICAgICAgbWlnaHQgYmUgMS4wMTY5eCBmYXN0
ZXIKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0NC40ODc3Ky0wLjE0MjAgICAgIF4gICAgIDQ0LjIwNDErLTAuMDg0OSAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDA2NHggZmFzdGVyCiAgIHN0cmluZy1jb25jYXQtb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODEzNystMS40
MzA2ICAgICA/ICAgICAgNC44MzYwKy0xLjQyOTIgICAgICAgID8KICAgc3RyaW5nLWNvbmNhdC1w
YWlyLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43MTAy
Ky0xLjQxNDcgICAgID8gICAgICA0Ljc3MDUrLTEuNDQ1MiAgICAgICAgPyBtaWdodCBiZSAxLjAx
Mjh4IHNsb3dlcgogICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE4LjI4MzErLTAuNTE4NiAgICAgPyAgICAgMTguNDM5Nist
MC41OTc5ICAgICAgICA/CiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTguNDc4MystMC40OTMwICAgICAgICAgICAxOC40
MTMzKy0wLjQ1MjIgICAgICAgIAogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjA4MDQrLTAuODk0MSAgICAgPyAgICAg
MTQuMTE3NCstMC44ODQ3ICAgICAgICA/CiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuNjg4NystMC44ODE0ICAgICAg
ICAgICAxNC42Njk0Ky0wLjg2OTYgICAgICAgIAogICBzdHJpbmctZXF1YWxpdHkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLjY3NTMrLTAuMTk2MSAg
ICAgISAgICAgNDMuNDkwOSstMC4yMzQzICAgICAgICAhIGRlZmluaXRlbHkgMS4wMTkxeCBzbG93
ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtYmlnLWNoYXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNi42MTQ2Ky0wLjI4NTggICAgID8gICAgIDE2LjY2NDcrLTAuMjU2OCAg
ICAgICAgPwogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWluc2FuZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjAzMDUrLTAuMjEzOCAgICAgICAgICAgIDQuOTc4MCstMC4w
ODk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNXggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFs
LW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTkyNCst
MC4wNDMxICAgICAgICAgICAgNC41MzM4Ky0wLjA0MjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTI5
eCBmYXN0ZXIKICAgc3RyaW5nLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy44OTEzKy0wLjA2OTYgICAgID8gICAgICAzLjkxNDIrLTAu
MDQ2MCAgICAgICAgPwogICBzdHJpbmctaGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU2MzgrLTAuMDMxNyAgICAgICAgICAgIDIuNTA5
NistMC4wMzc5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxNnggZmFzdGVyCiAgIHN0cmluZy1sb25n
LWlkZW50LWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcu
MDMyNSstMC40MTEyICAgICAhICAgICAzOC4zNTk4Ky0wLjAzMjUgICAgICAgICEgZGVmaW5pdGVs
eSAxLjAzNTh4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjIzNzcrLTAuNDQwOSAgICAgICAgICAgNDUu
MTc4MCstMC4zNTAxICAgICAgICAKICAgc3RyaW5nLXN1YiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4OS43NzU5Ky0wLjQ5NDEgICAgICAgICAg
IDg5LjY4NTgrLTAuNTI1OCAgICAgICAgCiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDg2MCstMC4wNjU0ICAgICAg
ICAgICAgNC4wNzg0Ky0wLjA2NzMgICAgICAgIAogICBzdHJpbmctdmFyLWVxdWFsaXR5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY3Ljk5MzErLTAuNDY4MSAg
ICAgISAgICAgNjkuNzI5NCstMC4xOTUzICAgICAgICAhIGRlZmluaXRlbHkgMS4wMjU1eCBzbG93
ZXIKICAgc3RydWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy43OTcwKy0wLjYyMzMgICAgID8gICAgICAzLjgxOTkrLTAuNjA4NiAg
ICAgICAgPwogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjI1NTIrLTAuMDU5OSAgICAgICAgICAgIDMuMjExNystMC4w
NTExICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNXggZmFzdGVyCiAgIHN3aXRjaC1jaGFyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNTk5Mist
MC4wNTM2ICAgICA/ICAgICAgNy42NDI3Ky0wLjA5OTIgICAgICAgID8KICAgc3dpdGNoLWNvbnN0
YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4z
MzcxKy0yLjUyMTEgICAgICAgICAgIDEyLjMwMTkrLTIuNTIxMCAgICAgICAgCiAgIHN3aXRjaC1z
dHJpbmctYmFzaWMtYmlnLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjAuNzAxNCstMC4zOTAzICAgICAgICAgICAyMC40Mzg0Ky0wLjE5MjAgICAgICAgICAgbWlnaHQg
YmUgMS4wMTI5eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy1iaWcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi41NDEwKy0xLjA5NDEgICAgICAgICAgIDIy
LjMzMzYrLTEuMjA2NSAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuMTc3MystMC4wNjI5ICAgICA/ICAg
ICAyMC4yMjE1Ky0wLjA2MTggICAgICAgID8KICAgc3dpdGNoLXN0cmluZy1iYXNpYyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOS40NDU1Ky0wLjQwMzMgICAg
ICAgICAgIDE5LjI5NzQrLTAuMzQxMSAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctYmlnLWxlbmd0
aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjguMDQ2NystMC4wNTgx
ICAgICAgICAgICAyOC4wMDcyKy0wLjA0MDcgICAgICAgIAogICBzd2l0Y2gtc3RyaW5nLWxlbmd0
aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjIwODArLTAu
MjQ4MyAgICAgICAgICAgMjIuMDE0MistMC4wNTcyICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1s
ZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi43NDgz
Ky0wLjExODYgICAgICAgICAgIDE2LjcwMzcrLTAuMDYwOSAgICAgICAgCiAgIHN3aXRjaC1zdHJp
bmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYu
NjY2MystMC4wNTAyICAgICA/ICAgICAxNi42NzE1Ky0wLjA1NTIgICAgICAgID8KICAgc3dpdGNo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNi4xNDQ1Ky0yLjgyNzIgICAgICAgICAgIDE2LjA3OTErLTIuNzY2OSAgICAgICAgCiAgIHRl
YXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuMjEyMistMC4wNTQ5ICAgICA/ICAgICAgMi4yNjkxKy0wLjA0NjggICAgICAgID8g
bWlnaHQgYmUgMS4wMjU3eCBzbG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNjc4Ky0wLjA1NDggICAgID8g
ICAgICAzLjM4NjYrLTAuMDU1OSAgICAgICAgPwogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjAwMTArLTAuMDczMiAg
ICAgPyAgICAgMjAuMDE4NCstMC4wNTk0ICAgICAgICA/CiAgIHRvLWludDMyLWJvb2xlYW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuMDA1NSstMC4w
NDc3ICAgICAgICAgICAyMS4wMDUyKy0wLjA0MjQgICAgICAgIAogICB1bmRlZmluZWQtdGVzdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI3MTYr
LTAuMDUxNiAgICAgICAgICAgIDQuMjU2MCstMC4wNTAxICAgICAgICAKCiAgIDxhcml0aG1ldGlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDcu
NTA5MistMS45OTgzICAgICAgICAgIDEwNi43OTEwKy0xLjY0OTggICAgICAgICAgbWlnaHQgYmUg
MS4wMDY3eCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4yNTg5Ky0wLjEyODcgICAgID8gICAgIDE0LjI4
MzArLTAuMTA3MSAgICAgICAgPyBtaWdodCBiZSAxLjAwMTd4IHNsb3dlcgogICA8aGFybW9uaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
Ljk2OTMrLTAuMDY4MiAgICAgICAgICAgIDQuOTYzNistMC4xMDIxICAgICAgICAgIG1pZ2h0IGJl
IDEuMDAxMnggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAg
ICBDb25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApEU1A6CiAgIGZp
bHRyci1wb3N0ZXJpemUtdGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDEuMzc4NSstMS4wNTk0ICAgICAgICAgICA0MS4zNzI5Ky0xLjA4NjcgICAgICAgIAog
ICBmaWx0cnItdGludC1jb250cmFzdC1zYXQtYnJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDY4LjAxMzErLTAuODIxNSAgICAgICAgICAgNjcuNjgxNCstMC4yODI1ICAgICAg
ICAKICAgZmlsdHJyLXRpbnQtc2F0LWFkai1jb250ci1tdWx0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4MC4zNzM1Ky0yLjk5MTYgICAgICAgICAgIDc4LjQ2NDYrLTIuMjM4NSAg
ICAgICAgICBtaWdodCBiZSAxLjAyNDN4IGZhc3RlcgogICBmaWx0cnItYmx1ci1vdmVybGF5LXNh
dC1jb250ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEwLjc5MTErLTcuNzg1
NSAgICAgICAgICAyMDkuNjA1NistOC4yNjI1ICAgICAgICAKICAgZmlsdHJyLXNhdC1ibHVyLW11
bHQtc2hhcnBlbi1jb250ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0Ny44MjEyKy0y
LjQ3OTUgICAgICAgICAgMjQ3LjE2MzErLTIuNTk0OCAgICAgICAgCiAgIGZpbHRyci1zZXBpYS1i
aWFzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuNzQy
MistMy4xNzk4ICAgICAgICAgICAzMS43NDA3Ky0zLjE0MTAgICAgICAgIAogICByb3V0ZTktdnA4
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1ICAgICAgOTIy
LjAxOTArLTMuOTI5MCAgICAgPyAgICA5MjMuODMyOCstNC4wNTIzICAgICAgICA/CiAgIHN0YXJm
aWVsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDUgICAg
IDEyMzYuNTc3NystNy4yMzQ5ICAgICBeICAgMTE5OC44MjUyKy0yOC45MTQwICAgICAgIF4gZGVm
aW5pdGVseSAxLjAzMTV4IGZhc3RlcgogICBiZWxsYXJkLWpzbGludXggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHg1ICAgICAyODkwLjMzMzMrLTcuMzIxNiAgICAgPyAg
IDI4OTYuNTAwMCstMTIuMTk5MCAgICAgICA/CiAgIHp5bmFwcy1xdWFrZTMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDUgICAgIDEzMzUuNzU1MSstNDkuMDQ1NyAg
ICAgICAgMTMwNi42MDAyKy01Mi41MjIzICAgICAgICAgbWlnaHQgYmUgMS4wMjIzeCBmYXN0ZXIK
ICAgenluYXBzLW1hbmRlbGJyb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4NSAgICAgMTAyNS44MDE5Ky0zLjA5NzEgICAgID8gICAxMDI2LjgwODcrLTMuMTk0MyAgICAg
ICAgPwogICBhbW1vanMtYXNtLWpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHg1ICAgICAgMjYxLjEzODMrLTEzLjE4NjkgICAgICAgICAyNTMuNjAzOCstMTUuNDUx
MiAgICAgICAgIG1pZ2h0IGJlIDEuMDI5N3ggZmFzdGVyCiAgIGFtbW9qcy1yZWd1bGFyLWpzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDUgICAgICAyNDMuODkxNCstOC44
MTc1ICAgICAgICAgIDIzNi44NjMxKy04Ljc3MzMgICAgICAgICAgbWlnaHQgYmUgMS4wMjk3eCBm
YXN0ZXIKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA5ODEuODk1MistNS40NTM3ICAgICAgICAgIDk3Mi45NTYwKy03LjYz
MjYgICAgICAgICAgbWlnaHQgYmUgMS4wMDkyeCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU5OC4yMDEwKy02
LjUzMTIgICAgICAgICAgNTg5LjgyMjcrLTcuODE2MyAgICAgICAgICBtaWdodCBiZSAxLjAxNDJ4
IGZhc3RlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjcwLjQ2OTIrLTkuNDgxOCAgICAgICAgICAyNjcuMzAzNystOS42
NjExICAgICAgICAgIG1pZ2h0IGJlIDEuMDExOHggZmFzdGVyCgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29u
ZiMxICAgICAgICAgICAgICAgICAgICBDb25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIApBbGwgYmVuY2htYXJrczoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyMy45MzkwKy0wLjk1NjggICAg
ICAgICAgMjIyLjI0NDIrLTEuNTYwMiAgICAgICAgICBtaWdodCBiZSAxLjAwNzZ4IGZhc3Rlcgog
ICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI1LjMxNDkrLTAuMTYwNCAgICAgICAgICAgMjUuMzEyMistMC4xMjgwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDAwMXggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzY4MCstMC4wNTM1ICAg
ICA/ICAgICAgNC43NzE1Ky0wLjA3MjQgICAgICAgID8gbWlnaHQgYmUgMS4wMDA3eCBzbG93ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5z
OgogICA8c2NhbGVkLXJlc3VsdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQwLjQyNjArLTAuMTM1MCAgICAgICAgICAgNDAuNDI1NystMC4xMTI4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDAwMHggZmFzdGVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210205</attachid>
            <date>2013-08-31 12:58:05 -0700</date>
            <delta_ts>2013-08-31 12:58:05 -0700</delta_ts>
            <desc>jsc benchmark run 5</desc>
            <filename>jsc-bench5.txt</filename>
            <type>text/plain</type>
            <size>36738</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">MTk2NC8xOTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW5lcmF0aW5nIGJlbmNobWFyayByZXBvcnQg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvSW50ZXJuYWwvU3VuU3BpZGVyVjhTcGlkZXJPY3RhbmVL
cmFrZW5KU0JlbmNoSlNSZWdyZXNzRFNQX2FsYmlvbl8yMDEzMDgzMV8wNDE2X3JlcG9ydC50eHQK
QW5kIHJhdyBkYXRhIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M0L0ludGVybmFsL1N1blNwaWRlclY4
U3BpZGVyT2N0YW5lS3Jha2VuSlNCZW5jaEpTUmVncmVzc0RTUF9hbGJpb25fMjAxMzA4MzFfMDQx
Ni5qc29uCgpCZW5jaG1hcmsgcmVwb3J0IGZvciBTdW5TcGlkZXIsIFY4U3BpZGVyLCBPY3RhbmUs
IEtyYWtlbiwgSlNCZW5jaCwgSlNSZWdyZXNzLCBhbmQgRFNQIG9uIGFsYmlvbiAoTWFjUHJvNSwx
KS4KClZNcyB0ZXN0ZWQ6CiJDb25mIzEiIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M1L09wZW5Tb3Vy
Y2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9EdW1wUmVuZGVyVHJlZSAocjE1NDkwOCkKIkNvbmYjMiIg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0R1
bXBSZW5kZXJUcmVlIChyMTU0OTA4KQoKQ29sbGVjdGVkIDEyIHNhbXBsZXMgcGVyIGJlbmNobWFy
ay9WTSwgd2l0aCA0IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxs
IHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiBVc2VkIDEKYmVuY2htYXJrIGl0
ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNp
ZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWlu
Zy4gUmVwb3J0aW5nCmJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5j
ZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAg
ICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM3ODErLTAuMjMwNSAgICAgICAgICAgIDcuMzQ4
NistMC4yODE3ICAgICAgICAKICAgM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4xMzA3Ky0wLjEyNTkgICAgICAgICAgICA4
LjA1NDIrLTAuMTMxNyAgICAgICAgCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMjE4MystMC4yMzE1ICAgICAgICAg
ICAgOS4xNDcyKy0wLjE1ODYgICAgICAgIAogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU5MzYrLTAuMjc4NiAgICAg
ICAgICAgIDIuNTg0NCstMC4yOTQ0ICAgICAgICAKICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4zNTQ0Ky0wLjA1OTUg
ICAgID8gICAgICA3LjQxMDQrLTAuMDg2NCAgICAgICAgPwogICBhY2Nlc3MtbmJvZHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk5ODArLTAu
MDgzMCAgICAgPyAgICAgIDQuMDIwOCstMC4wNjE2ICAgICAgICA/CiAgIGFjY2Vzcy1uc2lldmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODg2
NCstMC4xNDczICAgICA/ICAgICAgNC45MDMwKy0wLjEwNTkgICAgICAgID8KICAgYml0b3BzLTNi
aXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MS43ODIxKy0wLjA2NjggICAgID8gICAgICAxLjgxMjkrLTAuMDY2OSAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNzN4IHNsb3dlcgogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjQ3NDQrLTAuMDg3MSAgICAgICAgICAgIDYu
NDY5MSstMC4wOTY4ICAgICAgICAKICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NzA5Ky0wLjA5NzIgICAgID8gICAg
ICAyLjY0NDkrLTAuMDY3NCAgICAgICAgPyBtaWdodCBiZSAxLjAyODh4IHNsb3dlcgogICBiaXRv
cHMtbnNpZXZlLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjU0NDMrLTAuMDU5NCAgICAgICAgICAgIDQuNTAyNystMC4wOTY4ICAgICAgICAKICAg
Y29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi44NzA3Ky0wLjA1OTkgICAgICAgICAgICAyLjg2NjMrLTAuMDQ2OSAgICAgICAg
CiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuODI5NSstMC4zMTU5ICAgICAgICAgICAgNS42NDIxKy0wLjMxMTMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzMyeCBmYXN0ZXIKICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNzYwKy0wLjEwNDQg
ICAgICAgICAgICAzLjEzODErLTAuMDk1NiAgICAgICAgICBtaWdodCBiZSAxLjAxMjF4IGZhc3Rl
cgogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjg4NDUrLTAuMDg1NSAgICAgPyAgICAgIDIuOTg1MistMC4wOTU1ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDM0OXggc2xvd2VyCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNDIzOCstMC45MDUx
ICAgICA/ICAgICAxMi40MzIzKy0wLjk4MDggICAgICAgID8KICAgZGF0ZS1mb3JtYXQteHBhcmIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41NzkzKy0w
LjY4MTggICAgID8gICAgICA4LjcxNjcrLTAuNjIxNSAgICAgICAgPyBtaWdodCBiZSAxLjAxNjB4
IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjg3MjMrLTAuMDcxMyAgICAgICAgICAgIDMuODAwMistMC4w
NTQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5MHggZmFzdGVyCiAgIG1hdGgtcGFydGlhbC1zdW1z
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMDUyMSst
MC4wNTk1ICAgICA/ICAgICAxMC4wOTY1Ky0wLjEzNDMgICAgICAgID8KICAgbWF0aC1zcGVjdHJh
bC1ub3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44
MjY1Ky0wLjA1OTMgICAgICAgICAgICAyLjc3NjMrLTAuMDU3NSAgICAgICAgICBtaWdodCBiZSAx
LjAxODF4IGZhc3RlcgogICByZWdleHAtZG5hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDExLjkzNjkrLTAuNTQ5OSAgICAgPyAgICAgMTIuMDIw
NCstMC41MzA5ICAgICAgICA/CiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMDAzMCstMC41MDQ0ICAgICA/ICAgICAg
Ni4xMTIzKy0wLjQ5NTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTgyeCBzbG93ZXIKICAgc3RyaW5n
LWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMS42OTg1Ky0wLjEyODIgICAgID8gICAgIDExLjg4NDIrLTAuMjI3MCAgICAgICAgPyBtaWdo
dCBiZSAxLjAxNTl4IHNsb3dlcgogICBzdHJpbmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjU2MTUrLTAuMTkwMyAgICAgICAgICAg
MTQuMzg3OCstMC4xNjcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMXggZmFzdGVyCiAgIHN0cmlu
Zy11bnBhY2stY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzAuMDk1NystMC4xNzIxICAgICAgICAgICAyOS45NDM5Ky0wLjE0NDEgICAgICAgIAogICBz
dHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4LjcxNjErLTAuMTExMyAgICAgPyAgICAgIDguODIwMSstMC4xNzEyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDExOXggc2xvd2VyCgogICA8YXJpdGhtZXRpYz4gKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ3OTErLTAuMDY3NSAgICAg
PyAgICAgIDcuNDgxNistMC4wNzYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwM3ggc2xvd2VyCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUuOTczOCstMC4wNTE1ICAgICA/ICAgICAgNS45ODE5Ky0wLjA1NzYgICAgICAg
ID8gbWlnaHQgYmUgMS4wMDE0eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NzQ1Ky0wLjA0MDEgICAg
ID8gICAgICA0Ljg4ODMrLTAuMDUwMSAgICAgICAgPyBtaWdodCBiZSAxLjAwMjh4IHNsb3dlcgoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVjhTcGlkZXI6CiAgIGNyeXB0byAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzguNDcz
NistMC4zNDU3ICAgICAgICAgICA3OC4zNzk1Ky0wLjI5NjEgICAgICAgIAogICBkZWx0YWJsdWUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk5
LjU2ODgrLTEuMzA4MyAgICAgICAgICAgOTguMjEyMystMS4xMjA3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEzOHggZmFzdGVyCiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNjguMTg1OCstMC42NzQwICAgICA/ICAgICA2OC41
NTc1Ky0wLjcwNDAgICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MS43NzQ5Ky0zLjc2NjQgICAgID8gICAg
IDQxLjk1NDkrLTMuNzkyNCAgICAgICAgPwogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1Ljc3MDUrLTAuMzgwOSAgICAg
PyAgICAgOTYuMzE3OSstMC4yMzk4ICAgICAgICA/CiAgIHJpY2hhcmRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTAuMzk4OSstMS4zODE5
ICAgICAgICAgIDEwOS42MzU2Ky0xLjQ5MDMgICAgICAgIAogICBzcGxheSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU5LjA3MDErLTIu
NjI2MSAgICAgICAgICAgNTguNTM0MCstMi44MDY0ICAgICAgICAKCiAgIDxhcml0aG1ldGljPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzkuMDM0
NystMC42NzA3ICAgICAgICAgICA3OC43OTg4Ky0wLjY3OTEgICAgICAgICAgbWlnaHQgYmUgMS4w
MDMweCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3NS4zMzE4Ky0wLjkwODQgICAgICAgICAgIDc1LjE2MDYr
LTAuOTAwMyAgICAgICAgICBtaWdodCBiZSAxLjAwMjN4IGZhc3RlcgogICA8aGFybW9uaWM+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcxLjI4
NjErLTEuMjc1NiAgICAgICAgICAgNzEuMTc5OSstMS4yNDEwICAgICAgICAgIG1pZ2h0IGJlIDEu
MDAxNXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAgICBD
b25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApPY3RhbmUgYW5kIFY4
djc6CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC40NTM2NSstMC4wMDA0NSAgICA/ICAgICAwLjQ1MzY4Ky0wLjAwMDQy
ICAgICAgID8KICAgZGVjcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4LjI3MTE5Ky0wLjAxMzI1ICAgICAgICAgIDguMjU4MDIrLTAu
MDA3OTggICAgICAgCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAgMC42NTE2OCstMC4wNzE4MCAgICAgICAgICAwLjYzMDI3
Ky0wLjA1NjAxICAgICAgICAgbWlnaHQgYmUgMS4wMzQweCBmYXN0ZXIKICAgZWFybGV5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg1
NTgzKy0wLjAxNjYwICAgID8gICAgIDAuODYxNTcrLTAuMDE0MDAgICAgICAgPwogICBib3llciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTIuMDQ3NzcrLTAuMDc4MjggICAgPyAgICAxMi4xODY2NystMC4xNzY4MyAgICAgICA/IG1pZ2h0
IGJlIDEuMDExNXggc2xvd2VyCiAgIHJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgNC4yMjk0MSstMC4wNDQyMyAgICAgICAgICA0
LjE5NDc4Ky0wLjAzNTgxICAgICAgIAogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjkuNjY4NjArLTAuMDc0ODMgICAgISAg
ICAzMC4yNDg3MCstMC4zMjI0MiAgICAgICAhIGRlZmluaXRlbHkgMS4wMTk2eCBzbG93ZXIKICAg
cmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MiAgICAgICAwLjMwNDIxKy0wLjAwMzc5ICAgID8gICAgIDAuMzA2ODIrLTAuMDAzOTYgICAgICAg
PwogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICAgIDAuNjQ2OTgrLTAuMDExMzMgICAgICAgICAgMC42Mzg1NSstMC4wMDc3NyAg
ICAgICAgIG1pZ2h0IGJlIDEuMDEzMnggZmFzdGVyCiAgIG5hdmllci1zdG9rZXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAxMC4zODUyOCstMC4wMDk4
MiAgICA/ICAgIDEwLjM5NTg5Ky0wLjAxODk5ICAgICAgID8KICAgY2xvc3VyZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQxMzcxKy0w
LjA0MjUxICAgID8gICAgIDAuNDEzOTIrLTAuMDQzMDIgICAgICAgPwogICBqcXVlcnkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTA1
NzQrLTAuNjYwOTkgICAgPyAgICAgNS4xMTc4MSstMC42NjUxOSAgICAgICA/CiAgIGdiZW11ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA5
NS42MjExMystNC45OTExOCAgICAgICAgIDkzLjMxODEzKy01LjU0NjcxICAgICAgICAgbWlnaHQg
YmUgMS4wMjQ3eCBmYXN0ZXIKICAgbWFuZHJlZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB4MiAgICAgMTgzLjkxMzQ3Ky0wLjk2MzU5ICAgICAgICAxODMu
ODU5MDgrLTAuNDg5NTcgICAgICAgCiAgIHBkZmpzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA5Mi40NjM1MCstMC4yODMzNyAgICAgICAg
IDkyLjQzOTY3Ky0wLjIyNTU5ICAgICAgIAogICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMzQuMTAxNjMrLTAuNDE3MTIgICAg
ICAgICAzMy45OTA1OSstMC40NjQwMSAgICAgICAKClY4djc6CiAgIDxhcml0aG1ldGljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wODc1NSst
MC4wMTM3OCAgICAhICAgICA3LjE2MTg3Ky0wLjA0MDY4ICAgICAgICEgZGVmaW5pdGVseSAxLjAx
MDV4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuMzc5MzcrLTAuMDMxOTEgICAgICAgICAgMi4zNzUzNCst
MC4wMjQzNSAgICAgICAgIG1pZ2h0IGJlIDEuMDAxN3ggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC45MzUx
MSstMC4wMTg1MSAgICAgICAgICAwLjkzMTg0Ky0wLjAxNTY3ICAgICAgICAgbWlnaHQgYmUgMS4w
MDM1eCBmYXN0ZXIKCk9jdGFuZSBpbmNsdWRpbmcgVjh2NzoKICAgPGFyaXRobWV0aWM+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjgxMjI5Ky0w
LjQyMjI1ICAgICAgICAgMzUuNjY2NzkrLTAuNDg3NzUgICAgICAgICBtaWdodCBiZSAxLjAwNDF4
IGZhc3RlcgogICA8Z2VvbWV0cmljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuOTA3MjgrLTAuMTEwODUgICAgICAgICAgNi44ODUzMystMC4x
MDI5MyAgICAgICAgIG1pZ2h0IGJlIDEuMDAzMnggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMDcwMCst
MC4wMjYyNyAgICAgICAgICAxLjMwMzMxKy0wLjAyNjA0ICAgICAgICAgbWlnaHQgYmUgMS4wMDI4
eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYj
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCktyYWtlbjoKICAgYWktYXN0
YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1MDEuOTExKy0wLjc4NiAgICAgICAgICAgIDUwMC44NjUrLTAuNTQ4ICAgICAgICAgCiAgIGF1
ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjQzLjY0NCstNC4yMzkgICAgICA/ICAgICAyNDQuMTEwKy0zLjQ1OCAgICAgICAgID8K
ICAgYXVkaW8tZGZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyOTcuODI2Ky0xLjExOCAgICAgICAgICAgIDI5Ny41MDErLTAuNjc4ICAgICAg
ICAgCiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQxLjQ5OSstMC41NTEgICAgICAgICAgICAxNDEuMzc1Ky0wLjUyNiAg
ICAgICAgIAogICBhdWRpby1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIzNS41MzMrLTEuOTY4ICAgICAgPyAgICAgMjM1LjY1MistMi4w
OTIgICAgICAgICA/CiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjg1LjE4OSstMS4yOTcgICAgICAgICAgICAyODUuMTgy
Ky0xLjU5MSAgICAgICAgIAogICBpbWFnaW5nLWRlc2F0dXJhdGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1MC40OTErLTAuMTc0ICAgICAgPyAgICAgMTUw
LjU0MSstMC4zMDYgICAgICAgICA/CiAgIGltYWdpbmctZ2F1c3NpYW4tYmx1ciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzgzLjU2OSstMC4xNjIgICAgICAgICAg
ICAzODMuNTQyKy0wLjEzNSAgICAgICAgIAogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ny4wNzcrLTAuNjM2ICAgICAg
XiAgICAgIDc1LjkxNSstMC4yNTYgICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTUzeCBmYXN0ZXIK
ICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMDAuNzU5Ky0wLjYwMyAgICAgIF4gICAgICA5Ny4yNDcrLTAuNDY5ICAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDM2MXggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1hZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAyLjYyNystMC41OTQg
ICAgICA/ICAgICAxMDQuNzg1Ky0xLjgxMSAgICAgICAgID8gbWlnaHQgYmUgMS4wMjEweCBzbG93
ZXIKICAgc3RhbmZvcmQtY3J5cHRvLWNjbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMjAuNDA0Ky0xLjk2NSAgICAgID8gICAgIDEyMi41NzkrLTEuNjU5ICAg
ICAgICAgPyBtaWdodCBiZSAxLjAxODF4IHNsb3dlcgogICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1Mi44MzUrLTEuMTk0
ICAgICAgPyAgICAgMjU0LjQ3MistMS42MzAgICAgICAgICA/CiAgIHN0YW5mb3JkLWNyeXB0by1z
aGEyNTYtaXRlcmF0aXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk4LjIwOCst
MC41NDYgICAgICA/ICAgICAgOTguNTg3Ky0wLjM2NSAgICAgICAgID8KCiAgIDxhcml0aG1ldGlj
PiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEz
LjY4NCstMC40OTEgICAgICA/ICAgICAyMTMuNzQwKy0wLjM1OSAgICAgICAgID8gbWlnaHQgYmUg
MS4wMDAzeCBzbG93ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxODMuMDkxKy0wLjQwNyAgICAgICAgICAgIDE4My4w
NTErLTAuNDAxICAgICAgICAgICBtaWdodCBiZSAxLjAwMDJ4IGZhc3RlcgogICA8aGFybW9uaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1
Ny45NzArLTAuMjk3ICAgICAgICAgICAgMTU3LjcxMCstMC40NTEgICAgICAgICAgIG1pZ2h0IGJl
IDEuMDAxN3ggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAg
ICBDb25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU0JlbmNoOgog
ICBhbWF6b24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA5LjgzMzMrLTAuMzY2OCAgICAgICAgICAgIDkuNzUwMCstMC4yODc0ICAgICAg
ICAKICAgZmFjZWJvb2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzNy4xNjY3Ky0wLjQ1NjAgICAgID8gICAgIDM3LjU4MzMrLTAuNDI0OCAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICBnb29nbGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY2LjAwMDArLTEuMDEz
NyAgICAgPyAgICAgNjYuNDE2NystMS4yMjU0ICAgICAgICA/CiAgIHR3aXR0ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDE2Nyst
MC4zMjcyICAgICA/ICAgICAgOS42NjY3Ky0wLjMxMjggICAgICAgID8gbWlnaHQgYmUgMS4wMjY1
eCBzbG93ZXIKICAgeWFob28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy41ODMzKy0wLjMyNzIgICAgICAgICAgICAzLjQxNjcrLTAu
MzI3MiAgICAgICAgICBtaWdodCBiZSAxLjA0ODh4IGZhc3RlcgoKICAgPGFyaXRobWV0aWM+ICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS4yMDAw
Ky0wLjE2MjYgICAgID8gICAgIDI1LjM2NjcrLTAuMjgwNyAgICAgICAgPyBtaWdodCBiZSAxLjAw
NjZ4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE1LjE3NzYrLTAuMzMxNSAgICAgICAgICAgMTUuMTQwNCst
MC4zMjk2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAyNXggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDAx
MistMC40OTQ4ICAgICAgICAgICAgOS4xOTkxKy0wLjQ3NjQgICAgICAgICAgbWlnaHQgYmUgMS4w
MjIweCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAgIENv
bmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTUmVncmVzczoKICAg
YWRhcHQtdG8tZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMS40NTY0Ky0wLjA5ODcgICAgICAgICAgIDIxLjQzNjYrLTAuMDU2MyAgICAgICAg
CiAgIGFsaWFzZWQtYXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAuOTk0MSstMC4wNTI4ICAgICAgICAgICAgMC45ODAwKy0wLjA2MzggICAg
ICAgICAgbWlnaHQgYmUgMS4wMTQ0eCBmYXN0ZXIKICAgYWxsb2NhdGUtYmlnLW9iamVjdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MTQwKy0xLjMyMTIg
ICAgID8gICAgICAzLjk0NTIrLTEuMzA0MSAgICAgICAgPwogICBhcml0eS1taXNtYXRjaC1pbmxp
bmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjkxNzkrLTAu
MDYwMCAgICAgPyAgICAgIDAuOTI2OCstMC4wNTE4ICAgICAgICA/CiAgIGFycmF5LWFjY2Vzcy1w
b2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNTg1
NistMi4wMTAwICAgICA/ICAgICAgOC42MDc1Ky0yLjAwMjkgICAgICAgID8KICAgYXJyYXktbm9u
YXJyYXktcG9seW1vcmhwaWMtYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
Ny41MzA1Ky0wLjE5NjcgICAgID8gICAgIDY4LjUwMDQrLTI0LjE2MDMgICAgICAgPyBtaWdodCBi
ZSAxLjE5MDd4IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1hZGQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjIwNTkrLTAuMDg4MCAgICAgICAgICAgIDUu
MTk4NystMC4wOTM0ICAgICAgICAKICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVtZW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4wNDE4Ky0wLjExNDcgICAgID8gICAg
ICA0LjA2MDkrLTAuMDk5MiAgICAgICAgPwogICBhcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjMyNDArLTAuMTk2MSAgICAg
ICAgICAgIDcuMjcxMistMC4xNzE2ICAgICAgICAKICAgYXJyYXktd2l0aC1kb3VibGUtc3VtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41NjIzKy0wLjA5MjIg
ICAgID8gICAgICA3LjYxMjYrLTAuMTIwMyAgICAgICAgPwogICBhcnJheS13aXRoLWludDMyLWFk
ZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljk3NTcrLTAu
MTA3NiAgICAgPyAgICAgIDguOTg4MistMC4wOTc3ICAgICAgICA/CiAgIGFycmF5LXdpdGgtaW50
MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNjgy
NCstMC4xMzQ1ICAgICAgICAgICAgNy42MjM2Ky0wLjA2MTAgICAgICAgIAogICBBcnJheUJ1ZmZl
ci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgMTE4
LjkwMDgrLTEuMjgwOSAgICAgICAgICAxMTguODM0MSstMS4zODIyICAgICAgICAKICAgQXJyYXlC
dWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzOC4zMjA4Ky0zLjgzODggICAgICAgICAgIDM4LjE5MzkrLTMuODI4NSAgICAgICAgCiAgIEFy
cmF5QnVmZmVyLUludDMyQXJyYXktYnl0ZU9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDguMzcxMystMC4wODEwICAgICA/ICAgICAgOC40MDAwKy0wLjA4ODYgICAgICAgID8K
ICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZCAgICAgICAgICAg
ICAgICAgICAgIDIyMi4xMjU2Ky0yMy45MzI1ICAgICAgICAgMjIxLjkwMzgrLTIzLjc3MzIgICAg
ICAgCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLWZyYWdt
ZW50ZWQgICAgICAgICAxNzMuOTk3MCstMi4zOTc5ICAgICA/ICAgIDE3NC40NDMwKy0zLjA0NDEg
ICAgICAgID8KICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQg
ICAgICAgICAgICAgICAgICAgIDEyMy45MDE0Ky0xLjMwODggICAgID8gICAgMTI0LjUxMzcrLTEu
MzEyOCAgICAgICAgPwogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC1i
dWZmZXIgICAgICAgICAgICAgICAgICAgIDc0LjQ1NDQrLTEwLjAyNzcgICAgPyAgICAgNzQuNzIx
NistMTAuMDMwMyAgICAgICA/CiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuNTU2OSstMy45ODQ0ICAgICAgICAgICAz
Ny4xMzA3Ky0zLjcxOTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTE1eCBmYXN0ZXIKICAgQXJyYXlC
dWZmZXItSW50OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMi43MzEzKy0zLjk4ODEgICAgICAgICAgIDMyLjYyNzUrLTMuOTQwMiAgICAgICAgCiAgIGJp
Zy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNjQxMystMC4wNzU5ICAgICA/ICAgICAgNC42Njc5Ky0wLjEyMjcgICAgICAgID8K
ICAgYm9vbGVhbi10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4yMTA2Ky0wLjA4MTkgICAgID8gICAgICA0LjI0NjUrLTAuMDcxMiAgICAg
ICAgPwogICBicmFuY2gtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjU2NjgrLTAuMDYxNiAgICAgPyAgICAgIDQuNTgxOSstMC4wNzUz
ICAgICAgICA/CiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTMuNDI3NistMC4wNjU3ICAgICA/ICAgICAxMy41MzIzKy0w
LjEyNTMgICAgICAgID8KICAgY2VsbC1hcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4xMDY1Ky0wLjI2MTcgICAgICAgICAgIDEzLjg4
NjIrLTAuMjE3MiAgICAgICAgICBtaWdodCBiZSAxLjAxNTl4IGZhc3RlcgogICBjZmctc2ltcGxp
ZnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjY4NzErLTAuMDUzNyAgICAgPyAgICAgIDMuNzAxMCstMC4wOTUzICAgICAgICA/CiAgIGNtcGVx
LW9iai10by1vYmotb3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTEuNzgzMCstMC4xOTMzICAgICA/ICAgICAxMS43ODgwKy0wLjI0ODYgICAgICAgID8KICAg
Y29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOC4yNjY5Ky0wLjE1MzEgICAgID8gICAgICA4LjI3MDMrLTAuMTEyOCAgICAgICAg
PwogICBEYXRhVmlldy1jdXN0b20tcHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTM1LjkxMjArLTIuODA5MSAgICAgICAgICAxMzUuMDYzMystMi43MzI3ICAg
ICAgICAKICAgZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4zMjIwKy0wLjA2NzYgICAgICAgICAgICAzLjI5NTErLTAuMDcx
NyAgICAgICAgCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAuODYwNCstMC4wNTc3ICAgICAgICAgICAgMC44MTMyKy0w
LjA1NjUgICAgICAgICAgbWlnaHQgYmUgMS4wNTgweCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlv
bi1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4zMzIw
Ky0wLjA1NzggICAgID8gICAgIDEwLjM3MDMrLTAuMTM4OCAgICAgICAgPwogICBkb3VibGUtcG9s
bHV0aW9uLXB1dGJ5b2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjU4ODIrLTAuNjE2NyAgICAgICAgICAgIDYuMzY4MystMC41OTUzICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM0NXggZmFzdGVyCiAgIGVtcHR5LXN0cmluZy1wbHVzLWludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNTA0MystMC4zMzY3ICAgICA/ICAgICAxNC4w
Mzc4Ky0wLjYxMzUgICAgICAgID8gbWlnaHQgYmUgMS4wMzk1eCBzbG93ZXIKICAgZW1zY3JpcHRl
bi1jdWJlMmhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
OC40OTE5Ky0zLjE0OTMgICAgID8gICAgIDQ4Ljk5NDYrLTMuMjcyNCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMDR4IHNsb3dlcgogICBlbXNjcmlwdGVuLW1lbW9wcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5NzY4LjQ0MzgrLTMyOS4yNTM1ICAgICAgIDk2OTEu
NTk0NystMjkyLjg4OTUgICAgICAKICAgZXh0ZXJuYWwtYXJndW1lbnRzLWdldGJ5dmFsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yODQ4Ky0wLjE4OTkgICAgICAgICAg
ICAyLjI0OTArLTAuMTcyNCAgICAgICAgICBtaWdodCBiZSAxLjAxNTl4IGZhc3RlcgogICBleHRl
cm5hbC1hcmd1bWVudHMtcHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjU2NzIrLTAuMjgzNiAgICAgPyAgICAgIDMuNzA4NSstMC4zODMxICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM5Nnggc2xvd2VyCiAgIEZsb2F0MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzQ3NystMC4yMzc5ICAgICAgICAg
ICAgNi4zMDA2Ky0wLjI1OTkgICAgICAgIAogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5
LXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkzLjU2NDYrLTAuMjQ0NiAgICAg
ICAgICAgOTIuNTcyMCstMC43Nzk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwN3ggZmFzdGVyCiAg
IEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMjUuNzAxMSstNC4xMDgzICAgICA/ICAgIDEyNy42MTAzKy00LjA1NDIgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTUyeCBzbG93ZXIKICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXkt
c2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExMy4zMDQ0Ky0wLjc5MjcgICAg
ICAgICAgMTEyLjMxMjErLTAuNjQxOSAgICAgICAgCiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuMTM3NistMC4yNTE0
ICAgICA/ICAgICAyNC40MTg5Ky0wLjQ5NjEgICAgICAgID8gbWlnaHQgYmUgMS4wMTE3eCBzbG93
ZXIKICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy4wNTc3Ky0wLjA5ODYgICAgICAgICAgICAzLjAxODIrLTAuMDcwNiAg
ICAgICAgICBtaWdodCBiZSAxLjAxMzF4IGZhc3RlcgogICBmdW5jdGlvbi10ZXN0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU0NDcrLTAuMTE4
NSAgICAgPyAgICAgIDQuNjA2NSstMC4xMDczICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzNnggc2xv
d2VyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuMjYyMystMC4wNjk0ICAgICA/ICAgICAgNi4zMzc2Ky0wLjExMDAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTIweCBzbG93ZXIKICAgZ2V0LWJ5LWlkLXByb3RvLW9yLXNl
bGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS45ODQ5Ky0wLjMw
MzcgICAgICAgICAgIDIxLjk3NTcrLTAuMzM2OCAgICAgICAgCiAgIGdldC1ieS1pZC1zZWxmLW9y
LXByb3RvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuMDk2NSst
MC4zNzI0ICAgICA/ICAgICAyMi40NzQ1Ky0wLjI2NjQgICAgICAgID8gbWlnaHQgYmUgMS4wMTcx
eCBzbG93ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUta2V5cyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0NC4wMjU3Ky0xLjE0NzQgICAgICAgICAgIDQzLjkwMDErLTAu
NjkxOSAgICAgICAgCiAgIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTEuMzEwMSstMC4yOTgxICAgICAhICAgICA1My44MzQ3
Ky0xLjA3MDUgICAgICAgICEgZGVmaW5pdGVseSAxLjA0OTJ4IHNsb3dlcgogICBIYXNoTWFwLXN0
cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYy
LjA0MTErLTEuMTg5NyAgICAgPyAgICAgNjMuMjcwNistMC45NTY1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE5OHggc2xvd2VyCiAgIGltdWwtZG91YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNjMyOSstMC4wNDMyICAgICA/ICAgICAxNy4w
MTUzKy0wLjgwODkgICAgICAgID8gbWlnaHQgYmUgMS4wMjMweCBzbG93ZXIKICAgaW11bC1pbnQt
b25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NC44Njc5Ky0wLjE1MTAgICAgID8gICAgIDE0Ljk0MzkrLTAuMTY0NiAgICAgICAgPwogICBpbXVs
LW1peGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIxLjIyNDUrLTAuNjgzMSAgICAgPyAgICAgMjEuMjY1NCstMC42NjQ0ICAgICAgICA/CiAg
IGluLWZvdXItY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjQuODY1MSstMC4wNzczICAgICA/ICAgICAyNC44NzEzKy0wLjEzMzQgICAgICAg
ID8KICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMS42ODY5Ky0wLjA5NDkgICAgID8gICAgIDExLjg0MzArLTAuMzQ4MiAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMzR4IHNsb3dlcgogICBpbi1vbmUtY2FzZS10cnVlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjczMjYrLTAuMTE2
NiAgICAgPyAgICAgMTEuNzQwMCstMC4wODYxICAgICAgICA/CiAgIGluLXR3by1jYXNlcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMDg3MCst
MC4wNTQ1ICAgICAgICAgICAxMi4wNjA4Ky0wLjA3MTMgICAgICAgIAogICBpbmRleGVkLXByb3Bl
cnRpZXMtaW4tb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjkz
NzYrLTAuMDY3MyAgICAgPyAgICAgIDMuOTQyMistMC4wNTc1ICAgICAgICA/CiAgIGlubGluZS1h
cmd1bWVudHMtYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEuNDM4MistMC4wNTc5ICAgICA/ICAgICAgMS40NDAwKy0wLjA1MTkgICAgICAgID8KICAgaW5s
aW5lLWFyZ3VtZW50cy1sb2NhbC1lc2NhcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyNC41ODA1Ky0wLjE4NDcgICAgICAgICAgIDI0LjM1MDcrLTAuMTg1NSAgICAgICAgCiAg
IGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuNTg0NistMC4xMjcyICAgICA/ICAgICAgNi41ODg3Ky0wLjA5OTAgICAgICAg
ID8KICAgaW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlvbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMy45NzU2Ky0wLjE2MTkgICAgICAgICAgIDEzLjkyNDErLTAuMTY0MyAg
ICAgICAgCiAgIGludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDguNTkxMCstMC4xNTMzICAgICA/ICAgICAgOC42MTU3Ky0wLjIw
NzAgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNC42MzM2Ky0wLjIxNzAgICAgICAgICAgIDM0LjQ5Nzcr
LTAuMDk5MyAgICAgICAgCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuODc4MistMC4xNzMzICAgICAgICAgICAgOS44
MTQ4Ky0wLjA5OTYgICAgICAgIAogICBpbnQtb3Itb3RoZXItYWRkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjA0NDkrLTAuMDk0NyAgICAgICAgICAg
IDkuOTk1MystMC4wNzE0ICAgICAgICAKICAgaW50LW9yLW90aGVyLWRpdi10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45MTQ4Ky0wLjA5NTIgICAgICAg
ICAgICA1Ljg2ODQrLTAuMDk1NyAgICAgICAgCiAgIGludC1vci1vdGhlci1tYXgtdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzc0OSstMC4wODI1ICAg
ICA/ICAgICAgNi44NTU3Ky0wLjEyNTYgICAgICAgID8gbWlnaHQgYmUgMS4wMTE5eCBzbG93ZXIK
ICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi45MDA1Ky0wLjEwNzUgICAgID8gICAgICA2LjkyNzUrLTAuMTI0OSAgICAg
ICAgPwogICBpbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjcyMzArLTAuMDYyNyAgICAgPyAgICAgIDUuNzU3MystMC4wNzE1
ICAgICAgICA/CiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDYuMTk0MSstMC4wNzgwICAgICAgICAgICAgNi4xNTcwKy0w
LjA2ODMgICAgICAgIAogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjYzODUrLTAuMTA3OSAgICAgPyAgICAgIDcuNjk3
NistMC4xMjE4ICAgICAgICA/CiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuNzk5OCstMC42NzI1ICAgICAgICAgICAz
NC4xMTUwKy0wLjA0ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMjAxeCBmYXN0ZXIKICAgaW50LW9y
LW90aGVyLXN1Yi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMC4wNDg1Ky0wLjA0NjMgICAgID8gICAgIDEwLjEzODArLTAuMTE0MiAgICAgICAgPwogICBp
bnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA3LjgyNDErLTAuMDY3NSAgICAgPyAgICAgIDcuODUxNCstMC4xMDc4ICAgICAgICA/
CiAgIGludC1vdmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuMjk1MCstMC4xMTUyICAgICAgICAgICAxMS4yMzU2Ky0wLjA4NjIgICAg
ICAgIAogICBJbnQxNkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDg4Ljg1NjErLTIuMzIyNSAgICAgICAgICAgODguNjMzNCstMS44NjAy
ICAgICAgICAKICAgSW50MTZBcnJheS1idWJibGUtc29ydC13aXRoLWJ5dGVMZW5ndGggICAgICAg
ICAgICAgICAgICAgICAgICAgICA0NS45MTU3Ky0wLjE5MjkgICAgICAgICAgIDQ1Ljg3MzQrLTAu
MDU4NSAgICAgICAgCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDUuMzg0NystMC4xNjg5ICAgICA/ICAgICA0NS40MDM0
Ky0wLjA3MDkgICAgICAgID8KICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45NTYzKy0wLjA2MzkgICAgICAgICAgICAx
LjkzNzArLTAuMDY2NSAgICAgICAgCiAgIEludDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODUuMDE0MystMC45ODUyICAgICAhICAg
ICA4OC41MzQwKy0wLjYwNjAgICAgICAgICEgZGVmaW5pdGVseSAxLjA0MTR4IHNsb3dlcgogICBJ
bnQzMkFycmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgODI4LjA4MzgrLTEyMi4yNjMwICAgPyAgICA4MzIuNjY4OSstMTE4LjgxOTAgICAgICA/
CiAgIEludDMyQXJyYXktYWxsb2MtaHVnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3MTcuOTA0MSstMy4wMDU3ICAgICA/ICAgIDcxOC42MjA3Ky0yLjM1MDggICAg
ICAgID8KICAgSW50MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk1NS40Nzg5Ky0zMi4xMzMyICAgICAgICAgOTUyLjg4NDgrLTMzLjc2
MTQgICAgICAgCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDAuNDA5MystMC4yOTg5ICAgICAgICAgICAzOS45MjQyKy0w
LjI4MjIgICAgICAgICAgbWlnaHQgYmUgMS4wMTIyeCBmYXN0ZXIKICAgSW50MzJBcnJheS1hbGxv
Yy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMi45Njg1
Ky0wLjk4ODEgICAgID8gICAgMTAzLjM2NTcrLTAuOTAxNyAgICAgICAgPwogICBJbnQzMkFycmF5
LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
LjIzNzYrLTIuOTQyMiAgICAgICAgICAgIDcuMjE5NSstMi45MTExICAgICAgICAKICAgSW50MzJB
cnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMC41NzQ4Ky0xLjk2OTYgICAgID8gICAgIDIwLjgwODQrLTEuOTgwNyAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMTR4IHNsb3dlcgogICBJbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5Ljk4MjUrLTEuNjYwMCAgICAgICAgICAg
NzkuNDk2MistMS42NDgzICAgICAgICAKICAgSW50OEFycmF5LWxvYWQtd2l0aC1ieXRlTGVuZ3Ro
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42OTQ4Ky0wLjA4NTAgICAgICAg
ICAgICA0LjY4NDArLTAuMDc2NCAgICAgICAgCiAgIEludDhBcnJheS1sb2FkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzAxMCstMC4wNzE3ICAg
ICAgICAgICAgNC42NDg4Ky0wLjA3MjEgICAgICAgICAgbWlnaHQgYmUgMS4wMTEyeCBmYXN0ZXIK
ICAgaW50ZWdlci1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxNC42OTgyKy0wLjExMjAgICAgICAgICAgIDE0LjY1NTYrLTAuMDcwNiAgICAg
ICAgCiAgIGludGVnZXItbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEuOTQxNystMC4wNjc1ICAgICAgICAgICAgMS45MjExKy0wLjA0NjEg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTA3eCBmYXN0ZXIKICAgbG90cy1vZi1maWVsZHMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS4yMzQzKy0yLjI3
OTMgICAgICAgICAgIDE1LjA4MjYrLTIuMjg2NyAgICAgICAgICBtaWdodCBiZSAxLjAxMDF4IGZh
c3RlcgogICBtYWtlLWluZGV4ZWQtc3RvcmFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjY4OTUrLTAuNTkyMiAgICAgPyAgICAgIDQuNzMzOSstMC42NTEw
ICAgICAgICA/CiAgIG1ha2Utcm9wZS1jc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTkuODIxOCstMC4zMDM3ICAgICAgICAgICAxOS43OTI4Ky0w
LjI0NDUgICAgICAgIAogICBtYXJzYWdsaWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDk1LjEzOTErLTAuMzcwMSAgICAgPyAgICA0OTUuMzM0
NystMC41MjQ3ICAgICAgICA/CiAgIG1ldGhvZC1vbi1udW1iZXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuMjIzNistMC40MjkwICAgICAhICAgICAy
Ni4zMzcyKy0wLjYwNDUgICAgICAgICEgZGVmaW5pdGVseSAxLjA0NDF4IHNsb3dlcgogICBuZWdh
dGl2ZS16ZXJvLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjMyODQrLTAuMDI1MyAgICAgICAgICAgIDAuMzI4NCstMC4wMjc1ICAgICAgICAKICAg
bmVnYXRpdmUtemVyby1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4yOTcxKy0wLjAyNDUgICAgID8gICAgICAwLjMwNDQrLTAuMDI0OCAgICAgICAg
PyBtaWdodCBiZSAxLjAyNDZ4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI5MzErLTAuMDIyMCAgICAg
PyAgICAgIDAuMjkzMistMC4wMjIxICAgICAgICA/CiAgIG5lc3RlZC1mdW5jdGlvbi1wYXJzaW5n
LXJhbmRvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzODIuNDA5MCstMTEuODg0
OCAgICA/ICAgIDM4NC41MjYzKy0xMS41NjE0ICAgICAgID8KICAgbmVzdGVkLWZ1bmN0aW9uLXBh
cnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Mi4wNzI3Ky0z
LjY4MjIgICAgID8gICAgIDUyLjEzMjErLTMuNzc3NSAgICAgICAgPwogICBuZXctYXJyYXktYnVm
ZmVyLWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc1
ODErLTAuMTE4NSAgICAgICAgICAgIDMuNzUyOSstMC4xNjExICAgICAgICAKICAgbmV3LWFycmF5
LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
NC4wNTcyKy0yLjI3MjkgICAgID8gICAgIDE0LjI3NDMrLTIuMzYxMSAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNTR4IHNsb3dlcgogICBuZXctYXJyYXktZGVhZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2Ljk5MzMrLTAuMDc0NCAgICAgICAgICAgMjYu
OTg4NCstMC4wNjYyICAgICAgICAKICAgbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi43MzExKy0yLjU5OTkgICAgID8gICAg
IDEyLjk1MTcrLTMuMDI4NiAgICAgICAgPyBtaWdodCBiZSAxLjAxNzN4IHNsb3dlcgogICBudW1i
ZXItdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjE1ODMrLTAuMDc4OCAgICAgPyAgICAgIDQuMTY5NCstMC4wOTcxICAgICAgICA/CiAg
IG9iamVjdC1jbG9zdXJlLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuNDY3MCstMS40MjQ0ICAgICA/ICAgICAgOS44MDgwKy0xLjgzMzUgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzYweCBzbG93ZXIKICAgb2JqZWN0LXRlc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MTk2Ky0wLjEwNDAgICAg
ID8gICAgICA0LjY3NDArLTAuMTg3MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTh4IHNsb3dlcgog
ICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDg4Ljc1MjIrLTAuMjM0MyAgICAgICAgICAgODguNzE2MystMC4yNjU3ICAgICAg
ICAKICAgcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMC4wNTIwKy0wLjA2MzkgICAgID8gICAgIDIwLjA5NTQrLTAuMTI2MCAg
ICAgICAgPwogICBwb2x5dmFyaWFudC1tb25vbW9ycGhpYy1nZXQtYnktaWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExLjkzNzMrLTAuMDU0NSAgICAgPyAgICAgMTIuMDA3MCstMC4x
Mjk4ICAgICAgICA/CiAgIHB1dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxhbmstaW5kZXhpbmctdHlw
ZSAgICAgICAgICAgICAgICAgICAgICAgMTkuMzE4MSstMC42ODgxICAgICA/ICAgICAxOS41MDU0
Ky0wLjM4NTIgICAgICAgID8KICAgcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOS4xNzA3Ky0wLjA2NTEgICAgID8gICAgIDE5
LjIxODYrLTAuMDYyOSAgICAgICAgPwogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5Ljg1NjMrLTAuMDY0OCAgICAgPyAg
ICAgMjkuODY0OCstMC4wNzg5ICAgICAgICA/CiAgIHNpbXBsZS1hY3RpdmF0aW9uLWRlbW8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuOTQxOCstMC4zMTcyICAg
ICA/ICAgICAzMi45ODQwKy0wLjIzNjIgICAgICAgID8KICAgc2xvdy1hcnJheS1wcm9maWxlLWNv
bnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41ODA1Ky0wLjMz
MTcgICAgICAgICAgICA0LjQ0NjQrLTAuMjU5MSAgICAgICAgICBtaWdodCBiZSAxLjAzMDJ4IGZh
c3RlcgogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjUwNzArLTAuMDc0OSAgICAgPyAgICAgIDMuNTUwNSstMC4wODMx
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNHggc2xvd2VyCiAgIHNwYXJzZS1jb25kaXRpb25hbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzIxOCstMC4w
NjY2ICAgICA/ICAgICAgMS4zNTkxKy0wLjA1MTkgICAgICAgID8gbWlnaHQgYmUgMS4wMjgyeCBz
bG93ZXIKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0NC42MjY5Ky0wLjEzNTUgICAgICAgICAgIDQ0LjM4MTIrLTAuMTE0
OCAgICAgICAgCiAgIHN0cmluZy1jb25jYXQtb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuODM4MistMS4zOTQ2ICAgICAgICAgICAgNC44Mjk4Ky0x
LjQxMzMgICAgICAgIAogICBzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc5NDErLTEuNDU2NCAgICAgICAgICAgIDQuNzg2
MystMS40NjExICAgICAgICAKICAgc3RyaW5nLWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4zMDk1Ky0wLjUxNjEgICAgID8gICAgIDE4
LjQ5NTYrLTAuNTk4NSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDJ4IHNsb3dlcgogICBzdHJpbmct
Y29uY2F0LXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE4LjQ4NDcrLTAuNDgzNyAgICAgICAgICAgMTguMzgyOSstMC41NzcyICAgICAgICAKICAgc3Ry
aW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNC4wNDQ0Ky0wLjg1MzggICAgID8gICAgIDE0LjExMzkrLTAuODg0OSAgICAgICAgPwog
ICBzdHJpbmctY29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE0LjY1NjgrLTAuODI1NSAgICAgPyAgICAgMTQuNzE0OSstMC43NjMwICAgICAg
ICA/CiAgIHN0cmluZy1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNDIuNzg5NystMC41MzQzICAgICA/ICAgICA0My41MDE2Ky0wLjM2OTEg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtYmln
LWNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4xOTgzKy0wLjgz
MzAgICAgICAgICAgIDE2LjY2MjUrLTAuMTk3MiAgICAgICAgICBtaWdodCBiZSAxLjAzMjJ4IGZh
c3RlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWluc2FuZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjkzNDArLTAuMTI2NyAgICAgPyAgICAgIDUuMDQyNistMC4xMzAy
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMHggc2xvd2VyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91
dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjAxNystMC4w
NjcyICAgICAgICAgICAgNC41ODIxKy0wLjA1ODggICAgICAgIAogICBzdHJpbmctZ2V0LWJ5LXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg5NDYr
LTAuMDkyNSAgICAgICAgICAgIDMuODgxNystMC4wNzMzICAgICAgICAKICAgc3RyaW5nLWhhc2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41
NjA1Ky0wLjA3NjUgICAgID8gICAgICAyLjYwMzgrLTAuMDQ4OCAgICAgICAgPyBtaWdodCBiZSAx
LjAxNjl4IHNsb3dlcgogICBzdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM3LjE5NzgrLTAuNDExNCAgICAgISAgICAgMzguODg3
MCstMC41MzYwICAgICAgICAhIGRlZmluaXRlbHkgMS4wNDU0eCBzbG93ZXIKICAgc3RyaW5nLXJl
cGVhdC1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
NS4yNDM1Ky0wLjM5OTAgICAgID8gICAgIDQ1LjI1MDgrLTAuNDM0OSAgICAgICAgPwogICBzdHJp
bmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDkwLjE5MTErLTAuNTExMyAgICAgPyAgICAgOTAuMzk0MSstMC43MzU0ICAgICAgICA/CiAg
IHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuMTA0MSstMC4wOTI4ICAgICA/ICAgICAgNC4xMTA3Ky0wLjEwMDMgICAgICAg
ID8KICAgc3RyaW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2OC4xMjY4Ky0wLjUzNTQgICAgICEgICAgIDY5Ljg1ODUrLTAuMjQwNiAg
ICAgICAgISBkZWZpbml0ZWx5IDEuMDI1NHggc2xvd2VyCiAgIHN0cnVjdHVyZS1ob2lzdC1vdmVy
LXRyYW5zaXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODA4NistMC41
ODY3ICAgICA/ICAgICAgMy44NjU3Ky0wLjU4NTggICAgICAgID8gbWlnaHQgYmUgMS4wMTUweCBz
bG93ZXIKICAgc3dpdGNoLWNoYXItY29uc3RhbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy4yNjA4Ky0wLjA3OTggICAgID8gICAgICAzLjI2NTQrLTAuMDcz
NSAgICAgICAgPwogICBzd2l0Y2gtY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3LjY0MDArLTAuMTAxMSAgICAgPyAgICAgIDcuNzU1NSst
MC4wOTc4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIHN3aXRjaC1jb25zdGFu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMzA5
NSstMi41MDc2ICAgICA/ICAgICAxMi4zMTE3Ky0yLjUyODUgICAgICAgID8KICAgc3dpdGNoLXN0
cmluZy1iYXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
MC40NzYxKy0wLjIzMDQgICAgICAgICAgIDIwLjM0NTkrLTAuMDQ0MCAgICAgICAgCiAgIHN3aXRj
aC1zdHJpbmctYmFzaWMtYmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjIuNjQxMCstMS4yOTkwICAgICAgICAgICAyMS41MjcyKy0wLjQxNjIgICAgICAgICAgbWln
aHQgYmUgMS4wNTE3eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy12YXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC4xOTQ3Ky0wLjA4MzQgICAgID8gICAg
IDIwLjMwMzkrLTAuMTc5MCAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWJhc2ljICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjU0MjcrLTAuMTc3OSAgICAg
ICAgICAgMTkuMzYwNistMC4zNzc0ICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1iaWctbGVuZ3Ro
LXRvd2VyLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC4wNTczKy0wLjA1MzUg
ICAgID8gICAgIDI4LjA5OTcrLTAuMDc2NyAgICAgICAgPwogICBzd2l0Y2gtc3RyaW5nLWxlbmd0
aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjA1NzYrLTAu
MTM3NCAgICAgICAgICAgMjIuMDMxOCstMC4wNjIzICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1s
ZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi43MDE0
Ky0wLjA3MDIgICAgID8gICAgIDE2LjcyMDArLTAuMDQ4NCAgICAgICAgPwogICBzd2l0Y2gtc3Ry
aW5nLXNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2
LjY4NzArLTAuMDg2MCAgICAgICAgICAgMTYuNjQ5NSstMC4wNTg0ICAgICAgICAKICAgc3dpdGNo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNi4xMjQ0Ky0yLjgwOTggICAgICAgICAgIDE2LjExNTArLTIuNzU2NiAgICAgICAgCiAgIHRl
YXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuMjQxNistMC4wODI2ICAgICA/ICAgICAgMi4yODU2Ky0wLjA1NzkgICAgICAgID8g
bWlnaHQgYmUgMS4wMTk3eCBzbG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MDA2Ky0wLjA2ODYgICAgID8g
ICAgICAzLjQxNjIrLTAuMDc3NyAgICAgICAgPwogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjA3OTErLTAuMDkxMCAg
ICAgICAgICAgMTkuOTgyMSstMC4wNzExICAgICAgICAKICAgdG8taW50MzItYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC45OTU3Ky0wLjA0
MDMgICAgID8gICAgIDIxLjAxMjQrLTAuMDUyNCAgICAgICAgPwogICB1bmRlZmluZWQtdGVzdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI3OTYr
LTAuMDk5OSAgICAgICAgICAgIDQuMjYyNystMC4wODYzICAgICAgICAKCiAgIDxhcml0aG1ldGlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDcu
NDcxMSstMS45NDgxICAgICAgICAgIDEwNy4xNjE2Ky0xLjcxMzcgICAgICAgICAgbWlnaHQgYmUg
MS4wMDI5eCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4zMjIxKy0wLjEwMjcgICAgID8gICAgIDE0LjM2
MDkrLTAuMDY4NSAgICAgICAgPyBtaWdodCBiZSAxLjAwMjd4IHNsb3dlcgogICA8aGFybW9uaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjAyNzcrLTAuMTI2MyAgICAgPyAgICAgIDUuMDM1NCstMC4xMTQ2ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDAxNXggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAg
ICBDb25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApEU1A6CiAgIGZp
bHRyci1wb3N0ZXJpemUtdGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDEuNDk0NystMC45ODY2ICAgICAgICAgICA0MS40NTc0Ky0xLjA1OTggICAgICAgIAog
ICBmaWx0cnItdGludC1jb250cmFzdC1zYXQtYnJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDY3Ljc2NDIrLTAuMzE4OCAgICAgPyAgICAgNjguMjUzOCstMC44MzIxICAgICAg
ICA/CiAgIGZpbHRyci10aW50LXNhdC1hZGotY29udHItbXVsdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNzguOTc2MistMi40ODYyICAgICA/ICAgICA4MC43MDQ4Ky0zLjk1Mzcg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjE5eCBzbG93ZXIKICAgZmlsdHJyLWJsdXItb3ZlcmxheS1z
YXQtY29udHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxMC4wOTM0Ky04LjEy
MTQgICAgICAgICAgMjA4Ljc0NTArLTcuNTk0OSAgICAgICAgCiAgIGZpbHRyci1zYXQtYmx1ci1t
dWx0LXNoYXJwZW4tY29udHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNDcuMzU5Nyst
Mi42Nzc2ICAgICA/ICAgIDI0Ny43MDQyKy0yLjg1MjcgICAgICAgID8KICAgZmlsdHJyLXNlcGlh
LWJpYXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMS44
ODQzKy0zLjI5OTcgICAgID8gICAgIDMxLjk1MTMrLTMuMjAzMCAgICAgICAgPwogICByb3V0ZTkt
dnA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1ICAgICAg
OTEwLjMzODQrLTE4LjU0MzggICAgPyAgICA5MjIuMTYxMystMy45MTQ4ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDEzMHggc2xvd2VyCiAgIHN0YXJmaWVsZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeDUgICAgIDEyMzcuNzIxOSstNS4wMTM3ICAgICAgICAgMTIw
Ni40MTk2Ky0yOC4wNzcxICAgICAgICAgbWlnaHQgYmUgMS4wMjU5eCBmYXN0ZXIKICAgYmVsbGFy
ZC1qc2xpbnV4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAg
Mjg4NS44MzMzKy0xMS42MzM0ICAgID8gICAyODk2LjkxNjcrLTguMDcwOSAgICAgICAgPwogICB6
eW5hcHMtcXVha2UzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1
ICAgICAxMzI0LjQzMjYrLTQ2LjAzMjMgICAgICAgIDEzMjQuMzk4NistNTguODcwNiAgICAgICAK
ICAgenluYXBzLW1hbmRlbGJyb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4NSAgICAgMTAyNC42NTY2Ky0zLjMyNDYgICAgICAgICAxMDIzLjYwODYrLTUuNjE4OSAgICAg
ICAgCiAgIGFtbW9qcy1hc20tanMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeDUgICAgICAyNTUuODUxMistMTQuNzc5MCAgICAgICAgIDI0OS4yMDc3Ky0xMS43NjM2
ICAgICAgICAgbWlnaHQgYmUgMS4wMjY3eCBmYXN0ZXIKICAgYW1tb2pzLXJlZ3VsYXItanMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAgIDI0MC4zMDg5Ky0xMS45
NzEzICAgICAgICAgMjM3LjYzNDUrLTEwLjI3MzkgICAgICAgICBtaWdodCBiZSAxLjAxMTN4IGZh
c3RlcgoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDk3Ny4zOTczKy00LjQ2MDQgICAgICAgICAgOTc1LjEzNTQrLTYuMTEx
MSAgICAgICAgICBtaWdodCBiZSAxLjAwMjN4IGZhc3RlcgogICA8Z2VvbWV0cmljPiAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTkzLjU0ODYrLTgu
MTI4MyAgICAgICAgICA1OTAuNDg3MCstNi4wNTM2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDA1Mngg
ZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyNjguNzk5OSstMTAuMjM3NSAgICAgICAgIDI2OC4xNjExKy05Ljc0
NzYgICAgICAgICAgbWlnaHQgYmUgMS4wMDI0eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25m
IzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCkFsbCBiZW5jaG1hcmtzOgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIzLjI4NTYrLTEuMTAyMiAgICAg
ICAgICAyMjIuNzYwNystMS40MDE4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAyNHggZmFzdGVyCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjUuMzg2OSstMC4xMTkyICAgICA/ICAgICAyNS4zOTk5Ky0wLjA4NDAgICAgICAg
ID8gbWlnaHQgYmUgMS4wMDA1eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44MTMyKy0wLjA4NDcgICAg
ID8gICAgICA0LjgxMzMrLTAuMDg1MiAgICAgICAgPyBtaWdodCBiZSAxLjAwMDB4IHNsb3dlcgoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6
CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNDAuNDc2MystMC4wODg5ICAgICAgICAgICA0MC40NzI2Ky0wLjEzMzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDAxeCBmYXN0ZXIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210206</attachid>
            <date>2013-08-31 12:58:26 -0700</date>
            <delta_ts>2013-08-31 12:58:26 -0700</delta_ts>
            <desc>jsc benchmark run 6</desc>
            <filename>jsc-bench6.txt</filename>
            <type>text/plain</type>
            <size>36658</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">MTk2NC8xOTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW5lcmF0aW5nIGJlbmNobWFyayByZXBvcnQg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvSW50ZXJuYWwvU3VuU3BpZGVyVjhTcGlkZXJPY3RhbmVL
cmFrZW5KU0JlbmNoSlNSZWdyZXNzRFNQX2FsYmlvbl8yMDEzMDgzMV8wNTMyX3JlcG9ydC50eHQK
QW5kIHJhdyBkYXRhIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M0L0ludGVybmFsL1N1blNwaWRlclY4
U3BpZGVyT2N0YW5lS3Jha2VuSlNCZW5jaEpTUmVncmVzc0RTUF9hbGJpb25fMjAxMzA4MzFfMDUz
Mi5qc29uCgpCZW5jaG1hcmsgcmVwb3J0IGZvciBTdW5TcGlkZXIsIFY4U3BpZGVyLCBPY3RhbmUs
IEtyYWtlbiwgSlNCZW5jaCwgSlNSZWdyZXNzLCBhbmQgRFNQIG9uIGFsYmlvbiAoTWFjUHJvNSwx
KS4KClZNcyB0ZXN0ZWQ6CiJDb25mIzEiIGF0IC9Wb2x1bWVzL0RhdGEtSEQvd3M1L09wZW5Tb3Vy
Y2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9EdW1wUmVuZGVyVHJlZSAocjE1NDkwOCkKIkNvbmYjMiIg
YXQgL1ZvbHVtZXMvRGF0YS1IRC93czQvT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9SZWxlYXNlL0R1
bXBSZW5kZXJUcmVlIChyMTU0OTA4KQoKQ29sbGVjdGVkIDEyIHNhbXBsZXMgcGVyIGJlbmNobWFy
ay9WTSwgd2l0aCA0IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQgYSBjYWxs
IHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiBVc2VkIDEKYmVuY2htYXJrIGl0
ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNjLXNwZWNp
ZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWlu
Zy4gUmVwb3J0aW5nCmJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlkZW5j
ZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAg
ICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKU3VuU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ0MTArLTAuMTg0NiAgICAgPyAgICAgIDcuNDQz
OSstMC4yODQ5ICAgICAgICA/CiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTE0NSstMC4xMjg5ICAgICA/ICAgICAg
OC4xMTkxKy0wLjEyOTIgICAgICAgID8KICAgM2QtcmF5dHJhY2UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yODkwKy0wLjIxNzIgICAgID8g
ICAgICA5LjM1MDYrLTAuMjI2OCAgICAgICAgPwogICBhY2Nlc3MtYmluYXJ5LXRyZWVzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjUzOTIrLTAuMzAwNSAg
ICAgICAgICAgIDIuNDIwNystMC4zNzgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5MHggZmFzdGVy
CiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuNDQwNSstMC4wOTYwICAgICAgICAgICAgNy40MjkzKy0wLjExNzEgICAg
ICAgIAogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjAxNjYrLTAuMDY1OSAgICAgICAgICAgIDMuOTMwMystMC4wNTIx
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyMHggZmFzdGVyCiAgIGFjY2Vzcy1uc2lldmUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOTg1MistMC4w
OTcyICAgICAgICAgICAgNC45NTE1Ky0wLjA4MTAgICAgICAgIAogICBiaXRvcHMtM2JpdC1iaXRz
LWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjgyOTAr
LTAuMDQ3MyAgICAgICAgICAgIDEuODAwMSstMC4wNjc0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2
MXggZmFzdGVyCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDYuNDgzNystMC4wODI5ICAgICAgICAgICAgNi40MzIwKy0w
LjA4ODkgICAgICAgIAogICBiaXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY0NjkrLTAuMDYxMCAgICAgPyAgICAgIDIuNjU1
NSstMC4wNjIyICAgICAgICA/CiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDg3NSstMC4wNjkzICAgICA/ICAgICAg
NC41MjgxKy0wLjA2ODEgICAgICAgID8KICAgY29udHJvbGZsb3ctcmVjdXJzaXZlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44OTYxKy0wLjA3MjIgICAgID8g
ICAgICAyLjkwNDIrLTAuMDc3MSAgICAgICAgPwogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljg2MTcrLTAuMzAwNyAg
ICAgPyAgICAgIDUuOTQ3NCstMC4yMDI2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0Nnggc2xvd2Vy
CiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMTg5MSstMC4xMDE3ICAgICA/ICAgICAgMy4xODk1Ky0wLjA4NDggICAg
ICAgID8KICAgY3J5cHRvLXNoYTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi45NjAxKy0wLjA3NjggICAgICAgICAgICAyLjkzOTIrLTAuMDc3
NSAgICAgICAgCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTIuNDE2OCstMC45MTAwICAgICAgICAgICAxMi4zODQ5Ky0w
LjkxMTEgICAgICAgIAogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4LjY5NzgrLTAuNTg2NiAgICAgPyAgICAgIDguNzY0
NistMC42MjA2ICAgICAgICA/CiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTAzMistMC4wNzAxICAgICAgICAgICAg
My45MDMxKy0wLjA3MzcgICAgICAgIAogICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjA2NDcrLTAuMTE0MiAgICAgPyAg
ICAgMTAuMDkxNystMC4xNDE2ICAgICAgICA/CiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODA3NCstMC4wNTg0ICAg
ICAgICAgICAgMi43OTM5Ky0wLjA2NDQgICAgICAgIAogICByZWdleHAtZG5hICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk4NzYrLTAuNTAw
MyAgICAgICAgICAgMTEuOTgxNystMC41NDA1ICAgICAgICAKICAgc3RyaW5nLWJhc2U2NCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4wNzk0Ky0w
LjUyMzcgICAgID8gICAgICA2LjEwODArLTAuNTEzMyAgICAgICAgPwogICBzdHJpbmctZmFzdGEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk0
OTArLTAuNDI4OSAgICAgICAgICAgMTEuODIzNistMC4yNjc3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEwNnggZmFzdGVyCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTQuNTg2NSstMC4xNzM5ICAgICAgICAgICAxNC41NDcy
Ky0wLjE1NDAgICAgICAgIAogICBzdHJpbmctdW5wYWNrLWNvZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLjAyMDgrLTAuMTY0MiAgICAgICAgICAgMjku
ODkwOSstMC4xNTAxICAgICAgICAKICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC43MDkxKy0wLjE0MDAgICAgID8gICAg
ICA4Ljg3MDUrLTAuMTUzOSAgICAgICAgPyBtaWdodCBiZSAxLjAxODV4IHNsb3dlcgoKICAgPGFy
aXRobWV0aWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy41MTU1Ky0wLjA2MDEgICAgICAgICAgICA3LjUwNzgrLTAuMDY3MCAgICAgICAgICBt
aWdodCBiZSAxLjAwMTB4IGZhc3RlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjAxMzYrLTAuMDcwNiAgICAgICAg
ICAgIDUuOTk2NSstMC4wNzE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAyOXggZmFzdGVyCiAgIDxo
YXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuOTE2MCstMC4wNzMzICAgICAgICAgICAgNC44NzkwKy0wLjA3ODMgICAgICAgICAg
bWlnaHQgYmUgMS4wMDc2eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAg
ICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClY4
U3BpZGVyOgogICBjcnlwdG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDc4LjY0NjIrLTAuMzY1NiAgICAgPyAgICAgNzguNzkzMSstMC41
MzY2ICAgICAgICA/CiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOTcuNzc0MSstMS4xNDE2ICAgICA/ICAgICA5OC4wMTY3
Ky0xLjEwMTIgICAgICAgID8KICAgZWFybGV5LWJveWVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OC40MDEzKy0wLjU4NjggICAgID8gICAgIDY4
LjYzMDkrLTAuNzMwNiAgICAgICAgPwogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQzLjQxMTUrLTQuNTQ3MiAgICAgICAg
ICAgNDAuMzg4NSstMi44MzAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDc0OHggZmFzdGVyCiAgIHJl
Z2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOTYuMjA4MCstMC4zMDI0ICAgICA/ICAgICA5Ni4yMTUxKy0wLjMyNjcgICAgICAgID8K
ICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDExMC4wMjQ2Ky0xLjUxMzUgICAgICAgICAgMTA5LjQzODArLTAuOTk3MSAgICAg
ICAgCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNTguNTc4MystMy4zMzg5ICAgICAgICAgICA1OC40NDk2Ky0yLjYwNDEg
ICAgICAgIAoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA3OS4wMDYzKy0wLjczNTMgICAgICAgICAgIDc4LjU2MTcrLTAu
NjQzMSAgICAgICAgICBtaWdodCBiZSAxLjAwNTd4IGZhc3RlcgogICA8Z2VvbWV0cmljPiAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc1LjQ4NDEr
LTEuMDI0NyAgICAgICAgICAgNzQuNzkzMSstMC44NDA0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDA5
MnggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNzEuNjU0MCstMS40NDQ0ICAgICAgICAgICA3MC42MzExKy0x
LjEwNjIgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ1eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b25mIzEgICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCk9jdGFuZSBhbmQgVjh2NzoKICAgZW5jcnlwdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ1NDM2Ky0wLjAwMDgy
ICAgID8gICAgIDAuNDU1MjUrLTAuMDAyNDkgICAgICAgPwogICBkZWNyeXB0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMjY4NTIrLTAu
MDA5MDIgICAgPyAgICAgOC4yNzEyMCstMC4wMDkwNCAgICAgICA/CiAgIGRlbHRhYmx1ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC43MTA0
NSstMC4xMjE5NSAgICAgICAgICAwLjYxMzUyKy0wLjAzMTU0ICAgICAgICAgbWlnaHQgYmUgMS4x
NTgweCBmYXN0ZXIKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjg1NzQzKy0wLjAxNzEwICAgICAgICAgIDAuODU1NjIr
LTAuMDExNDUgICAgICAgCiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4wMzgzOCstMC4wOTYzNSAgICA/ICAgIDEyLjE5
OTI3Ky0wLjI5OTc1ICAgICAgID8gbWlnaHQgYmUgMS4wMTM0eCBzbG93ZXIKICAgcmF5dHJhY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA0
LjIyMjc5Ky0wLjA0Nzc0ICAgICAgICAgIDQuMjEwMDkrLTAuMDQxMzcgICAgICAgCiAgIHJlZ2V4
cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAg
ICAyOS42NTk2MystMC4wNTc2MiAgICAhICAgIDI5LjgxODgzKy0wLjA1MTE4ICAgICAgICEgZGVm
aW5pdGVseSAxLjAwNTR4IHNsb3dlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMzAzNTkrLTAuMDAzMDkgICAgPyAg
ICAgMC4zMDM3MistMC4wMDMxNCAgICAgICA/CiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC42NDg3OSstMC4wMTY5OCAg
ICAgICAgICAwLjY0NjY1Ky0wLjAxOTQ2ICAgICAgIAogICBuYXZpZXItc3Rva2VzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMTAuNDMzNjMrLTAuMDUy
NzcgICAgICAgICAxMC4zOTc4OSstMC4wMTkxOCAgICAgICAKICAgY2xvc3VyZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQxMzg1Ky0w
LjA0MjI1ICAgID8gICAgIDAuNDE0ODArLTAuMDQyNzYgICAgICAgPwogICBqcXVlcnkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTE1
MjQrLTAuNjY2MDkgICAgICAgICAgNS4xMTM0NSstMC42NjU0MyAgICAgICAKICAgZ2JlbXUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDky
LjQxOTI0Ky01LjY3OTg4ICAgID8gICAgOTMuNDM2MjkrLTUuMzQ0MTggICAgICAgPyBtaWdodCBi
ZSAxLjAxMTB4IHNsb3dlcgogICBtYW5kcmVlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgyICAgICAxODUuMDMxNDkrLTAuOTg4NTkgICAgICAgIDE4NC41
MTU4NCstMC41NTc1MiAgICAgICAKICAgcGRmanMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDkyLjU4MDEyKy0wLjQ4NTI5ICAgID8gICAg
OTIuNjE4NTIrLTAuMjc0NDYgICAgICAgPwogICBib3gyZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMzQuMTAzNTQrLTAuNDI2OTMgICAg
PyAgICAzNC4xMzk2MCstMC41MjY5NSAgICAgICA/CgpWOHY3OgogICA8YXJpdGhtZXRpYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDk4NTMr
LTAuMDE3MjAgICAgPyAgICAgNy4xMTAxNystMC4wMTY0MiAgICAgICA/IG1pZ2h0IGJlIDEuMDAx
Nnggc2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi40MDE4NystMC4wNDUyMSAgICAgICAgICAyLjM2NTk5Ky0w
LjAxNjA3ICAgICAgICAgbWlnaHQgYmUgMS4wMTUyeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjk0NDkx
Ky0wLjAyMzg0ICAgICAgICAgIDAuOTI2NzkrLTAuMDA5MTkgICAgICAgICBtaWdodCBiZSAxLjAx
OTZ4IGZhc3RlcgoKT2N0YW5lIGluY2x1ZGluZyBWOHY3OgogICA8YXJpdGhtZXRpYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuNjY4MjQrLTAu
NDY4NTkgICAgPyAgICAzNS43MTk2NystMC40NjE2NiAgICAgICA/IG1pZ2h0IGJlIDEuMDAxNHgg
c2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNi45MzE3MystMC4wOTUzMiAgICAgICAgICA2Ljg3NDg1Ky0wLjA4
ODE2ICAgICAgICAgbWlnaHQgYmUgMS4wMDgzeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMxODMzKy0w
LjAyNzMxICAgICAgICAgIDEuMjk3NTIrLTAuMDE4NjggICAgICAgICBtaWdodCBiZSAxLjAxNjB4
IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3Rh
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUwMS4yNjkrLTAuODk4ICAgICAgPyAgICAgNTAxLjM3OCstMC4zODAgICAgICAgICA/CiAgIGF1
ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjQzLjUxMistNC4yNzUgICAgICA/ICAgICAyNDcuOTY4Ky01LjI4OCAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTgzeCBzbG93ZXIKICAgYXVkaW8tZGZ0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOTguMDE2Ky0wLjk5MSAgICAgICAg
ICAgIDI5Ny4xNDkrLTAuODM5ICAgICAgICAgCiAgIGF1ZGlvLWZmdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQxLjI0MystMC40OTEgICAg
ICA/ICAgICAxNDEuMzQ0Ky0wLjYxMiAgICAgICAgID8KICAgYXVkaW8tb3NjaWxsYXRvciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMzUuNDYyKy0yLjAw
MCAgICAgID8gICAgIDIzNS41MzUrLTEuODM5ICAgICAgICAgPwogICBpbWFnaW5nLWRhcmtyb29t
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4NC41OTkr
LTAuODMxICAgICAgPyAgICAgMjg3LjA2NistMi4xNzAgICAgICAgICA/CiAgIGltYWdpbmctZGVz
YXR1cmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUw
LjYyNystMC4zMzEgICAgICAgICAgICAxNTAuMzk5Ky0wLjIwMSAgICAgICAgIAogICBpbWFnaW5n
LWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDM4My42MDArLTAuMzI2ICAgICAgPyAgICAgMzgzLjgwOCstMC4yNjEgICAgICAgICA/CiAgIGpz
b24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDc3LjE1MistMC4zNjggICAgICBeICAgICAgNzUuNjkyKy0wLjIxNiAgICAgICAgIF4g
ZGVmaW5pdGVseSAxLjAxOTN4IGZhc3RlcgogICBqc29uLXN0cmluZ2lmeS10aW5kZXJib3ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMS43NTcrLTAuNjg1ICAgICAg
XiAgICAgIDk3LjE5NCstMC4zNzMgICAgICAgICBeIGRlZmluaXRlbHkgMS4wNDY5eCBmYXN0ZXIK
ICAgc3RhbmZvcmQtY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMDMuMTg3Ky0xLjM0NSAgICAgID8gICAgIDEwMy41NjArLTEuNzc3ICAgICAg
ICAgPwogICBzdGFuZm9yZC1jcnlwdG8tY2NtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDExOS4yMTYrLTEuNjI3ICAgICAgICAgICAgMTE3LjQyOSstNy4wOTcg
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1MnggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1wYmtk
ZjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUzLjIxMistMS41
MjQgICAgICA/ICAgICAyNTMuNjg4Ky0wLjU0MSAgICAgICAgID8KICAgc3RhbmZvcmQtY3J5cHRv
LXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTguMzYz
Ky0wLjQzOCAgICAgID8gICAgICA5OS4xNzMrLTAuNTAwICAgICAgICAgPwoKICAgPGFyaXRobWV0
aWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
MTMuNjU4Ky0wLjQ2MiAgICAgID8gICAgIDIxMy42NzArLTAuNjUxICAgICAgICAgPyBtaWdodCBi
ZSAxLjAwMDF4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4My4xNTYrLTAuMzYzICAgICAgICAgICAgMTgy
LjU0OSstMC45MjggICAgICAgICAgIG1pZ2h0IGJlIDEuMDAzM3ggZmFzdGVyCiAgIDxoYXJtb25p
Yz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTU4LjEyMCstMC4yNTMgICAgICAgICAgICAxNTYuODk0Ky0xLjEyNSAgICAgICAgICAgbWlnaHQg
YmUgMS4wMDc4eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAg
ICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTQmVuY2g6
CiAgIGFtYXpvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuNzUwMCstMC4yODc0ICAgICA/ICAgICAgOS44MzMzKy0wLjI0NzMgICAg
ICAgID8KICAgZmFjZWJvb2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzNy4zMzMzKy0wLjU2NDAgICAgID8gICAgIDM3LjY2NjcrLTAuNTY0
MCAgICAgICAgPwogICBnb29nbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDY1LjUwMDArLTAuOTE4NyAgICAgPyAgICAgNjYuMzMzMyst
MS4wNjA5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyN3ggc2xvd2VyCiAgIHR3aXR0ZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTAw
MCstMC4zMzE4ICAgICA/ICAgICAgOS42NjY3Ky0wLjMxMjggICAgICAgID8gbWlnaHQgYmUgMS4w
MTc1eCBzbG93ZXIKICAgeWFob28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy41MDAwKy0wLjMzMTggICAgID8gICAgICAzLjY2Njcr
LTAuMzEyOCAgICAgICAgPyBtaWdodCBiZSAxLjA0NzZ4IHNsb3dlcgoKICAgPGFyaXRobWV0aWM+
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS4x
MTY3Ky0wLjE5MTMgICAgID8gICAgIDI1LjQzMzMrLTAuMjA4NyAgICAgICAgPyBtaWdodCBiZSAx
LjAxMjZ4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjA5OTgrLTAuMzY3MSAgICAgPyAgICAgMTUuMzg1
MCstMC4yMTc3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4OXggc2xvd2VyCiAgIDxoYXJtb25pYz4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDku
Mjg3NistMC41MTA2ICAgICA/ICAgICAgOS41NzAzKy0wLjQzMDYgICAgICAgID8gbWlnaHQgYmUg
MS4wMzA0eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEgICAgICAgICAgICAgICAgICAg
IENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTUmVncmVzczoK
ICAgYWRhcHQtdG8tZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyMS40Njg1Ky0wLjA4MzMgICAgID8gICAgIDIxLjQ4ODErLTAuMDg4NyAgICAg
ICAgPwogICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLjAxNjkrLTAuMDU3MSAgICAgICAgICAgIDAuOTY3MSstMC4wNjQw
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUxNnggZmFzdGVyCiAgIGFsbG9jYXRlLWJpZy1vYmplY3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTY0OSstMS4z
MjM5ICAgICA/ICAgICAgMy45ODI0Ky0xLjMwMjIgICAgICAgID8KICAgYXJpdHktbWlzbWF0Y2gt
aW5saW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44ODQx
Ky0wLjA1NDcgICAgID8gICAgICAwLjkxOTIrLTAuMDU0MSAgICAgICAgPyBtaWdodCBiZSAxLjAz
OTd4IHNsb3dlcgogICBhcnJheS1hY2Nlc3MtcG9seW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4Ljc0NDYrLTEuOTI1MCAgICAgICAgICAgIDguNjIxNist
Mi4wMjM5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0M3ggZmFzdGVyCiAgIGFycmF5LW5vbmFycmF5
LXBvbHltb3JocGljLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjguNjA0
NystMjQuMjA5MiAgICAgICAgICA1Ny41ODMwKy0wLjE0NjMgICAgICAgICAgbWlnaHQgYmUgMS4x
OTE0eCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS4yMTE3Ky0wLjA5MzEgICAgICAgICAgICA1LjE5Nzkr
LTAuMDc0MyAgICAgICAgCiAgIGFycmF5LXdpdGgtZG91YmxlLWluY3JlbWVudCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDc1NSstMC4xMTI5ICAgICAgICAgICAgMy45
NTcyKy0wLjA3MTUgICAgICAgICAgbWlnaHQgYmUgMS4wMjk5eCBmYXN0ZXIKICAgYXJyYXktd2l0
aC1kb3VibGUtbXVsLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ny4yNzgyKy0wLjE2OTYgICAgID8gICAgICA3LjM4NDYrLTAuMDkzMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNDZ4IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1zdW0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU1NTkrLTAuMDY5MCAgICAgPyAgICAgIDcu
NjI4NSstMC4wOTYzICAgICAgICA/CiAgIGFycmF5LXdpdGgtaW50MzItYWRkLXN1YiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguOTc4MCstMC4wOTQ4ICAgICAgICAg
ICAgOC44OTEwKy0wLjA2MzYgICAgICAgIAogICBhcnJheS13aXRoLWludDMyLW9yLWRvdWJsZS1z
dW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjY3MzUrLTAuMDY1OCAgICAg
ICAgICAgIDcuNjI3NCstMC4wODIxICAgICAgICAKICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxs
b2MtbGFyZ2UtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgIDEyMC41NTk4Ky0xLjY5MjAg
ICAgICAgICAgMTE5LjExNTMrLTAuODc4MCAgICAgICAgICBtaWdodCBiZSAxLjAxMjF4IGZhc3Rl
cgogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM5LjIyODIrLTMuNDg2NyAgICAgICAgICAgMzguMTY1MistMy45MDUwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI3OXggZmFzdGVyCiAgIEFycmF5QnVmZmVyLUludDMyQXJyYXkt
Ynl0ZU9mZnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzUzNCstMC4wNTgy
ICAgICA/ICAgICAgOC40MjUzKy0wLjA2NzMgICAgICAgID8KICAgQXJyYXlCdWZmZXItSW50OEFy
cmF5LWFsbG9jLWh1Z2UtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgIDIyMS4zMTAzKy0y
My43Mzg1ICAgID8gICAgMjIyLjU3NDIrLTIzLjYzNjYgICAgICAgPwogICBBcnJheUJ1ZmZlci1J
bnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZC1mcmFnbWVudGVkICAgICAgICAgMTc0Ljcw
MDYrLTIuNzAxNCAgICAgICAgICAxNzQuMTAyNistMi42ODcyICAgICAgICAKICAgQXJyYXlCdWZm
ZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgIDEy
NC4xMzc3Ky0xLjEyMzIgICAgID8gICAgMTI0LjE5MDMrLTEuMzE0OSAgICAgICAgPwogICBBcnJh
eUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZC1idWZmZXIgICAgICAgICAgICAgICAg
ICAgIDc0LjE0MDErLTkuOTY3MCAgICAgICAgICAgNzMuNzQxMCstMTAuMjkyMSAgICAgICAKICAg
QXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzNy41NTMwKy00LjA4MTIgICAgICAgICAgIDM3LjEzOTArLTMuNjcwNiAgICAgICAg
ICBtaWdodCBiZSAxLjAxMTF4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2Mg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjc3NjErLTMuOTgwMiAgICAg
ICAgICAgMzIuNTM3MCstMy45NDExICAgICAgICAKICAgYmlnLWludC1tdWwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MTI3Ky0wLjA2MjUg
ICAgID8gICAgICA0LjY0NDArLTAuMDgwMSAgICAgICAgPwogICBib29sZWFuLXRlc3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI3NTIrLTAu
MDgyMiAgICAgICAgICAgIDQuMjYxNSstMC4wNTM3ICAgICAgICAKICAgYnJhbmNoLWZvbGQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NzA0
Ky0wLjA1MjYgICAgID8gICAgICA0LjU4ODQrLTAuMDU1NiAgICAgICAgPwogICBjYXN0LWludC10
by1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEz
LjUyNDIrLTAuMjAyNSAgICAgPyAgICAgMTMuNTk2OCstMC4xODE1ICAgICAgICA/CiAgIGNlbGwt
YXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTQuMTQ5NCstMC4zMjg0ICAgICA/ICAgICAxNC4yMjAwKy0wLjI2MjIgICAgICAgID8KICAg
Y2ZnLXNpbXBsaWZ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy42NjE4Ky0wLjA1NjUgICAgID8gICAgICAzLjcyODErLTAuMDc0NSAgICAgICAg
PyBtaWdodCBiZSAxLjAxODF4IHNsb3dlcgogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjc0MTkrLTAuMjYxNSAgICAg
PyAgICAgMTEuNzg4MistMC4yMzg3ICAgICAgICA/CiAgIGNvbnN0YW50LXRlc3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMjAzMCstMC4xNDE0
ICAgICA/ICAgICAgOC4zNDAzKy0wLjEwODUgICAgICAgID8gbWlnaHQgYmUgMS4wMTY3eCBzbG93
ZXIKICAgRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEzNS44MzgyKy0yLjk4MzggICAgID8gICAgMTM2Ljk1MTgrLTMuMjE3NyAg
ICAgICAgPwogICBkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjM1NTQrLTAuMDUzMCAgICAgPyAgICAgIDMuMzYxMSstMC4w
NjIwICAgICAgICA/CiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuODAyOSstMC4wNDMwICAgICA/ICAgICAgMC44MzM2
Ky0wLjA1MzggICAgICAgID8gbWlnaHQgYmUgMS4wMzgyeCBzbG93ZXIKICAgZG91YmxlLXBvbGx1
dGlvbi1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC40
MTc0Ky0wLjEzMjcgICAgICAgICAgIDEwLjM3MDQrLTAuMDk2MCAgICAgICAgCiAgIGRvdWJsZS1w
b2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuNDc3MystMC41MjY1ICAgICAgICAgICAgNi4zOTUwKy0wLjYzNDEgICAgICAgICAgbWlnaHQg
YmUgMS4wMTI5eCBmYXN0ZXIKICAgZW1wdHktc3RyaW5nLXBsdXMtaW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy42NTI4Ky0wLjI1NjIgICAgID8gICAgIDEz
LjY4NzUrLTAuMjU4NSAgICAgICAgPwogICBlbXNjcmlwdGVuLWN1YmUyaGFzaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjUxMDIrLTMuMDQyNyAgICAgICAg
ICAgNDguNDI2NistMy4wODg2ICAgICAgICAKICAgZW1zY3JpcHRlbi1tZW1vcHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTc2OS4xMzE4Ky0zMjkuODUyNyAg
ICAgICA5NzYyLjI1ODUrLTMxOS45OTQ1ICAgICAgCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1nZXRi
eXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjkwMystMC4xOTA3
ICAgICAgICAgICAgMi4yNzUwKy0wLjIyMjYgICAgICAgIAogICBleHRlcm5hbC1hcmd1bWVudHMt
cHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU3MTUrLTAu
MzIzMiAgICAgPyAgICAgIDMuNjY4NistMC4zMDk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Mngg
c2xvd2VyCiAgIEZsb2F0MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuMjgwNystMC4yNjg1ICAgICA/ICAgICAgNi4zMDY2Ky0wLjI2
MzIgICAgICAgID8KICAgRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA5My4yMzE4Ky0wLjQ4NjIgICAgICAgICAgIDkyLjA3MjIr
LTAuODg2MyAgICAgICAgICBtaWdodCBiZSAxLjAxMjZ4IGZhc3RlcgogICBGbG9hdDY0QXJyYXkt
YWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI1Ljc3
OTArLTQuMTkwNyAgICAgPyAgICAxMjcuNTM1MistNC41NzQ5ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE0MHggc2xvd2VyCiAgIEZsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMTMuMjM4NistMC43MDkyICAgICAgICAgIDExMi45MjAz
Ky0wLjM5NjIgICAgICAgIAogICBmb2xkLWRvdWJsZS10by1pbnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjE1NDIrLTAuMjE1OCAgICAgICAgICAgMjQu
MDU5NSstMC4wOTExICAgICAgICAKICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wMzA0Ky0wLjA2MTMgICAgICAgICAg
ICAzLjAyMzArLTAuMDc3MiAgICAgICAgCiAgIGZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjQ4NystMC4wOTczICAgICA/
ICAgICAgNC42ODE0Ky0wLjEzNDQgICAgICAgID8KICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5
LWJsb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yNzA3Ky0wLjA0MzAg
ICAgID8gICAgICA2LjI4NjArLTAuMDQzMCAgICAgICAgPwogICBnZXQtYnktaWQtcHJvdG8tb3It
c2VsZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjE4MDcrLTAu
MzM2NSAgICAgICAgICAgMjEuOTAwNystMC4yNzA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOHgg
ZmFzdGVyCiAgIGdldC1ieS1pZC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjIuNTM0NSstMC4yNjg4ICAgICAgICAgICAyMi4xODM5Ky0wLjQ5
NDEgICAgICAgICAgbWlnaHQgYmUgMS4wMTU4eCBmYXN0ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0
ZXJhdGUta2V5cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0My44MjM0Ky0x
LjA5NTUgICAgID8gICAgIDQ0LjQ1MTcrLTEuMTg0MSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDN4
IHNsb3dlcgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUxLjIxNzErLTAuNDgwMCAgICAgISAgICAgNTQuMTI2NSstMS43
NTgxICAgICAgICAhIGRlZmluaXRlbHkgMS4wNTY4eCBzbG93ZXIKICAgSGFzaE1hcC1zdHJpbmct
cHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Mi4yNTMz
Ky0wLjg0NDIgICAgID8gICAgIDYzLjcyMDArLTEuMzU0NCAgICAgICAgPyBtaWdodCBiZSAxLjAy
MzZ4IHNsb3dlcgogICBpbXVsLWRvdWJsZS1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE3LjAwMTMrLTAuNjgxOCAgICAgPyAgICAgMTcuMDg5Myst
MC44MDI2ICAgICAgICA/CiAgIGltdWwtaW50LW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuODk2OSstMC4wOTkwICAgICA/ICAgICAxNS4w
MzYyKy0wLjIzMzMgICAgICAgID8KICAgaW11bC1taXhlZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC45OTYwKy0wLjA5ODAgICAgICAgICAg
IDIwLjk1NTkrLTAuMDc3MiAgICAgICAgCiAgIGluLWZvdXItY2FzZXMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuODM4NSstMC4wNzAxICAgICA/
ICAgICAyNC44NzMyKy0wLjEzMzggICAgICAgID8KICAgaW4tb25lLWNhc2UtZmFsc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS44NDA0Ky0wLjE2Mjcg
ICAgICAgICAgIDExLjc1ODMrLTAuMTI3NyAgICAgICAgCiAgIGluLW9uZS1jYXNlLXRydWUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuODA4OCstMC4x
NTg0ICAgICAgICAgICAxMS43NjkzKy0wLjE0ODEgICAgICAgIAogICBpbi10d28tY2FzZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjE3NDIr
LTAuMTI5OCAgICAgICAgICAgMTIuMTI3NystMC4xNjI1ICAgICAgICAKICAgaW5kZXhlZC1wcm9w
ZXJ0aWVzLWluLW9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45
NDYxKy0wLjA3MTkgICAgID8gICAgICA0LjA0MTUrLTAuMDcwOSAgICAgICAgPyBtaWdodCBiZSAx
LjAyNDJ4IHNsb3dlcgogICBpbmxpbmUtYXJndW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQyMTErLTAuMDU3NCAgICAgPyAgICAgIDEuNDQ4
MSstMC4wNjE4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5MHggc2xvd2VyCiAgIGlubGluZS1hcmd1
bWVudHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQu
NjE5OCstMC4yNjQ2ICAgICAgICAgICAyNC40MjAwKy0wLjEzNzggICAgICAgIAogICBpbmxpbmUt
Z2V0LXNjb3BlZC12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2LjU3MDkrLTAuMDY3OSAgICAgPyAgICAgIDYuNjY0MSstMC4xOTEyICAgICAgICA/IG1pZ2h0
IGJlIDEuMDE0Mnggc2xvd2VyCiAgIGlubGluZWQtcHV0LWJ5LWlkLXRyYW5zaXRpb24gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuOTAzNCstMC4xODE3ICAgICA/ICAgICAx
My45MDk4Ky0wLjE1MjkgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC42MzYzKy0wLjE4OTMgICAgICAg
ICAgICA4LjU3MTcrLTAuMTc0NCAgICAgICAgCiAgIGludC1vci1vdGhlci1hYnMtemVyby10aGVu
LWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuNzYxOCstMC4yNDI4ICAg
ICAgICAgICAzNC41OTE4Ky0wLjE0MzUgICAgICAgIAogICBpbnQtb3Itb3RoZXItYWRkLXRoZW4t
Z2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljg1OTgrLTAuMTQz
MiAgICAgICAgICAgIDkuNzk5MystMC4xNDcwICAgICAgICAKICAgaW50LW9yLW90aGVyLWFkZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4xMDgwKy0w
LjE1NDYgICAgICAgICAgIDEwLjA4ODUrLTAuMTA5OSAgICAgICAgCiAgIGludC1vci1vdGhlci1k
aXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuODUy
NistMC4wNjY0ICAgICA/ICAgICAgNS44NzcwKy0wLjA2MjggICAgICAgID8KICAgaW50LW9yLW90
aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni44MDc0Ky0wLjA4MDcgICAgID8gICAgICA2LjgyOTArLTAuMTIwNyAgICAgICAgPwogICBpbnQt
b3Itb3RoZXItbWluLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2Ljg0ODQrLTAuMDc1NiAgICAgICAgICAgIDYuODM5MystMC4xMTI4ICAgICAgICAKICAg
aW50LW9yLW90aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNS43NzIxKy0wLjA1ODcgICAgICAgICAgICA1Ljc1NDQrLTAuMDc3NSAgICAgICAg
CiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuMjQyNystMC4wNjY4ICAgICAgICAgICAgNi4xODkzKy0wLjA4MzMgICAg
ICAgIAogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3LjcwNjcrLTAuMDg0OSAgICAgICAgICAgIDcuNjQxMCstMC4wODAx
ICAgICAgICAKICAgaW50LW9yLW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzNC42NTU4Ky0wLjcxNTAgICAgID8gICAgIDM0Ljc5NzcrLTAu
OTQyOSAgICAgICAgPwogICBpbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjIzMTUrLTAuMTg0MSAgICAgICAgICAgMTAuMTYw
NystMC4wNzA2ICAgICAgICAKICAgaW50LW9yLW90aGVyLXN1YiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy44MzcxKy0wLjA5MTggICAgID8gICAgICA3
Ljg1NjgrLTAuMDY5NSAgICAgICAgPwogICBpbnQtb3ZlcmZsb3ctbG9jYWwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjMyNTErLTAuMTQ2MyAgICAgPyAg
ICAgMTEuMzkwNSstMC4xNzczICAgICAgICA/CiAgIEludDE2QXJyYXktYWxsb2MtbG9uZy1saXZl
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODguODU3NCstMi4xODU1ICAg
ICAgICAgICA4OC43MDY0Ky0yLjMzNzAgICAgICAgIAogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0
LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjkxMjErLTAuMDY0
NiAgICAgICAgICAgNDUuOTA5MSstMC4wOTgyICAgICAgICAKICAgSW50MTZBcnJheS1idWJibGUt
c29ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4zOTc2Ky0w
LjEyNTUgICAgICAgICAgIDQ1LjM4NTgrLTAuMDcyMSAgICAgICAgCiAgIEludDE2QXJyYXktbG9h
ZC1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTcw
NCstMC4wNTUzICAgICA/ICAgICAgMi4wMDE5Ky0wLjA2NjAgICAgICAgID8gbWlnaHQgYmUgMS4w
MTYweCBzbG93ZXIKICAgSW50MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4NC44NjAxKy0wLjQ2NzUgICAgICEgICAgIDg5LjgzMjEr
LTAuNjYwNCAgICAgICAgISBkZWZpbml0ZWx5IDEuMDU4Nnggc2xvd2VyCiAgIEludDMyQXJyYXkt
YWxsb2MtaHVnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MzMu
Nzc5MSstMTE5LjU0MjIgICAgICAgIDgzMi40MjkzKy0xMTguOTE3MSAgICAgIAogICBJbnQzMkFy
cmF5LWFsbG9jLWh1Z2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NzE5Ljk0NTIrLTIuODY3MiAgICAgICAgICA3MTcuMTk5MistMi40MTkzICAgICAgICAKICAgSW50
MzJBcnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDk1My4zNTIyKy0zMy43ODgyICAgICAgICAgOTUyLjkyMzkrLTMyLjc3MTAgICAgICAgCiAg
IEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDAuMTQ4MCstMC4yNTYyICAgICAgICAgICA0MC4xMDc5Ky0wLjI0NzUgICAgICAg
IAogICBJbnQzMkFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAzLjUwNjUrLTEuMDU1OSAgICAgPyAgICAxMDMuNTEyNystMC44MzE2ICAg
ICAgICA/CiAgIEludDMyQXJyYXktYWxsb2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuMjg1NSstMi45MTcyICAgICA/ICAgICAgNy4zMjM4Ky0yLjkz
NDYgICAgICAgID8KICAgSW50MzJBcnJheS1JbnQ4QXJyYXktdmlldy1hbGxvYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyMC4zMzk5Ky0xLjk0NjQgICAgID8gICAgIDIxLjA4OTMr
LTIuMDgwNiAgICAgICAgPyBtaWdodCBiZSAxLjAzNjh4IHNsb3dlcgogICBJbnQ4QXJyYXktYWxs
b2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5Ljgz
NzkrLTEuNTQxNCAgICAgICAgICAgNzkuNTI5MistMS41ODk4ICAgICAgICAKICAgSW50OEFycmF5
LWxvYWQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC42NTY3Ky0wLjA2OTQgICAgID8gICAgICA0LjY4MzUrLTAuMDYzOSAgICAgICAgPwogICBJbnQ4
QXJyYXktbG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LjY5NzkrLTAuMDc5MSAgICAgICAgICAgIDQuNjY1MSstMC4wNTcyICAgICAgICAKICAg
aW50ZWdlci1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxNC43OTE4Ky0wLjIwMjMgICAgICAgICAgIDE0Ljc1NDkrLTAuMTQzNyAgICAgICAg
CiAgIGludGVnZXItbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuOTY4MSstMC4wOTIwICAgICA/ICAgICAgMS45ODIyKy0wLjA2MjcgICAg
ICAgID8KICAgbG90cy1vZi1maWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNC42MjYyKy0yLjE5NDUgICAgID8gICAgIDE1LjI0OTYrLTIuMjYw
NCAgICAgICAgPyBtaWdodCBiZSAxLjA0MjZ4IHNsb3dlcgogICBtYWtlLWluZGV4ZWQtc3RvcmFn
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjcxNDcrLTAu
NTgwOSAgICAgICAgICAgIDQuNjYwNSstMC42MDI4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNngg
ZmFzdGVyCiAgIG1ha2Utcm9wZS1jc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTkuOTEzOCstMC4xMzc1ICAgICA/ICAgICAyMS4wOTk4Ky0xLjgz
NTIgICAgICAgID8gbWlnaHQgYmUgMS4wNTk2eCBzbG93ZXIKICAgbWFyc2FnbGlhICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5NC45MzQ2Ky0w
LjcyMTEgICAgID8gICAgNDk1LjMxMDMrLTAuMzE1MCAgICAgICAgPwogICBtZXRob2Qtb24tbnVt
YmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjQy
ODkrLTAuMzgyNSAgICAgICAgICAgMjUuMjQzNistMC40MTkzICAgICAgICAKICAgbmVnYXRpdmUt
emVyby1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4zMjYzKy0wLjAyMzEgICAgID8gICAgICAwLjM0MDgrLTAuMDI5MCAgICAgICAgPyBtaWdodCBi
ZSAxLjA0NDR4IHNsb3dlcgogICBuZWdhdGl2ZS16ZXJvLW1vZHVsbyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMzMDArLTAuMDIyNiAgICAgICAgICAgIDAu
MzEzMCstMC4wMjkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0NHggZmFzdGVyCiAgIG5lZ2F0aXZl
LXplcm8tbmVnYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzA3MCstMC4wMjY0ICAgICA/ICAgICAgMC4zMTM4Ky0wLjAyOTMgICAgICAgID8gbWlnaHQg
YmUgMS4wMjIxeCBzbG93ZXIKICAgbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmctcmFuZG9tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4Mi41MzAwKy0xMi4zMjcwICAgID8gICAgMzg1
LjAyMDkrLTExLjM4MTUgICAgICAgPwogICBuZXN0ZWQtZnVuY3Rpb24tcGFyc2luZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUyLjAwNTQrLTMuNjQ3MyAgICAgPyAg
ICAgNTIuMzUyMistMy43MTkzICAgICAgICA/CiAgIG5ldy1hcnJheS1idWZmZXItZGVhZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzE4OSstMC4xNDcyICAg
ICA/ICAgICAgMy43MjQ2Ky0wLjE2MzAgICAgICAgID8KICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNo
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4yMTM4Ky0yLjMy
MjYgICAgICAgICAgIDEzLjgzNDIrLTIuNDQyOSAgICAgICAgICBtaWdodCBiZSAxLjAyNzR4IGZh
c3RlcgogICBuZXctYXJyYXktZGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDI3LjEyNDIrLTAuMTM1NiAgICAgICAgICAgMjcuMDYyMistMC4xMTA5
ICAgICAgICAKICAgbmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMi42NzkwKy0yLjQ3OTggICAgICAgICAgIDEyLjU3NzYrLTIu
NDcwMSAgICAgICAgCiAgIG51bWJlci10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTc1MCstMC4wNTk1ICAgICAgICAgICAgNC4xNDU3
Ky0wLjA2ODEgICAgICAgIAogICBvYmplY3QtY2xvc3VyZS1jYWxsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjczMTMrLTEuNDg5NiAgICAgICAgICAgIDku
MTM4OSstMS40NTk4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY0OHggZmFzdGVyCiAgIG9iamVjdC10
ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuNjUzNistMC4wOTEwICAgICAgICAgICAgNC41OTEyKy0wLjA5NzEgICAgICAgICAgbWlnaHQg
YmUgMS4wMTM2eCBmYXN0ZXIKICAgcG9seS1zdHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4OS4xOTEzKy0wLjY2NzMgICAgID8gICAgIDg5
LjI0NjErLTAuNjk3MyAgICAgICAgPwogICBwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjA1MjIrLTAuMTUxNyAgICAgPyAg
ICAgMjAuMDg3NSstMC4xNTYyICAgICAgICA/CiAgIHBvbHl2YXJpYW50LW1vbm9tb3JwaGljLWdl
dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMDM0NCstMC4xMzI2ICAg
ICA/ICAgICAxMi4wNzU4Ky0wLjE1MjUgICAgICAgID8KICAgcHV0LWJ5LXZhbC1sYXJnZS1pbmRl
eC1ibGFuay1pbmRleGluZy10eXBlICAgICAgICAgICAgICAgICAgICAgICAxOS42MzgyKy0wLjU1
MjAgICAgICAgICAgIDE5LjM4MzgrLTAuNTU1MSAgICAgICAgICBtaWdodCBiZSAxLjAxMzF4IGZh
c3RlcgogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE5LjMyMjYrLTAuMTYzMCAgICAgICAgICAgMTkuMjg4OSstMC4xMjE2
ICAgICAgICAKICAgcmVnaXN0ZXItcHJlc3N1cmUtZnJvbS1vc3IgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyOS44NTUyKy0wLjA1MDMgICAgID8gICAgIDI5Ljg3OTgrLTAu
MDU2NSAgICAgICAgPwogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjA1NTYrLTAuMjc1NSAgICAgICAgICAgMzIuOTQx
MistMC4yMjAwICAgICAgICAKICAgc2xvdy1hcnJheS1wcm9maWxlLWNvbnZlcmdlbmNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NTc5Ky0wLjI3NzkgICAgICAgICAgICA0
LjQxMjIrLTAuMjc3NyAgICAgICAgICBtaWdodCBiZSAxLjAzMzB4IGZhc3RlcgogICBzbG93LWNv
bnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjU1MTErLTAuMDgzMiAgICAgPyAgICAgIDMuNTc2OCstMC4wNzk3ICAgICAgICA/CiAgIHNw
YXJzZS1jb25kaXRpb25hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuMzkyMCstMC4wNzU0ICAgICAgICAgICAgMS4zNDYzKy0wLjA3MTQgICAgICAgICAg
bWlnaHQgYmUgMS4wMzQweCBmYXN0ZXIKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NC40NDcwKy0wLjEwMzYgICAgICAg
ICAgIDQ0LjI4MDcrLTAuMDYzOSAgICAgICAgCiAgIHN0cmluZy1jb25jYXQtb2JqZWN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzk5MSstMS40MzM3ICAg
ICA/ICAgICAgNC44NjQ4Ky0xLjQxMjkgICAgICAgID8gbWlnaHQgYmUgMS4wMTM3eCBzbG93ZXIK
ICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC44MTQwKy0xLjQxNTEgICAgICAgICAgICA0Ljc1MzYrLTEuNDE5MyAgICAg
ICAgICBtaWdodCBiZSAxLjAxMjd4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LXBhaXItc2ltcGxl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjI4NjQrLTAuNDE5OCAg
ICAgPyAgICAgMTguNDc5MCstMC41MDU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNXggc2xvd2Vy
CiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTguNDIwNSstMC41Mjk2ICAgICA/ICAgICAxOC41Mjk3Ky0wLjQyNzYgICAg
ICAgID8KICAgc3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNC4wNDcwKy0wLjg0ODAgICAgID8gICAgIDE0LjA3NDMrLTAuODEz
NCAgICAgICAgPwogICBzdHJpbmctY29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDE0LjY5MDcrLTAuODc1OCAgICAgPyAgICAgMTQuNjk1MSst
MC44NjQ4ICAgICAgICA/CiAgIHN0cmluZy1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDIuNjE4OSstMC4xOTc0ICAgICAhICAgICA0My41
Nzc4Ky0wLjM2MDUgICAgICAgICEgZGVmaW5pdGVseSAxLjAyMjV4IHNsb3dlcgogICBzdHJpbmct
Z2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE2Ljc0NzIrLTAuMjU3NyAgICAgPyAgICAgMTYuOTU1MistMC4yODg4ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDEyNHggc2xvd2VyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMtaW5z
YW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDQ2OSstMC4xODI3ICAgICAgICAgICAg
NS4wMzg0Ky0wLjE1NTIgICAgICAgIAogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU5NTkrLTAuMDU3MyAgICAgPyAg
ICAgIDQuNjcyMCstMC4xMTM5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2Nnggc2xvd2VyCiAgIHN0
cmluZy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuOTUyMystMC4wOTE3ICAgICA/ICAgICAgNC4wMTMzKy0wLjEwMzMgICAgICAgID8g
bWlnaHQgYmUgMS4wMTU0eCBzbG93ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NTQwKy0wLjA2NDYgICAgID8g
ICAgICAyLjYyOTMrLTAuMDQ1NCAgICAgICAgPyBtaWdodCBiZSAxLjAyOTV4IHNsb3dlcgogICBz
dHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDM3LjA2MjMrLTAuNDMwOCAgICAgISAgICAgMzguNTA2NystMC4yMjQ3ICAgICAgICAh
IGRlZmluaXRlbHkgMS4wMzkweCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1hcml0aCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS41MzE0Ky0wLjQ5MTAgICAg
ID8gICAgIDQ1LjcyMzYrLTEuMjY5MyAgICAgICAgPwogICBzdHJpbmctc3ViICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkzLjUwNTYrLTYuNjUz
NiAgICAgICAgICAgODkuNzQxOSstMC41MjIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDQxOXggZmFz
dGVyCiAgIHN0cmluZy10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuMDg4OSstMC4wNDMxICAgICA/ICAgICAgNC4xNTYxKy0wLjA1OTAg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTY0eCBzbG93ZXIKICAgc3RyaW5nLXZhci1lcXVhbGl0eSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OC4wMDA3Ky0wLjUw
NDkgICAgICEgICAgIDY5LjYzMTYrLTAuMTE3NiAgICAgICAgISBkZWZpbml0ZWx5IDEuMDI0MHgg
c2xvd2VyCiAgIHN0cnVjdHVyZS1ob2lzdC1vdmVyLXRyYW5zaXRpb25zICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuODQ5NystMC42MjE3ICAgICAgICAgICAgMy44NDA3Ky0wLjU4
MjMgICAgICAgIAogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjI3OTUrLTAuMDUxMiAgICAgICAgICAgIDMuMjU0NCst
MC4wNjY2ICAgICAgICAKICAgc3dpdGNoLWNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNy42NTM0Ky0wLjA2OTEgICAgICAgICAgICA3LjU4
NTMrLTAuMDU2MyAgICAgICAgCiAgIHN3aXRjaC1jb25zdGFudCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMjMxNSstMi40OTEyICAgICA/ICAgICAx
Mi40MzM3Ky0yLjU1NzkgICAgICAgID8gbWlnaHQgYmUgMS4wMTY1eCBzbG93ZXIKICAgc3dpdGNo
LXN0cmluZy1iYXNpYy1iaWctdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMS4yMjM0Ky0wLjkzODYgICAgICAgICAgIDIwLjY4MDIrLTAuNDMxNyAgICAgICAgICBtaWdo
dCBiZSAxLjAyNjN4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjA5OTIrLTEuMDIxOCAgICAgICAgICAg
MjEuNjM2OCstMC43MjMyICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxNHggZmFzdGVyCiAgIHN3aXRj
aC1zdHJpbmctYmFzaWMtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjAuMjU0MystMC4xMDMyICAgICAgICAgICAyMC4yMzgyKy0wLjExMzQgICAgICAgIAogICBz
d2l0Y2gtc3RyaW5nLWJhc2ljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE5LjUyNzgrLTAuMzA0NCAgICAgPyAgICAgMTkuNTUxNistMC4zMjY2ICAgICAgICA/
CiAgIHN3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjguMTk4MSstMC4xNTQxICAgICAgICAgICAyOC4wOTU0Ky0wLjA4OTIgICAg
ICAgIAogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIyLjA0MzkrLTAuMTAxMCAgICAgPyAgICAgMjIuMDcyMSstMC4xMTI1
ICAgICAgICA/CiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTYuODQxMystMC4xOTc5ICAgICAgICAgICAxNi43NjgwKy0w
LjE1MzEgICAgICAgIAogICBzd2l0Y2gtc3RyaW5nLXNob3J0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE2Ljc5ODcrLTAuMTYwOCAgICAgICAgICAgMTYuNzQy
NystMC4xMzk5ICAgICAgICAKICAgc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi4wNjc2Ky0yLjc0OTYgICAgID8gICAgIDE2
LjE0OTErLTIuNzQ2NCAgICAgICAgPwogICB0ZWFyLW9mZi1hcmd1bWVudHMtc2ltcGxlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI2ODkrLTAuMDc2NCAgICAgICAg
ICAgIDIuMjIwNCstMC4wODI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxOHggZmFzdGVyCiAgIHRl
YXItb2ZmLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuNDI0MCstMC4wNTUzICAgICAgICAgICAgMy40MDM2Ky0wLjA3NjcgICAgICAgIAog
ICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIwLjE4MzMrLTAuMTk5NSAgICAgICAgICAgMjAuMDU5NystMC4wNzI3ICAgICAg
ICAKICAgdG8taW50MzItYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMS4wMDY3Ky0wLjA0NDIgICAgID8gICAgIDIxLjA3MjIrLTAuMTAzNiAg
ICAgICAgPwogICB1bmRlZmluZWQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjMxMDUrLTAuMDc3MCAgICAgPyAgICAgIDQuMzE2NistMC4w
NzU3ICAgICAgICA/CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTA3LjYzMzgrLTIuMDQ4MiAgICAgICAgICAxMDcuNTYz
OCstMS45MzU5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAwN3ggZmFzdGVyCiAgIDxnZW9tZXRyaWM+
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQu
Mzc2MistMC4xMTAzICAgICA/ICAgICAxNC4zODE5Ky0wLjA5OTIgICAgICAgID8gbWlnaHQgYmUg
MS4wMDA0eCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMDM1Ky0wLjExODUgICAgID8gICAgICA1LjEx
MDErLTAuMTQ2OCAgICAgICAgPyBtaWdodCBiZSAxLjAwMTN4IHNsb3dlcgoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENvbmYjMSAgICAgICAgICAgICAgICAgICAgQ29uZiMyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKRFNQOgogICBmaWx0cnItcG9zdGVyaXplLXRpbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxLjQxMTIrLTEuMDcxNyAgICAgPyAg
ICAgNDEuNDc3MSstMS4xNTY1ICAgICAgICA/CiAgIGZpbHRyci10aW50LWNvbnRyYXN0LXNhdC1i
cmlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjcuNTIwNistMC4yNzg1ICAg
ICAgICAgICA2Ny40MDUzKy0wLjIxNzggICAgICAgIAogICBmaWx0cnItdGludC1zYXQtYWRqLWNv
bnRyLW11bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5Ljc1NzYrLTMuODgx
NCAgICAgICAgICAgNzguNDc5NistMi4zNDU1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2M3ggZmFz
dGVyCiAgIGZpbHRyci1ibHVyLW92ZXJsYXktc2F0LWNvbnRyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMDcuODMzNystNy41MjExICAgICAgICAgIDIwNy43MzA3Ky03Ljc0Mzgg
ICAgICAgIAogICBmaWx0cnItc2F0LWJsdXItbXVsdC1zaGFycGVuLWNvbnRyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjQ4LjIwNzkrLTMuNDA1MyAgICAgICAgICAyNDcuMTE4NSstMi40
ODg1ICAgICAgICAKICAgZmlsdHJyLXNlcGlhLWJpYXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMS45OTgzKy0zLjIxMTkgICAgICAgICAgIDMxLjcwNjgr
LTMuMTY2OSAgICAgICAgCiAgIHJvdXRlOS12cDggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeDUgICAgICA5MjUuMzk2MCstNC40OTUyICAgICAgICAgIDkyNC4w
NDY1Ky00Ljk1OTUgICAgICAgIAogICBzdGFyZmllbGQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHg1ICAgICAxMjAzLjMxNTUrLTMxLjg3NDYgICAgPyAgIDEy
MzYuMDk1OSstNC45ODQzICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Mnggc2xvd2VyCiAgIGJlbGxh
cmQtanNsaW51eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDUgICAg
IDI4OTEuOTE2NystMTIuNTEwOCAgICAgICAgMjg3MS4wMDAwKy0yMS45NzQ4ICAgICAgIAogICB6
eW5hcHMtcXVha2UzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg1
ICAgICAxMzQ5LjI2ODIrLTQyLjgzNTAgICAgPyAgIDEzNTAuNDgwMystMzUuNzM0OSAgICAgICA/
CiAgIHp5bmFwcy1tYW5kZWxicm90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeDUgICAgIDEwMjcuODQ0MSstMy43MTIxICAgICAgICAgMTAyNS45MTQwKy0zLjE1MzQgICAg
ICAgIAogICBhbW1vanMtYXNtLWpzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHg1ICAgICAgMjQ4LjU0NDYrLTE1LjQyMDMgICAgPyAgICAyNDkuODQxMSstMTQuMzQ2
OSAgICAgICA/CiAgIGFtbW9qcy1yZWd1bGFyLWpzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeDUgICAgICAyMzUuNzc0NistMTEuMTk2MiAgICA/ICAgIDI0NS4xNjAwKy0x
MS4xMzU3ICAgICAgID8gbWlnaHQgYmUgMS4wMzk4eCBzbG93ZXIKCiAgIDxhcml0aG1ldGljPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NzcuNzMy
NCstNS4xNjk1ICAgICA/ICAgIDk4MC4xNjExKy0zLjYwMTUgICAgICAgID8gbWlnaHQgYmUgMS4w
MDI1eCBzbG93ZXIKICAgPGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDU5MC45MDc0Ky04LjA0NTMgICAgID8gICAgNTk1LjA2NDQr
LTcuNzQ5NiAgICAgICAgPyBtaWdodCBiZSAxLjAwNzB4IHNsb3dlcgogICA8aGFybW9uaWM+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjY3LjM4
MjQrLTEwLjQwNTIgICAgPyAgICAyNjguMzA0NystOS44NjQ2ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDAzNHggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uZiMxICAgICAgICAgICAgICAgICAgICBD
b25mIzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApBbGwgYmVuY2htYXJr
czoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIyMy40MTQ0Ky0xLjA3NTEgICAgID8gICAgMjIzLjczMzErLTEuMjA0OSAg
ICAgICAgPyBtaWdodCBiZSAxLjAwMTR4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjQ0ODQrLTAuMTMw
MSAgICAgPyAgICAgMjUuNDUyOCstMC4xMTYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMnggc2xv
d2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuODcxMCstMC4wOTA2ICAgICAgICAgICAgNC44NDQ5Ky0wLjA5NTQg
ICAgICAgICAgbWlnaHQgYmUgMS4wMDU0eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25mIzEg
ICAgICAgICAgICAgICAgICAgIENvbmYjMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5zOgogICA8c2NhbGVkLXJlc3VsdD4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwLjUxMjgrLTAu
MDg1MCAgICAgPyAgICAgNDAuNTIyMystMC4wOTY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMngg
c2xvd2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210207</attachid>
            <date>2013-08-31 13:02:59 -0700</date>
            <delta_ts>2013-08-31 13:02:59 -0700</delta_ts>
            <desc>Benchmark component results from the runs that are consistently different between the baseline and this patch. </desc>
            <filename>jsc-bench-differences-details.txt</filename>
            <type>text/plain</type>
            <size>4276</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">Q29uc2lzdGVudCBkaWZmZXJlbmNlIGluIHJlc3VsdHM6CgpydW4gMy4gICByZWdleHAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjkuNTk4
MDUrLTAuMDMzNjggICAgISAgICAyOS44MDIzNystMC4wNjYyMSAgICAgICAhIGRlZmluaXRlbHkg
MS4wMDY5eCBzbG93ZXIKcnVuIDQuICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDI5LjU5ODMzKy0wLjA1NjgxICAgICEgICAg
MzAuMTMyMjErLTAuMjEwOTYgICAgICAgISBkZWZpbml0ZWx5IDEuMDE4MHggc2xvd2VyCnJ1biA1
LiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeDIgICAgICAyOS42Njg2MCstMC4wNzQ4MyAgICAhICAgIDMwLjI0ODcwKy0wLjMyMjQyICAg
ICAgICEgZGVmaW5pdGVseSAxLjAxOTZ4IHNsb3dlcgpydW4gNi4gICByZWdleHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjkuNjU5NjMr
LTAuMDU3NjIgICAgISAgICAyOS44MTg4MystMC4wNTExOCAgICAgICAhIGRlZmluaXRlbHkgMS4w
MDU0eCBzbG93ZXIKCgpydW4gMy4gICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ni44OTcrLTAuNDQ1ICAgICAgXiAgICAg
IDc1Ljc1NystMC4yNjUgICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTUxeCBmYXN0ZXIKcnVuIDQu
ICAganNvbi1wYXJzZS1maW5hbmNpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNzcuNDEzKy0wLjE5MyAgICAgIF4gICAgICA3NS41NTIrLTAuMTAxICAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDI0NnggZmFzdGVyCnJ1biA1LiAgIGpzb24tcGFyc2UtZmluYW5j
aWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3LjA3Nyst
MC42MzYgICAgICBeICAgICAgNzUuOTE1Ky0wLjI1NiAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAx
NTN4IGZhc3RlcgpydW4gNi4gICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ny4xNTIrLTAuMzY4ICAgICAgXiAgICAgIDc1
LjY5MistMC4yMTYgICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTkzeCBmYXN0ZXIKCgpydW4gMy4g
ICBqc29uLXN0cmluZ2lmeS10aW5kZXJib3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMC4xMTkrLTAuMzIyICAgICAgXiAgICAgIDk4LjM5MistMC45NzYgICAgICAg
ICBeIGRlZmluaXRlbHkgMS4wMTc2eCBmYXN0ZXIKcnVuIDQuICAganNvbi1zdHJpbmdpZnktdGlu
ZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEuMjEyKy0w
Ljc0MSAgICAgIF4gICAgICA5Ny4zNDMrLTAuNDk2ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDM5
N3ggZmFzdGVyCnJ1biA1LiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwLjc1OSstMC42MDMgICAgICBeICAgICAgOTcu
MjQ3Ky0wLjQ2OSAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAzNjF4IGZhc3RlcgpydW4gNi4gICBq
c29uLXN0cmluZ2lmeS10aW5kZXJib3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEwMS43NTcrLTAuNjg1ICAgICAgXiAgICAgIDk3LjE5NCstMC4zNzMgICAgICAgICBe
IGRlZmluaXRlbHkgMS4wNDY5eCBmYXN0ZXIKCgpydW4gMy4gICBIYXNoTWFwLXB1dC1nZXQtaXRl
cmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxLjI4NjMrLTAu
NDc3OSAgICAgISAgICAgNTMuNDYyMSstMC43NTI4ICAgICAgICAhIGRlZmluaXRlbHkgMS4wNDI0
eCBzbG93ZXIKcnVuIDQuICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1MS41NDEwKy0wLjUyNTAgICAgICEgICAgIDUzLjA4
NzErLTAuNTk1NSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDMwMHggc2xvd2VyCnJ1biA1LiAgIEhh
c2hNYXAtcHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNTEuMzEwMSstMC4yOTgxICAgICAhICAgICA1My44MzQ3Ky0xLjA3MDUgICAgICAgICEg
ZGVmaW5pdGVseSAxLjA0OTJ4IHNsb3dlcgpydW4gNi4gICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxLjIxNzErLTAuNDgw
MCAgICAgISAgICAgNTQuMTI2NSstMS43NTgxICAgICAgICAhIGRlZmluaXRlbHkgMS4wNTY4eCBz
bG93ZXIKCgpydW4gMy4gICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDgzLjg1MjQrLTAuNDQ2NCAgICAgISAgICAgODkuMDA1
NystMC41MTIyICAgICAgICAhIGRlZmluaXRlbHkgMS4wNjE1eCBzbG93ZXIKcnVuIDQuICAgSW50
MTZBcnJheS10by1JbnQzMkFycmF5LXNldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4NS4zMTYxKy0wLjkyMzggICAgICEgICAgIDg5LjUxMzArLTAuNjY5OCAgICAgICAgISBk
ZWZpbml0ZWx5IDEuMDQ5Mnggc2xvd2VyCnJ1biA1LiAgIEludDE2QXJyYXktdG8tSW50MzJBcnJh
eS1zZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODUuMDE0MystMC45ODUy
ICAgICAhICAgICA4OC41MzQwKy0wLjYwNjAgICAgICAgICEgZGVmaW5pdGVseSAxLjA0MTR4IHNs
b3dlcgpydW4gNi4gICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDg0Ljg2MDErLTAuNDY3NSAgICAgISAgICAgODkuODMyMSst
MC42NjA0ICAgICAgICAhIGRlZmluaXRlbHkgMS4wNTg2eCBzbG93ZXIKCgpydW4gMy4gICBzdHJp
bmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM2LjkyNTYrLTAuMTExNCAgICAgISAgICAgMzguNDcyNSstMC4xMjI4ICAgICAgICAhIGRl
ZmluaXRlbHkgMS4wNDE5eCBzbG93ZXIKcnVuIDQuICAgc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxp
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy4wMzI1Ky0wLjQxMTIg
ICAgICEgICAgIDM4LjM1OTgrLTAuMDMyNSAgICAgICAgISBkZWZpbml0ZWx5IDEuMDM1OHggc2xv
d2VyCnJ1biA1LiAgIHN0cmluZy1sb25nLWlkZW50LWVxdWFsaXR5ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzcuMTk3OCstMC40MTE0ICAgICAhICAgICAzOC44ODcwKy0w
LjUzNjAgICAgICAgICEgZGVmaW5pdGVseSAxLjA0NTR4IHNsb3dlcgpydW4gNi4gICBzdHJpbmct
bG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDM3LjA2MjMrLTAuNDMwOCAgICAgISAgICAgMzguNTA2NystMC4yMjQ3ICAgICAgICAhIGRlZmlu
aXRlbHkgMS4wMzkweCBzbG93ZXIKCgpydW4gMy4gICBzdHJpbmctdmFyLWVxdWFsaXR5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4LjAwMjUrLTAuNDY5NiAg
ICAgISAgICAgNjkuNzA3OCstMC4xOTAxICAgICAgICAhIGRlZmluaXRlbHkgMS4wMjUxeCBzbG93
ZXIKcnVuIDQuICAgc3RyaW5nLXZhci1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2Ny45OTMxKy0wLjQ2ODEgICAgICEgICAgIDY5LjcyOTQrLTAu
MTk1MyAgICAgICAgISBkZWZpbml0ZWx5IDEuMDI1NXggc2xvd2VyCnJ1biA1LiAgIHN0cmluZy12
YXItZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NjguMTI2OCstMC41MzU0ICAgICAhICAgICA2OS44NTg1Ky0wLjI0MDYgICAgICAgICEgZGVmaW5p
dGVseSAxLjAyNTR4IHNsb3dlcgpydW4gNi4gICBzdHJpbmctdmFyLWVxdWFsaXR5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4LjAwMDcrLTAuNTA0OSAgICAg
ISAgICAgNjkuNjMxNistMC4xMTc2ICAgICAgICAhIGRlZmluaXRlbHkgMS4wMjQweCBzbG93ZXIK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>210208</attachid>
            <date>2013-08-31 13:07:11 -0700</date>
            <delta_ts>2013-08-31 13:07:11 -0700</delta_ts>
            <desc>Summary of performance differences between the baseline and this patch.</desc>
            <filename>jsc-bench-summary.txt</filename>
            <type>text/plain</type>
            <size>3037</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">Q29uc2lzdGVudCBkaWZmZXJlbmNlIGluIHJlc3VsdHM6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuIDMgICAgICAgICAgICAgICAgICAgICAgICBydW4gNCAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1biA1ICAgICAgICAgICAgICAgICAgICAgICAgcnVuIDYKIHJlZ2V4cCAgICAg
ICAgICAgICAgICAgICAgICAgISBkZWZpbml0ZWx5IDEuMDA2OXggc2xvd2VyICAhIGRlZmluaXRl
bHkgMS4wMTgweCBzbG93ZXIgICEgZGVmaW5pdGVseSAxLjAxOTZ4IHNsb3dlciAgISBkZWZpbml0
ZWx5IDEuMDA1NHggc2xvd2VyCiBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgIF4gZGVmaW5p
dGVseSAxLjAxNTF4IGZhc3RlciAgXiBkZWZpbml0ZWx5IDEuMDI0NnggZmFzdGVyICBeIGRlZmlu
aXRlbHkgMS4wMTUzeCBmYXN0ZXIgIF4gZGVmaW5pdGVseSAxLjAxOTN4IGZhc3RlcgoganNvbi1z
dHJpbmdpZnktdGluZGVyYm94ICAgICBeIGRlZmluaXRlbHkgMS4wMTc2eCBmYXN0ZXIgIF4gZGVm
aW5pdGVseSAxLjAzOTd4IGZhc3RlciAgXiBkZWZpbml0ZWx5IDEuMDM2MXggZmFzdGVyICBeIGRl
ZmluaXRlbHkgMS4wNDY5eCBmYXN0ZXIKIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlICAgICAgISBk
ZWZpbml0ZWx5IDEuMDQyNHggc2xvd2VyICAhIGRlZmluaXRlbHkgMS4wMzAweCBzbG93ZXIgICEg
ZGVmaW5pdGVseSAxLjA0OTJ4IHNsb3dlciAgISBkZWZpbml0ZWx5IDEuMDU2OHggc2xvd2VyCiBJ
bnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICEgZGVmaW5pdGVseSAxLjA2MTV4IHNsb3dlciAg
ISBkZWZpbml0ZWx5IDEuMDQ5Mnggc2xvd2VyICAhIGRlZmluaXRlbHkgMS4wNDE0eCBzbG93ZXIg
ICEgZGVmaW5pdGVseSAxLjA1ODZ4IHNsb3dlcgogc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkg
ICAhIGRlZmluaXRlbHkgMS4wNDE5eCBzbG93ZXIgICEgZGVmaW5pdGVseSAxLjAzNTh4IHNsb3dl
ciAgISBkZWZpbml0ZWx5IDEuMDQ1NHggc2xvd2VyICAhIGRlZmluaXRlbHkgMS4wMzkweCBzbG93
ZXIKIHN0cmluZy12YXItZXF1YWxpdHkgICAgICAgICAgISBkZWZpbml0ZWx5IDEuMDI1MXggc2xv
d2VyICAhIGRlZmluaXRlbHkgMS4wMjU1eCBzbG93ZXIgICEgZGVmaW5pdGVseSAxLjAyNTR4IHNs
b3dlciAgISBkZWZpbml0ZWx5IDEuMDI0MHggc2xvd2VyCgoKVG90YWwgc2NvcmVzOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1biAzICAgICAgICAgICAgICAgICAgICAgICAgcnVu
IDQgICAgICAgICAgICAgICAgICAgICAgICBydW4gNSAgICAgICAgICAgICAgICAgICAgICAgIHJ1
biA2ClN1blNwaWRlcjogPGFyaXRobWV0aWM+ICogICAgICAgbWlnaHQgYmUgMS4wMDEweCBmYXN0
ZXIgICAgPyBtaWdodCBiZSAxLjAwNTV4IHNsb3dlciAgICA/IG1pZ2h0IGJlIDEuMDAwM3ggc2xv
d2VyICAgICAgbWlnaHQgYmUgMS4wMDEweCBmYXN0ZXIKVjhTcGlkZXI6IDxnZW9tZXRyaWM+ICog
ICAgICAgPyBtaWdodCBiZSAxLjAwMjh4IHNsb3dlciAgICAgIG1pZ2h0IGJlIDEuMDAxMXggZmFz
dGVyICAgICAgbWlnaHQgYmUgMS4wMDIzeCBmYXN0ZXIgICAgICBtaWdodCBiZSAxLjAwOTJ4IGZh
c3RlcgpWOHY3OiA8Z2VvbWV0cmljPiAqICAgICAgICAgICA/IG1pZ2h0IGJlIDEuMDAyNHggc2xv
d2VyICAgID8gbWlnaHQgYmUgMS4wMDU0eCBzbG93ZXIgICAgICBtaWdodCBiZSAxLjAwMTd4IGZh
c3RlciAgICAgIG1pZ2h0IGJlIDEuMDE1MnggZmFzdGVyICAgIApPY3RhbmUgaW5jbHVkaW5nIFY4
djc6IDxnZS4uLiA/IG1pZ2h0IGJlIDEuMDAxNXggc2xvd2VyICAgID8gbWlnaHQgYmUgMS4wMDUx
eCBzbG93ZXIgICAgICBtaWdodCBiZSAxLjAwMzJ4IGZhc3RlciAgICAgIG1pZ2h0IGJlIDEuMDA4
M3ggZmFzdGVyCktyYWtlbjogPGFyaXRobWV0aWM+ICogICAgICAgICAgbWlnaHQgYmUgMS4wMDA5
eCBmYXN0ZXIgICAgPyBtaWdodCBiZSAxLjAwMTV4IHNsb3dlciAgICA/IG1pZ2h0IGJlIDEuMDAw
M3ggc2xvd2VyICAgID8gbWlnaHQgYmUgMS4wMDAxeCBzbG93ZXIKSlNCZW5jaDogPGFyaXRobWV0
aWM+ICogICAgICAgPyBtaWdodCBiZSAxLjAwOTN4IHNsb3dlciAgICA/IG1pZ2h0IGJlIDEuMDAx
M3ggc2xvd2VyICAgID8gbWlnaHQgYmUgMS4wMDY2eCBzbG93ZXIgICAgPyBtaWdodCBiZSAxLjAx
MjZ4IHNsb3dlcgpKU1JlZ3Jlc3M6PGdlb21ldHJpYz4gKiAgICAgICA/IG1pZ2h0IGJlIDEuMDAx
MXggc2xvd2VyICAgID8gbWlnaHQgYmUgMS4wMDE3eCBzbG93ZXIgICAgPyBtaWdodCBiZSAxLjAw
Mjd4IHNsb3dlciAgICA/IG1pZ2h0IGJlIDEuMDAwNHggc2xvd2VyCkRTUDogPGdlb21ldHJpYz4g
KiAgICAgICAgICAgID8gbWlnaHQgYmUgMS4wMDAyeCBzbG93ZXIgICAgICBtaWdodCBiZSAxLjAx
NDJ4IGZhc3RlciAgICAgIG1pZ2h0IGJlIDEuMDA1MnggZmFzdGVyICAgID8gbWlnaHQgYmUgMS4w
MDcweCBzbG93ZXIKCkFsbCBiZW5jaG1hcmtzOiA8YXJpdGhtZXRpYz4gID8gbWlnaHQgYmUgMS4w
MDAxeCBzbG93ZXIgICAgICBtaWdodCBiZSAxLjAwNzZ4IGZhc3RlciAgICAgIG1pZ2h0IGJlIDEu
MDAyNHggZmFzdGVyICAgID8gbWlnaHQgYmUgMS4wMDE0eCBzbG93ZXIKQWxsIGJlbmNobWFya3M6
IDxnZW9tZXRyaWM+ICAgPyBtaWdodCBiZSAxLjAwMTF4IHNsb3dlciAgICAgIG1pZ2h0IGJlIDEu
MDAwMXggZmFzdGVyICAgID8gbWlnaHQgYmUgMS4wMDA1eCBzbG93ZXIgICAgPyBtaWdodCBiZSAx
LjAwMDJ4IHNsb3dlcgpBbGwgYmVuY2htYXJrczogPGhhcm1vbmljPiAgICA/IG1pZ2h0IGJlIDEu
MDAyNnggc2xvd2VyICAgID8gbWlnaHQgYmUgMS4wMDA3eCBzbG93ZXIgICAgPyBtaWdodCBiZSAx
LjAwMDB4IHNsb3dlciAgICAgIG1pZ2h0IGJlIDEuMDA1NHggZmFzdGVyCgpHZW9tZWFuIG9mIHBy
ZWZlcnJlZCBtZWFuczogICA/IG1pZ2h0IGJlIDEuMDAxOHggc2xvd2VyICAgICAgbWlnaHQgYmUg
MS4wMDAweCBmYXN0ZXIgICAgICBtaWdodCBiZSAxLjAwMDF4IGZhc3RlciAgICA/IG1pZ2h0IGJl
IDEuMDAwMnggc2xvd2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210232</attachid>
            <date>2013-09-01 01:29:03 -0700</date>
            <delta_ts>2013-09-03 11:25:55 -0700</delta_ts>
            <desc>patch 2: functor version.</desc>
            <filename>bug-120564b.patch</filename>
            <type>text/plain</type>
            <size>41401</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBA
CisyMDEzLTA5LTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
b252ZXJ0aW5nIFN0YWNrSXRlcmF0b3IgdG8gYSBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1NjQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0
UmVmLmNwcDoKKyAgICAgICAgKEJhY2t0cmFjZUZ1bmN0b3I6OkJhY2t0cmFjZUZ1bmN0b3IpOgor
ICAgICAgICAoQmFja3RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0NvbnRl
eHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6RHVt
cFJlZ2lzdGVyRnVuY3Rvcjo6RHVtcFJlZ2lzdGVyRnVuY3Rvcik6CisgICAgICAgIChKU0M6OkR1
bXBSZWdpc3RlckZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6ZHVtcFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OnVud2luZENhbGxGcmFtZSk6CisgICAg
ICAgIChKU0M6OkdldFN0YWNrVHJhY2VGdW5jdG9yOjpHZXRTdGFja1RyYWNlRnVuY3Rvcik6Cisg
ICAgICAgIChKU0M6OkdldFN0YWNrVHJhY2VGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KEpTQzo6SW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJhY2UpOgorICAgICAgICAoSlNDOjpJbnRlcnBy
ZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKToKKyAgICAgICAgKEpTQzo6VW53aW5kRnVuY3Rvcjo6
VW53aW5kRnVuY3Rvcik6CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om9wZXJhdG9yKCkp
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dW53aW5kKToKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5oOgorICAgICAgICAqIGludGVycHJldGVyL1N0YWNrSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpudW1iZXJPZkZyYW1lcyk6CisgICAg
ICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OmdvdG9GcmFtZUF0SW5kZXgpOgorICAgICAgICAoSlND
OjpTdGFja0l0ZXJhdG9yOjpnb3RvTmV4dEZyYW1lV2l0aEZpbHRlcik6CisgICAgICAgIChKU0M6
OlN0YWNrSXRlcmF0b3I6OnJlc2V0SXRlcmF0b3IpOgorICAgICAgICAoSlNDOjpTdGFja0l0ZXJh
dG9yOjpGcmFtZTo6cHJpbnQpOgorICAgICAgICAoZGVidWdQcmludENhbGxGcmFtZSk6CisgICAg
ICAgIChEZWJ1Z1ByaW50U3RhY2tGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKGRlYnVn
UHJpbnRTdGFjayk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oOgorICAg
ICAgICAoSlNDOjpTdGFja0l0ZXJhdG9yOjpGcmFtZTo6aW5kZXgpOgorICAgICAgICAoSlNDOjpT
dGFja0l0ZXJhdG9yOjpGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6U3RhY2tJ
dGVyYXRvcjo6aXRlcmF0ZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEZ1bmN0aW9u
SlNDU3RhY2tGdW5jdG9yOjpGdW5jdGlvbkpTQ1N0YWNrRnVuY3Rvcik6CisgICAgICAgIChGdW5j
dGlvbkpTQ1N0YWNrRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChmdW5jdGlvbkpTQ1N0
YWNrKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6QWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3Rvcjo6QWRkUGFyZW50Rm9yQ29uc29s
ZVN0YXJ0RnVuY3Rvcik6CisgICAgICAgIChKU0M6OkFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1
bmN0b3I6OmZvdW5kUGFyZW50KToKKyAgICAgICAgKEpTQzo6QWRkUGFyZW50Rm9yQ29uc29sZVN0
YXJ0RnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OlByb2ZpbGVHZW5lcmF0b3I6
OmFkZFBhcmVudEZvckNvbnNvbGVTdGFydCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6UmV0cmlldmVBcmd1bWVudHNGdW5jdG9yOjpSZXRyaWV2ZUFy
Z3VtZW50c0Z1bmN0b3IpOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3I6
OnJlc3VsdCk6CisgICAgICAgIChKU0M6OlJldHJpZXZlQXJndW1lbnRzRnVuY3Rvcjo6b3BlcmF0
b3IoKSk6CisgICAgICAgIChKU0M6OnJldHJpZXZlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6
UmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3I6OlJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5j
dG9yKToKKyAgICAgICAgKEpTQzo6UmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3I6OnJlc3Vs
dCk6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yOjpvcGVyYXRv
cigpKToKKyAgICAgICAgKEpTQzo6cmV0cmlldmVDYWxsZXJGdW5jdGlvbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Okdsb2Jh
bEZ1bmNQcm90b0dldHRlckZ1bmN0b3I6Okdsb2JhbEZ1bmNQcm90b0dldHRlckZ1bmN0b3IpOgor
ICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yOjpyZXN1bHQpOgorICAg
ICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAg
ICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVyKToKKyAgICAgICAgKEpTQzo6R2xvYmFs
RnVuY1Byb3RvU2V0dGVyRnVuY3Rvcjo6R2xvYmFsRnVuY1Byb3RvU2V0dGVyRnVuY3Rvcik6Cisg
ICAgICAgIChKU0M6Okdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3I6OmFsbG93c0FjY2Vzcyk6
CisgICAgICAgIChKU0M6Okdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3I6Om9wZXJhdG9yKCkp
OgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jUHJvdG9TZXR0ZXIpOgorICAgICAgICAqIHJ1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rv
ckdldFByb3RvdHlwZU9mRnVuY3Rvcjo6T2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkZ1
bmN0b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVu
Y3Rvcjo6cmVzdWx0KToKKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5
cGVPZkZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3Rv
ckdldFByb3RvdHlwZU9mKToKKwogMjAxMy0wOC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIENvZGVCbG9jayByZWZhY3RvcmluZyBicm9rZSBwcm9maWxlIGR1
bXBpbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI2LDE0ICszMjYs
MzEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlcwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK2NsYXNzIEZ1bmN0aW9uSlND
U3RhY2tGdW5jdG9yIDogcHVibGljIFN0YWNrSXRlcmF0b3I6OkZ1bmN0b3IgeworcHVibGljOgor
ICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9yKFN0cmluZ0J1aWxkZXImIHRyYWNlKQorICAgICAg
ICA6IG1fdHJhY2UodHJhY2UpCisgICAgeworICAgIH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0
YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBtX3Ry
YWNlLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiICAgICV6dSAgICVzXG4iLCBpdGVyLT5pbmRleCgp
LCBpdGVyLT50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgcmV0dXJuIFN0YWNr
SXRlcmF0b3I6OkNvbnRpbnVlOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTdHJpbmdCdWlsZGVy
JiBtX3RyYWNlOworfTsKKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpT
Q1N0YWNrKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBTdHJpbmdCdWlsZGVyIHRyYWNlOwogICAg
IHRyYWNlLmFwcGVuZExpdGVyYWwoIi0tPiBTdGFjayB0cmFjZTpcbiIpOwogCi0gICAgaW50IGkg
PSAwOwotICAgIGZvciAoU3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+YmVnaW4oKTsgaXRlciAh
PSBleGVjLT5lbmQoKTsgKytpdGVyLCArK2kpCi0gICAgICAgIHRyYWNlLmFwcGVuZChTdHJpbmc6
OmZvcm1hdCgiICAgICVpICAgJXNcbiIsIGksIGl0ZXItPnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgIEZ1bmN0aW9uSlNDU3RhY2tGdW5jdG9yIGZ1bmN0b3IodHJhY2UpOworICAgIFN0
YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJlZ2luKCk7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0
b3IpOwogICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB0cmFjZS50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShyZXZpc2lv
biAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxMiw3ICsyMTIsNTUgQEAgSlNHbG9iYWxDb250ZXh0UmVmIEpT
Q29udGV4dEdldEdsb2JhbENvbgogCiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKIH0KLSAgICAKKworY2xhc3MgQmFja3Ry
YWNlRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAg
ICBCYWNrdHJhY2VGdW5jdG9yKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2lnbmVkIHJlbWFp
bmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKQorICAgICAgICA6IG1fYnVpbGRlcihidWlsZGVy
KQorICAgICAgICAsIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUocmVtYWluaW5n
Q2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpCisgICAgeworICAgIH0KKworICAgIFN0YWNrSXRlcmF0
b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAg
ICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgeworICAgICAgICAgICAg
Ly8gSWYgY2FsbGVlIGlzIHVua25vd24sIGJ1dCB3ZSd2ZSBub3QgYWRkZWQgYW55IGZyYW1lIHll
dCwgd2Ugc2hvdWxkCisgICAgICAgICAgICAvLyBzdGlsbCBhZGQgdGhlIGZyYW1lLCBiZWNhdXNl
IHNvbWV0aGluZyBjYWxsZWQgdXMsIGFuZCBnYXZlIHVzIGFyZ3VtZW50cy4KKyAgICAgICAgICAg
IEpTT2JqZWN0KiBjYWxsZWUgPSBpdGVyLT5jYWxsZWUoKTsKKyAgICAgICAgICAgIGlmICghY2Fs
bGVlICYmIGl0ZXItPmluZGV4KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0
b3I6OkRvbmU7CisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIgPSBtX2J1aWxk
ZXI7CisgICAgICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0ZXItPmluZGV4KCkpOworICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0
ZXItPmZ1bmN0aW9uTmFtZSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
KCkgYXQgIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVyLT5zb3VyY2VVUkwoKSk7
CisgICAgICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxpbmVOdW1iZXI7
CisgICAgICAgICAgICAgICAgdW5zaWduZWQgdW51c2VkQ29sdW1uOworICAgICAgICAgICAgICAg
IGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmVOdW1iZXIsIHVudXNlZENvbHVtbik7Cisg
ICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobGluZU51bWJlcik7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmICghY2FsbGVlKQorICAgICAgICAgICAgICAgIHJldHVy
biBTdGFja0l0ZXJhdG9yOjpEb25lOworCisgICAgICAgICAgICBtX3JlbWFpbmluZ0NhcGFjaXR5
Rm9yRnJhbWVDYXB0dXJlLS07CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29u
dGludWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFN0cmluZ0J1aWxkZXImIG1fYnVpbGRlcjsKKyAgICB1bnNp
Z25lZCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworfTsKKwogSlNTdHJpbmdS
ZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVuc2lnbmVkIG1h
eFN0YWNrU2l6ZSkKIHsKICAgICBpZiAoIWN0eCkgewpAQCAtMjIzLDM0ICsyNzEsMTEgQEAgSlNT
dHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQwogICAgIEpTTG9ja0hvbGRlciBs
b2NrKGV4ZWMpOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBDYWxsRnJhbWUqIGZy
YW1lID0gZXhlYy0+dm0oKS50b3BDYWxsRnJhbWU7Ci0gICAgc2l6ZV90IGkgPSAwOwotICAgIEFT
U0VSVChtYXhTdGFja1NpemUpOwotICAgIGZvciAoU3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUt
PmJlZ2luKCk7IGl0ZXIgIT0gZnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0tOyArK2l0ZXIs
ICsraSkgewotICAgICAgICBKU09iamVjdCogY2FsbGVlID0gaXRlci0+Y2FsbGVlKCk7Ci0gICAg
ICAgIC8vIElmIGNhbGxlZSBpcyB1bmtub3duLCBidXQgd2UndmUgbm90IGFkZGVkIGFueSBmcmFt
ZSB5ZXQsIHdlIHNob3VsZAotICAgICAgICAvLyBzdGlsbCBhZGQgdGhlIGZyYW1lLCBiZWNhdXNl
IHNvbWV0aGluZyBjYWxsZWQgdXMsIGFuZCBnYXZlIHVzIGFyZ3VtZW50cy4KLSAgICAgICAgaWYg
KCFjYWxsZWUgJiYgaSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmICghYnVpbGRl
ci5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaSk7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZXIt
PmZ1bmN0aW9uTmFtZSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIoKSBhdCAi
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlci0+c291cmNlVVJMKCkpOwotICAgICAgICBp
ZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyOwotICAgICAgICAgICAgdW5zaWduZWQg
dW51c2VkQ29sdW1uOwotICAgICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGlu
ZU51bWJlciwgdW51c2VkQ29sdW1uKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KGxpbmVOdW1iZXIpOwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFjYWxsZWUpCi0gICAgICAg
ICAgICBicmVhazsKLSAgICB9CisgICAgQVNTRVJUKG1heFN0YWNrU2l6ZSk7CisgICAgQmFja3Ry
YWNlRnVuY3RvciBmdW5jdG9yKGJ1aWxkZXIsIG1heFN0YWNrU2l6ZSk7CisgICAgU3RhY2tJdGVy
YXRvciBpdGVyID0gZnJhbWUtPmJlZ2luKCk7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOwog
CiAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKS5s
ZWFrUmVmKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxGcmFtZS5oCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw3ICsyODUsNiBA
QCBuYW1lc3BhY2UgSlNDICB7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tJdGVy
YXRvciBiZWdpbihTdGFja0l0ZXJhdG9yOjpGcmFtZUZpbHRlciA9IDApOwogICAgICAgICBKU19F
WFBPUlRfUFJJVkFURSBTdGFja0l0ZXJhdG9yIGZpbmQoSlNGdW5jdGlvbiogY2FsbGVlRnVuY3Rp
b25PYmosIFN0YWNrSXRlcmF0b3I6OkZyYW1lRmlsdGVyID0gMCk7Ci0gICAgICAgIFN0YWNrSXRl
cmF0b3IgZW5kKCkgeyByZXR1cm4gU3RhY2tJdGVyYXRvcjo6ZW5kKCk7IH0KIAogICAgIHByaXZh
dGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBIb3N0Q2FsbEZyYW1lRmxhZyA9IDE7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw2ICsyNzQsMzQg
QEAgdm9pZCBJbnRlcnByZXRlcjo6ZHVtcENhbGxGcmFtZShDYWxsRnJhbQogICAgIGR1bXBSZWdp
c3RlcnMoY2FsbEZyYW1lKTsKIH0KIAorY2xhc3MgRHVtcFJlZ2lzdGVyRnVuY3RvciA6IHB1Ymxp
YyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBEdW1wUmVnaXN0ZXJGdW5j
dG9yKGNvbnN0IFJlZ2lzdGVyKiYgaXQpCisgICAgICAgIDogbV9oYXNTa2lwcGVkRmlyc3RGcmFt
ZShmYWxzZSkKKyAgICAgICAgLCBtX2l0KGl0KQorICAgIHsKKyAgICB9CisKKyAgICBTdGFja0l0
ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAg
ICAgICAgaWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7CisgICAgICAgICAgICBtX2hhc1Nr
aXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9y
OjpDb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAg
ICAgICB1bnNpZ25lZCB1bnVzZWRDb2x1bW4gPSAwOworICAgICAgICBpdGVyLT5jb21wdXRlTGlu
ZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4pOworICAgICAgICBkYXRhTG9nRigiW1JldHVy
blZQQ10gICAgICAgICAgICAgICAgfCAlMTBwIHwgJWQgKGxpbmUgJWQpXG4iLCBtX2l0LCBpdGVy
LT5ieXRlY29kZU9mZnNldCgpLCBsaW5lKTsKKyAgICAgICAgKyttX2l0OworICAgICAgICByZXR1
cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hh
c1NraXBwZWRGaXJzdEZyYW1lOworICAgIGNvbnN0IFJlZ2lzdGVyKiYgbV9pdDsKK307CisKIHZv
aWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAg
ICAgZGF0YUxvZ0YoIlJlZ2lzdGVyIGZyYW1lOiBcblxuIik7CkBAIC0zMDksMTUgKzMzNywxMSBA
QCB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtCiAgICAgaWYgKHBjLmhh
c0pJVFJldHVybkFkZHJlc3MoKSkKICAgICAgICAgZGF0YUxvZ0YoIltSZXR1cm5KSVRQQ10gICAg
ICAgICAgICAgIHwgJTEwcCB8ICVwIFxuIiwgaXQsIHBjLmppdFJldHVybkFkZHJlc3MoKS52YWx1
ZSgpKTsKICNlbmRpZgorCisgICAgRHVtcFJlZ2lzdGVyRnVuY3RvciBmdW5jdG9yKGl0KTsKICAg
ICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwot
ICAgIGlmIChpdGVyICE9IGNhbGxGcmFtZS0+ZW5kKCkpIHsKLSAgICAgICAgdW5zaWduZWQgbGlu
ZSA9IDA7Ci0gICAgICAgIHVuc2lnbmVkIHVudXNlZENvbHVtbiA9IDA7Ci0gICAgICAgIGl0ZXIt
PmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIHVudXNlZENvbHVtbik7Ci0gICAgICAgIGRhdGFM
b2dGKCJbUmV0dXJuVlBDXSAgICAgICAgICAgICAgICB8ICUxMHAgfCAlZCAobGluZSAlZClcbiIs
IGl0LCBpdGVyLT5ieXRlY29kZU9mZnNldCgpLCBsaW5lKTsKLSAgICAgICAgKytpdDsKLSAgICB9
CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOworCiAgICAgZGF0YUxvZ0YoIltDb2RlQmxvY2td
ICAgICAgICAgICAgICAgIHwgJTEwcCB8ICVwIFxuIiwgaXQsIGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCkpOwogICAgICsraXQ7CiAgICAgZGF0YUxvZ0YoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsK
QEAgLTM2Niw3ICszOTAsNyBAQCBib29sIEludGVycHJldGVyOjppc09wY29kZShPcGNvZGUgb3Bj
b2RlCiAjZW5kaWYKIH0KIAotTkVWRVJfSU5MSU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENh
bGxGcmFtZShTdGFja0l0ZXJhdG9yJiBpdGVyLCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlKQorc3Rh
dGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrSXRlcmF0b3ImIGl0ZXIsIEpTVmFsdWUgZXhj
ZXB0aW9uVmFsdWUpCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBpdGVyLT5jYWxsRnJh
bWUoKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGl0ZXItPmNvZGVCbG9jaygpOwpAQCAt
NDc0LDYgKzQ5OCw1MSBAQCBTdHJpbmcgU3RhY2tGcmFtZTo6dG9TdHJpbmcoQ2FsbEZyYW1lKiBj
CiAgICAgcmV0dXJuIHRyYWNlQnVpbGQudG9TdHJpbmcoKS5pbXBsKCk7CiB9CiAKK2NsYXNzIEdl
dFN0YWNrVHJhY2VGdW5jdG9yIDogcHVibGljIFN0YWNrSXRlcmF0b3I6OkZ1bmN0b3IgeworcHVi
bGljOgorICAgIEdldFN0YWNrVHJhY2VGdW5jdG9yKFZNJiB2bSwgVmVjdG9yPFN0YWNrRnJhbWU+
JiByZXN1bHRzLCBzaXplX3QgcmVtYWluaW5nQ2FwYWNpdHkpCisgICAgICAgIDogbV92bSh2bSkK
KyAgICAgICAgLCBtX3Jlc3VsdHMocmVzdWx0cykKKyAgICAgICAgLCBtX3JlbWFpbmluZ0NhcGFj
aXR5Rm9yRnJhbWVDYXB0dXJlKHJlbWFpbmluZ0NhcGFjaXR5KQorICAgIHsKKyAgICB9CisKKyAg
ICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQor
ICAgIHsKKyAgICAgICAgVk0mIHZtID0gbV92bTsKKyAgICAgICAgaWYgKG1fcmVtYWluaW5nQ2Fw
YWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKKyAgICAgICAgICAgIGlmIChpdGVyLT5pc0pTRnJhbWUo
KSkgeworICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gaXRlci0+Y29kZUJs
b2NrKCk7CisgICAgICAgICAgICAgICAgU3RhY2tGcmFtZSBzID0geworICAgICAgICAgICAgICAg
ICAgICBTdHJvbmc8SlNPYmplY3Q+KHZtLCBpdGVyLT5jYWxsZWUoKSksCisgICAgICAgICAgICAg
ICAgICAgIGdldFN0YWNrRnJhbWVDb2RlVHlwZShpdGVyKSwKKyAgICAgICAgICAgICAgICAgICAg
U3Ryb25nPEV4ZWN1dGFibGVCYXNlPih2bSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSks
CisgICAgICAgICAgICAgICAgICAgIFN0cm9uZzxVbmxpbmtlZENvZGVCbG9jaz4odm0sIGNvZGVC
bG9jay0+dW5saW5rZWRDb2RlQmxvY2soKSksCisgICAgICAgICAgICAgICAgICAgIGNvZGVCbG9j
ay0+c291cmNlKCksCisgICAgICAgICAgICAgICAgICAgIGNvZGVCbG9jay0+b3duZXJFeGVjdXRh
YmxlKCktPmxpbmVObygpLAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2stPmZpcnN0TGlu
ZUNvbHVtbk9mZnNldCgpLAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2stPnNvdXJjZU9m
ZnNldCgpLAorICAgICAgICAgICAgICAgICAgICBpdGVyLT5ieXRlY29kZU9mZnNldCgpLAorICAg
ICAgICAgICAgICAgICAgICBpdGVyLT5zb3VyY2VVUkwoKQorICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZChzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgU3RhY2tGcmFtZSBzID0geyBTdHJvbmc8SlNPYmplY3Q+KHZtLCBp
dGVyLT5jYWxsZWUoKSksIFN0YWNrRnJhbWVOYXRpdmVDb2RlLCBTdHJvbmc8RXhlY3V0YWJsZUJh
c2U+KCksIFN0cm9uZzxVbmxpbmtlZENvZGVCbG9jaz4oKSwgMCwgMCwgMCwgMCwgMCwgU3RyaW5n
KCl9OworICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQocyk7CisgICAgICAgICAgICB9
CisgICAgCisgICAgICAgICAgICBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlLS07
CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgor
ICAgIFZNJiBtX3ZtOworICAgIFZlY3RvcjxTdGFja0ZyYW1lPiYgbV9yZXN1bHRzOworICAgIHNp
emVfdCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworfTsKKwogdm9pZCBJbnRl
cnByZXRlcjo6Z2V0U3RhY2tUcmFjZShWZWN0b3I8U3RhY2tGcmFtZT4mIHJlc3VsdHMsIHNpemVf
dCBtYXhTdGFja1NpemUpCiB7CiAgICAgVk0mIHZtID0gbV92bTsKQEAgLTQ4MSwzMCArNTUwLDEz
IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJhY2UoVmVjdG9yPFMKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IHZtLnRvcENhbGxGcmFtZTsKICAgICBpZiAoIWNhbGxGcmFtZSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgR2V0U3RhY2tUcmFjZUZ1bmN0b3IgZnVuY3Rvcih2bSwgcmVz
dWx0cywgbWF4U3RhY2tTaXplKTsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUt
PmJlZ2luKCk7Ci0gICAgZm9yICg7IGl0ZXIgIT0gY2FsbEZyYW1lLT5lbmQoKSAmJiBtYXhTdGFj
a1NpemUtLTsgKytpdGVyKSB7Ci0gICAgICAgIGlmIChpdGVyLT5pc0pTRnJhbWUoKSkgewotICAg
ICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLT5jb2RlQmxvY2soKTsKLSAgICAg
ICAgICAgIFN0YWNrRnJhbWUgcyA9IHsKLSAgICAgICAgICAgICAgICBTdHJvbmc8SlNPYmplY3Q+
KHZtLCBpdGVyLT5jYWxsZWUoKSksCi0gICAgICAgICAgICAgICAgZ2V0U3RhY2tGcmFtZUNvZGVU
eXBlKGl0ZXIpLAotICAgICAgICAgICAgICAgIFN0cm9uZzxFeGVjdXRhYmxlQmFzZT4odm0sIGNv
ZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpLAotICAgICAgICAgICAgICAgIFN0cm9uZzxVbmxp
bmtlZENvZGVCbG9jaz4odm0sIGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKSksCi0gICAg
ICAgICAgICAgICAgY29kZUJsb2NrLT5zb3VyY2UoKSwKLSAgICAgICAgICAgICAgICBjb2RlQmxv
Y2stPm93bmVyRXhlY3V0YWJsZSgpLT5saW5lTm8oKSwKLSAgICAgICAgICAgICAgICBjb2RlQmxv
Y2stPmZpcnN0TGluZUNvbHVtbk9mZnNldCgpLAotICAgICAgICAgICAgICAgIGNvZGVCbG9jay0+
c291cmNlT2Zmc2V0KCksCi0gICAgICAgICAgICAgICAgaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKSwK
LSAgICAgICAgICAgICAgICBpdGVyLT5zb3VyY2VVUkwoKQotICAgICAgICAgICAgfTsKLSAgICAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKHMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
U3RhY2tGcmFtZSBzID0geyBTdHJvbmc8SlNPYmplY3Q+KHZtLCBpdGVyLT5jYWxsZWUoKSksIFN0
YWNrRnJhbWVOYXRpdmVDb2RlLCBTdHJvbmc8RXhlY3V0YWJsZUJhc2U+KCksIFN0cm9uZzxVbmxp
bmtlZENvZGVCbG9jaz4oKSwgMCwgMCwgMCwgMCwgMCwgU3RyaW5nKCl9OwotICAgICAgICAgICAg
cmVzdWx0cy5hcHBlbmQocyk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaXRlci5pdGVyYXRlKGZ1
bmN0b3IpOwogfQotSlNTdHJpbmcqIEludGVycHJldGVyOjogc3RhY2tUcmFjZUFzU3RyaW5nKEV4
ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNrVHJhY2UpCisKK0pTU3RyaW5n
KiBJbnRlcnByZXRlcjo6c3RhY2tUcmFjZUFzU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9y
PFN0YWNrRnJhbWU+IHN0YWNrVHJhY2UpCiB7CiAgICAgLy8gRklYTUU6IEpTU3RyaW5nSm9pbmVy
IGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRoYW4gU3RyaW5nQnVpbGRlciBoZXJlLgogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTUxNiw2ICs1NjgsNDQgQEAgSlNTdHJpbmcqIEludGVy
cHJldGVyOjogc3RhY2tUcmFjZUFzU3RyaQogICAgIHJldHVybiBqc1N0cmluZygmZXhlYy0+dm0o
KSwgYnVpbGRlci50b1N0cmluZygpKTsKIH0KIAorY2xhc3MgVW53aW5kRnVuY3RvciA6IHB1Ymxp
YyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBVbndpbmRGdW5jdG9yKENh
bGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUsIGJvb2wgaXNUZXJt
aW5hdGlvbiwgQ29kZUJsb2NrKiYgY29kZUJsb2NrLCBIYW5kbGVySW5mbyomIGhhbmRsZXIpCisg
ICAgICAgIDogbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQorICAgICAgICAsIG1fZXhjZXB0aW9uVmFs
dWUoZXhjZXB0aW9uVmFsdWUpCisgICAgICAgICwgbV9pc1Rlcm1pbmF0aW9uKGlzVGVybWluYXRp
b24pCisgICAgICAgICwgbV9jb2RlQmxvY2soY29kZUJsb2NrKQorICAgICAgICAsIG1faGFuZGxl
cihoYW5kbGVyKQorICAgIHsKKyAgICB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3Bl
cmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgVk0mIHZtID0gbV9j
YWxsRnJhbWUtPnZtKCk7CisgICAgICAgIG1fY2FsbEZyYW1lID0gaXRlci0+Y2FsbEZyYW1lKCk7
CisgICAgICAgIG1fY29kZUJsb2NrID0gaXRlci0+Y29kZUJsb2NrKCk7CisgICAgICAgIHVuc2ln
bmVkIGJ5dGVjb2RlT2Zmc2V0ID0gaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKTsKKworICAgICAgICBp
ZiAobV9pc1Rlcm1pbmF0aW9uIHx8ICEobV9oYW5kbGVyID0gbV9jb2RlQmxvY2stPmhhbmRsZXJG
b3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkpKSB7CisgICAgICAgIGlmICghdW53aW5k
Q2FsbEZyYW1lKGl0ZXIsIG1fZXhjZXB0aW9uVmFsdWUpKSB7CisgICAgICAgICAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAg
ICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChtX2NhbGxGcmFtZSk7CisgICAgICAgICAg
ICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKworICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpDb250aW51ZTsKK30KKworcHJpdmF0ZToKKyAgICBDYWxsRnJhbWUqJiBtX2NhbGxGcmFt
ZTsKKyAgICBKU1ZhbHVlJiBtX2V4Y2VwdGlvblZhbHVlOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0
aW9uOworICAgIENvZGVCbG9jayomIG1fY29kZUJsb2NrOworICAgIEhhbmRsZXJJbmZvKiYgbV9o
YW5kbGVyOworfTsKKwogTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dW53
aW5kKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUsIHVuc2ln
bmVkIGJ5dGVjb2RlT2Zmc2V0KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZy
YW1lLT5jb2RlQmxvY2soKTsKQEAgLTU0OSwyMiArNjM5LDEzIEBAIE5FVkVSX0lOTElORSBIYW5k
bGVySW5mbyogSW50ZXJwcmV0ZXI6OnUKICAgICBIYW5kbGVySW5mbyogaGFuZGxlciA9IDA7CiAg
ICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIEFTU0VSVChjYWxsRnJhbWUgPT0gdm0u
dG9wQ2FsbEZyYW1lKTsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgaXRlciA9IGNhbGxGcmFtZS0+
YmVnaW4oKTsgaXRlciAhPSBjYWxsRnJhbWUtPmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgY2Fs
bEZyYW1lID0gaXRlci0+Y2FsbEZyYW1lKCk7Ci0gICAgICAgIGNvZGVCbG9jayA9IGl0ZXItPmNv
ZGVCbG9jaygpOwotICAgICAgICBieXRlY29kZU9mZnNldCA9IGl0ZXItPmJ5dGVjb2RlT2Zmc2V0
KCk7Ci0KLSAgICAgICAgaWYgKGlzVGVybWluYXRpb24gfHwgIShoYW5kbGVyID0gY29kZUJsb2Nr
LT5oYW5kbGVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgewotICAgICAgICAg
ICAgaWYgKCF1bndpbmRDYWxsRnJhbWUoaXRlciwgZXhjZXB0aW9uVmFsdWUpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxl
cigpKQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGNhbGxG
cmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIFVud2luZEZ1bmN0b3IgZnVu
Y3RvcihjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCBpc1Rlcm1pbmF0aW9uLCBjb2RlQmxvY2ss
IGhhbmRsZXIpOworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGNhbGxGcmFtZS0+YmVnaW4oKTsK
KyAgICBpdGVyLml0ZXJhdGUoZnVuY3Rvcik7CisgICAgaWYgKCFoYW5kbGVyKQorICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUt
PnZtKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQogICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53
aW5kKGNhbGxGcmFtZSk7CiAKICAgICAvLyBVbndpbmQgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIncyBjYWxsIGZyYW1lLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDE1NDkwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjIsNyArMjYyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpT
VmFsdWUgZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJik7CiAKICAgICAgICAgdm9pZCBnZXRTdGFj
a1RyYWNlKFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwotICAgICAgICBORVZFUl9JTkxJ
TkUgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tJdGVyYXRvciYsIEpTVmFsdWUpOwogCiAgICAg
ICAgIHZvaWQgZHVtcFJlZ2lzdGVycyhDYWxsRnJhbWUqKTsKICAgICAgICAgCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3Bw
CShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
U3RhY2tJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDExICs0NCwxMSBAQCBTdGFj
a0l0ZXJhdG9yOjpTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogCiAKIHNpemVfdCBTdGFja0l0ZXJh
dG9yOjpudW1iZXJPZkZyYW1lcygpCiB7Ci0gICAgaW50IHNhdmVkRnJhbWVJbmRleCA9IG1fZnJh
bWVJbmRleDsKKyAgICBpbnQgc2F2ZWRGcmFtZUluZGV4ID0gbV9mcmFtZS5pbmRleCgpOwogICAg
IHJlc2V0SXRlcmF0b3IoKTsKICAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSkKICAgICAg
ICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsKLSAgICBzaXplX3QgbnVtYmVyT2ZGcmFtZXMg
PSBtX2ZyYW1lSW5kZXg7CisgICAgc2l6ZV90IG51bWJlck9mRnJhbWVzID0gbV9mcmFtZS5pbmRl
eCgpOwogCiAgICAgcmVzZXRJdGVyYXRvcigpOwogICAgIGdvdG9GcmFtZUF0SW5kZXgoc2F2ZWRG
cmFtZUluZGV4KTsKQEAgLTU4LDcgKzU4LDcgQEAgc2l6ZV90IFN0YWNrSXRlcmF0b3I6Om51bWJl
ck9mRnJhbWVzKCkKIAogdm9pZCBTdGFja0l0ZXJhdG9yOjpnb3RvRnJhbWVBdEluZGV4KHNpemVf
dCBpbmRleCkKIHsKLSAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFtZUlu
ZGV4ICE9IGluZGV4KSkKKyAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFt
ZS5pbmRleCgpICE9IGluZGV4KSkKICAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsK
IH0KIApAQCAtODMsMjAgKzgzLDE1IEBAIHZvaWQgU3RhY2tJdGVyYXRvcjo6Z290b05leHRGcmFt
ZVdpdGhGaWwKICAgICAgICAgaWYgKCFtX2ZyYW1lLmNhbGxGcmFtZSgpIHx8ICFtX2ZpbHRlciB8
fCAhbV9maWx0ZXIoJm1fZnJhbWUpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIG1f
ZnJhbWVJbmRleCsrOworICAgIG1fZnJhbWUubV9pbmRleCsrOwogfQogCiB2b2lkIFN0YWNrSXRl
cmF0b3I6OnJlc2V0SXRlcmF0b3IoKQogewotICAgIG1fZnJhbWVJbmRleCA9IDA7CisgICAgbV9m
cmFtZS5tX2luZGV4ID0gMDsKICAgICByZWFkRnJhbWUobV9zdGFydEZyYW1lKTsKIH0KIAotU3Rh
Y2tJdGVyYXRvciBTdGFja0l0ZXJhdG9yOjplbmQoKQotewotICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yKDAsIDApOwotfQotCiB2b2lkIFN0YWNrSXRlcmF0b3I6OmZpbmQoSlNGdW5jdGlvbiogZnVu
Y3Rpb25PYmopCiB7CiAgICAgQVNTRVJUKGZ1bmN0aW9uT2JqKTsKQEAgLTQwNCw4ICszOTksMTMg
QEAgdm9pZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQoaW50IGluZAogewogICAgIGludCBp
ID0gaW5kZW50TGV2ZWw7CiAKKyAgICBpZiAoIXRoaXMtPmNhbGxGcmFtZSgpKSB7CisgICAgICAg
IHByaW50aWYoaSwgImZyYW1lIDB4MFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwotICAgIHByaW50aWYo
aSwgImZyYW1lICVwIHtcbiIsIHRoaXMpOworICAgIHByaW50aWYoaSwgImZyYW1lICVwIHtcbiIs
IHRoaXMtPmNhbGxGcmFtZSgpKTsKIAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gbV9jYWxs
RnJhbWU7CiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IHRoaXMtPmNhbGxlckZyYW1lKCk7
CkBAIC00NjAsNiArNDYwLDggQEAgdm9pZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQoaW50
IGluZAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNpZm5kZWYgTkRFQlVHCit1c2luZyBKU0M6OlN0
YWNrSXRlcmF0b3I7CisKIC8vIEZvciBkZWJ1Z2dpbmcgdXNlCiB2b2lkIGRlYnVnUHJpbnRDYWxs
RnJhbWUoSlNDOjpDYWxsRnJhbWUqKTsKIHZvaWQgZGVidWdQcmludFN0YWNrKEpTQzo6Q2FsbEZy
YW1lKiB0b3BDYWxsRnJhbWUpOwpAQCAtNDY4LDE2ICs0NzAsMjUgQEAgdm9pZCBkZWJ1Z1ByaW50
Q2FsbEZyYW1lKEpTQzo6Q2FsbEZyYW1lKgogewogICAgIGlmICghY2FsbEZyYW1lKQogICAgICAg
ICByZXR1cm47Ci0gICAgSlNDOjpTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2lu
KCk7CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOwogICAgIGl0
ZXItPnByaW50KDIpOwogfQogCitjbGFzcyBEZWJ1Z1ByaW50U3RhY2tGdW5jdG9yIDogcHVibGlj
IFN0YWNrSXRlcmF0b3I6OkZ1bmN0b3IgeworcHVibGljOgorICAgIFN0YWNrSXRlcmF0b3I6OlN0
YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBpdGVy
LT5wcmludCgyKTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAg
IH0KK307CisKIHZvaWQgZGVidWdQcmludFN0YWNrKEpTQzo6Q2FsbEZyYW1lKiB0b3BDYWxsRnJh
bWUpCiB7CiAgICAgaWYgKCF0b3BDYWxsRnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBKU0M6
OlN0YWNrSXRlcmF0b3IgaXRlciA9IHRvcENhbGxGcmFtZS0+YmVnaW4oKTsKLSAgICBmb3IgKDsg
aXRlciAhPSB0b3BDYWxsRnJhbWUtPmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPnByaW50
KDIpOworICAgIERlYnVnUHJpbnRTdGFja0Z1bmN0b3IgZnVuY3RvcjsKKyAgICBTdGFja0l0ZXJh
dG9yIGl0ZXIgPSB0b3BDYWxsRnJhbWUtPmJlZ2luKCk7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0
b3IpOwogfQogI2VuZGlmIC8vICFOREVCVUcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuaAkocmV2aXNpb24gMTU0OTAyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBOYXRpdmUKICAg
ICAgICAgfTsKIAorICAgICAgICBzaXplX3QgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4
OyB9CiAgICAgICAgIHNpemVfdCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIGNvbnN0IHsg
cmV0dXJuIG1fYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7IH0KICAgICAgICAgQ2FsbEZyYW1l
KiBjYWxsZXJGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVyRnJhbWU7IH0KICAgICAgICAg
SlNPYmplY3QqIGNhbGxlZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVlOyB9CkBAIC04OSw2ICs5
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCByZXRyaWV2ZUV4cHJlc3Npb25JbmZvKGludCYg
ZGl2b3QsIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0LCB1bnNpZ25lZCYgbGluZSwg
dW5zaWduZWQmIGNvbHVtbik7CiAgICAgICAgIHZvaWQgc2V0VG9FbmQoKTsKIAorICAgICAgICBz
aXplX3QgbV9pbmRleDsKICAgICAgICAgc2l6ZV90IG1fYXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXM7CiAgICAgICAgIENhbGxGcmFtZSogbV9jYWxsZXJGcmFtZTsKICAgICAgICAgSlNPYmplY3Qq
IG1fY2FsbGVlOwpAQCAtMTA2LDIwICsxMDgsMzYgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiBi
b29sICgqRnJhbWVGaWx0ZXIpKEZyYW1lKik7CiAKKyAgICBlbnVtIFN0YXR1cyB7CisgICAgICAg
IENvbnRpbnVlID0gMCwKKyAgICAgICAgRG9uZSA9IDEKKyAgICB9OworCisgICAgY2xhc3MgRnVu
Y3RvciB7CisgICAgcHVibGljOgorICAgICAgICBTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJh
dG9yJikgeyByZXR1cm4gRG9uZTsgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
RnVuY3Rvcj4gdm9pZCBpdGVyYXRlKEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICB3
aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSkgeworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9
IGZ1bmN0b3IoKnRoaXMpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBDb250aW51ZSkKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVy
KCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMoKTsKIAogICAgIEZyYW1lJiBvcGVyYXRvciooKSB7IHJldHVybiBtX2ZyYW1l
OyB9CiAgICAgQUxXQVlTX0lOTElORSBGcmFtZSogb3BlcmF0b3ItPigpIHsgcmV0dXJuICZtX2Zy
YW1lOyB9CiAKLSAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0YWNrSXRlcmF0b3Im
KTsKLSAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RhY2tJdGVyYXRvciYgb3RoZXIpIHsgcmV0
dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9Ci0gICAgdm9pZCBvcGVyYXRvcisrKCkgeyBnb3RvTmV4
dEZyYW1lV2l0aEZpbHRlcigpOyB9CiAgICAgdm9pZCBmaW5kKEpTRnVuY3Rpb24qKTsKIAogcHJp
dmF0ZToKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogc3Rh
cnRGcmFtZSwgRnJhbWVGaWx0ZXIgPSAwKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBTdGFja0l0ZXJhdG9yIGVuZCgpOwogICAgIHZvaWQgZ290b0ZyYW1lQXRJbmRleChzaXplX3Qg
ZnJhbWVJbmRleCk7CiAgICAgdm9pZCBnb3RvTmV4dEZyYW1lKCk7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBnb3RvTmV4dEZyYW1lV2l0aEZpbHRlcigpOwpAQCAtMTMyLDIyICsxNTAsMTIg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgQ2FsbEZyYW1lKiBtX3N0YXJ0RnJhbWU7Ci0gICAg
c2l6ZV90IG1fZnJhbWVJbmRleDsKICAgICBGcmFtZUZpbHRlciBtX2ZpbHRlcjsKICAgICBGcmFt
ZSBtX2ZyYW1lOwogCiAgICAgZnJpZW5kIGNsYXNzIEV4ZWNTdGF0ZTsKIH07CiAKLWlubGluZSBi
b29sIFN0YWNrSXRlcmF0b3I6Om9wZXJhdG9yPT0oY29uc3QgU3RhY2tJdGVyYXRvciYgb3RoZXIp
Ci17Ci0gICAgcmV0dXJuIChtX2ZyYW1lLmNhbGxGcmFtZSgpID09IG90aGVyLm1fZnJhbWUuY2Fs
bEZyYW1lKCkpCi0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgICYmIChtX2ZyYW1lLmlubGlu
ZUNhbGxGcmFtZSgpID09IG90aGVyLm1fZnJhbWUuaW5saW5lQ2FsbEZyYW1lKCkpCi0jZW5kaWYK
LSAgICAgICAgOyAKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0l0
ZXJhdG9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2Vu
ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTcsMjAgKzU3LDU0IEBAIFByb2ZpbGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1MK
ICAgICAgICAgYWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KGV4ZWMpOwogfQogCitjbGFzcyBBZGRQ
YXJlbnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yIDogcHVibGljIFN0YWNrSXRlcmF0b3I6OkZ1bmN0
b3IgeworcHVibGljOgorICAgIEFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3IoRXhlY1N0
YXRlKiBleGVjLCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBoZWFkLCBSZWZQdHI8UHJvZmlsZU5vZGU+
JiBjdXJyZW50Tm9kZSkKKyAgICAgICAgOiBtX2V4ZWMoZXhlYykKKyAgICAgICAgLCBtX2hhc1Nr
aXBwZWRGaXJzdEZyYW1lKGZhbHNlKQorICAgICAgICAsIG1fZm91bmRQYXJlbnQoZmFsc2UpCisg
ICAgICAgICwgbV9oZWFkKGhlYWQpCisgICAgICAgICwgbV9jdXJyZW50Tm9kZShjdXJyZW50Tm9k
ZSkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBmb3VuZFBhcmVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZm91bmRQYXJlbnQ7IH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigp
KFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZp
cnN0RnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOwor
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisK
KyAgICAgICAgdW5zaWduZWQgbGluZSA9IDA7CisgICAgICAgIHVuc2lnbmVkIHVudXNlZENvbHVt
biA9IDA7CisgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIHVudXNlZENv
bHVtbik7CisgICAgICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKG1fZXhl
YywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKG1fZXhlYywgaXRlci0+Y2Fs
bGVlKCksIGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lKSwgbV9oZWFkLmdldCgpLCBtX2hlYWQuZ2V0
KCkpOworICAgICAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50Tm9kZS5nZXQoKSk7CisK
KyAgICAgICAgbV9mb3VuZFBhcmVudCA9IHRydWU7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBFeGVjU3RhdGUqIG1fZXhlYzsKKyAg
ICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJhbWU7CisgICAgYm9vbCBtX2ZvdW5kUGFyZW50OyAK
KyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBtX2hlYWQ7CisgICAgUmVmUHRyPFByb2ZpbGVOb2Rl
PiYgbV9jdXJyZW50Tm9kZTsKK307CisKIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6YWRkUGFyZW50
Rm9yQ29uc29sZVN0YXJ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBBZGRQYXJlbnRGb3JDb25z
b2xlU3RhcnRGdW5jdG9yIGZ1bmN0b3IoZXhlYywgbV9oZWFkLCBtX2N1cnJlbnROb2RlKTsKICAg
ICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBp
ZiAoaXRlciA9PSBleGVjLT5lbmQoKSkgeworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKwor
ICAgIGlmICghZnVuY3Rvci5mb3VuZFBhcmVudCgpKSB7CiAgICAgICAgIG1fY3VycmVudE5vZGUg
PSBQcm9maWxlTm9kZTo6Y3JlYXRlKGV4ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRl
bnRpZmllcihleGVjLCBKU1ZhbHVlKCksIFN0cmluZygpLCAwKSwgbV9oZWFkLmdldCgpLCBtX2hl
YWQuZ2V0KCkpOwogICAgICAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50Tm9kZS5nZXQo
KSk7Ci0gICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdW5zaWduZWQgbGluZSA9IDA7Ci0gICAg
dW5zaWduZWQgdW51c2VkQ29sdW1uID0gMDsKLSAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVt
bihsaW5lLCB1bnVzZWRDb2x1bW4pOwotICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6
Y3JlYXRlKGV4ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihleGVjLCBp
dGVyLT5jYWxsZWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUpLCBtX2hlYWQuZ2V0KCksIG1f
aGVhZC5nZXQoKSk7Ci0gICAgbV9oZWFkLT5pbnNlcnROb2RlKG1fY3VycmVudE5vZGUuZ2V0KCkp
OwogfQogCiBjb25zdCBTdHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRpdGxlKCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCShyZXZp
c2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDEwICsxODIsMzEgQEAgQ2FsbFR5cGUgSlNGdW5j
dGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKgogICAgIHJldHVybiBDYWxsVHlwZUpTOwogfQogCitj
bGFzcyBSZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6RnVu
Y3RvciB7CitwdWJsaWM6CisgICAgUmV0cmlldmVBcmd1bWVudHNGdW5jdG9yKCkKKyAgICAgICAg
OiBtX3Jlc3VsdChqc051bGwoKSkKKyAgICB7CisgICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVz
IG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIG1fcmVzdWx0
ID0gSlNWYWx1ZShpdGVyLT5hcmd1bWVudHMoKSk7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBKU1ZhbHVlIG1fcmVzdWx0OworfTsK
Kwogc3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1
bmN0aW9uKiBmdW5jdGlvbk9iaikKIHsKKyAgICBSZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3IgZnVu
Y3RvcjsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5maW5kKGZ1bmN0aW9uT2JqKTsK
LSAgICByZXR1cm4gaXRlciAhPSBleGVjLT5lbmQoKSA/IEpTVmFsdWUoaXRlci0+YXJndW1lbnRz
KCkpIDoganNOdWxsKCk7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOworICAgIHJldHVybiBm
dW5jdG9yLnJlc3VsdCgpOwogfQogCiBKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKQEAgLTIw
MywxMiArMjI0LDM5IEBAIHN0YXRpYyBib29sIHNraXBPdmVyQm91bmRGdW5jdGlvbnMoU3RhY2sK
ICAgICByZXR1cm4gc2hvdWxkU2tpcDsKIH0KIAorY2xhc3MgUmV0cmlldmVDYWxsZXJGdW5jdGlv
bkZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6RnVuY3RvciB7CitwdWJsaWM6CisgICAg
UmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IoKQorICAgICAgICA6IG1faGFzU2tpcHBlZEZp
cnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV9yZXN1bHQoanNOdWxsKCkpCisgICAgeworICAg
IH0KKworICAgIEpTVmFsdWUgcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHQ7IH0KKwor
ICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIp
CisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAg
ICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGl0ZXItPmNh
bGxlZSgpKQorICAgICAgICAgICAgbV9yZXN1bHQgPSBpdGVyLT5jYWxsZWUoKTsKKyAgICAgICAg
cmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wg
bV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBKU1ZhbHVlIG1fcmVzdWx0OworfTsKKwogc3Rh
dGljIEpTVmFsdWUgcmV0cmlldmVDYWxsZXJGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVu
Y3Rpb24qIGZ1bmN0aW9uT2JqKQogeworICAgIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9y
IGZ1bmN0b3I7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+ZmluZChmdW5jdGlvbk9i
aiwgc2tpcE92ZXJCb3VuZEZ1bmN0aW9ucyk7Ci0gICAgaWYgKGl0ZXIgIT0gZXhlYy0+ZW5kKCkp
Ci0gICAgICAgICsraXRlcjsKLSAgICByZXR1cm4gaXRlciAhPSBleGVjLT5lbmQoKSAmJiBpdGVy
LT5jYWxsZWUoKSA/IGl0ZXItPmNhbGxlZSgpIDoganNOdWxsKCk7CisgICAgaXRlci5pdGVyYXRl
KGZ1bmN0b3IpOworICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCiBKU1ZhbHVlIEpT
RnVuY3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE1NDkwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzA2LDYgKzcwNiwzNiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiB9CiAKK2NsYXNzIEdsb2JhbEZ1bmNQcm90b0dldHRlckZ1bmN0b3IgOiBwdWJsaWMgU3Rh
Y2tJdGVyYXRvcjo6RnVuY3RvciB7CitwdWJsaWM6CisgICAgR2xvYmFsRnVuY1Byb3RvR2V0dGVy
RnVuY3RvcihKU09iamVjdCogdGhpc09iamVjdCkKKyAgICAgICAgOiBtX2hhc1NraXBwZWRGaXJz
dEZyYW1lKGZhbHNlKQorICAgICAgICAsIG1fdGhpc09iamVjdCh0aGlzT2JqZWN0KQorICAgICAg
ICAsIG1fcmVzdWx0KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSkKKyAgICB7CisgICAg
fQorCisgICAgRW5jb2RlZEpTVmFsdWUgcmVzdWx0KCkgeyByZXR1cm4gbV9yZXN1bHQ7IH0KKwor
ICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIp
CisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAg
ICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fdGhpc09i
amVjdC0+YWxsb3dzQWNjZXNzRnJvbShpdGVyLT5jYWxsRnJhbWUoKSkpCisgICAgICAgICAgICBt
X3Jlc3VsdCA9IEpTVmFsdWU6OmVuY29kZShtX3RoaXNPYmplY3QtPnByb3RvdHlwZSgpKTsKKwor
ICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgYm9vbCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lOworICAgIEpTT2JqZWN0KiBtX3RoaXNPYmpl
Y3Q7CisgICAgRW5jb2RlZEpTVmFsdWUgbV9yZXN1bHQ7Cit9OworCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZXhlYy0+
dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUpKTsKQEAgLTcxMywxNCArNzQz
LDQwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1AKICAgICBpZiAo
IXRoaXNPYmplY3QpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1Zh
bHVlKCkuc3ludGhlc2l6ZVByb3RvdHlwZShleGVjKSk7CiAKKyAgICBHbG9iYWxGdW5jUHJvdG9H
ZXR0ZXJGdW5jdG9yIGZ1bmN0b3IodGhpc09iamVjdCk7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVy
ID0gZXhlYy0+YmVnaW4oKTsKLSAgICArK2l0ZXI7Ci0gICAgaWYgKChpdGVyID09IGV4ZWMtPmVu
ZCgpKSB8fCAhdGhpc09iamVjdC0+YWxsb3dzQWNjZXNzRnJvbShpdGVyLT5jYWxsRnJhbWUoKSkp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPnByb3RvdHlwZSgpKTsKKyAgICBpdGVy
Lml0ZXJhdGUoZnVuY3Rvcik7CisgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CiAKK2Ns
YXNzIEdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6
RnVuY3RvciB7CitwdWJsaWM6CisgICAgR2xvYmFsRnVuY1Byb3RvU2V0dGVyRnVuY3RvcihKU09i
amVjdCogdGhpc09iamVjdCkKKyAgICAgICAgOiBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNl
KQorICAgICAgICAsIG1fYWxsb3dzQWNjZXNzKGZhbHNlKQorICAgICAgICAsIG1fdGhpc09iamVj
dCh0aGlzT2JqZWN0KQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGFsbG93c0FjY2VzcygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dzQWNjZXNzOyB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0
dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7CisgICAgICAgICAgICBtX2hhc1NraXBwZWRGaXJzdEZy
YW1lID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsK
KyAgICAgICAgfQorCisgICAgICAgIG1fYWxsb3dzQWNjZXNzID0gbV90aGlzT2JqZWN0LT5hbGxv
d3NBY2Nlc3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRl
cmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmly
c3RGcmFtZTsKKyAgICBib29sIG1fYWxsb3dzQWNjZXNzOworICAgIEpTT2JqZWN0KiBtX3RoaXNP
YmplY3Q7Cit9OworCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90
b1NldHRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPmFy
Z3VtZW50KDApOwpAQCAtNzMxLDkgKzc4NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQCiAgICAgaWYgKCF0aGlzT2JqZWN0KQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCisgICAgR2xvYmFsRnVuY1Byb3RvU2V0dGVy
RnVuY3RvciBmdW5jdG9yKHRoaXNPYmplY3QpOwogICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4
ZWMtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwotICAgIGlmICgoaXRlciA9PSBleGVjLT5lbmQoKSkg
fHwgIXRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAg
IGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICBpZiAoIWZ1bmN0b3IuYWxsb3dzQWNjZXNzKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICAv
LyBTZXR0aW5nIF9fcHJvdG9fXyB0byBhIG5vbi1vYmplY3QsIG5vbi1udWxsIHZhbHVlIGlzIHNp
bGVudGx5IGlnbm9yZWQgdG8gbWF0Y2ggTW96aWxsYS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE1
NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDE2ICsxMzEsNDQgQEAgQ2FsbFR5cGUgT2JqZWN0
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKAogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAK
K2NsYXNzIE9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yIDogcHVibGljIFN0
YWNrSXRlcmF0b3I6OkZ1bmN0b3IgeworcHVibGljOgorICAgIE9iamVjdENvbnN0cnVjdG9yR2V0
UHJvdG90eXBlT2ZGdW5jdG9yKEpTT2JqZWN0KiBvYmplY3QpCisgICAgICAgIDogbV9oYXNTa2lw
cGVkRmlyc3RGcmFtZShmYWxzZSkKKyAgICAgICAgLCBtX29iamVjdChvYmplY3QpCisgICAgICAg
ICwgbV9yZXN1bHQoSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKQorICAgIHsKKyAgICB9
CisKKyAgICBFbmNvZGVkSlNWYWx1ZSByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsg
fQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYg
aXRlcikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSkgeworICAg
ICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1
cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgIGlmIChtX29iamVj
dC0+YWxsb3dzQWNjZXNzRnJvbShpdGVyLT5jYWxsRnJhbWUoKSkpCisgICAgICAgIG1fcmVzdWx0
ID0gSlNWYWx1ZTo6ZW5jb2RlKG1fb2JqZWN0LT5wcm90b3R5cGUoKSk7CisgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkRvbmU7Cit9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hhc1NraXBwZWRG
aXJzdEZyYW1lOworICAgIEpTT2JqZWN0KiBtX29iamVjdDsKKyAgICBFbmNvZGVkSlNWYWx1ZSBt
X3Jlc3VsdDsKK307CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3Ry
dWN0b3JHZXRQcm90b3R5cGVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKCFleGVjLT5h
cmd1bWVudCgwKS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlcXVlc3RlZCBwcm90b3R5cGUg
b2YgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhbiBvYmplY3QuIikpKTsKICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIE9iamVjdENvbnN0cnVjdG9y
R2V0UHJvdG90eXBlT2ZGdW5jdG9yIGZ1bmN0b3Iob2JqZWN0KTsKICAgICBTdGFja0l0ZXJhdG9y
IGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoKGl0ZXIgPT0gZXhl
Yy0+ZW5kKCkpIHx8ICFvYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkp
KQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5wcm90b3R5cGUoKSk7CisgICAgaXRlci5pdGVy
YXRlKGZ1bmN0b3IpOworICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDkzOSkK
KysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0
IEBACisyMDEzLTA5LTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBDb252ZXJ0aW5nIFN0YWNrSXRlcmF0b3IgdG8gYSBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1NjQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZW5kRnVuY3Rvcjo6U2VuZEZ1bmN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VuZEZ1bmN0b3I6Omhhc1ZpYWJsZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
bmRGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVl
c3Q6OnNlbmQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3Rvcjo6Q3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVNjcmlwdENhbGxTdGFjayk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGdW5jdG9yMjo6Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjI6Om9wZXJhdG9yKCkpOgorCiAyMDEz
LTA4LTMxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3Rv
ciBVUkwgYW5kIGltYWdlIHdyaXRpbmcgc28gbGF5ZXItdmlvbGF0aW5nIHBhcnRzIGFyZSBpbiBF
ZGl0b3IsIG5vdCBQYXN0ZWJvYXJkIChNYWMtb25seSBhdCBmaXJzdCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDYgKzEwOCwzMiBAQCBK
U1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6Om9wZW4oRXhlY1N0YXRlCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKK2NsYXNzIFNlbmRGdW5jdG9yIDogcHVibGljIFN0YWNrSXRlcmF0b3I6
OkZ1bmN0b3IgeworcHVibGljOgorICAgIFNlbmRGdW5jdG9yKCkKKyAgICAgICAgOiBtX2hhc1Nr
aXBwZWRGaXJzdEZyYW1lKGZhbHNlKQorICAgICAgICAsIG1faGFzVmlhYmxlRnJhbWUoZmFsc2Up
CisgICAgeworICAgIH0KKworICAgIGJvb2wgaGFzVmlhYmxlRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2hhc1ZpYWJsZUZyYW1lOyB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0
b3IoKShTdGFja0l0ZXJhdG9yJikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmly
c3RGcmFtZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7Cisg
ICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKwor
ICAgICAgICBtX2hhc1ZpYWJsZUZyYW1lID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRl
cmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmly
c3RGcmFtZTsKKyAgICBib29sIG1faGFzVmlhYmxlRnJhbWU7Cit9OworCiBKU1ZhbHVlIEpTWE1M
SHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgaW1wbCgpLT51cmwoKSk7CkBAIC0xMzQsOSArMTYwLDEwIEBAIEpTVmFsdWUg
SlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUKICAgICAgICAgICAgIGltcGwoKS0+c2Vu
ZCh2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLCBlYyk7CiAgICAgfQogCisgICAgU2Vu
ZEZ1bmN0b3IgZnVuY3RvcjsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigp
OwotICAgICsraXRlcjsKLSAgICBpZiAoaXRlciAhPSBleGVjLT5lbmQoKSkgeworICAgIGl0ZXIu
aXRlcmF0ZShmdW5jdG9yKTsKKyAgICBpZiAoZnVuY3Rvci5oYXNWaWFibGVGcmFtZSgpKSB7CiAg
ICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwogICAgICAgICB1bnNpZ25lZCB1bnVzdWVkQ29sdW1u
ID0gMDsKICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgdW51c3VlZENv
bHVtbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tG
YWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU0LDE3ICs1NCw0MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CiAKK2NsYXNzIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IgOiBT
dGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBDcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGdW5jdG9yKFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+JiBmcmFtZXMsICBzaXplX3QgcmVtYWlu
aW5nQ2FwYWNpdHkpCisgICAgICAgIDogbV9mcmFtZXMoZnJhbWVzKQorICAgICAgICAsIG1fcmVt
YWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUocmVtYWluaW5nQ2FwYWNpdHkpCisgICAgewor
ICAgIH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0
b3ImIGl0ZXIpCisgICAgeworICAgICAgICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1l
Q2FwdHVyZSkgeworICAgICAgICAgICAgdW5zaWduZWQgbGluZTsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGNvbHVtbjsKKyAgICAgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUs
IGNvbHVtbik7CisgICAgICAgICAgICBtX2ZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGl0
ZXItPmZ1bmN0aW9uTmFtZSgpLCBpdGVyLT5zb3VyY2VVUkwoKSwgbGluZSwgY29sdW1uKSk7CisK
KyAgICAgICAgICAgIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUtLTsKKyAgICAg
ICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVmVj
dG9yPFNjcmlwdENhbGxGcmFtZT4mIG1fZnJhbWVzOworICAgIHNpemVfdCBtX3JlbWFpbmluZ0Nh
cGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworfTsKKwogUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3QgbWF4U3RhY2tTaXplLCBib29sIGVtcHR5SXNB
bGxvd2VkKQogewogICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKICAgICBpZiAo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0
ZSgpKSB7CiAgICAgICAgIENhbGxGcmFtZSogZnJhbWUgPSBleGVjLT52bSgpLnRvcENhbGxGcmFt
ZTsKLSAgICAgICAgZm9yIChTdGFja0l0ZXJhdG9yIGl0ZXIgPSBmcmFtZS0+YmVnaW4oKTsgaXRl
ciAhPSBmcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsraXRlcikgewotICAgICAgICAg
ICAgdW5zaWduZWQgbGluZTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNvbHVtbjsKLSAgICAgICAg
ICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNvbHVtbik7Ci0gICAgICAgICAg
ICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5mdW5jdGlvbk5hbWUoKSwgaXRl
ci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbikpOwotICAgICAgICB9CisgICAgICAgIENyZWF0
ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IgZnVuY3RvcihmcmFtZXMsIG1heFN0YWNrU2l6ZSk7Cisg
ICAgICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAgICAgICBpdGVy
Lml0ZXJhdGUoZnVuY3Rvcik7CiAgICAgfQogICAgIGlmIChmcmFtZXMuaXNFbXB0eSgpICYmICFl
bXB0eUlzQWxsb3dlZCkgewogICAgICAgICAvLyBObyBmcmFtZXMgZm91bmQuIEl0IG1heSBoYXBw
ZW4gaW4gdGhlIGNhc2Ugd2hlcmUKQEAgLTc1LDI1ICs5OSw1NSBAQCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0CiAgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3Jl
YXRlKGZyYW1lcyk7CiB9CiAKK2NsYXNzIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyIDog
cHVibGljIFN0YWNrSXRlcmF0b3I6OkZ1bmN0b3IgeworcHVibGljOgorICAgIENyZWF0ZVNjcmlw
dENhbGxTdGFja0Z1bmN0b3IyKGJvb2wgbmVlZFRvU2tpcEFGcmFtZSwgIHNpemVfdCByZW1haW5p
bmdDYXBhY2l0eSwgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4mIGZyYW1lcykKKyAgICAgICAgOiBt
X25lZWRUb1NraXBBRnJhbWUobmVlZFRvU2tpcEFGcmFtZSkKKyAgICAgICAgLCBtX3JlbWFpbmlu
Z0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKHJlbWFpbmluZ0NhcGFjaXR5KQorICAgICAgICAsIG1f
ZnJhbWVzKGZyYW1lcykKKyAgICB7CisgICAgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVz
IG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmIChtX25l
ZWRUb1NraXBBRnJhbWUpIHsKKyAgICAgICAgICAgIG1fbmVlZFRvU2tpcEFGcmFtZSA9IGZhbHNl
OworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgZWFybHkgZXhpdCBpcyBuZWNlc3NhcnkgdG8gbWFpbnRhaW4gb3Vy
IG9sZCBiZWhhdmlvdXIKKyAgICAgICAgICAgIC8vIGJ1dCB0aGUgc3RhY2sgdHJhY2Ugd2UgcHJv
ZHVjZSBub3cgaXMgY29tcGxldGUgYW5kIGhhbmRsZXMgYWxsCisgICAgICAgICAgICAvLyB3YXlz
IGluIHdoaWNoIGNvZGUgbWF5IGJlIHJ1bm5pbmcKKyAgICAgICAgICAgIGlmICghaXRlci0+Y2Fs
bGVlKCkgJiYgbV9mcmFtZXMuc2l6ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpEb25lOworCisgICAgICAgICAgICB1bnNpZ25lZCBsaW5lOworICAgICAgICAgICAg
dW5zaWduZWQgY29sdW1uOworICAgICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4o
bGluZSwgY29sdW1uKTsKKyAgICAgICAgICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJh
bWUoaXRlci0+ZnVuY3Rpb25OYW1lKCksIGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4p
KTsKKworICAgICAgICAgICAgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOwor
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBib29sIG1fbmVlZFRvU2tpcEFGcmFtZTsKKyAgICBzaXplX3QgbV9yZW1haW5pbmdDYXBhY2l0
eUZvckZyYW1lQ2FwdHVyZTsKKyAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiYgbV9mcmFtZXM7
Cit9OworCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQogewogICAgIFZlY3Rv
cjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKICAgICBBU1NFUlQoZXhlYyk7CiAgICAgQ2FsbEZy
YW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9wQ2FsbEZyYW1lOwogICAgIFN0YWNrSXRlcmF0b3Ig
aXRlciA9IGZyYW1lLT5iZWdpbigpOwotICAgIGlmIChpdGVyLm51bWJlck9mRnJhbWVzKCkgPiAx
KQotICAgICAgICArK2l0ZXI7Ci0gICAgZm9yICg7IGl0ZXIgIT0gZnJhbWUtPmVuZCgpICYmIG1h
eFN0YWNrU2l6ZS0tOyArK2l0ZXIpIHsKLSAgICAgICAgLy8gVGhpcyBlYXJseSBleGl0IGlzIG5l
Y2Vzc2FyeSB0byBtYWludGFpbiBvdXIgb2xkIGJlaGF2aW91cgotICAgICAgICAvLyBidXQgdGhl
IHN0YWNrIHRyYWNlIHdlIHByb2R1Y2Ugbm93IGlzIGNvbXBsZXRlIGFuZCBoYW5kbGVzIGFsbAot
ICAgICAgICAvLyB3YXlzIGluIHdoaWNoIGNvZGUgbWF5IGJlIHJ1bm5pbmcKLSAgICAgICAgaWYg
KCFpdGVyLT5jYWxsZWUoKSAmJiBmcmFtZXMuc2l6ZSgpKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIHVuc2lnbmVkIGxpbmU7Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbjsKLSAgICAgICAg
aXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKLSAgICAgICAgZnJhbWVz
LmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoaXRlci0+ZnVuY3Rpb25OYW1lKCksIGl0ZXItPnNvdXJj
ZVVSTCgpLCBsaW5lLCBjb2x1bW4pKTsKLSAgICB9CisgICAgc2l6ZV90IG51bWJlck9mRnJhbWVz
ID0gaXRlci5udW1iZXJPZkZyYW1lcygpOworICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0
b3IyIGZ1bmN0b3IobnVtYmVyT2ZGcmFtZXMgPiAxLCBtYXhTdGFja1NpemUsIGZyYW1lcyk7Cisg
ICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOwogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNy
ZWF0ZShmcmFtZXMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210393</attachid>
            <date>2013-09-03 11:25:55 -0700</date>
            <delta_ts>2013-09-03 13:00:16 -0700</delta_ts>
            <desc>patch 3: removed StackIterator::find().</desc>
            <filename>bug-120564c.patch</filename>
            <type>text/plain</type>
            <size>43320</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBA
CisyMDEzLTA5LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
b252ZXJ0aW5nIFN0YWNrSXRlcmF0b3IgdG8gYSBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1NjQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0
UmVmLmNwcDoKKyAgICAgICAgKEJhY2t0cmFjZUZ1bmN0b3I6OkJhY2t0cmFjZUZ1bmN0b3IpOgor
ICAgICAgICAoQmFja3RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0NvbnRl
eHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpEdW1wUmVnaXN0ZXJGdW5jdG9yOjpE
dW1wUmVnaXN0ZXJGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6RHVtcFJlZ2lzdGVyRnVuY3Rvcjo6
b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKToK
KyAgICAgICAgKEpTQzo6dW53aW5kQ2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6R2V0U3RhY2tU
cmFjZUZ1bmN0b3I6OkdldFN0YWNrVHJhY2VGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6R2V0U3Rh
Y2tUcmFjZUZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
Z2V0U3RhY2tUcmFjZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpzdGFja1RyYWNlQXNT
dHJpbmcpOgorICAgICAgICAoSlNDOjpVbndpbmRGdW5jdG9yOjpVbndpbmRGdW5jdG9yKToKKyAg
ICAgICAgKEpTQzo6VW53aW5kRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp1bndpbmQpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OlN0YWNrSXRlcmF0b3I6Om51bWJlck9mRnJhbWVzKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVy
YXRvcjo6Z290b0ZyYW1lQXRJbmRleCk6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6Omdv
dG9OZXh0RnJhbWVXaXRoRmlsdGVyKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6cmVz
ZXRJdGVyYXRvcik6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjpwcmludCk6
CisgICAgICAgIChkZWJ1Z1ByaW50Q2FsbEZyYW1lKToKKyAgICAgICAgKERlYnVnUHJpbnRTdGFj
a0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoZGVidWdQcmludFN0YWNrKTogQWRkZWQg
Zm9yIGRlYnVnZ2luZyBjb252ZW5pZW5jZS4KKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja0l0
ZXJhdG9yLmg6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjppbmRleCk6Cisg
ICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6Oml0ZXJhdGUpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChGdW5jdGlvbkpTQ1N0YWNrRnVuY3Rvcjo6RnVuY3Rpb25KU0NTdGFja0Z1bmN0
b3IpOgorICAgICAgICAoRnVuY3Rpb25KU0NTdGFja0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAg
ICAgICAoZnVuY3Rpb25KU0NTdGFjayk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6
OkFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3IpOgorICAgICAgICAoSlNDOjpBZGRQYXJl
bnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yOjpmb3VuZFBhcmVudCk6CisgICAgICAgIChKU0M6OkFk
ZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlND
OjpQcm9maWxlR2VuZXJhdG9yOjphZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OlJldHJpZXZlQXJndW1lbnRz
RnVuY3Rvcjo6UmV0cmlldmVBcmd1bWVudHNGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6UmV0cmll
dmVBcmd1bWVudHNGdW5jdG9yOjpyZXN1bHQpOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUFyZ3Vt
ZW50c0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpyZXRyaWV2ZUFyZ3VtZW50
cyk6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yOjpSZXRyaWV2
ZUNhbGxlckZ1bmN0aW9uRnVuY3Rvcik6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb25GdW5jdG9yOjpyZXN1bHQpOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUNhbGxlckZ1bmN0
aW9uRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OnJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yOjpHbG9iYWxGdW5jUHJv
dG9HZXR0ZXJGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6R2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVu
Y3Rvcjo6cmVzdWx0KToKKyAgICAgICAgKEpTQzo6R2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVuY3Rv
cjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNQcm90b0dldHRlcik6Cisg
ICAgICAgIChKU0M6Okdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3I6Okdsb2JhbEZ1bmNQcm90
b1NldHRlckZ1bmN0b3IpOgorICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9TZXR0ZXJGdW5j
dG9yOjphbGxvd3NBY2Nlc3MpOgorICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9TZXR0ZXJG
dW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVy
KToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6T2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3I6Ok9iamVjdENvbnN0cnVj
dG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0
b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3I6OnJlc3VsdCk6CisgICAgICAgIChKU0M6Ok9iamVjdENv
bnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpT
Qzo6b2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZik6CisKIDIwMTMtMDktMDIgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlQmxvY2s6OmpldHRpc29u
KCkgc2hvdWxkIGJlIGltcGxpY2l0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24g
MTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyNiwxNCArMzI2LDMxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25EZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitj
bGFzcyBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5j
dG9yIHsKK3B1YmxpYzoKKyAgICBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvcihTdHJpbmdCdWlsZGVy
JiB0cmFjZSkKKyAgICAgICAgOiBtX3RyYWNlKHRyYWNlKQorICAgIHsKKyAgICB9CisKKyAgICBT
dGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAg
IHsKKyAgICAgICAgbV90cmFjZS5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiAgICAlenUgICAlc1xu
IiwgaXRlci0+aW5kZXgoKSwgaXRlci0+dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgU3RyaW5nQnVpbGRlciYgbV90cmFjZTsKK307CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25KU0NTdGFjayhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciB0cmFjZTsKICAgICB0cmFjZS5hcHBlbmRMaXRlcmFsKCItLT4gU3RhY2sgdHJhY2U6XG4i
KTsKIAotICAgIGludCBpID0gMDsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMt
PmJlZ2luKCk7IGl0ZXIgIT0gZXhlYy0+ZW5kKCk7ICsraXRlciwgKytpKQotICAgICAgICB0cmFj
ZS5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiAgICAlaSAgICVzXG4iLCBpLCBpdGVyLT50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciBmdW5jdG9y
KHRyYWNlKTsKKyAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOworICAgIGl0
ZXIuaXRlcmF0ZShmdW5jdG9yKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgdHJhY2UudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRS
ZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0
UmVmLmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NvbnRleHRSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDU1IEBAIEpTR2xv
YmFsQ29udGV4dFJlZiBKU0NvbnRleHRHZXRHbG9iYWxDb24KIAogICAgIHJldHVybiB0b0dsb2Jh
bFJlZihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSk7CiB9Ci0gICAg
CisKK2NsYXNzIEJhY2t0cmFjZUZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6RnVuY3Rv
ciB7CitwdWJsaWM6CisgICAgQmFja3RyYWNlRnVuY3RvcihTdHJpbmdCdWlsZGVyJiBidWlsZGVy
LCB1bnNpZ25lZCByZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkKKyAgICAgICAgOiBt
X2J1aWxkZXIoYnVpbGRlcikKKyAgICAgICAgLCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVD
YXB0dXJlKHJlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKQorICAgIHsKKyAgICB9CisK
KyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVy
KQorICAgIHsKKyAgICAgICAgaWYgKG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUp
IHsKKyAgICAgICAgICAgIC8vIElmIGNhbGxlZSBpcyB1bmtub3duLCBidXQgd2UndmUgbm90IGFk
ZGVkIGFueSBmcmFtZSB5ZXQsIHdlIHNob3VsZAorICAgICAgICAgICAgLy8gc3RpbGwgYWRkIHRo
ZSBmcmFtZSwgYmVjYXVzZSBzb21ldGhpbmcgY2FsbGVkIHVzLCBhbmQgZ2F2ZSB1cyBhcmd1bWVu
dHMuCisgICAgICAgICAgICBKU09iamVjdCogY2FsbGVlID0gaXRlci0+Y2FsbGVlKCk7CisgICAg
ICAgICAgICBpZiAoIWNhbGxlZSAmJiBpdGVyLT5pbmRleCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworCisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyJiBi
dWlsZGVyID0gbV9idWlsZGVyOworICAgICAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcjJyk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdGVyLT5p
bmRleCgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChpdGVyLT5mdW5jdGlvbk5hbWUoKSk7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIigpIGF0ICIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRl
ci0+c291cmNlVVJMKCkpOworICAgICAgICAgICAgaWYgKGl0ZXItPmlzSlNGcmFtZSgpKSB7Cisg
ICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsaW5lTnVtYmVyOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIHVudXNlZENvbHVtbjsK
KyAgICAgICAgICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lTnVtYmVyLCB1
bnVzZWRDb2x1bW4pOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGxpbmVO
dW1iZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNhbGxlZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKworICAgICAgICAgICAgbV9y
ZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOworICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTdHJpbmdCdWlsZGVyJiBtX2J1
aWxkZXI7CisgICAgdW5zaWduZWQgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZTsK
K307CisKIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0NvbnRleHRSZWYg
Y3R4LCB1bnNpZ25lZCBtYXhTdGFja1NpemUpCiB7CiAgICAgaWYgKCFjdHgpIHsKQEAgLTIyMywz
NCArMjcxLDExIEBAIEpTU3RyaW5nUmVmIEpTQ29udGV4dENyZWF0ZUJhY2t0cmFjZShKU0MKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAg
ICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9wQ2FsbEZyYW1lOwotICAgIHNpemVf
dCBpID0gMDsKLSAgICBBU1NFUlQobWF4U3RhY2tTaXplKTsKLSAgICBmb3IgKFN0YWNrSXRlcmF0
b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOyBpdGVyICE9IGZyYW1lLT5lbmQoKSAmJiBtYXhTdGFj
a1NpemUtLTsgKytpdGVyLCArK2kpIHsKLSAgICAgICAgSlNPYmplY3QqIGNhbGxlZSA9IGl0ZXIt
PmNhbGxlZSgpOwotICAgICAgICAvLyBJZiBjYWxsZWUgaXMgdW5rbm93biwgYnV0IHdlJ3ZlIG5v
dCBhZGRlZCBhbnkgZnJhbWUgeWV0LCB3ZSBzaG91bGQKLSAgICAgICAgLy8gc3RpbGwgYWRkIHRo
ZSBmcmFtZSwgYmVjYXVzZSBzb21ldGhpbmcgY2FsbGVkIHVzLCBhbmQgZ2F2ZSB1cyBhcmd1bWVu
dHMuCi0gICAgICAgIGlmICghY2FsbGVlICYmIGkpCi0gICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcjJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZChpdGVyLT5mdW5jdGlvbk5hbWUoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiKCkgYXQgIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZXItPnNvdXJjZVVS
TCgpKTsKLSAgICAgICAgaWYgKGl0ZXItPmlzSlNGcmFtZSgpKSB7Ci0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnOicpOwotICAgICAgICAgICAgdW5zaWduZWQgbGluZU51bWJlcjsKLSAgICAg
ICAgICAgIHVuc2lnbmVkIHVudXNlZENvbHVtbjsKLSAgICAgICAgICAgIGl0ZXItPmNvbXB1dGVM
aW5lQW5kQ29sdW1uKGxpbmVOdW1iZXIsIHVudXNlZENvbHVtbik7Ci0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihsaW5lTnVtYmVyKTsKLSAgICAgICAgfQogCi0gICAgICAgIGlmICgh
Y2FsbGVlKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIEFTU0VSVChtYXhTdGFja1Np
emUpOworICAgIEJhY2t0cmFjZUZ1bmN0b3IgZnVuY3RvcihidWlsZGVyLCBtYXhTdGFja1NpemUp
OworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOworICAgIGl0ZXIuaXRl
cmF0ZShmdW5jdG9yKTsKIAogICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1aWxk
ZXIudG9TdHJpbmcoKSkubGVha1JlZigpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDMsMTIgKzEwMyw0IEBAIFN0YWNrSXRlcmF0b3IgQ2FsbEZyYW1lOjpiZWdpbihT
dGFja0l0ZXIKICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcih0aGlzLCBmaWx0ZXIpOwogfQogCi1T
dGFja0l0ZXJhdG9yIENhbGxGcmFtZTo6ZmluZChKU0Z1bmN0aW9uKiBjYWxsZWVGdW5jdGlvbk9i
aiwgU3RhY2tJdGVyYXRvcjo6RnJhbWVGaWx0ZXIgZmlsdGVyKQotewotICAgIEFTU0VSVCh0aGlz
KTsKLSAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBTdGFja0l0ZXJhdG9yKHRoaXMsIGZpbHRlcik7
Ci0gICAgaXRlci5maW5kKGNhbGxlZUZ1bmN0aW9uT2JqKTsKLSAgICByZXR1cm4gaXRlcjsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NCw4
ICsyODQsNiBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJh
bWVOb0ZsYWdzKCkgeyByZXR1cm4gY2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZs
YWcoKTsgfQogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrSXRlcmF0b3IgYmVnaW4o
U3RhY2tJdGVyYXRvcjo6RnJhbWVGaWx0ZXIgPSAwKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgU3RhY2tJdGVyYXRvciBmaW5kKEpTRnVuY3Rpb24qIGNhbGxlZUZ1bmN0aW9uT2JqLCBTdGFj
a0l0ZXJhdG9yOjpGcmFtZUZpbHRlciA9IDApOwotICAgICAgICBTdGFja0l0ZXJhdG9yIGVuZCgp
IHsgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OmVuZCgpOyB9CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBzdGF0aWMgY29uc3QgaW50cHRyX3QgSG9zdENhbGxGcmFtZUZsYWcgPSAxOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShy
ZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDM0IEBAIHZvaWQgSW50
ZXJwcmV0ZXI6OmR1bXBDYWxsRnJhbWUoQ2FsbEZyYW0KICAgICBkdW1wUmVnaXN0ZXJzKGNhbGxG
cmFtZSk7CiB9CiAKK2NsYXNzIER1bXBSZWdpc3RlckZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVy
YXRvcjo6RnVuY3RvciB7CitwdWJsaWM6CisgICAgRHVtcFJlZ2lzdGVyRnVuY3Rvcihjb25zdCBS
ZWdpc3RlciomIGl0KQorICAgICAgICA6IG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCisg
ICAgICAgICwgbV9pdChpdCkKKyAgICB7CisgICAgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3Rh
dHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmICgh
bV9oYXNTa2lwcGVkRmlyc3RGcmFtZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RG
cmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7
CisgICAgICAgIH0KKworICAgICAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICAgICAgdW5zaWdu
ZWQgdW51c2VkQ29sdW1uID0gMDsKKyAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4o
bGluZSwgdW51c2VkQ29sdW1uKTsKKyAgICAgICAgZGF0YUxvZ0YoIltSZXR1cm5WUENdICAgICAg
ICAgICAgICAgIHwgJTEwcCB8ICVkIChsaW5lICVkKVxuIiwgbV9pdCwgaXRlci0+Ynl0ZWNvZGVP
ZmZzZXQoKSwgbGluZSk7CisgICAgICAgICsrbV9pdDsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRl
cmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmly
c3RGcmFtZTsKKyAgICBjb25zdCBSZWdpc3RlciomIG1faXQ7Cit9OworCiB2b2lkIEludGVycHJl
dGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIGRhdGFMb2dG
KCJSZWdpc3RlciBmcmFtZTogXG5cbiIpOwpAQCAtMzA5LDE1ICszMzcsMTEgQEAgdm9pZCBJbnRl
cnByZXRlcjo6ZHVtcFJlZ2lzdGVycyhDYWxsRnJhbQogICAgIGlmIChwYy5oYXNKSVRSZXR1cm5B
ZGRyZXNzKCkpCiAgICAgICAgIGRhdGFMb2dGKCJbUmV0dXJuSklUUENdICAgICAgICAgICAgICB8
ICUxMHAgfCAlcCBcbiIsIGl0LCBwYy5qaXRSZXR1cm5BZGRyZXNzKCkudmFsdWUoKSk7CiAjZW5k
aWYKKworICAgIER1bXBSZWdpc3RlckZ1bmN0b3IgZnVuY3RvcihpdCk7CiAgICAgU3RhY2tJdGVy
YXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoaXRl
ciAhPSBjYWxsRnJhbWUtPmVuZCgpKSB7Ci0gICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAg
ICAgICB1bnNpZ25lZCB1bnVzZWRDb2x1bW4gPSAwOwotICAgICAgICBpdGVyLT5jb21wdXRlTGlu
ZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4pOwotICAgICAgICBkYXRhTG9nRigiW1JldHVy
blZQQ10gICAgICAgICAgICAgICAgfCAlMTBwIHwgJWQgKGxpbmUgJWQpXG4iLCBpdCwgaXRlci0+
Ynl0ZWNvZGVPZmZzZXQoKSwgbGluZSk7Ci0gICAgICAgICsraXQ7Ci0gICAgfQorICAgIGl0ZXIu
aXRlcmF0ZShmdW5jdG9yKTsKKwogICAgIGRhdGFMb2dGKCJbQ29kZUJsb2NrXSAgICAgICAgICAg
ICAgICB8ICUxMHAgfCAlcCBcbiIsIGl0LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKICAgICAr
K2l0OwogICAgIGRhdGFMb2dGKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CkBAIC0zNjYsNyAr
MzkwLDcgQEAgYm9vbCBJbnRlcnByZXRlcjo6aXNPcGNvZGUoT3Bjb2RlIG9wY29kZQogI2VuZGlm
CiB9CiAKLU5FVkVSX0lOTElORSBib29sIEludGVycHJldGVyOjp1bndpbmRDYWxsRnJhbWUoU3Rh
Y2tJdGVyYXRvciYgaXRlciwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSkKK3N0YXRpYyBib29sIHVu
d2luZENhbGxGcmFtZShTdGFja0l0ZXJhdG9yJiBpdGVyLCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVl
KQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gaXRlci0+Y2FsbEZyYW1lKCk7CiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLT5jb2RlQmxvY2soKTsKQEAgLTQ3NCw2ICs0OTgs
NTEgQEAgU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENhbGxGcmFtZSogYwogICAgIHJldHVy
biB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOwogfQogCitjbGFzcyBHZXRTdGFja1RyYWNl
RnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBH
ZXRTdGFja1RyYWNlRnVuY3RvcihWTSYgdm0sIFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywg
c2l6ZV90IHJlbWFpbmluZ0NhcGFjaXR5KQorICAgICAgICA6IG1fdm0odm0pCisgICAgICAgICwg
bV9yZXN1bHRzKHJlc3VsdHMpCisgICAgICAgICwgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1l
Q2FwdHVyZShyZW1haW5pbmdDYXBhY2l0eSkKKyAgICB7CisgICAgfQorCisgICAgU3RhY2tJdGVy
YXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAg
ICAgIFZNJiB2bSA9IG1fdm07CisgICAgICAgIGlmIChtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJh
bWVDYXB0dXJlKSB7CisgICAgICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKKyAgICAg
ICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGl0ZXItPmNvZGVCbG9jaygpOworICAg
ICAgICAgICAgICAgIFN0YWNrRnJhbWUgcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgU3Ryb25n
PEpTT2JqZWN0Pih2bSwgaXRlci0+Y2FsbGVlKCkpLAorICAgICAgICAgICAgICAgICAgICBnZXRT
dGFja0ZyYW1lQ29kZVR5cGUoaXRlciksCisgICAgICAgICAgICAgICAgICAgIFN0cm9uZzxFeGVj
dXRhYmxlQmFzZT4odm0sIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpLAorICAgICAgICAg
ICAgICAgICAgICBTdHJvbmc8VW5saW5rZWRDb2RlQmxvY2s+KHZtLCBjb2RlQmxvY2stPnVubGlu
a2VkQ29kZUJsb2NrKCkpLAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2stPnNvdXJjZSgp
LAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5saW5l
Tm8oKSwKKyAgICAgICAgICAgICAgICAgICAgY29kZUJsb2NrLT5maXJzdExpbmVDb2x1bW5PZmZz
ZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgY29kZUJsb2NrLT5zb3VyY2VPZmZzZXQoKSwKKyAg
ICAgICAgICAgICAgICAgICAgaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgaXRlci0+c291cmNlVVJMKCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIG1fcmVzdWx0cy5hcHBlbmQocyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIFN0YWNrRnJhbWUgcyA9IHsgU3Ryb25nPEpTT2JqZWN0Pih2bSwgaXRlci0+Y2FsbGVl
KCkpLCBTdGFja0ZyYW1lTmF0aXZlQ29kZSwgU3Ryb25nPEV4ZWN1dGFibGVCYXNlPigpLCBTdHJv
bmc8VW5saW5rZWRDb2RlQmxvY2s+KCksIDAsIDAsIDAsIDAsIDAsIFN0cmluZygpfTsKKyAgICAg
ICAgICAgICAgICBtX3Jlc3VsdHMuYXBwZW5kKHMpOworICAgICAgICAgICAgfQorICAgIAorICAg
ICAgICAgICAgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOworICAgICAgICAg
ICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWTSYgbV92
bTsKKyAgICBWZWN0b3I8U3RhY2tGcmFtZT4mIG1fcmVzdWx0czsKKyAgICBzaXplX3QgbV9yZW1h
aW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZTsKK307CisKIHZvaWQgSW50ZXJwcmV0ZXI6Omdl
dFN0YWNrVHJhY2UoVmVjdG9yPFN0YWNrRnJhbWU+JiByZXN1bHRzLCBzaXplX3QgbWF4U3RhY2tT
aXplKQogewogICAgIFZNJiB2bSA9IG1fdm07CkBAIC00ODEsMzAgKzU1MCwxMyBAQCB2b2lkIElu
dGVycHJldGVyOjpnZXRTdGFja1RyYWNlKFZlY3RvcjxTCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSB2bS50b3BDYWxsRnJhbWU7CiAgICAgaWYgKCFjYWxsRnJhbWUpCiAgICAgICAgIHJldHVy
bjsKKworICAgIEdldFN0YWNrVHJhY2VGdW5jdG9yIGZ1bmN0b3Iodm0sIHJlc3VsdHMsIG1heFN0
YWNrU2l6ZSk7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOwot
ICAgIGZvciAoOyBpdGVyICE9IGNhbGxGcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsr
aXRlcikgewotICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKLSAgICAgICAgICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gaXRlci0+Y29kZUJsb2NrKCk7Ci0gICAgICAgICAgICBTdGFj
a0ZyYW1lIHMgPSB7Ci0gICAgICAgICAgICAgICAgU3Ryb25nPEpTT2JqZWN0Pih2bSwgaXRlci0+
Y2FsbGVlKCkpLAotICAgICAgICAgICAgICAgIGdldFN0YWNrRnJhbWVDb2RlVHlwZShpdGVyKSwK
LSAgICAgICAgICAgICAgICBTdHJvbmc8RXhlY3V0YWJsZUJhc2U+KHZtLCBjb2RlQmxvY2stPm93
bmVyRXhlY3V0YWJsZSgpKSwKLSAgICAgICAgICAgICAgICBTdHJvbmc8VW5saW5rZWRDb2RlQmxv
Y2s+KHZtLCBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2NrKCkpLAotICAgICAgICAgICAgICAg
IGNvZGVCbG9jay0+c291cmNlKCksCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLT5vd25lckV4
ZWN1dGFibGUoKS0+bGluZU5vKCksCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLT5maXJzdExp
bmVDb2x1bW5PZmZzZXQoKSwKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2stPnNvdXJjZU9mZnNl
dCgpLAotICAgICAgICAgICAgICAgIGl0ZXItPmJ5dGVjb2RlT2Zmc2V0KCksCi0gICAgICAgICAg
ICAgICAgaXRlci0+c291cmNlVVJMKCkKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICByZXN1
bHRzLmFwcGVuZChzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFN0YWNrRnJhbWUg
cyA9IHsgU3Ryb25nPEpTT2JqZWN0Pih2bSwgaXRlci0+Y2FsbGVlKCkpLCBTdGFja0ZyYW1lTmF0
aXZlQ29kZSwgU3Ryb25nPEV4ZWN1dGFibGVCYXNlPigpLCBTdHJvbmc8VW5saW5rZWRDb2RlQmxv
Y2s+KCksIDAsIDAsIDAsIDAsIDAsIFN0cmluZygpfTsKLSAgICAgICAgICAgIHJlc3VsdHMuYXBw
ZW5kKHMpOwotICAgICAgICB9Ci0gICAgfQorICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKIH0K
LUpTU3RyaW5nKiBJbnRlcnByZXRlcjo6IHN0YWNrVHJhY2VBc1N0cmluZyhFeGVjU3RhdGUqIGV4
ZWMsIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlKQorCitKU1N0cmluZyogSW50ZXJwcmV0
ZXI6OnN0YWNrVHJhY2VBc1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFZlY3RvcjxTdGFja0ZyYW1l
PiBzdGFja1RyYWNlKQogewogICAgIC8vIEZJWE1FOiBKU1N0cmluZ0pvaW5lciBjb3VsZCBiZSBt
b3JlIGVmZmljaWVudCB0aGFuIFN0cmluZ0J1aWxkZXIgaGVyZS4KICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CkBAIC01MTYsNiArNTY4LDQ0IEBAIEpTU3RyaW5nKiBJbnRlcnByZXRlcjo6IHN0
YWNrVHJhY2VBc1N0cmkKICAgICByZXR1cm4ganNTdHJpbmcoJmV4ZWMtPnZtKCksIGJ1aWxkZXIu
dG9TdHJpbmcoKSk7CiB9CiAKK2NsYXNzIFVud2luZEZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVy
YXRvcjo6RnVuY3RvciB7CitwdWJsaWM6CisgICAgVW53aW5kRnVuY3RvcihDYWxsRnJhbWUqJiBj
YWxsRnJhbWUsIEpTVmFsdWUmIGV4Y2VwdGlvblZhbHVlLCBib29sIGlzVGVybWluYXRpb24sIENv
ZGVCbG9jayomIGNvZGVCbG9jaywgSGFuZGxlckluZm8qJiBoYW5kbGVyKQorICAgICAgICA6IG1f
Y2FsbEZyYW1lKGNhbGxGcmFtZSkKKyAgICAgICAgLCBtX2V4Y2VwdGlvblZhbHVlKGV4Y2VwdGlv
blZhbHVlKQorICAgICAgICAsIG1faXNUZXJtaW5hdGlvbihpc1Rlcm1pbmF0aW9uKQorICAgICAg
ICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKKyAgICAgICAgLCBtX2hhbmRsZXIoaGFuZGxlcikK
KyAgICB7CisgICAgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3Rh
Y2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIFZNJiB2bSA9IG1fY2FsbEZyYW1lLT52
bSgpOworICAgICAgICBtX2NhbGxGcmFtZSA9IGl0ZXItPmNhbGxGcmFtZSgpOworICAgICAgICBt
X2NvZGVCbG9jayA9IGl0ZXItPmNvZGVCbG9jaygpOworICAgICAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldCA9IGl0ZXItPmJ5dGVjb2RlT2Zmc2V0KCk7CisKKyAgICAgICAgaWYgKG1faXNUZXJt
aW5hdGlvbiB8fCAhKG1faGFuZGxlciA9IG1fY29kZUJsb2NrLT5oYW5kbGVyRm9yQnl0ZWNvZGVP
ZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgeworICAgICAgICBpZiAoIXVud2luZENhbGxGcmFtZShp
dGVyLCBtX2V4Y2VwdGlvblZhbHVlKSkgeworICAgICAgICAgICAgaWYgKExlZ2FjeVByb2ZpbGVy
KiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQorICAgICAgICAgICAgICAgIHByb2Zp
bGVyLT5leGNlcHRpb25VbndpbmQobV9jYWxsRnJhbWUpOworICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJu
IFN0YWNrSXRlcmF0b3I6OkRvbmU7CisKKyAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGlu
dWU7Cit9CisKK3ByaXZhdGU6CisgICAgQ2FsbEZyYW1lKiYgbV9jYWxsRnJhbWU7CisgICAgSlNW
YWx1ZSYgbV9leGNlcHRpb25WYWx1ZTsKKyAgICBib29sIG1faXNUZXJtaW5hdGlvbjsKKyAgICBD
b2RlQmxvY2sqJiBtX2NvZGVCbG9jazsKKyAgICBIYW5kbGVySW5mbyomIG1faGFuZGxlcjsKK307
CisKIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnVud2luZChDYWxsRnJh
bWUqJiBjYWxsRnJhbWUsIEpTVmFsdWUmIGV4Y2VwdGlvblZhbHVlLCB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldCkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCk7CkBAIC01NDksMjIgKzYzOSwxMyBAQCBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIElu
dGVycHJldGVyOjp1CiAgICAgSGFuZGxlckluZm8qIGhhbmRsZXIgPSAwOwogICAgIFZNJiB2bSA9
IGNhbGxGcmFtZS0+dm0oKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lID09IHZtLnRvcENhbGxGcmFt
ZSk7Ci0gICAgZm9yIChTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7IGl0
ZXIgIT0gY2FsbEZyYW1lLT5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGNhbGxGcmFtZSA9IGl0
ZXItPmNhbGxGcmFtZSgpOwotICAgICAgICBjb2RlQmxvY2sgPSBpdGVyLT5jb2RlQmxvY2soKTsK
LSAgICAgICAgYnl0ZWNvZGVPZmZzZXQgPSBpdGVyLT5ieXRlY29kZU9mZnNldCgpOwotCi0gICAg
ICAgIGlmIChpc1Rlcm1pbmF0aW9uIHx8ICEoaGFuZGxlciA9IGNvZGVCbG9jay0+aGFuZGxlckZv
ckJ5dGVjb2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KSkpIHsKLSAgICAgICAgICAgIGlmICghdW53
aW5kQ2FsbEZyYW1lKGl0ZXIsIGV4Y2VwdGlvblZhbHVlKSkgewotICAgICAgICAgICAgICAgIGlm
IChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChjYWxsRnJhbWUpOwotICAg
ICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBVbndpbmRGdW5jdG9yIGZ1bmN0b3IoY2FsbEZy
YW1lLCBleGNlcHRpb25WYWx1ZSwgaXNUZXJtaW5hdGlvbiwgY29kZUJsb2NrLCBoYW5kbGVyKTsK
KyAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7CisgICAgaXRlci5p
dGVyYXRlKGZ1bmN0b3IpOworICAgIGlmICghaGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gY2FsbEZyYW1lLT52bSgpLmVuYWJs
ZWRQcm9maWxlcigpKQorICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFi
bGVkUHJvZmlsZXIoKSkKICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChjYWxsRnJh
bWUpOwogCiAgICAgLy8gVW53aW5kIHRoZSBzY29wZSBjaGFpbiB3aXRoaW4gdGhlIGV4Y2VwdGlv
biBoYW5kbGVyJ3MgY2FsbCBmcmFtZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYyLDcgKzI2Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGV4ZWN1
dGUoQ2FsbEZyYW1lQ2xvc3VyZSYpOwogCiAgICAgICAgIHZvaWQgZ2V0U3RhY2tUcmFjZShWZWN0
b3I8U3RhY2tGcmFtZT4mIHJlc3VsdHMsIHNpemVfdCBtYXhTdGFja1NpemUgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICAgICAgTkVWRVJfSU5MSU5FIGJvb2wgdW53
aW5kQ2FsbEZyYW1lKFN0YWNrSXRlcmF0b3ImLCBKU1ZhbHVlKTsKIAogICAgICAgICB2b2lkIGR1
bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKik7CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmNwcAkocmV2aXNpb24g
MTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMSArNDQsMTEgQEAgU3RhY2tJdGVyYXRvcjo6
U3RhY2tJdGVyYXRvcihDYWxsRnJhbWUqIAogCiBzaXplX3QgU3RhY2tJdGVyYXRvcjo6bnVtYmVy
T2ZGcmFtZXMoKQogewotICAgIGludCBzYXZlZEZyYW1lSW5kZXggPSBtX2ZyYW1lSW5kZXg7Cisg
ICAgaW50IHNhdmVkRnJhbWVJbmRleCA9IG1fZnJhbWUuaW5kZXgoKTsKICAgICByZXNldEl0ZXJh
dG9yKCk7CiAgICAgd2hpbGUgKG1fZnJhbWUuY2FsbEZyYW1lKCkpCiAgICAgICAgIGdvdG9OZXh0
RnJhbWVXaXRoRmlsdGVyKCk7Ci0gICAgc2l6ZV90IG51bWJlck9mRnJhbWVzID0gbV9mcmFtZUlu
ZGV4OworICAgIHNpemVfdCBudW1iZXJPZkZyYW1lcyA9IG1fZnJhbWUuaW5kZXgoKTsKIAogICAg
IHJlc2V0SXRlcmF0b3IoKTsKICAgICBnb3RvRnJhbWVBdEluZGV4KHNhdmVkRnJhbWVJbmRleCk7
CkBAIC01OCw3ICs1OCw3IEBAIHNpemVfdCBTdGFja0l0ZXJhdG9yOjpudW1iZXJPZkZyYW1lcygp
CiAKIHZvaWQgU3RhY2tJdGVyYXRvcjo6Z290b0ZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCiB7
Ci0gICAgd2hpbGUgKG1fZnJhbWUuY2FsbEZyYW1lKCkgJiYgKG1fZnJhbWVJbmRleCAhPSBpbmRl
eCkpCisgICAgd2hpbGUgKG1fZnJhbWUuY2FsbEZyYW1lKCkgJiYgKG1fZnJhbWUuaW5kZXgoKSAh
PSBpbmRleCkpCiAgICAgICAgIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7CiB9CiAKQEAgLTgz
LDMxICs4MywxNSBAQCB2b2lkIFN0YWNrSXRlcmF0b3I6OmdvdG9OZXh0RnJhbWVXaXRoRmlsCiAg
ICAgICAgIGlmICghbV9mcmFtZS5jYWxsRnJhbWUoKSB8fCAhbV9maWx0ZXIgfHwgIW1fZmlsdGVy
KCZtX2ZyYW1lKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBtX2ZyYW1lSW5kZXgr
KzsKKyAgICBtX2ZyYW1lLm1faW5kZXgrKzsKIH0KIAogdm9pZCBTdGFja0l0ZXJhdG9yOjpyZXNl
dEl0ZXJhdG9yKCkKIHsKLSAgICBtX2ZyYW1lSW5kZXggPSAwOworICAgIG1fZnJhbWUubV9pbmRl
eCA9IDA7CiAgICAgcmVhZEZyYW1lKG1fc3RhcnRGcmFtZSk7CiB9CiAKLVN0YWNrSXRlcmF0b3Ig
U3RhY2tJdGVyYXRvcjo6ZW5kKCkKLXsKLSAgICByZXR1cm4gU3RhY2tJdGVyYXRvcigwLCAwKTsK
LX0KLQotdm9pZCBTdGFja0l0ZXJhdG9yOjpmaW5kKEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2JqKQot
ewotICAgIEFTU0VSVChmdW5jdGlvbk9iaik7Ci0gICAgSlNPYmplY3QqIHRhcmdldENhbGxlZSA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPihmdW5jdGlvbk9iaik7Ci0gICAgd2hpbGUgKG1fZnJh
bWUuY2FsbEZyYW1lKCkpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUuY2FsbGVlKCkgPT0gdGFyZ2V0
Q2FsbGVlKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGdvdG9OZXh0RnJhbWVXaXRoRmls
dGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIFN0YWNrSXRlcmF0b3I6OnJlYWRGcmFtZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKIHsKICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aGFzSG9zdENhbGxGcmFt
ZUZsYWcoKSk7CkBAIC00MDQsOCArMzg4LDEzIEBAIHZvaWQgU3RhY2tJdGVyYXRvcjo6RnJhbWU6
OnByaW50KGludCBpbmQKIHsKICAgICBpbnQgaSA9IGluZGVudExldmVsOwogCisgICAgaWYgKCF0
aGlzLT5jYWxsRnJhbWUoKSkgeworICAgICAgICBwcmludGlmKGksICJmcmFtZSAweDBcbiIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlz
LT5jb2RlQmxvY2soKTsKLSAgICBwcmludGlmKGksICJmcmFtZSAlcCB7XG4iLCB0aGlzKTsKKyAg
ICBwcmludGlmKGksICJmcmFtZSAlcCB7XG4iLCB0aGlzLT5jYWxsRnJhbWUoKSk7CiAKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IG1fY2FsbEZyYW1lOwogICAgIENhbGxGcmFtZSogY2FsbGVy
RnJhbWUgPSB0aGlzLT5jYWxsZXJGcmFtZSgpOwpAQCAtNDYwLDYgKzQ0OSw4IEBAIHZvaWQgU3Rh
Y2tJdGVyYXRvcjo6RnJhbWU6OnByaW50KGludCBpbmQKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
aWZuZGVmIE5ERUJVRwordXNpbmcgSlNDOjpTdGFja0l0ZXJhdG9yOworCiAvLyBGb3IgZGVidWdn
aW5nIHVzZQogdm9pZCBkZWJ1Z1ByaW50Q2FsbEZyYW1lKEpTQzo6Q2FsbEZyYW1lKik7CiB2b2lk
IGRlYnVnUHJpbnRTdGFjayhKU0M6OkNhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKTsKQEAgLTQ2OCwx
NiArNDU5LDI1IEBAIHZvaWQgZGVidWdQcmludENhbGxGcmFtZShKU0M6OkNhbGxGcmFtZSoKIHsK
ICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIEpTQzo6U3RhY2tJdGVy
YXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9
IGNhbGxGcmFtZS0+YmVnaW4oKTsKICAgICBpdGVyLT5wcmludCgyKTsKIH0KIAorY2xhc3MgRGVi
dWdQcmludFN0YWNrRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsKK3B1
YmxpYzoKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9y
JiBpdGVyKQorICAgIHsKKyAgICAgICAgaXRlci0+cHJpbnQoMik7CisgICAgICAgIHJldHVybiBT
dGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICB9Cit9OworCiB2b2lkIGRlYnVnUHJpbnRTdGFj
ayhKU0M6OkNhbGxGcmFtZSogdG9wQ2FsbEZyYW1lKQogewogICAgIGlmICghdG9wQ2FsbEZyYW1l
KQogICAgICAgICByZXR1cm47Ci0gICAgSlNDOjpTdGFja0l0ZXJhdG9yIGl0ZXIgPSB0b3BDYWxs
RnJhbWUtPmJlZ2luKCk7Ci0gICAgZm9yICg7IGl0ZXIgIT0gdG9wQ2FsbEZyYW1lLT5lbmQoKTsg
KytpdGVyKQotICAgICAgICBpdGVyLT5wcmludCgyKTsKKyAgICBEZWJ1Z1ByaW50U3RhY2tGdW5j
dG9yIGZ1bmN0b3I7CisgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gdG9wQ2FsbEZyYW1lLT5iZWdp
bigpOworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKIH0KICNlbmRpZiAvLyAhTkRFQlVHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJh
dG9yLmgJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9TdGFja0l0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgTmF0aXZlCiAgICAgICAgIH07CiAKKyAgICAgICAgc2l6ZV90IGlu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQogICAgICAgICBzaXplX3QgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoKSBjb25zdCB7IHJldHVybiBtX2FyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzOyB9CiAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2NhbGxlckZyYW1lOyB9CiAgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUoKSBjb25zdCB7IHJl
dHVybiBtX2NhbGxlZTsgfQpAQCAtODksNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQg
cmV0cmlldmVFeHByZXNzaW9uSW5mbyhpbnQmIGRpdm90LCBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQm
IGVuZE9mZnNldCwgdW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pOwogICAgICAgICB2
b2lkIHNldFRvRW5kKCk7CiAKKyAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVf
dCBtX2FyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogICAgICAgICBDYWxsRnJhbWUqIG1fY2Fs
bGVyRnJhbWU7CiAgICAgICAgIEpTT2JqZWN0KiBtX2NhbGxlZTsKQEAgLTEwNiwyMCArMTA4LDM2
IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgYm9vbCAoKkZyYW1lRmlsdGVyKShGcmFtZSopOwog
CisgICAgZW51bSBTdGF0dXMgeworICAgICAgICBDb250aW51ZSA9IDAsCisgICAgICAgIERvbmUg
PSAxCisgICAgfTsKKworICAgIGNsYXNzIEZ1bmN0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAg
Ly8gU3RhY2tJdGVyYXRvcjo6aXRlcmF0ZSgpIGV4cGVjdHMgYWxsIHN1YmNsYXNzIGltcGxlbWVu
dGF0aW9ucyBvZiB0aGUKKyAgICAgICAgLy8gRnVuY3RvciB0byBwcm92aWRlIGFuIGltcGxlbWVu
dGF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kLgorICAgICAgICBTdGF0dXMgb3BlcmF0b3Io
KShTdGFja0l0ZXJhdG9yJik7CisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5j
dG9yPiB2b2lkIGl0ZXJhdGUoRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIHdoaWxl
IChtX2ZyYW1lLmNhbGxGcmFtZSgpKSB7CisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gZnVu
Y3RvcigqdGhpcyk7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IENvbnRpbnVlKQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBudW1iZXJP
ZkZyYW1lcygpOwogCiAgICAgRnJhbWUmIG9wZXJhdG9yKigpIHsgcmV0dXJuIG1fZnJhbWU7IH0K
ICAgICBBTFdBWVNfSU5MSU5FIEZyYW1lKiBvcGVyYXRvci0+KCkgeyByZXR1cm4gJm1fZnJhbWU7
IH0KIAotICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RhY2tJdGVyYXRvciYpOwot
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdGFja0l0ZXJhdG9yJiBvdGhlcikgeyByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7IH0KLSAgICB2b2lkIG9wZXJhdG9yKysoKSB7IGdvdG9OZXh0RnJh
bWVXaXRoRmlsdGVyKCk7IH0KLSAgICB2b2lkIGZpbmQoSlNGdW5jdGlvbiopOwotCiBwcml2YXRl
OgogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrSXRlcmF0b3IoQ2FsbEZyYW1lKiBzdGFydEZy
YW1lLCBGcmFtZUZpbHRlciA9IDApOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0
YWNrSXRlcmF0b3IgZW5kKCk7CiAgICAgdm9pZCBnb3RvRnJhbWVBdEluZGV4KHNpemVfdCBmcmFt
ZUluZGV4KTsKICAgICB2b2lkIGdvdG9OZXh0RnJhbWUoKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVyKCk7CkBAIC0xMzIsMjIgKzE1MCwxMiBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICAgICBDYWxsRnJhbWUqIG1fc3RhcnRGcmFtZTsKLSAgICBzaXpl
X3QgbV9mcmFtZUluZGV4OwogICAgIEZyYW1lRmlsdGVyIG1fZmlsdGVyOwogICAgIEZyYW1lIG1f
ZnJhbWU7CiAKICAgICBmcmllbmQgY2xhc3MgRXhlY1N0YXRlOwogfTsKIAotaW5saW5lIGJvb2wg
U3RhY2tJdGVyYXRvcjo6b3BlcmF0b3I9PShjb25zdCBTdGFja0l0ZXJhdG9yJiBvdGhlcikKLXsK
LSAgICByZXR1cm4gKG1fZnJhbWUuY2FsbEZyYW1lKCkgPT0gb3RoZXIubV9mcmFtZS5jYWxsRnJh
bWUoKSkKLSNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICAgICAgJiYgKG1fZnJhbWUuaW5saW5lQ2Fs
bEZyYW1lKCkgPT0gb3RoZXIubV9mcmFtZS5pbmxpbmVDYWxsRnJhbWUoKSkKLSNlbmRpZgotICAg
ICAgICA7IAotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFN0YWNrSXRlcmF0
b3JfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nywy
MCArNTcsNTQgQEAgUHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcihFeGVjUwogICAg
ICAgICBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoZXhlYyk7CiB9CiAKK2NsYXNzIEFkZFBhcmVu
dEZvckNvbnNvbGVTdGFydEZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6RnVuY3RvciB7
CitwdWJsaWM6CisgICAgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvcihFeGVjU3RhdGUq
IGV4ZWMsIFJlZlB0cjxQcm9maWxlTm9kZT4mIGhlYWQsIFJlZlB0cjxQcm9maWxlTm9kZT4mIGN1
cnJlbnROb2RlKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgICAgICAsIG1faGFzU2tpcHBl
ZEZpcnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV9mb3VuZFBhcmVudChmYWxzZSkKKyAgICAg
ICAgLCBtX2hlYWQoaGVhZCkKKyAgICAgICAgLCBtX2N1cnJlbnROb2RlKGN1cnJlbnROb2RlKQor
ICAgIHsKKyAgICB9CisKKyAgICBib29sIGZvdW5kUGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9m
b3VuZFBhcmVudDsgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3Rh
Y2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmlyc3RG
cmFtZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAg
ICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICAgICAgdW5zaWduZWQgdW51c2VkQ29sdW1uID0g
MDsKKyAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgdW51c2VkQ29sdW1u
KTsKKyAgICAgICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUobV9leGVjLCBM
ZWdhY3lQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZpZXIobV9leGVjLCBpdGVyLT5jYWxsZWUo
KSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUpLCBtX2hlYWQuZ2V0KCksIG1faGVhZC5nZXQoKSk7
CisgICAgICAgIG1faGVhZC0+aW5zZXJ0Tm9kZShtX2N1cnJlbnROb2RlLmdldCgpKTsKKworICAg
ICAgICBtX2ZvdW5kUGFyZW50ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6
OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIEV4ZWNTdGF0ZSogbV9leGVjOworICAgIGJv
b2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBib29sIG1fZm91bmRQYXJlbnQ7IAorICAg
IFJlZlB0cjxQcm9maWxlTm9kZT4mIG1faGVhZDsKKyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBt
X2N1cnJlbnROb2RlOworfTsKKwogdm9pZCBQcm9maWxlR2VuZXJhdG9yOjphZGRQYXJlbnRGb3JD
b25zb2xlU3RhcnQoRXhlY1N0YXRlKiBleGVjKQogeworICAgIEFkZFBhcmVudEZvckNvbnNvbGVT
dGFydEZ1bmN0b3IgZnVuY3RvcihleGVjLCBtX2hlYWQsIG1fY3VycmVudE5vZGUpOwogICAgIFN0
YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwotICAgIGlmIChp
dGVyID09IGV4ZWMtPmVuZCgpKSB7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOworCisgICAg
aWYgKCFmdW5jdG9yLmZvdW5kUGFyZW50KCkpIHsKICAgICAgICAgbV9jdXJyZW50Tm9kZSA9IFBy
b2ZpbGVOb2RlOjpjcmVhdGUoZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlm
aWVyKGV4ZWMsIEpTVmFsdWUoKSwgU3RyaW5nKCksIDApLCBtX2hlYWQuZ2V0KCksIG1faGVhZC5n
ZXQoKSk7CiAgICAgICAgIG1faGVhZC0+aW5zZXJ0Tm9kZShtX2N1cnJlbnROb2RlLmdldCgpKTsK
LSAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICB1bnNp
Z25lZCB1bnVzZWRDb2x1bW4gPSAwOwotICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxp
bmUsIHVudXNlZENvbHVtbik7Ci0gICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVh
dGUoZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKGV4ZWMsIGl0ZXIt
PmNhbGxlZSgpLCBpdGVyLT5zb3VyY2VVUkwoKSwgbGluZSksIG1faGVhZC5nZXQoKSwgbV9oZWFk
LmdldCgpKTsKLSAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50Tm9kZS5nZXQoKSk7CiB9
CiAKIGNvbnN0IFN0cmluZyYgUHJvZmlsZUdlbmVyYXRvcjo6dGl0bGUoKSBjb25zdApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAJKHJldmlzaW9u
IDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODIsMTAgKzE4MiwzNyBAQCBDYWxsVHlwZSBKU0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YShKU0NlbGwqCiAgICAgcmV0dXJuIENhbGxUeXBlSlM7CiB9CiAKK2NsYXNz
IFJldHJpZXZlQXJndW1lbnRzRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9y
IHsKK3B1YmxpYzoKKyAgICBSZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3IoSlNGdW5jdGlvbiogZnVu
Y3Rpb25PYmopCisgICAgICAgIDogbV90YXJnZXRDYWxsZWUoanNEeW5hbWljQ2FzdDxKU09iamVj
dCo+KGZ1bmN0aW9uT2JqKSkKKyAgICAgICAgLCBtX3Jlc3VsdChqc051bGwoKSkKKyAgICB7Cisg
ICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsgfQor
CisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRl
cikKKyAgICB7CisgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBpdGVyLT5jYWxsZWUoKTsKKyAg
ICAgICAgaWYgKGNhbGxlZSAhPSBtX3RhcmdldENhbGxlZSkKKyAgICAgICAgICAgIHJldHVybiBT
dGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKworICAgICAgICBtX3Jlc3VsdCA9IEpTVmFsdWUoaXRl
ci0+YXJndW1lbnRzKCkpOworICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgSlNPYmplY3QqIG1fdGFyZ2V0Q2FsbGVlOworICAgIEpTVmFs
dWUgbV9yZXN1bHQ7Cit9OworCiBzdGF0aWMgSlNWYWx1ZSByZXRyaWV2ZUFyZ3VtZW50cyhFeGVj
U3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2JqKQogewotICAgIFN0YWNrSXRlcmF0
b3IgaXRlciA9IGV4ZWMtPmZpbmQoZnVuY3Rpb25PYmopOwotICAgIHJldHVybiBpdGVyICE9IGV4
ZWMtPmVuZCgpID8gSlNWYWx1ZShpdGVyLT5hcmd1bWVudHMoKSkgOiBqc051bGwoKTsKKyAgICBS
ZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3IgZnVuY3RvcihmdW5jdGlvbk9iaik7CisgICAgU3RhY2tJ
dGVyYXRvciBpdGVyID0gZXhlYy0+YmVnaW4oKTsKKyAgICBpdGVyLml0ZXJhdGUoZnVuY3Rvcik7
CisgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CiAKIEpTVmFsdWUgSlNGdW5jdGlvbjo6
YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVy
dHlOYW1lKQpAQCAtMjAzLDEyICsyMzAsNDggQEAgc3RhdGljIGJvb2wgc2tpcE92ZXJCb3VuZEZ1
bmN0aW9ucyhTdGFjawogICAgIHJldHVybiBzaG91bGRTa2lwOwogfQogCitjbGFzcyBSZXRyaWV2
ZUNhbGxlckZ1bmN0aW9uRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0ZXJhdG9yOjpGdW5jdG9yIHsK
K3B1YmxpYzoKKyAgICBSZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3RvcihKU0Z1bmN0aW9uKiBm
dW5jdGlvbk9iaikKKyAgICAgICAgOiBtX3RhcmdldENhbGxlZShqc0R5bmFtaWNDYXN0PEpTT2Jq
ZWN0Kj4oZnVuY3Rpb25PYmopKQorICAgICAgICAsIG1faGFzRm91bmRGcmFtZShmYWxzZSkKKyAg
ICAgICAgLCBtX2hhc1NraXBwZWRUb0NhbGxlckZyYW1lKGZhbHNlKQorICAgICAgICAsIG1fcmVz
dWx0KGpzTnVsbCgpKQorICAgIHsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJlc3VsdCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzdWx0OyB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0
b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgSlNPYmplY3QqIGNhbGxl
ZSA9IGl0ZXItPmNhbGxlZSgpOworICAgICAgICBpZiAoIW1faGFzRm91bmRGcmFtZSAmJiAoY2Fs
bGVlICE9IG1fdGFyZ2V0Q2FsbGVlKSkKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9y
OjpDb250aW51ZTsKKworICAgICAgICBtX2hhc0ZvdW5kRnJhbWUgPSB0cnVlOworICAgICAgICBp
ZiAoIW1faGFzU2tpcHBlZFRvQ2FsbGVyRnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBl
ZFRvQ2FsbGVyRnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6
OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNhbGxlZSkKKyAgICAgICAgICAg
IG1fcmVzdWx0ID0gY2FsbGVlOworICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNPYmplY3QqIG1fdGFyZ2V0Q2FsbGVlOworICAgIGJv
b2wgbV9oYXNGb3VuZEZyYW1lOworICAgIGJvb2wgbV9oYXNTa2lwcGVkVG9DYWxsZXJGcmFtZTsK
KyAgICBKU1ZhbHVlIG1fcmVzdWx0OworfTsKKwogc3RhdGljIEpTVmFsdWUgcmV0cmlldmVDYWxs
ZXJGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2JqKQogewot
ICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmZpbmQoZnVuY3Rpb25PYmosIHNraXBPdmVy
Qm91bmRGdW5jdGlvbnMpOwotICAgIGlmIChpdGVyICE9IGV4ZWMtPmVuZCgpKQotICAgICAgICAr
K2l0ZXI7Ci0gICAgcmV0dXJuIGl0ZXIgIT0gZXhlYy0+ZW5kKCkgJiYgaXRlci0+Y2FsbGVlKCkg
PyBpdGVyLT5jYWxsZWUoKSA6IGpzTnVsbCgpOworICAgIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25G
dW5jdG9yIGZ1bmN0b3IoZnVuY3Rpb25PYmopOworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4
ZWMtPmJlZ2luKHNraXBPdmVyQm91bmRGdW5jdGlvbnMpOworICAgIGl0ZXIuaXRlcmF0ZShmdW5j
dG9yKTsKKyAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAogSlNWYWx1ZSBKU0Z1bmN0
aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9w
ZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcwNiw2ICs3MDYsMzYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jVAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
fQogCitjbGFzcyBHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yIDogcHVibGljIFN0YWNrSXRl
cmF0b3I6OkZ1bmN0b3IgeworcHVibGljOgorICAgIEdsb2JhbEZ1bmNQcm90b0dldHRlckZ1bmN0
b3IoSlNPYmplY3QqIHRoaXNPYmplY3QpCisgICAgICAgIDogbV9oYXNTa2lwcGVkRmlyc3RGcmFt
ZShmYWxzZSkKKyAgICAgICAgLCBtX3RoaXNPYmplY3QodGhpc09iamVjdCkKKyAgICAgICAgLCBt
X3Jlc3VsdChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpCisgICAgeworICAgIH0KKwor
ICAgIEVuY29kZWRKU1ZhbHVlIHJlc3VsdCgpIHsgcmV0dXJuIG1fcmVzdWx0OyB9CisKKyAgICBT
dGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAg
IHsKKyAgICAgICAgaWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7CisgICAgICAgICAgICBt
X2hhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpDb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX3RoaXNPYmplY3Qt
PmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAgICAgICAgICAgbV9yZXN1
bHQgPSBKU1ZhbHVlOjplbmNvZGUobV90aGlzT2JqZWN0LT5wcm90b3R5cGUoKSk7CisKKyAgICAg
ICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJv
b2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBKU09iamVjdCogbV90aGlzT2JqZWN0Owor
ICAgIEVuY29kZWRKU1ZhbHVlIG1fcmVzdWx0OworfTsKKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9HZXR0ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpT
T2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KGV4ZWMtPnRoaXNW
YWx1ZSgpLnRvVGhpcyhleGVjLCBOb3RTdHJpY3RNb2RlKSk7CkBAIC03MTMsMTQgKzc0Myw0MCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQCiAgICAgaWYgKCF0aGlz
T2JqZWN0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgp
LnN5bnRoZXNpemVQcm90b3R5cGUoZXhlYykpOwogCisgICAgR2xvYmFsRnVuY1Byb3RvR2V0dGVy
RnVuY3RvciBmdW5jdG9yKHRoaXNPYmplY3QpOwogICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4
ZWMtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwotICAgIGlmICgoaXRlciA9PSBleGVjLT5lbmQoKSkg
fHwgIXRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5wcm90b3R5cGUoKSk7CisgICAgaXRlci5pdGVy
YXRlKGZ1bmN0b3IpOworICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCitjbGFzcyBH
bG9iYWxGdW5jUHJvdG9TZXR0ZXJGdW5jdG9yIDogcHVibGljIFN0YWNrSXRlcmF0b3I6OkZ1bmN0
b3IgeworcHVibGljOgorICAgIEdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3IoSlNPYmplY3Qq
IHRoaXNPYmplY3QpCisgICAgICAgIDogbV9oYXNTa2lwcGVkRmlyc3RGcmFtZShmYWxzZSkKKyAg
ICAgICAgLCBtX2FsbG93c0FjY2VzcyhmYWxzZSkKKyAgICAgICAgLCBtX3RoaXNPYmplY3QodGhp
c09iamVjdCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBhbGxvd3NBY2Nlc3MoKSBjb25zdCB7
IHJldHVybiBtX2FsbG93c0FjY2VzczsgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9w
ZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNT
a2lwcGVkRmlyc3RGcmFtZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAg
ICAgIH0KKworICAgICAgICBtX2FsbG93c0FjY2VzcyA9IG1fdGhpc09iamVjdC0+YWxsb3dzQWNj
ZXNzRnJvbShpdGVyLT5jYWxsRnJhbWUoKSk7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9y
OjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJh
bWU7CisgICAgYm9vbCBtX2FsbG93c0FjY2VzczsKKyAgICBKU09iamVjdCogbV90aGlzT2JqZWN0
OworfTsKKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0
ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLT5hcmd1bWVu
dCgwKTsKQEAgLTczMSw5ICs3ODcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jUAogICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAorICAgIEdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0
b3IgZnVuY3Rvcih0aGlzT2JqZWN0KTsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5i
ZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoKGl0ZXIgPT0gZXhlYy0+ZW5kKCkpIHx8ICF0
aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKSkKKyAgICBpdGVy
Lml0ZXJhdGUoZnVuY3Rvcik7CisgICAgaWYgKCFmdW5jdG9yLmFsbG93c0FjY2VzcygpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgLy8gU2V0
dGluZyBfX3Byb3RvX18gdG8gYSBub24tb2JqZWN0LCBub24tbnVsbCB2YWx1ZSBpcyBzaWxlbnRs
eSBpZ25vcmVkIHRvIG1hdGNoIE1vemlsbGEuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNTQ5MDIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMSwxNiArMTMxLDQ0IEBAIENhbGxUeXBlIE9iamVjdENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YSgKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCitjbGFz
cyBPYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVuY3RvciA6IHB1YmxpYyBTdGFja0l0
ZXJhdG9yOjpGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBPYmplY3RDb25zdHJ1Y3RvckdldFByb3Rv
dHlwZU9mRnVuY3RvcihKU09iamVjdCogb2JqZWN0KQorICAgICAgICA6IG1faGFzU2tpcHBlZEZp
cnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV9vYmplY3Qob2JqZWN0KQorICAgICAgICAsIG1f
cmVzdWx0KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSkKKyAgICB7CisgICAgfQorCisg
ICAgRW5jb2RlZEpTVmFsdWUgcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHQ7IH0KKwor
ICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIp
CisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAg
ICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICBpZiAobV9vYmplY3QtPmFs
bG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAgICAgICBtX3Jlc3VsdCA9IEpT
VmFsdWU6OmVuY29kZShtX29iamVjdC0+cHJvdG90eXBlKCkpOworICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpEb25lOworfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RG
cmFtZTsKKyAgICBKU09iamVjdCogbV9vYmplY3Q7CisgICAgRW5jb2RlZEpTVmFsdWUgbV9yZXN1
bHQ7Cit9OworCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
R2V0UHJvdG90eXBlT2YoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmICghZXhlYy0+YXJndW1l
bnQoMCkuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZXF1ZXN0ZWQgcHJvdG90eXBlIG9mIGEg
dmFsdWUgdGhhdCBpcyBub3QgYW4gb2JqZWN0LiIpKSk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBPYmplY3RDb25zdHJ1Y3RvckdldFBy
b3RvdHlwZU9mRnVuY3RvciBmdW5jdG9yKG9iamVjdCk7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVy
ID0gZXhlYy0+YmVnaW4oKTsKLSAgICArK2l0ZXI7Ci0gICAgaWYgKChpdGVyID09IGV4ZWMtPmVu
ZCgpKSB8fCAhb2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKSkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKG9iamVjdC0+cHJvdG90eXBlKCkpOworICAgIGl0ZXIuaXRlcmF0ZShm
dW5jdG9yKTsKKyAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTQ5ODkpCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAor
MjAxMy0wOS0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ29u
dmVydGluZyBTdGFja0l0ZXJhdG9yIHRvIGEgY2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNTY0LgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VuZEZ1bmN0b3I6OlNlbmRGdW5jdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbmRGdW5jdG9yOjpoYXNWaWFibGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpTZW5kRnVu
Y3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0Ojpz
ZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3I6OkNyZWF0ZVNj
cmlwdENhbGxTdGFja0Z1bmN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3Jp
cHRDYWxsU3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVu
Y3RvcjI6OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyOjpvcGVyYXRvcigpKToKKwogMjAxMy0wOS0w
MyAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgICA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBbR1N0cmVhbWVyXSBEb24ndCBzZXQgc3RhdGUgdG8gTlVMTCB1bnRp
bCBlbGVtZW50IGlzIGRlc3Ryb3llZApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDE1NDkwMikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDMyIEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVx
dWVzdDo6b3BlbihFeGVjU3RhdGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAorY2xh
c3MgU2VuZEZ1bmN0b3IgOiBwdWJsaWMgU3RhY2tJdGVyYXRvcjo6RnVuY3RvciB7CitwdWJsaWM6
CisgICAgU2VuZEZ1bmN0b3IoKQorICAgICAgICA6IG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFs
c2UpCisgICAgICAgICwgbV9oYXNWaWFibGVGcmFtZShmYWxzZSkKKyAgICB7CisgICAgfQorCisg
ICAgYm9vbCBoYXNWaWFibGVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlhYmxlRnJhbWU7
IH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3Im
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7CisgICAgICAg
ICAgICBtX2hhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBT
dGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIG1faGFzVmlhYmxl
RnJhbWUgPSB0cnVlOworICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lOworICAgIGJvb2wg
bV9oYXNWaWFibGVGcmFtZTsKK307CisKIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2Vu
ZFhNTEh0dHBSZXF1ZXN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbXBsKCkt
PnVybCgpKTsKQEAgLTEzNCw5ICsxNjAsMTAgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0Ojpz
ZW5kKEV4ZWNTdGF0ZQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKHZhbC50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYyksIGVjKTsKICAgICB9CiAKKyAgICBTZW5kRnVuY3RvciBmdW5jdG9yOwog
ICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJlZ2luKCk7Ci0gICAgKytpdGVyOwotICAg
IGlmIChpdGVyICE9IGV4ZWMtPmVuZCgpKSB7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOwor
ICAgIGlmIChmdW5jdG9yLmhhc1ZpYWJsZUZyYW1lKCkpIHsKICAgICAgICAgdW5zaWduZWQgbGlu
ZSA9IDA7CiAgICAgICAgIHVuc2lnbmVkIHVudXN1ZWRDb2x1bW4gPSAwOwogICAgICAgICBpdGVy
LT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCB1bnVzdWVkQ29sdW1uKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
Y3BwCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTcgKzU0LDQxIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAor
Y2xhc3MgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvciA6IFN0YWNrSXRlcmF0b3I6OkZ1bmN0
b3IgeworcHVibGljOgorICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IoVmVjdG9yPFNj
cmlwdENhbGxGcmFtZT4mIGZyYW1lcywgIHNpemVfdCByZW1haW5pbmdDYXBhY2l0eSkKKyAgICAg
ICAgOiBtX2ZyYW1lcyhmcmFtZXMpCisgICAgICAgICwgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZy
YW1lQ2FwdHVyZShyZW1haW5pbmdDYXBhY2l0eSkKKyAgICB7CisgICAgfQorCisgICAgU3RhY2tJ
dGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7Cisg
ICAgICAgIGlmIChtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKSB7CisgICAgICAg
ICAgICB1bnNpZ25lZCBsaW5lOworICAgICAgICAgICAgdW5zaWduZWQgY29sdW1uOworICAgICAg
ICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKKyAgICAgICAg
ICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoaXRlci0+ZnVuY3Rpb25OYW1lKCks
IGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pKTsKKworICAgICAgICAgICAgbV9yZW1h
aW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOworICAgICAgICAgICAgcmV0dXJuIFN0YWNr
SXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1l
PiYgbV9mcmFtZXM7CisgICAgc2l6ZV90IG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1
cmU7Cit9OworCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrKHNpemVfdCBtYXhTdGFja1NpemUsIGJvb2wgZW1wdHlJc0FsbG93ZWQpCiB7CiAgICAgVmVj
dG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwogICAgIGlmIChKU0M6OkV4ZWNTdGF0ZSogZXhl
YyA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCkpIHsKICAgICAgICAgQ2Fs
bEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9wQ2FsbEZyYW1lOwotICAgICAgICBmb3IgKFN0
YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOyBpdGVyICE9IGZyYW1lLT5lbmQoKSAm
JiBtYXhTdGFja1NpemUtLTsgKytpdGVyKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsaW5lOwot
ICAgICAgICAgICAgdW5zaWduZWQgY29sdW1uOwotICAgICAgICAgICAgaXRlci0+Y29tcHV0ZUxp
bmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKLSAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoU2Ny
aXB0Q2FsbEZyYW1lKGl0ZXItPmZ1bmN0aW9uTmFtZSgpLCBpdGVyLT5zb3VyY2VVUkwoKSwgbGlu
ZSwgY29sdW1uKSk7Ci0gICAgICAgIH0KKyAgICAgICAgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVu
Y3RvciBmdW5jdG9yKGZyYW1lcywgbWF4U3RhY2tTaXplKTsKKyAgICAgICAgU3RhY2tJdGVyYXRv
ciBpdGVyID0gZnJhbWUtPmJlZ2luKCk7CisgICAgICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsK
ICAgICB9CiAgICAgaWYgKGZyYW1lcy5pc0VtcHR5KCkgJiYgIWVtcHR5SXNBbGxvd2VkKSB7CiAg
ICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhhcHBlbiBpbiB0aGUgY2FzZSB3aGVy
ZQpAQCAtNzUsMjUgKzk5LDU1IEBAIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVT
Y3JpcHQKICAgICByZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAor
Y2xhc3MgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjIgOiBwdWJsaWMgU3RhY2tJdGVyYXRv
cjo6RnVuY3RvciB7CitwdWJsaWM6CisgICAgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjIo
Ym9vbCBuZWVkVG9Ta2lwQUZyYW1lLCAgc2l6ZV90IHJlbWFpbmluZ0NhcGFjaXR5LCBWZWN0b3I8
U2NyaXB0Q2FsbEZyYW1lPiYgZnJhbWVzKQorICAgICAgICA6IG1fbmVlZFRvU2tpcEFGcmFtZShu
ZWVkVG9Ta2lwQUZyYW1lKQorICAgICAgICAsIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNh
cHR1cmUocmVtYWluaW5nQ2FwYWNpdHkpCisgICAgICAgICwgbV9mcmFtZXMoZnJhbWVzKQorICAg
IHsKKyAgICB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0
ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgaWYgKG1fbmVlZFRvU2tpcEFGcmFtZSkgewor
ICAgICAgICAgICAgbV9uZWVkVG9Ta2lwQUZyYW1lID0gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9y
ZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgeworICAgICAgICAgICAgLy8gVGhpcyBl
YXJseSBleGl0IGlzIG5lY2Vzc2FyeSB0byBtYWludGFpbiBvdXIgb2xkIGJlaGF2aW91cgorICAg
ICAgICAgICAgLy8gYnV0IHRoZSBzdGFjayB0cmFjZSB3ZSBwcm9kdWNlIG5vdyBpcyBjb21wbGV0
ZSBhbmQgaGFuZGxlcyBhbGwKKyAgICAgICAgICAgIC8vIHdheXMgaW4gd2hpY2ggY29kZSBtYXkg
YmUgcnVubmluZworICAgICAgICAgICAgaWYgKCFpdGVyLT5jYWxsZWUoKSAmJiBtX2ZyYW1lcy5z
aXplKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGxpbmU7CisgICAgICAgICAgICB1bnNpZ25lZCBjb2x1bW47Cisg
ICAgICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOworICAg
ICAgICAgICAgbV9mcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5mdW5jdGlvbk5h
bWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbikpOworCisgICAgICAgICAgICBt
X3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlLS07CisgICAgICAgICAgICByZXR1cm4g
U3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YWNr
SXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9uZWVkVG9Ta2lw
QUZyYW1lOworICAgIHNpemVfdCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOwor
ICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+JiBtX2ZyYW1lczsKK307CisKIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCiB7CiAgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4g
ZnJhbWVzOwogICAgIEFTU0VSVChleGVjKTsKICAgICBDYWxsRnJhbWUqIGZyYW1lID0gZXhlYy0+
dm0oKS50b3BDYWxsRnJhbWU7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUtPmJlZ2lu
KCk7Ci0gICAgaWYgKGl0ZXIubnVtYmVyT2ZGcmFtZXMoKSA+IDEpCi0gICAgICAgICsraXRlcjsK
LSAgICBmb3IgKDsgaXRlciAhPSBmcmFtZS0+ZW5kKCkgJiYgbWF4U3RhY2tTaXplLS07ICsraXRl
cikgewotICAgICAgICAvLyBUaGlzIGVhcmx5IGV4aXQgaXMgbmVjZXNzYXJ5IHRvIG1haW50YWlu
IG91ciBvbGQgYmVoYXZpb3VyCi0gICAgICAgIC8vIGJ1dCB0aGUgc3RhY2sgdHJhY2Ugd2UgcHJv
ZHVjZSBub3cgaXMgY29tcGxldGUgYW5kIGhhbmRsZXMgYWxsCi0gICAgICAgIC8vIHdheXMgaW4g
d2hpY2ggY29kZSBtYXkgYmUgcnVubmluZwotICAgICAgICBpZiAoIWl0ZXItPmNhbGxlZSgpICYm
IGZyYW1lcy5zaXplKCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgdW5zaWduZWQgbGlu
ZTsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uOwotICAgICAgICBpdGVyLT5jb21wdXRlTGluZUFu
ZENvbHVtbihsaW5lLCBjb2x1bW4pOwotICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxG
cmFtZShpdGVyLT5mdW5jdGlvbk5hbWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVt
bikpOwotICAgIH0KKyAgICBzaXplX3QgbnVtYmVyT2ZGcmFtZXMgPSBpdGVyLm51bWJlck9mRnJh
bWVzKCk7CisgICAgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjIgZnVuY3RvcihudW1iZXJP
ZkZyYW1lcyA+IDEsIG1heFN0YWNrU2l6ZSwgZnJhbWVzKTsKKyAgICBpdGVyLml0ZXJhdGUoZnVu
Y3Rvcik7CiAgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKGZyYW1lcyk7CiB9CiAK
</data>
<flag name="review"
          id="232494"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210405</attachid>
            <date>2013-09-03 13:00:16 -0700</date>
            <delta_ts>2013-09-04 08:59:36 -0700</delta_ts>
            <desc>patch 4: Removed StackIterator::Functor.</desc>
            <filename>bug-120564d.patch</filename>
            <type>text/plain</type>
            <size>42742</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBA
CisyMDEzLTA5LTAzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
b252ZXJ0aW5nIFN0YWNrSXRlcmF0b3IgdG8gYSBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1NjQuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0
UmVmLmNwcDoKKyAgICAgICAgKEJhY2t0cmFjZUZ1bmN0b3I6OkJhY2t0cmFjZUZ1bmN0b3IpOgor
ICAgICAgICAoQmFja3RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0NvbnRl
eHRDcmVhdGVCYWNrdHJhY2UpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgICogaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpEdW1wUmVnaXN0ZXJGdW5jdG9yOjpE
dW1wUmVnaXN0ZXJGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6RHVtcFJlZ2lzdGVyRnVuY3Rvcjo6
b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKToK
KyAgICAgICAgKEpTQzo6dW53aW5kQ2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6R2V0U3RhY2tU
cmFjZUZ1bmN0b3I6OkdldFN0YWNrVHJhY2VGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6R2V0U3Rh
Y2tUcmFjZUZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
Z2V0U3RhY2tUcmFjZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpzdGFja1RyYWNlQXNT
dHJpbmcpOgorICAgICAgICAoSlNDOjpVbndpbmRGdW5jdG9yOjpVbndpbmRGdW5jdG9yKToKKyAg
ICAgICAgKEpTQzo6VW53aW5kRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp1bndpbmQpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OlN0YWNrSXRlcmF0b3I6Om51bWJlck9mRnJhbWVzKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVy
YXRvcjo6Z290b0ZyYW1lQXRJbmRleCk6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6Omdv
dG9OZXh0RnJhbWVXaXRoRmlsdGVyKToKKyAgICAgICAgKEpTQzo6U3RhY2tJdGVyYXRvcjo6cmVz
ZXRJdGVyYXRvcik6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjpwcmludCk6
CisgICAgICAgIChkZWJ1Z1ByaW50Q2FsbEZyYW1lKToKKyAgICAgICAgKERlYnVnUHJpbnRTdGFj
a0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoZGVidWdQcmludFN0YWNrKTogQWRkZWQg
Zm9yIGRlYnVnZ2luZyBjb252ZW5pZW5jZS4KKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFja0l0
ZXJhdG9yLmg6CisgICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6OkZyYW1lOjppbmRleCk6Cisg
ICAgICAgIChKU0M6OlN0YWNrSXRlcmF0b3I6Oml0ZXJhdGUpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChGdW5jdGlvbkpTQ1N0YWNrRnVuY3Rvcjo6RnVuY3Rpb25KU0NTdGFja0Z1bmN0
b3IpOgorICAgICAgICAoRnVuY3Rpb25KU0NTdGFja0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAg
ICAgICAoZnVuY3Rpb25KU0NTdGFjayk6CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6
OkFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3IpOgorICAgICAgICAoSlNDOjpBZGRQYXJl
bnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yOjpmb3VuZFBhcmVudCk6CisgICAgICAgIChKU0M6OkFk
ZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlND
OjpQcm9maWxlR2VuZXJhdG9yOjphZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OlJldHJpZXZlQXJndW1lbnRz
RnVuY3Rvcjo6UmV0cmlldmVBcmd1bWVudHNGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6UmV0cmll
dmVBcmd1bWVudHNGdW5jdG9yOjpyZXN1bHQpOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUFyZ3Vt
ZW50c0Z1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpyZXRyaWV2ZUFyZ3VtZW50
cyk6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yOjpSZXRyaWV2
ZUNhbGxlckZ1bmN0aW9uRnVuY3Rvcik6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb25GdW5jdG9yOjpyZXN1bHQpOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUNhbGxlckZ1bmN0
aW9uRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OnJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yOjpHbG9iYWxGdW5jUHJv
dG9HZXR0ZXJGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6R2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVu
Y3Rvcjo6cmVzdWx0KToKKyAgICAgICAgKEpTQzo6R2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVuY3Rv
cjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNQcm90b0dldHRlcik6Cisg
ICAgICAgIChKU0M6Okdsb2JhbEZ1bmNQcm90b1NldHRlckZ1bmN0b3I6Okdsb2JhbEZ1bmNQcm90
b1NldHRlckZ1bmN0b3IpOgorICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9TZXR0ZXJGdW5j
dG9yOjphbGxvd3NBY2Nlc3MpOgorICAgICAgICAoSlNDOjpHbG9iYWxGdW5jUHJvdG9TZXR0ZXJG
dW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVy
KToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6T2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3I6Ok9iamVjdENvbnN0cnVj
dG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0
b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3I6OnJlc3VsdCk6CisgICAgICAgIChKU0M6Ok9iamVjdENv
bnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpT
Qzo6b2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZik6CisKIDIwMTMtMDktMDIgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlQmxvY2s6OmpldHRpc29u
KCkgc2hvdWxkIGJlIGltcGxpY2l0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24g
MTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyNiwxNCArMzI2LDMxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25EZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCitj
bGFzcyBGdW5jdGlvbkpTQ1N0YWNrRnVuY3RvciB7CitwdWJsaWM6CisgICAgRnVuY3Rpb25KU0NT
dGFja0Z1bmN0b3IoU3RyaW5nQnVpbGRlciYgdHJhY2UpCisgICAgICAgIDogbV90cmFjZSh0cmFj
ZSkKKyAgICB7CisgICAgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCko
U3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIG1fdHJhY2UuYXBwZW5kKFN0cmlu
Zzo6Zm9ybWF0KCIgICAgJXp1ICAgJXNcbiIsIGl0ZXItPmluZGV4KCksIGl0ZXItPnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGlu
dWU7CisgICAgfQorCitwcml2YXRlOgorICAgIFN0cmluZ0J1aWxkZXImIG1fdHJhY2U7Cit9Owor
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDU3RhY2soRXhlY1N0YXRl
KiBleGVjKQogewogICAgIFN0cmluZ0J1aWxkZXIgdHJhY2U7CiAgICAgdHJhY2UuYXBwZW5kTGl0
ZXJhbCgiLS0+IFN0YWNrIHRyYWNlOlxuIik7CiAKLSAgICBpbnQgaSA9IDA7Ci0gICAgZm9yIChT
dGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOyBpdGVyICE9IGV4ZWMtPmVuZCgpOyAr
K2l0ZXIsICsraSkKLSAgICAgICAgdHJhY2UuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIgICAgJWkg
ICAlc1xuIiwgaSwgaXRlci0+dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgRnVuY3Rp
b25KU0NTdGFja0Z1bmN0b3IgZnVuY3Rvcih0cmFjZSk7CisgICAgU3RhY2tJdGVyYXRvciBpdGVy
ID0gZXhlYy0+YmVnaW4oKTsKKyAgICBpdGVyLml0ZXJhdGUoZnVuY3Rvcik7CiAgICAgZnByaW50
ZihzdGRlcnIsICIlcyIsIHRyYWNlLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEyLDcgKzIxMiw1NSBAQCBKU0dsb2JhbENvbnRleHRSZWYgSlNDb250ZXh0R2V0R2xvYmFs
Q29uCiAKICAgICByZXR1cm4gdG9HbG9iYWxSZWYoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5nbG9iYWxFeGVjKCkpOwogfQotICAgIAorCitjbGFzcyBCYWNrdHJhY2VGdW5jdG9yIHsKK3B1
YmxpYzoKKyAgICBCYWNrdHJhY2VGdW5jdG9yKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2ln
bmVkIHJlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKQorICAgICAgICA6IG1fYnVpbGRl
cihidWlsZGVyKQorICAgICAgICAsIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUo
cmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpCisgICAgeworICAgIH0KKworICAgIFN0
YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAg
eworICAgICAgICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgeworICAg
ICAgICAgICAgLy8gSWYgY2FsbGVlIGlzIHVua25vd24sIGJ1dCB3ZSd2ZSBub3QgYWRkZWQgYW55
IGZyYW1lIHlldCwgd2Ugc2hvdWxkCisgICAgICAgICAgICAvLyBzdGlsbCBhZGQgdGhlIGZyYW1l
LCBiZWNhdXNlIHNvbWV0aGluZyBjYWxsZWQgdXMsIGFuZCBnYXZlIHVzIGFyZ3VtZW50cy4KKyAg
ICAgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBpdGVyLT5jYWxsZWUoKTsKKyAgICAgICAgICAg
IGlmICghY2FsbGVlICYmIGl0ZXItPmluZGV4KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0
YWNrSXRlcmF0b3I6OkRvbmU7CisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIg
PSBtX2J1aWxkZXI7CisgICAgICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyMnKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0ZXItPmluZGV4KCkp
OworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0ZXItPmZ1bmN0aW9uTmFtZSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiKCkgYXQgIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVyLT5zb3Vy
Y2VVUkwoKSk7CisgICAgICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKKyAgICAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxp
bmVOdW1iZXI7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgdW51c2VkQ29sdW1uOworICAgICAg
ICAgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmVOdW1iZXIsIHVudXNlZENv
bHVtbik7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIobGluZU51bWJlcik7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghY2FsbGVlKQorICAgICAgICAgICAg
ICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworCisgICAgICAgICAgICBtX3JlbWFpbmlu
Z0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlLS07CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVy
YXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6
OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIFN0cmluZ0J1aWxkZXImIG1fYnVpbGRlcjsK
KyAgICB1bnNpZ25lZCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlOworfTsKKwog
SlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQ29udGV4dFJlZiBjdHgsIHVu
c2lnbmVkIG1heFN0YWNrU2l6ZSkKIHsKICAgICBpZiAoIWN0eCkgewpAQCAtMjIzLDM0ICsyNzEs
MTEgQEAgSlNTdHJpbmdSZWYgSlNDb250ZXh0Q3JlYXRlQmFja3RyYWNlKEpTQwogICAgIEpTTG9j
a0hvbGRlciBsb2NrKGV4ZWMpOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBDYWxs
RnJhbWUqIGZyYW1lID0gZXhlYy0+dm0oKS50b3BDYWxsRnJhbWU7Ci0gICAgc2l6ZV90IGkgPSAw
OwotICAgIEFTU0VSVChtYXhTdGFja1NpemUpOwotICAgIGZvciAoU3RhY2tJdGVyYXRvciBpdGVy
ID0gZnJhbWUtPmJlZ2luKCk7IGl0ZXIgIT0gZnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0t
OyArK2l0ZXIsICsraSkgewotICAgICAgICBKU09iamVjdCogY2FsbGVlID0gaXRlci0+Y2FsbGVl
KCk7Ci0gICAgICAgIC8vIElmIGNhbGxlZSBpcyB1bmtub3duLCBidXQgd2UndmUgbm90IGFkZGVk
IGFueSBmcmFtZSB5ZXQsIHdlIHNob3VsZAotICAgICAgICAvLyBzdGlsbCBhZGQgdGhlIGZyYW1l
LCBiZWNhdXNlIHNvbWV0aGluZyBjYWxsZWQgdXMsIGFuZCBnYXZlIHVzIGFyZ3VtZW50cy4KLSAg
ICAgICAgaWYgKCFjYWxsZWUgJiYgaSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlm
ICghYnVpbGRlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoaSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGl0ZXItPmZ1bmN0aW9uTmFtZSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIoKSBhdCAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlci0+c291cmNlVVJMKCkpOwot
ICAgICAgICBpZiAoaXRlci0+aXNKU0ZyYW1lKCkpIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCc6Jyk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyOwotICAgICAgICAgICAg
dW5zaWduZWQgdW51c2VkQ29sdW1uOwotICAgICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRD
b2x1bW4obGluZU51bWJlciwgdW51c2VkQ29sdW1uKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGxpbmVOdW1iZXIpOwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFjYWxsZWUp
Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9CisgICAgQVNTRVJUKG1heFN0YWNrU2l6ZSk7Cisg
ICAgQmFja3RyYWNlRnVuY3RvciBmdW5jdG9yKGJ1aWxkZXIsIG1heFN0YWNrU2l6ZSk7CisgICAg
U3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUtPmJlZ2luKCk7CisgICAgaXRlci5pdGVyYXRlKGZ1
bmN0b3IpOwogCiAgICAgcmV0dXJuIE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoYnVpbGRlci50b1N0
cmluZygpKS5sZWFrUmVmKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMywxMiArMTAzLDQgQEAgU3RhY2tJdGVyYXRvciBDYWxsRnJhbWU6OmJlZ2luKFN0YWNrSXRl
cgogICAgIHJldHVybiBTdGFja0l0ZXJhdG9yKHRoaXMsIGZpbHRlcik7CiB9CiAKLVN0YWNrSXRl
cmF0b3IgQ2FsbEZyYW1lOjpmaW5kKEpTRnVuY3Rpb24qIGNhbGxlZUZ1bmN0aW9uT2JqLCBTdGFj
a0l0ZXJhdG9yOjpGcmFtZUZpbHRlciBmaWx0ZXIpCi17Ci0gICAgQVNTRVJUKHRoaXMpOwotICAg
IFN0YWNrSXRlcmF0b3IgaXRlciA9IFN0YWNrSXRlcmF0b3IodGhpcywgZmlsdGVyKTsKLSAgICBp
dGVyLmZpbmQoY2FsbGVlRnVuY3Rpb25PYmopOwotICAgIHJldHVybiBpdGVyOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjg0LDggKzI4NCw2
IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZU5vRmxh
Z3MoKSB7IHJldHVybiBjYWxsZXJGcmFtZSgpLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygpOyB9
CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tJdGVyYXRvciBiZWdpbihTdGFja0l0
ZXJhdG9yOjpGcmFtZUZpbHRlciA9IDApOwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdGFj
a0l0ZXJhdG9yIGZpbmQoSlNGdW5jdGlvbiogY2FsbGVlRnVuY3Rpb25PYmosIFN0YWNrSXRlcmF0
b3I6OkZyYW1lRmlsdGVyID0gMCk7Ci0gICAgICAgIFN0YWNrSXRlcmF0b3IgZW5kKCkgeyByZXR1
cm4gU3RhY2tJdGVyYXRvcjo6ZW5kKCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRp
YyBjb25zdCBpbnRwdHJfdCBIb3N0Q2FsbEZyYW1lRmxhZyA9IDE7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9u
IDE1NDkwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw2ICsyNzQsMzQgQEAgdm9pZCBJbnRlcnByZXRl
cjo6ZHVtcENhbGxGcmFtZShDYWxsRnJhbQogICAgIGR1bXBSZWdpc3RlcnMoY2FsbEZyYW1lKTsK
IH0KIAorY2xhc3MgRHVtcFJlZ2lzdGVyRnVuY3RvciB7CitwdWJsaWM6CisgICAgRHVtcFJlZ2lz
dGVyRnVuY3Rvcihjb25zdCBSZWdpc3RlciomIGl0KQorICAgICAgICA6IG1faGFzU2tpcHBlZEZp
cnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV9pdChpdCkKKyAgICB7CisgICAgfQorCisgICAg
U3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAg
ICB7CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSkgeworICAgICAgICAgICAg
bV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJ
dGVyYXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgICAgICB1bnNpZ25lZCBsaW5lID0g
MDsKKyAgICAgICAgdW5zaWduZWQgdW51c2VkQ29sdW1uID0gMDsKKyAgICAgICAgaXRlci0+Y29t
cHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgdW51c2VkQ29sdW1uKTsKKyAgICAgICAgZGF0YUxvZ0Yo
IltSZXR1cm5WUENdICAgICAgICAgICAgICAgIHwgJTEwcCB8ICVkIChsaW5lICVkKVxuIiwgbV9p
dCwgaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKSwgbGluZSk7CisgICAgICAgICsrbV9pdDsKKyAgICAg
ICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJv
b2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBjb25zdCBSZWdpc3RlciomIG1faXQ7Cit9
OworCiB2b2lkIEludGVycHJldGVyOjpkdW1wUmVnaXN0ZXJzKENhbGxGcmFtZSogY2FsbEZyYW1l
KQogewogICAgIGRhdGFMb2dGKCJSZWdpc3RlciBmcmFtZTogXG5cbiIpOwpAQCAtMzA5LDE1ICsz
MzcsMTEgQEAgdm9pZCBJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVycyhDYWxsRnJhbQogICAgIGlm
IChwYy5oYXNKSVRSZXR1cm5BZGRyZXNzKCkpCiAgICAgICAgIGRhdGFMb2dGKCJbUmV0dXJuSklU
UENdICAgICAgICAgICAgICB8ICUxMHAgfCAlcCBcbiIsIGl0LCBwYy5qaXRSZXR1cm5BZGRyZXNz
KCkudmFsdWUoKSk7CiAjZW5kaWYKKworICAgIER1bXBSZWdpc3RlckZ1bmN0b3IgZnVuY3Rvcihp
dCk7CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOwotICAgICsr
aXRlcjsKLSAgICBpZiAoaXRlciAhPSBjYWxsRnJhbWUtPmVuZCgpKSB7Ci0gICAgICAgIHVuc2ln
bmVkIGxpbmUgPSAwOwotICAgICAgICB1bnNpZ25lZCB1bnVzZWRDb2x1bW4gPSAwOwotICAgICAg
ICBpdGVyLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4pOwotICAgICAg
ICBkYXRhTG9nRigiW1JldHVyblZQQ10gICAgICAgICAgICAgICAgfCAlMTBwIHwgJWQgKGxpbmUg
JWQpXG4iLCBpdCwgaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKSwgbGluZSk7Ci0gICAgICAgICsraXQ7
Ci0gICAgfQorICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKwogICAgIGRhdGFMb2dGKCJbQ29k
ZUJsb2NrXSAgICAgICAgICAgICAgICB8ICUxMHAgfCAlcCBcbiIsIGl0LCBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpKTsKICAgICArK2l0OwogICAgIGRhdGFMb2dGKCItLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVxuIik7CkBAIC0zNjYsNyArMzkwLDcgQEAgYm9vbCBJbnRlcnByZXRlcjo6aXNPcGNvZGUoT3Bj
b2RlIG9wY29kZQogI2VuZGlmCiB9CiAKLU5FVkVSX0lOTElORSBib29sIEludGVycHJldGVyOjp1
bndpbmRDYWxsRnJhbWUoU3RhY2tJdGVyYXRvciYgaXRlciwgSlNWYWx1ZSBleGNlcHRpb25WYWx1
ZSkKK3N0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFja0l0ZXJhdG9yJiBpdGVyLCBKU1Zh
bHVlIGV4Y2VwdGlvblZhbHVlKQogewogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gaXRlci0+
Y2FsbEZyYW1lKCk7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLT5jb2RlQmxvY2so
KTsKQEAgLTQ3NCw2ICs0OTgsNTEgQEAgU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENhbGxG
cmFtZSogYwogICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOwogfQogCitj
bGFzcyBHZXRTdGFja1RyYWNlRnVuY3RvciB7CitwdWJsaWM6CisgICAgR2V0U3RhY2tUcmFjZUZ1
bmN0b3IoVk0mIHZtLCBWZWN0b3I8U3RhY2tGcmFtZT4mIHJlc3VsdHMsIHNpemVfdCByZW1haW5p
bmdDYXBhY2l0eSkKKyAgICAgICAgOiBtX3ZtKHZtKQorICAgICAgICAsIG1fcmVzdWx0cyhyZXN1
bHRzKQorICAgICAgICAsIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUocmVtYWlu
aW5nQ2FwYWNpdHkpCisgICAgeworICAgIH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBv
cGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBWTSYgdm0gPSBt
X3ZtOworICAgICAgICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZSkgewor
ICAgICAgICAgICAgaWYgKGl0ZXItPmlzSlNGcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBpdGVyLT5jb2RlQmxvY2soKTsKKyAgICAgICAgICAgICAgICBT
dGFja0ZyYW1lIHMgPSB7CisgICAgICAgICAgICAgICAgICAgIFN0cm9uZzxKU09iamVjdD4odm0s
IGl0ZXItPmNhbGxlZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgZ2V0U3RhY2tGcmFtZUNvZGVU
eXBlKGl0ZXIpLAorICAgICAgICAgICAgICAgICAgICBTdHJvbmc8RXhlY3V0YWJsZUJhc2U+KHZt
LCBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgU3Ry
b25nPFVubGlua2VkQ29kZUJsb2NrPih2bSwgY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygp
KSwKKyAgICAgICAgICAgICAgICAgICAgY29kZUJsb2NrLT5zb3VyY2UoKSwKKyAgICAgICAgICAg
ICAgICAgICAgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+bGluZU5vKCksCisgICAgICAg
ICAgICAgICAgICAgIGNvZGVCbG9jay0+Zmlyc3RMaW5lQ29sdW1uT2Zmc2V0KCksCisgICAgICAg
ICAgICAgICAgICAgIGNvZGVCbG9jay0+c291cmNlT2Zmc2V0KCksCisgICAgICAgICAgICAgICAg
ICAgIGl0ZXItPmJ5dGVjb2RlT2Zmc2V0KCksCisgICAgICAgICAgICAgICAgICAgIGl0ZXItPnNv
dXJjZVVSTCgpCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBtX3Jlc3VsdHMu
YXBwZW5kKHMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdGFja0Zy
YW1lIHMgPSB7IFN0cm9uZzxKU09iamVjdD4odm0sIGl0ZXItPmNhbGxlZSgpKSwgU3RhY2tGcmFt
ZU5hdGl2ZUNvZGUsIFN0cm9uZzxFeGVjdXRhYmxlQmFzZT4oKSwgU3Ryb25nPFVubGlua2VkQ29k
ZUJsb2NrPigpLCAwLCAwLCAwLCAwLCAwLCBTdHJpbmcoKX07CisgICAgICAgICAgICAgICAgbV9y
ZXN1bHRzLmFwcGVuZChzKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIG1fcmVt
YWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUtLTsKKyAgICAgICAgICAgIHJldHVybiBTdGFj
a0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU3RhY2tJdGVy
YXRvcjo6RG9uZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVk0mIG1fdm07CisgICAgVmVjdG9y
PFN0YWNrRnJhbWU+JiBtX3Jlc3VsdHM7CisgICAgc2l6ZV90IG1fcmVtYWluaW5nQ2FwYWNpdHlG
b3JGcmFtZUNhcHR1cmU7Cit9OworCiB2b2lkIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKFZl
Y3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKIHsKICAgICBW
TSYgdm0gPSBtX3ZtOwpAQCAtNDgxLDMwICs1NTAsMTMgQEAgdm9pZCBJbnRlcnByZXRlcjo6Z2V0
U3RhY2tUcmFjZShWZWN0b3I8UwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gdm0udG9wQ2Fs
bEZyYW1lOwogICAgIGlmICghY2FsbEZyYW1lKQogICAgICAgICByZXR1cm47CisKKyAgICBHZXRT
dGFja1RyYWNlRnVuY3RvciBmdW5jdG9yKHZtLCByZXN1bHRzLCBtYXhTdGFja1NpemUpOwogICAg
IFN0YWNrSXRlcmF0b3IgaXRlciA9IGNhbGxGcmFtZS0+YmVnaW4oKTsKLSAgICBmb3IgKDsgaXRl
ciAhPSBjYWxsRnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0tOyArK2l0ZXIpIHsKLSAgICAg
ICAgaWYgKGl0ZXItPmlzSlNGcmFtZSgpKSB7Ci0gICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IGl0ZXItPmNvZGVCbG9jaygpOwotICAgICAgICAgICAgU3RhY2tGcmFtZSBzID0gewot
ICAgICAgICAgICAgICAgIFN0cm9uZzxKU09iamVjdD4odm0sIGl0ZXItPmNhbGxlZSgpKSwKLSAg
ICAgICAgICAgICAgICBnZXRTdGFja0ZyYW1lQ29kZVR5cGUoaXRlciksCi0gICAgICAgICAgICAg
ICAgU3Ryb25nPEV4ZWN1dGFibGVCYXNlPih2bSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KSksCi0gICAgICAgICAgICAgICAgU3Ryb25nPFVubGlua2VkQ29kZUJsb2NrPih2bSwgY29kZUJs
b2NrLT51bmxpbmtlZENvZGVCbG9jaygpKSwKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2stPnNv
dXJjZSgpLAotICAgICAgICAgICAgICAgIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmxp
bmVObygpLAotICAgICAgICAgICAgICAgIGNvZGVCbG9jay0+Zmlyc3RMaW5lQ29sdW1uT2Zmc2V0
KCksCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLT5zb3VyY2VPZmZzZXQoKSwKLSAgICAgICAg
ICAgICAgICBpdGVyLT5ieXRlY29kZU9mZnNldCgpLAotICAgICAgICAgICAgICAgIGl0ZXItPnNv
dXJjZVVSTCgpCi0gICAgICAgICAgICB9OwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocyk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBTdGFja0ZyYW1lIHMgPSB7IFN0cm9uZzxK
U09iamVjdD4odm0sIGl0ZXItPmNhbGxlZSgpKSwgU3RhY2tGcmFtZU5hdGl2ZUNvZGUsIFN0cm9u
ZzxFeGVjdXRhYmxlQmFzZT4oKSwgU3Ryb25nPFVubGlua2VkQ29kZUJsb2NrPigpLCAwLCAwLCAw
LCAwLCAwLCBTdHJpbmcoKX07Ci0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChzKTsKLSAgICAg
ICAgfQotICAgIH0KKyAgICBpdGVyLml0ZXJhdGUoZnVuY3Rvcik7CiB9Ci1KU1N0cmluZyogSW50
ZXJwcmV0ZXI6OiBzdGFja1RyYWNlQXNTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBWZWN0b3I8U3Rh
Y2tGcmFtZT4gc3RhY2tUcmFjZSkKKworSlNTdHJpbmcqIEludGVycHJldGVyOjpzdGFja1RyYWNl
QXNTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBWZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZSkK
IHsKICAgICAvLyBGSVhNRTogSlNTdHJpbmdKb2luZXIgY291bGQgYmUgbW9yZSBlZmZpY2llbnQg
dGhhbiBTdHJpbmdCdWlsZGVyIGhlcmUuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAt
NTE2LDYgKzU2OCw0NCBAQCBKU1N0cmluZyogSW50ZXJwcmV0ZXI6OiBzdGFja1RyYWNlQXNTdHJp
CiAgICAgcmV0dXJuIGpzU3RyaW5nKCZleGVjLT52bSgpLCBidWlsZGVyLnRvU3RyaW5nKCkpOwog
fQogCitjbGFzcyBVbndpbmRGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBVbndpbmRGdW5jdG9yKENh
bGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUsIGJvb2wgaXNUZXJt
aW5hdGlvbiwgQ29kZUJsb2NrKiYgY29kZUJsb2NrLCBIYW5kbGVySW5mbyomIGhhbmRsZXIpCisg
ICAgICAgIDogbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQorICAgICAgICAsIG1fZXhjZXB0aW9uVmFs
dWUoZXhjZXB0aW9uVmFsdWUpCisgICAgICAgICwgbV9pc1Rlcm1pbmF0aW9uKGlzVGVybWluYXRp
b24pCisgICAgICAgICwgbV9jb2RlQmxvY2soY29kZUJsb2NrKQorICAgICAgICAsIG1faGFuZGxl
cihoYW5kbGVyKQorICAgIHsKKyAgICB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3Bl
cmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgVk0mIHZtID0gbV9j
YWxsRnJhbWUtPnZtKCk7CisgICAgICAgIG1fY2FsbEZyYW1lID0gaXRlci0+Y2FsbEZyYW1lKCk7
CisgICAgICAgIG1fY29kZUJsb2NrID0gaXRlci0+Y29kZUJsb2NrKCk7CisgICAgICAgIHVuc2ln
bmVkIGJ5dGVjb2RlT2Zmc2V0ID0gaXRlci0+Ynl0ZWNvZGVPZmZzZXQoKTsKKworICAgICAgICBp
ZiAobV9pc1Rlcm1pbmF0aW9uIHx8ICEobV9oYW5kbGVyID0gbV9jb2RlQmxvY2stPmhhbmRsZXJG
b3JCeXRlY29kZU9mZnNldChieXRlY29kZU9mZnNldCkpKSB7CisgICAgICAgIGlmICghdW53aW5k
Q2FsbEZyYW1lKGl0ZXIsIG1fZXhjZXB0aW9uVmFsdWUpKSB7CisgICAgICAgICAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgICAgICAg
ICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChtX2NhbGxGcmFtZSk7CisgICAgICAgICAg
ICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6RG9uZTsKKworICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yOjpDb250aW51ZTsKK30KKworcHJpdmF0ZToKKyAgICBDYWxsRnJhbWUqJiBtX2NhbGxGcmFt
ZTsKKyAgICBKU1ZhbHVlJiBtX2V4Y2VwdGlvblZhbHVlOworICAgIGJvb2wgbV9pc1Rlcm1pbmF0
aW9uOworICAgIENvZGVCbG9jayomIG1fY29kZUJsb2NrOworICAgIEhhbmRsZXJJbmZvKiYgbV9o
YW5kbGVyOworfTsKKwogTkVWRVJfSU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dW53
aW5kKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUsIHVuc2ln
bmVkIGJ5dGVjb2RlT2Zmc2V0KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZy
YW1lLT5jb2RlQmxvY2soKTsKQEAgLTU0OSwyMiArNjM5LDEzIEBAIE5FVkVSX0lOTElORSBIYW5k
bGVySW5mbyogSW50ZXJwcmV0ZXI6OnUKICAgICBIYW5kbGVySW5mbyogaGFuZGxlciA9IDA7CiAg
ICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIEFTU0VSVChjYWxsRnJhbWUgPT0gdm0u
dG9wQ2FsbEZyYW1lKTsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgaXRlciA9IGNhbGxGcmFtZS0+
YmVnaW4oKTsgaXRlciAhPSBjYWxsRnJhbWUtPmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgY2Fs
bEZyYW1lID0gaXRlci0+Y2FsbEZyYW1lKCk7Ci0gICAgICAgIGNvZGVCbG9jayA9IGl0ZXItPmNv
ZGVCbG9jaygpOwotICAgICAgICBieXRlY29kZU9mZnNldCA9IGl0ZXItPmJ5dGVjb2RlT2Zmc2V0
KCk7Ci0KLSAgICAgICAgaWYgKGlzVGVybWluYXRpb24gfHwgIShoYW5kbGVyID0gY29kZUJsb2Nr
LT5oYW5kbGVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpKSkgewotICAgICAgICAg
ICAgaWYgKCF1bndpbmRDYWxsRnJhbWUoaXRlciwgZXhjZXB0aW9uVmFsdWUpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxl
cigpKQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGNhbGxG
cmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIFVud2luZEZ1bmN0b3IgZnVu
Y3RvcihjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCBpc1Rlcm1pbmF0aW9uLCBjb2RlQmxvY2ss
IGhhbmRsZXIpOworICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGNhbGxGcmFtZS0+YmVnaW4oKTsK
KyAgICBpdGVyLml0ZXJhdGUoZnVuY3Rvcik7CisgICAgaWYgKCFoYW5kbGVyKQorICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSBjYWxsRnJhbWUt
PnZtKCkuZW5hYmxlZFByb2ZpbGVyKCkpCisgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQogICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53
aW5kKGNhbGxGcmFtZSk7CiAKICAgICAvLyBVbndpbmQgdGhlIHNjb3BlIGNoYWluIHdpdGhpbiB0
aGUgZXhjZXB0aW9uIGhhbmRsZXIncyBjYWxsIGZyYW1lLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgJKHJldmlzaW9uIDE1NDkwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjIsNyArMjYyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpT
VmFsdWUgZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJik7CiAKICAgICAgICAgdm9pZCBnZXRTdGFj
a1RyYWNlKFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwotICAgICAgICBORVZFUl9JTkxJ
TkUgYm9vbCB1bndpbmRDYWxsRnJhbWUoU3RhY2tJdGVyYXRvciYsIEpTVmFsdWUpOwogCiAgICAg
ICAgIHZvaWQgZHVtcFJlZ2lzdGVycyhDYWxsRnJhbWUqKTsKICAgICAgICAgCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrSXRlcmF0b3IuY3Bw
CShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
U3RhY2tJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDExICs0NCwxMSBAQCBTdGFj
a0l0ZXJhdG9yOjpTdGFja0l0ZXJhdG9yKENhbGxGcmFtZSogCiAKIHNpemVfdCBTdGFja0l0ZXJh
dG9yOjpudW1iZXJPZkZyYW1lcygpCiB7Ci0gICAgaW50IHNhdmVkRnJhbWVJbmRleCA9IG1fZnJh
bWVJbmRleDsKKyAgICBpbnQgc2F2ZWRGcmFtZUluZGV4ID0gbV9mcmFtZS5pbmRleCgpOwogICAg
IHJlc2V0SXRlcmF0b3IoKTsKICAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSkKICAgICAg
ICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsKLSAgICBzaXplX3QgbnVtYmVyT2ZGcmFtZXMg
PSBtX2ZyYW1lSW5kZXg7CisgICAgc2l6ZV90IG51bWJlck9mRnJhbWVzID0gbV9mcmFtZS5pbmRl
eCgpOwogCiAgICAgcmVzZXRJdGVyYXRvcigpOwogICAgIGdvdG9GcmFtZUF0SW5kZXgoc2F2ZWRG
cmFtZUluZGV4KTsKQEAgLTU4LDcgKzU4LDcgQEAgc2l6ZV90IFN0YWNrSXRlcmF0b3I6Om51bWJl
ck9mRnJhbWVzKCkKIAogdm9pZCBTdGFja0l0ZXJhdG9yOjpnb3RvRnJhbWVBdEluZGV4KHNpemVf
dCBpbmRleCkKIHsKLSAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFtZUlu
ZGV4ICE9IGluZGV4KSkKKyAgICB3aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSAmJiAobV9mcmFt
ZS5pbmRleCgpICE9IGluZGV4KSkKICAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsK
IH0KIApAQCAtODMsMzEgKzgzLDE1IEBAIHZvaWQgU3RhY2tJdGVyYXRvcjo6Z290b05leHRGcmFt
ZVdpdGhGaWwKICAgICAgICAgaWYgKCFtX2ZyYW1lLmNhbGxGcmFtZSgpIHx8ICFtX2ZpbHRlciB8
fCAhbV9maWx0ZXIoJm1fZnJhbWUpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIG1f
ZnJhbWVJbmRleCsrOworICAgIG1fZnJhbWUubV9pbmRleCsrOwogfQogCiB2b2lkIFN0YWNrSXRl
cmF0b3I6OnJlc2V0SXRlcmF0b3IoKQogewotICAgIG1fZnJhbWVJbmRleCA9IDA7CisgICAgbV9m
cmFtZS5tX2luZGV4ID0gMDsKICAgICByZWFkRnJhbWUobV9zdGFydEZyYW1lKTsKIH0KIAotU3Rh
Y2tJdGVyYXRvciBTdGFja0l0ZXJhdG9yOjplbmQoKQotewotICAgIHJldHVybiBTdGFja0l0ZXJh
dG9yKDAsIDApOwotfQotCi12b2lkIFN0YWNrSXRlcmF0b3I6OmZpbmQoSlNGdW5jdGlvbiogZnVu
Y3Rpb25PYmopCi17Ci0gICAgQVNTRVJUKGZ1bmN0aW9uT2JqKTsKLSAgICBKU09iamVjdCogdGFy
Z2V0Q2FsbGVlID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KGZ1bmN0aW9uT2JqKTsKLSAgICB3
aGlsZSAobV9mcmFtZS5jYWxsRnJhbWUoKSkgewotICAgICAgICBpZiAobV9mcmFtZS5jYWxsZWUo
KSA9PSB0YXJnZXRDYWxsZWUpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZ290b05leHRG
cmFtZVdpdGhGaWx0ZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgU3RhY2tJdGVyYXRvcjo6cmVhZEZy
YW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIEFTU0VSVCghY2FsbEZyYW1lLT5oYXNI
b3N0Q2FsbEZyYW1lRmxhZygpKTsKQEAgLTQwNCw4ICszODgsMTMgQEAgdm9pZCBTdGFja0l0ZXJh
dG9yOjpGcmFtZTo6cHJpbnQoaW50IGluZAogewogICAgIGludCBpID0gaW5kZW50TGV2ZWw7CiAK
KyAgICBpZiAoIXRoaXMtPmNhbGxGcmFtZSgpKSB7CisgICAgICAgIHByaW50aWYoaSwgImZyYW1l
IDB4MFxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDb2RlQmxvY2sqIGNvZGVC
bG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwotICAgIHByaW50aWYoaSwgImZyYW1lICVwIHtcbiIs
IHRoaXMpOworICAgIHByaW50aWYoaSwgImZyYW1lICVwIHtcbiIsIHRoaXMtPmNhbGxGcmFtZSgp
KTsKIAogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gbV9jYWxsRnJhbWU7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsZXJGcmFtZSA9IHRoaXMtPmNhbGxlckZyYW1lKCk7CkBAIC00NjAsNiArNDQ5LDgg
QEAgdm9pZCBTdGFja0l0ZXJhdG9yOjpGcmFtZTo6cHJpbnQoaW50IGluZAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKICNpZm5kZWYgTkRFQlVHCit1c2luZyBKU0M6OlN0YWNrSXRlcmF0b3I7CisKIC8v
IEZvciBkZWJ1Z2dpbmcgdXNlCiB2b2lkIGRlYnVnUHJpbnRDYWxsRnJhbWUoSlNDOjpDYWxsRnJh
bWUqKTsKIHZvaWQgZGVidWdQcmludFN0YWNrKEpTQzo6Q2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUp
OwpAQCAtNDY4LDE2ICs0NTksMjUgQEAgdm9pZCBkZWJ1Z1ByaW50Q2FsbEZyYW1lKEpTQzo6Q2Fs
bEZyYW1lKgogewogICAgIGlmICghY2FsbEZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgSlND
OjpTdGFja0l0ZXJhdG9yIGl0ZXIgPSBjYWxsRnJhbWUtPmJlZ2luKCk7CisgICAgU3RhY2tJdGVy
YXRvciBpdGVyID0gY2FsbEZyYW1lLT5iZWdpbigpOwogICAgIGl0ZXItPnByaW50KDIpOwogfQog
CitjbGFzcyBEZWJ1Z1ByaW50U3RhY2tGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBTdGFja0l0ZXJh
dG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAg
ICAgaXRlci0+cHJpbnQoMik7CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51
ZTsKKyAgICB9Cit9OworCiB2b2lkIGRlYnVnUHJpbnRTdGFjayhKU0M6OkNhbGxGcmFtZSogdG9w
Q2FsbEZyYW1lKQogewogICAgIGlmICghdG9wQ2FsbEZyYW1lKQogICAgICAgICByZXR1cm47Ci0g
ICAgSlNDOjpTdGFja0l0ZXJhdG9yIGl0ZXIgPSB0b3BDYWxsRnJhbWUtPmJlZ2luKCk7Ci0gICAg
Zm9yICg7IGl0ZXIgIT0gdG9wQ2FsbEZyYW1lLT5lbmQoKTsgKytpdGVyKQotICAgICAgICBpdGVy
LT5wcmludCgyKTsKKyAgICBEZWJ1Z1ByaW50U3RhY2tGdW5jdG9yIGZ1bmN0b3I7CisgICAgU3Rh
Y2tJdGVyYXRvciBpdGVyID0gdG9wQ2FsbEZyYW1lLT5iZWdpbigpOworICAgIGl0ZXIuaXRlcmF0
ZShmdW5jdG9yKTsKIH0KICNlbmRpZiAvLyAhTkRFQlVHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmgJKHJldmlzaW9uIDE1NDkw
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja0l0ZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgTmF0
aXZlCiAgICAgICAgIH07CiAKKyAgICAgICAgc2l6ZV90IGluZGV4KCkgY29uc3QgeyByZXR1cm4g
bV9pbmRleDsgfQogICAgICAgICBzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSBj
b25zdCB7IHJldHVybiBtX2FyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOyB9CiAgICAgICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxlckZyYW1lOyB9CiAg
ICAgICAgIEpTT2JqZWN0KiBjYWxsZWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxlZTsgfQpAQCAt
ODksNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgcmV0cmlldmVFeHByZXNzaW9uSW5m
byhpbnQmIGRpdm90LCBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVuZE9mZnNldCwgdW5zaWduZWQm
IGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pOwogICAgICAgICB2b2lkIHNldFRvRW5kKCk7CiAKKyAg
ICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVfdCBtX2FyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzOwogICAgICAgICBDYWxsRnJhbWUqIG1fY2FsbGVyRnJhbWU7CiAgICAgICAgIEpT
T2JqZWN0KiBtX2NhbGxlZTsKQEAgLTEwNiwyMCArMTA4LDMyIEBAIHB1YmxpYzoKIAogICAgIHR5
cGVkZWYgYm9vbCAoKkZyYW1lRmlsdGVyKShGcmFtZSopOwogCisgICAgZW51bSBTdGF0dXMgewor
ICAgICAgICBDb250aW51ZSA9IDAsCisgICAgICAgIERvbmUgPSAxCisgICAgfTsKKworICAgIC8v
IFN0YWNrSXRlcmF0b3I6Oml0ZXJhdGUoKSBleHBlY3RzIGEgRnVuY3RvciB0aGF0IGltcGxlbWVu
dHMgdGhlIGZvbGxvd2luZyBtZXRob2Q6CisgICAgLy8gICAgIFN0YXR1cyBvcGVyYXRvcigpKFN0
YWNrSXRlcmF0b3ImKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGl0
ZXJhdGUoRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIHdoaWxlIChtX2ZyYW1lLmNh
bGxGcmFtZSgpKSB7CisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gZnVuY3RvcigqdGhpcyk7
CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IENvbnRpbnVlKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgZ290b05leHRGcmFtZVdpdGhGaWx0ZXIoKTsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBudW1iZXJPZkZyYW1lcygpOwog
CiAgICAgRnJhbWUmIG9wZXJhdG9yKigpIHsgcmV0dXJuIG1fZnJhbWU7IH0KICAgICBBTFdBWVNf
SU5MSU5FIEZyYW1lKiBvcGVyYXRvci0+KCkgeyByZXR1cm4gJm1fZnJhbWU7IH0KIAotICAgIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU3RhY2tJdGVyYXRvciYpOwotICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBTdGFja0l0ZXJhdG9yJiBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7IH0KLSAgICB2b2lkIG9wZXJhdG9yKysoKSB7IGdvdG9OZXh0RnJhbWVXaXRoRmlsdGVy
KCk7IH0KLSAgICB2b2lkIGZpbmQoSlNGdW5jdGlvbiopOwotCiBwcml2YXRlOgogICAgIEpTX0VY
UE9SVF9QUklWQVRFIFN0YWNrSXRlcmF0b3IoQ2FsbEZyYW1lKiBzdGFydEZyYW1lLCBGcmFtZUZp
bHRlciA9IDApOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0YWNrSXRlcmF0b3Ig
ZW5kKCk7CiAgICAgdm9pZCBnb3RvRnJhbWVBdEluZGV4KHNpemVfdCBmcmFtZUluZGV4KTsKICAg
ICB2b2lkIGdvdG9OZXh0RnJhbWUoKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGdvdG9O
ZXh0RnJhbWVXaXRoRmlsdGVyKCk7CkBAIC0xMzIsMjIgKzE0NiwxMiBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBDYWxsRnJhbWUqIG1fc3RhcnRGcmFtZTsKLSAgICBzaXplX3QgbV9mcmFtZUlu
ZGV4OwogICAgIEZyYW1lRmlsdGVyIG1fZmlsdGVyOwogICAgIEZyYW1lIG1fZnJhbWU7CiAKICAg
ICBmcmllbmQgY2xhc3MgRXhlY1N0YXRlOwogfTsKIAotaW5saW5lIGJvb2wgU3RhY2tJdGVyYXRv
cjo6b3BlcmF0b3I9PShjb25zdCBTdGFja0l0ZXJhdG9yJiBvdGhlcikKLXsKLSAgICByZXR1cm4g
KG1fZnJhbWUuY2FsbEZyYW1lKCkgPT0gb3RoZXIubV9mcmFtZS5jYWxsRnJhbWUoKSkKLSNpZiBF
TkFCTEUoREZHX0pJVCkKLSAgICAgICAgJiYgKG1fZnJhbWUuaW5saW5lQ2FsbEZyYW1lKCkgPT0g
b3RoZXIubV9mcmFtZS5pbmxpbmVDYWxsRnJhbWUoKSkKLSNlbmRpZgotICAgICAgICA7IAotfQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFN0YWNrSXRlcmF0b3JfaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcAkocmV2aXNpb24gMTU0OTAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywyMCArNTcsNTQgQEAg
UHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcihFeGVjUwogICAgICAgICBhZGRQYXJl
bnRGb3JDb25zb2xlU3RhcnQoZXhlYyk7CiB9CiAKK2NsYXNzIEFkZFBhcmVudEZvckNvbnNvbGVT
dGFydEZ1bmN0b3IgeworcHVibGljOgorICAgIEFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0
b3IoRXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBoZWFkLCBSZWZQdHI8UHJv
ZmlsZU5vZGU+JiBjdXJyZW50Tm9kZSkKKyAgICAgICAgOiBtX2V4ZWMoZXhlYykKKyAgICAgICAg
LCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQorICAgICAgICAsIG1fZm91bmRQYXJlbnQo
ZmFsc2UpCisgICAgICAgICwgbV9oZWFkKGhlYWQpCisgICAgICAgICwgbV9jdXJyZW50Tm9kZShj
dXJyZW50Tm9kZSkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBmb3VuZFBhcmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZm91bmRQYXJlbnQ7IH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBv
cGVyYXRvcigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBpZiAoIW1faGFz
U2tpcHBlZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUg
PSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAg
ICAgICB9CisKKyAgICAgICAgdW5zaWduZWQgbGluZSA9IDA7CisgICAgICAgIHVuc2lnbmVkIHVu
dXNlZENvbHVtbiA9IDA7CisgICAgICAgIGl0ZXItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUs
IHVudXNlZENvbHVtbik7CisgICAgICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3Jl
YXRlKG1fZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKG1fZXhlYywg
aXRlci0+Y2FsbGVlKCksIGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lKSwgbV9oZWFkLmdldCgpLCBt
X2hlYWQuZ2V0KCkpOworICAgICAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50Tm9kZS5n
ZXQoKSk7CisKKyAgICAgICAgbV9mb3VuZFBhcmVudCA9IHRydWU7CisgICAgICAgIHJldHVybiBT
dGFja0l0ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBFeGVjU3RhdGUqIG1f
ZXhlYzsKKyAgICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJhbWU7CisgICAgYm9vbCBtX2ZvdW5k
UGFyZW50OyAKKyAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBtX2hlYWQ7CisgICAgUmVmUHRyPFBy
b2ZpbGVOb2RlPiYgbV9jdXJyZW50Tm9kZTsKK307CisKIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6
YWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBBZGRQYXJl
bnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yIGZ1bmN0b3IoZXhlYywgbV9oZWFkLCBtX2N1cnJlbnRO
b2RlKTsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRl
cjsKLSAgICBpZiAoaXRlciA9PSBleGVjLT5lbmQoKSkgeworICAgIGl0ZXIuaXRlcmF0ZShmdW5j
dG9yKTsKKworICAgIGlmICghZnVuY3Rvci5mb3VuZFBhcmVudCgpKSB7CiAgICAgICAgIG1fY3Vy
cmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKGV4ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVh
dGVDYWxsSWRlbnRpZmllcihleGVjLCBKU1ZhbHVlKCksIFN0cmluZygpLCAwKSwgbV9oZWFkLmdl
dCgpLCBtX2hlYWQuZ2V0KCkpOwogICAgICAgICBtX2hlYWQtPmluc2VydE5vZGUobV9jdXJyZW50
Tm9kZS5nZXQoKSk7Ci0gICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdW5zaWduZWQgbGluZSA9
IDA7Ci0gICAgdW5zaWduZWQgdW51c2VkQ29sdW1uID0gMDsKLSAgICBpdGVyLT5jb21wdXRlTGlu
ZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4pOwotICAgIG1fY3VycmVudE5vZGUgPSBQcm9m
aWxlTm9kZTo6Y3JlYXRlKGV4ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmll
cihleGVjLCBpdGVyLT5jYWxsZWUoKSwgaXRlci0+c291cmNlVVJMKCksIGxpbmUpLCBtX2hlYWQu
Z2V0KCksIG1faGVhZC5nZXQoKSk7Ci0gICAgbV9oZWFkLT5pbnNlcnROb2RlKG1fY3VycmVudE5v
ZGUuZ2V0KCkpOwogfQogCiBjb25zdCBTdHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRpdGxlKCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwCShyZXZpc2lvbiAxNTQ5MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDEwICsxODIsMzcgQEAgQ2FsbFR5
cGUgSlNGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKgogICAgIHJldHVybiBDYWxsVHlwZUpT
OwogfQogCitjbGFzcyBSZXRyaWV2ZUFyZ3VtZW50c0Z1bmN0b3IgeworcHVibGljOgorICAgIFJl
dHJpZXZlQXJndW1lbnRzRnVuY3RvcihKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKKyAgICAgICAg
OiBtX3RhcmdldENhbGxlZShqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZnVuY3Rpb25PYmopKQor
ICAgICAgICAsIG1fcmVzdWx0KGpzTnVsbCgpKQorICAgIHsKKyAgICB9CisKKyAgICBKU1ZhbHVl
IHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9CisKKyAgICBTdGFja0l0ZXJhdG9y
OjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAg
SlNPYmplY3QqIGNhbGxlZSA9IGl0ZXItPmNhbGxlZSgpOworICAgICAgICBpZiAoY2FsbGVlICE9
IG1fdGFyZ2V0Q2FsbGVlKQorICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRp
bnVlOworCisgICAgICAgIG1fcmVzdWx0ID0gSlNWYWx1ZShpdGVyLT5hcmd1bWVudHMoKSk7Cisg
ICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBKU09iamVjdCogbV90YXJnZXRDYWxsZWU7CisgICAgSlNWYWx1ZSBtX3Jlc3VsdDsKK307CisK
IHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5j
dGlvbiogZnVuY3Rpb25PYmopCiB7Ci0gICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+Zmlu
ZChmdW5jdGlvbk9iaik7Ci0gICAgcmV0dXJuIGl0ZXIgIT0gZXhlYy0+ZW5kKCkgPyBKU1ZhbHVl
KGl0ZXItPmFyZ3VtZW50cygpKSA6IGpzTnVsbCgpOworICAgIFJldHJpZXZlQXJndW1lbnRzRnVu
Y3RvciBmdW5jdG9yKGZ1bmN0aW9uT2JqKTsKKyAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVj
LT5iZWdpbigpOworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICByZXR1cm4gZnVuY3Rv
ci5yZXN1bHQoKTsKIH0KIAogSlNWYWx1ZSBKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCkBAIC0yMDMsMTIg
KzIzMCw0OCBAQCBzdGF0aWMgYm9vbCBza2lwT3ZlckJvdW5kRnVuY3Rpb25zKFN0YWNrCiAgICAg
cmV0dXJuIHNob3VsZFNraXA7CiB9CiAKK2NsYXNzIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5j
dG9yIHsKK3B1YmxpYzoKKyAgICBSZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3RvcihKU0Z1bmN0
aW9uKiBmdW5jdGlvbk9iaikKKyAgICAgICAgOiBtX3RhcmdldENhbGxlZShqc0R5bmFtaWNDYXN0
PEpTT2JqZWN0Kj4oZnVuY3Rpb25PYmopKQorICAgICAgICAsIG1faGFzRm91bmRGcmFtZShmYWxz
ZSkKKyAgICAgICAgLCBtX2hhc1NraXBwZWRUb0NhbGxlckZyYW1lKGZhbHNlKQorICAgICAgICAs
IG1fcmVzdWx0KGpzTnVsbCgpKQorICAgIHsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJlc3VsdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMg
b3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgSlNPYmplY3Qq
IGNhbGxlZSA9IGl0ZXItPmNhbGxlZSgpOworICAgICAgICBpZiAoIW1faGFzRm91bmRGcmFtZSAm
JiAoY2FsbGVlICE9IG1fdGFyZ2V0Q2FsbGVlKSkKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0
ZXJhdG9yOjpDb250aW51ZTsKKworICAgICAgICBtX2hhc0ZvdW5kRnJhbWUgPSB0cnVlOworICAg
ICAgICBpZiAoIW1faGFzU2tpcHBlZFRvQ2FsbGVyRnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFz
U2tpcHBlZFRvQ2FsbGVyRnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRl
cmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNhbGxlZSkKKyAgICAg
ICAgICAgIG1fcmVzdWx0ID0gY2FsbGVlOworICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6
RG9uZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNPYmplY3QqIG1fdGFyZ2V0Q2FsbGVlOwor
ICAgIGJvb2wgbV9oYXNGb3VuZEZyYW1lOworICAgIGJvb2wgbV9oYXNTa2lwcGVkVG9DYWxsZXJG
cmFtZTsKKyAgICBKU1ZhbHVlIG1fcmVzdWx0OworfTsKKwogc3RhdGljIEpTVmFsdWUgcmV0cmll
dmVDYWxsZXJGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2Jq
KQogewotICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmZpbmQoZnVuY3Rpb25PYmosIHNr
aXBPdmVyQm91bmRGdW5jdGlvbnMpOwotICAgIGlmIChpdGVyICE9IGV4ZWMtPmVuZCgpKQotICAg
ICAgICArK2l0ZXI7Ci0gICAgcmV0dXJuIGl0ZXIgIT0gZXhlYy0+ZW5kKCkgJiYgaXRlci0+Y2Fs
bGVlKCkgPyBpdGVyLT5jYWxsZWUoKSA6IGpzTnVsbCgpOworICAgIFJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb25GdW5jdG9yIGZ1bmN0b3IoZnVuY3Rpb25PYmopOworICAgIFN0YWNrSXRlcmF0b3IgaXRl
ciA9IGV4ZWMtPmJlZ2luKHNraXBPdmVyQm91bmRGdW5jdGlvbnMpOworICAgIGl0ZXIuaXRlcmF0
ZShmdW5jdG9yKTsKKyAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAogSlNWYWx1ZSBK
U0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCShyZXZpc2lvbiAxNTQ5MDIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwNiw2ICs3MDYsMzYgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogfQogCitjbGFzcyBHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yIHsKK3B1YmxpYzoK
KyAgICBHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yKEpTT2JqZWN0KiB0aGlzT2JqZWN0KQor
ICAgICAgICA6IG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV90aGlz
T2JqZWN0KHRoaXNPYmplY3QpCisgICAgICAgICwgbV9yZXN1bHQoSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpKQorICAgIHsKKyAgICB9CisKKyAgICBFbmNvZGVkSlNWYWx1ZSByZXN1bHQo
KSB7IHJldHVybiBtX3Jlc3VsdDsgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJh
dG9yKCkoU3RhY2tJdGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNTa2lw
cGVkRmlyc3RGcmFtZSkgeworICAgICAgICAgICAgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRy
dWU7CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVyYXRvcjo6Q29udGludWU7CisgICAgICAg
IH0KKworICAgICAgICBpZiAobV90aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGl0ZXItPmNh
bGxGcmFtZSgpKSkKKyAgICAgICAgICAgIG1fcmVzdWx0ID0gSlNWYWx1ZTo6ZW5jb2RlKG1fdGhp
c09iamVjdC0+cHJvdG90eXBlKCkpOworCisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpE
b25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIG1faGFzU2tpcHBlZEZpcnN0RnJhbWU7
CisgICAgSlNPYmplY3QqIG1fdGhpc09iamVjdDsKKyAgICBFbmNvZGVkSlNWYWx1ZSBtX3Jlc3Vs
dDsKK307CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8SlNPYmplY3QqPihleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgTm90U3Ry
aWN0TW9kZSkpOwpAQCAtNzEzLDE0ICs3NDMsNDAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnbG9iYWxGdW5jUAogICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKS5zeW50aGVzaXplUHJvdG90eXBlKGV4ZWMp
KTsKIAorICAgIEdsb2JhbEZ1bmNQcm90b0dldHRlckZ1bmN0b3IgZnVuY3Rvcih0aGlzT2JqZWN0
KTsKICAgICBTdGFja0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRlcjsK
LSAgICBpZiAoKGl0ZXIgPT0gZXhlYy0+ZW5kKCkpIHx8ICF0aGlzT2JqZWN0LT5hbGxvd3NBY2Nl
c3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVj
dC0+cHJvdG90eXBlKCkpOworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICByZXR1cm4g
ZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAorY2xhc3MgR2xvYmFsRnVuY1Byb3RvU2V0dGVyRnVuY3Rv
ciB7CitwdWJsaWM6CisgICAgR2xvYmFsRnVuY1Byb3RvU2V0dGVyRnVuY3RvcihKU09iamVjdCog
dGhpc09iamVjdCkKKyAgICAgICAgOiBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQorICAg
ICAgICAsIG1fYWxsb3dzQWNjZXNzKGZhbHNlKQorICAgICAgICAsIG1fdGhpc09iamVjdCh0aGlz
T2JqZWN0KQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGFsbG93c0FjY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dzQWNjZXNzOyB9CisKKyAgICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3Bl
cmF0b3IoKShTdGFja0l0ZXJhdG9yJiBpdGVyKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc1Nr
aXBwZWRGaXJzdEZyYW1lKSB7CisgICAgICAgICAgICBtX2hhc1NraXBwZWRGaXJzdEZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpDb250aW51ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIG1fYWxsb3dzQWNjZXNzID0gbV90aGlzT2JqZWN0LT5hbGxvd3NBY2Nl
c3NGcm9tKGl0ZXItPmNhbGxGcmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6
OkRvbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFt
ZTsKKyAgICBib29sIG1fYWxsb3dzQWNjZXNzOworICAgIEpTT2JqZWN0KiBtX3RoaXNPYmplY3Q7
Cit9OworCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRl
cihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50
KDApOwpAQCAtNzMxLDkgKzc4NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGds
b2JhbEZ1bmNQCiAgICAgaWYgKCF0aGlzT2JqZWN0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCisgICAgR2xvYmFsRnVuY1Byb3RvU2V0dGVyRnVuY3Rv
ciBmdW5jdG9yKHRoaXNPYmplY3QpOwogICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGV4ZWMtPmJl
Z2luKCk7Ci0gICAgKytpdGVyOwotICAgIGlmICgoaXRlciA9PSBleGVjLT5lbmQoKSkgfHwgIXRo
aXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkpKQorICAgIGl0ZXIu
aXRlcmF0ZShmdW5jdG9yKTsKKyAgICBpZiAoIWZ1bmN0b3IuYWxsb3dzQWNjZXNzKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICAvLyBTZXR0
aW5nIF9fcHJvdG9fXyB0byBhIG5vbi1vYmplY3QsIG5vbi1udWxsIHZhbHVlIGlzIHNpbGVudGx5
IGlnbm9yZWQgdG8gbWF0Y2ggTW96aWxsYS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE1NDkwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTMxLDE2ICsxMzEsNDQgQEAgQ2FsbFR5cGUgT2JqZWN0Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKAogICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKK2NsYXNz
IE9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2ZGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBP
YmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVuY3RvcihKU09iamVjdCogb2JqZWN0KQor
ICAgICAgICA6IG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCisgICAgICAgICwgbV9vYmpl
Y3Qob2JqZWN0KQorICAgICAgICAsIG1fcmVzdWx0KEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKSkKKyAgICB7CisgICAgfQorCisgICAgRW5jb2RlZEpTVmFsdWUgcmVzdWx0KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXN1bHQ7IH0KKworICAgIFN0YWNrSXRlcmF0b3I6OlN0YXR1cyBvcGVyYXRv
cigpKFN0YWNrSXRlcmF0b3ImIGl0ZXIpCisgICAgeworICAgICAgICBpZiAoIW1faGFzU2tpcHBl
ZEZpcnN0RnJhbWUpIHsKKyAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVl
OworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICBpZiAobV9vYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oaXRlci0+Y2FsbEZyYW1lKCkp
KQorICAgICAgICBtX3Jlc3VsdCA9IEpTVmFsdWU6OmVuY29kZShtX29iamVjdC0+cHJvdG90eXBl
KCkpOworICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworfQorCitwcml2YXRlOgorICAg
IGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBKU09iamVjdCogbV9vYmplY3Q7Cisg
ICAgRW5jb2RlZEpTVmFsdWUgbV9yZXN1bHQ7Cit9OworCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJS
ZXF1ZXN0ZWQgcHJvdG90eXBlIG9mIGEgdmFsdWUgdGhhdCBpcyBub3QgYW4gb2JqZWN0LiIpKSk7
CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBPYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVuY3RvciBmdW5jdG9yKG9iamVjdCk7
CiAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZXhlYy0+YmVnaW4oKTsKLSAgICArK2l0ZXI7Ci0g
ICAgaWYgKChpdGVyID09IGV4ZWMtPmVuZCgpKSB8fCAhb2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9t
KGl0ZXItPmNhbGxGcmFtZSgpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdC0+cHJvdG90eXBl
KCkpOworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICByZXR1cm4gZnVuY3Rvci5yZXN1
bHQoKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
ckdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTQ5ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0wOS0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydGluZyBTdGFja0l0ZXJhdG9yIHRvIGEgY2FsbGJh
Y2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIwNTY0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VuZEZ1bmN0b3I6OlNlbmRGdW5j
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbmRGdW5jdG9yOjpoYXNWaWFibGVGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZW5kRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChXZWJD
b3JlOjpKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZVNjcmlwdENh
bGxTdGFja0Z1bmN0b3I6OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6
Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvcjI6OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0
b3IyKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyOjpv
cGVyYXRvcigpKToKKwogMjAxMy0wOS0wMyAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgICA8YW5k
cmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1N0cmVhbWVyXSBEb24n
dCBzZXQgc3RhdGUgdG8gTlVMTCB1bnRpbCBlbGVtZW50IGlzIGRlc3Ryb3llZApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDE1NDkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDMy
IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6b3BlbihFeGVjU3RhdGUKICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIH0KIAorY2xhc3MgU2VuZEZ1bmN0b3IgeworcHVibGljOgorICAgIFNl
bmRGdW5jdG9yKCkKKyAgICAgICAgOiBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQorICAg
ICAgICAsIG1faGFzVmlhYmxlRnJhbWUoZmFsc2UpCisgICAgeworICAgIH0KKworICAgIGJvb2wg
aGFzVmlhYmxlRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2hhc1ZpYWJsZUZyYW1lOyB9CisKKyAg
ICBTdGFja0l0ZXJhdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja0l0ZXJhdG9yJikKKyAgICB7
CisgICAgICAgIGlmICghbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSkgeworICAgICAgICAgICAgbV9o
YXNTa2lwcGVkRmlyc3RGcmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gU3RhY2tJdGVy
YXRvcjo6Q29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBtX2hhc1ZpYWJsZUZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkRvbmU7CisgICAgfQorCitwcml2
YXRlOgorICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKKyAgICBib29sIG1faGFzVmlh
YmxlRnJhbWU7Cit9OworCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRw
UmVxdWVzdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW1wbCgpLT51cmwoKSk7
CkBAIC0xMzQsOSArMTYwLDEwIEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVj
U3RhdGUKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpLCBlYyk7CiAgICAgfQogCisgICAgU2VuZEZ1bmN0b3IgZnVuY3RvcjsKICAgICBTdGFj
a0l0ZXJhdG9yIGl0ZXIgPSBleGVjLT5iZWdpbigpOwotICAgICsraXRlcjsKLSAgICBpZiAoaXRl
ciAhPSBleGVjLT5lbmQoKSkgeworICAgIGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKKyAgICBpZiAo
ZnVuY3Rvci5oYXNWaWFibGVGcmFtZSgpKSB7CiAgICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwog
ICAgICAgICB1bnNpZ25lZCB1bnVzdWVkQ29sdW1uID0gMDsKICAgICAgICAgaXRlci0+Y29tcHV0
ZUxpbmVBbmRDb2x1bW4obGluZSwgdW51c3VlZENvbHVtbik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAkocmV2
aXNpb24gMTU0OTAyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDE3ICs1NCw0MSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKK2NsYXNzIENy
ZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IgeworcHVibGljOgorICAgIENyZWF0ZVNjcmlwdENh
bGxTdGFja0Z1bmN0b3IoVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4mIGZyYW1lcywgIHNpemVfdCBy
ZW1haW5pbmdDYXBhY2l0eSkKKyAgICAgICAgOiBtX2ZyYW1lcyhmcmFtZXMpCisgICAgICAgICwg
bV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZShyZW1haW5pbmdDYXBhY2l0eSkKKyAg
ICB7CisgICAgfQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJ
dGVyYXRvciYgaXRlcikKKyAgICB7CisgICAgICAgIGlmIChtX3JlbWFpbmluZ0NhcGFjaXR5Rm9y
RnJhbWVDYXB0dXJlKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBsaW5lOworICAgICAgICAgICAg
dW5zaWduZWQgY29sdW1uOworICAgICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4o
bGluZSwgY29sdW1uKTsKKyAgICAgICAgICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJh
bWUoaXRlci0+ZnVuY3Rpb25OYW1lKCksIGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4p
KTsKKworICAgICAgICAgICAgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOwor
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiYgbV9mcmFtZXM7CisgICAgc2l6ZV90IG1fcmVtYWlu
aW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmU7Cit9OworCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCBtYXhTdGFja1NpemUsIGJvb2wgZW1w
dHlJc0FsbG93ZWQpCiB7CiAgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwogICAg
IGlmIChKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVu
dFN0YXRlKCkpIHsKICAgICAgICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9wQ2Fs
bEZyYW1lOwotICAgICAgICBmb3IgKFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigp
OyBpdGVyICE9IGZyYW1lLT5lbmQoKSAmJiBtYXhTdGFja1NpemUtLTsgKytpdGVyKSB7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCBsaW5lOwotICAgICAgICAgICAgdW5zaWduZWQgY29sdW1uOwotICAg
ICAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKLSAgICAg
ICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGl0ZXItPmZ1bmN0aW9uTmFtZSgp
LCBpdGVyLT5zb3VyY2VVUkwoKSwgbGluZSwgY29sdW1uKSk7Ci0gICAgICAgIH0KKyAgICAgICAg
Q3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3RvciBmdW5jdG9yKGZyYW1lcywgbWF4U3RhY2tTaXpl
KTsKKyAgICAgICAgU3RhY2tJdGVyYXRvciBpdGVyID0gZnJhbWUtPmJlZ2luKCk7CisgICAgICAg
IGl0ZXIuaXRlcmF0ZShmdW5jdG9yKTsKICAgICB9CiAgICAgaWYgKGZyYW1lcy5pc0VtcHR5KCkg
JiYgIWVtcHR5SXNBbGxvd2VkKSB7CiAgICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5
IGhhcHBlbiBpbiB0aGUgY2FzZSB3aGVyZQpAQCAtNzUsMjUgKzk5LDU1IEBAIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHQKICAgICByZXR1cm4gU2NyaXB0Q2FsbFN0YWNr
OjpjcmVhdGUoZnJhbWVzKTsKIH0KIAorY2xhc3MgQ3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnVuY3Rv
cjIgeworcHVibGljOgorICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyKGJvb2wgbmVl
ZFRvU2tpcEFGcmFtZSwgIHNpemVfdCByZW1haW5pbmdDYXBhY2l0eSwgVmVjdG9yPFNjcmlwdENh
bGxGcmFtZT4mIGZyYW1lcykKKyAgICAgICAgOiBtX25lZWRUb1NraXBBRnJhbWUobmVlZFRvU2tp
cEFGcmFtZSkKKyAgICAgICAgLCBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKHJl
bWFpbmluZ0NhcGFjaXR5KQorICAgICAgICAsIG1fZnJhbWVzKGZyYW1lcykKKyAgICB7CisgICAg
fQorCisgICAgU3RhY2tJdGVyYXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tJdGVyYXRvciYg
aXRlcikKKyAgICB7CisgICAgICAgIGlmIChtX25lZWRUb1NraXBBRnJhbWUpIHsKKyAgICAgICAg
ICAgIG1fbmVlZFRvU2tpcEFGcmFtZSA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIFN0YWNr
SXRlcmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcmVtYWluaW5n
Q2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgZWFybHkgZXhp
dCBpcyBuZWNlc3NhcnkgdG8gbWFpbnRhaW4gb3VyIG9sZCBiZWhhdmlvdXIKKyAgICAgICAgICAg
IC8vIGJ1dCB0aGUgc3RhY2sgdHJhY2Ugd2UgcHJvZHVjZSBub3cgaXMgY29tcGxldGUgYW5kIGhh
bmRsZXMgYWxsCisgICAgICAgICAgICAvLyB3YXlzIGluIHdoaWNoIGNvZGUgbWF5IGJlIHJ1bm5p
bmcKKyAgICAgICAgICAgIGlmICghaXRlci0+Y2FsbGVlKCkgJiYgbV9mcmFtZXMuc2l6ZSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9yOjpEb25lOworCisgICAgICAgICAg
ICB1bnNpZ25lZCBsaW5lOworICAgICAgICAgICAgdW5zaWduZWQgY29sdW1uOworICAgICAgICAg
ICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKKyAgICAgICAgICAg
IG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoaXRlci0+ZnVuY3Rpb25OYW1lKCksIGl0
ZXItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pKTsKKworICAgICAgICAgICAgbV9yZW1haW5p
bmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOworICAgICAgICAgICAgcmV0dXJuIFN0YWNrSXRl
cmF0b3I6OkNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTdGFja0l0ZXJhdG9y
OjpEb25lOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIG1fbmVlZFRvU2tpcEFGcmFtZTsK
KyAgICBzaXplX3QgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZTsKKyAgICBWZWN0
b3I8U2NyaXB0Q2FsbEZyYW1lPiYgbV9mcmFtZXM7Cit9OworCiBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXpl
X3QgbWF4U3RhY2tTaXplKQogewogICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsK
ICAgICBBU1NFUlQoZXhlYyk7CiAgICAgQ2FsbEZyYW1lKiBmcmFtZSA9IGV4ZWMtPnZtKCkudG9w
Q2FsbEZyYW1lOwogICAgIFN0YWNrSXRlcmF0b3IgaXRlciA9IGZyYW1lLT5iZWdpbigpOwotICAg
IGlmIChpdGVyLm51bWJlck9mRnJhbWVzKCkgPiAxKQotICAgICAgICArK2l0ZXI7Ci0gICAgZm9y
ICg7IGl0ZXIgIT0gZnJhbWUtPmVuZCgpICYmIG1heFN0YWNrU2l6ZS0tOyArK2l0ZXIpIHsKLSAg
ICAgICAgLy8gVGhpcyBlYXJseSBleGl0IGlzIG5lY2Vzc2FyeSB0byBtYWludGFpbiBvdXIgb2xk
IGJlaGF2aW91cgotICAgICAgICAvLyBidXQgdGhlIHN0YWNrIHRyYWNlIHdlIHByb2R1Y2Ugbm93
IGlzIGNvbXBsZXRlIGFuZCBoYW5kbGVzIGFsbAotICAgICAgICAvLyB3YXlzIGluIHdoaWNoIGNv
ZGUgbWF5IGJlIHJ1bm5pbmcKLSAgICAgICAgaWYgKCFpdGVyLT5jYWxsZWUoKSAmJiBmcmFtZXMu
c2l6ZSgpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHVuc2lnbmVkIGxpbmU7Ci0gICAg
ICAgIHVuc2lnbmVkIGNvbHVtbjsKLSAgICAgICAgaXRlci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4o
bGluZSwgY29sdW1uKTsKLSAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoaXRl
ci0+ZnVuY3Rpb25OYW1lKCksIGl0ZXItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pKTsKLSAg
ICB9CisgICAgc2l6ZV90IG51bWJlck9mRnJhbWVzID0gaXRlci5udW1iZXJPZkZyYW1lcygpOwor
ICAgIENyZWF0ZVNjcmlwdENhbGxTdGFja0Z1bmN0b3IyIGZ1bmN0b3IobnVtYmVyT2ZGcmFtZXMg
PiAxLCBtYXhTdGFja1NpemUsIGZyYW1lcyk7CisgICAgaXRlci5pdGVyYXRlKGZ1bmN0b3IpOwog
ICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFtZXMpOwogfQogCg==
</data>
<flag name="review"
          id="232506"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>