<?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>173754</bug_id>
          
          <creation_ts>2017-06-22 22:05:28 -0700</creation_ts>
          <short_desc>Web Inspector: Crash generating object preview for ArrayIterator</short_desc>
          <delta_ts>2017-06-27 16:28:02 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>buildbot</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1322188</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-22 22:05:28 -0700</bug_when>
    <thetext>Summary:
Crash generating object preview for ArrayIterator

Test:
&lt;script&gt;
(function() {
    try {
        var iter = [7][Symbol.iterator]();
        debugger;
        iter[&apos;return&apos;] = function() {};
        Array.from(iter, function(){ throw 2; });
    } catch(e) { /* empty */ }
})();
&lt;/script&gt;

Steps to reproduce:
1. Inspect test page
2. Reload (to trigger debugger)
3. Step through code
  =&gt; Crash after the `iter[&quot;return&quot;]` line.

Notes:
- JSInjectedScriptHost::iteratorEntries clones the ArrayIterator and reuses the structure but doesn&apos;t fill in all properties that are important for the iterable operations (namely the `return` function it claims to implement).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322189</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-22 22:05:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/32859012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322192</commentid>
    <comment_count>2</comment_count>
      <attachid>313688</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-22 22:12:45 -0700</bug_when>
    <thetext>Created attachment 313688
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322208</commentid>
    <comment_count>3</comment_count>
      <attachid>313688</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-22 23:37:59 -0700</bug_when>
    <thetext>Comment on attachment 313688
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:530
&gt; +    clone-&gt;putDirect(vm, vm.propertyNames-&gt;builtinNames().arrayIteratorKindPrivateName(), iteratorObject-&gt;getDirect(vm, vm.propertyNames-&gt;builtinNames().arrayIteratorKindPrivateName()));

When is this called? What if the iterator object gets mutated by user code? What I’m worried about is a user adds random properties to this object, and then we still end up with properties that are zero filled that we didn’t expect to exist. If this is even possible, I think the best way to proceed would be to just start off the result with the empty structure, and add the properties allowing the object’s structure to transition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322356</commentid>
    <comment_count>4</comment_count>
      <attachid>313688</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-23 11:24:30 -0700</bug_when>
    <thetext>Comment on attachment 313688
[PATCH] Proposed Fix

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

&gt;&gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:530
&gt;&gt; +    clone-&gt;putDirect(vm, vm.propertyNames-&gt;builtinNames().arrayIteratorKindPrivateName(), iteratorObject-&gt;getDirect(vm, vm.propertyNames-&gt;builtinNames().arrayIteratorKindPrivateName()));
&gt; 
&gt; When is this called? What if the iterator object gets mutated by user code? What I’m worried about is a user adds random properties to this object, and then we still end up with properties that are zero filled that we didn’t expect to exist. If this is even possible, I think the best way to proceed would be to just start off the result with the empty structure, and add the properties allowing the object’s structure to transition.

This is called only in this file. This object itself should not be exposed to user code. It is created here, iterated up to 5 times, and closed.

The idea here is that Web Inspector wants to peek and show the next 5 elements in an iterator. Since &quot;Array Iterator&quot; and other native iterators are guaranteed to have side-effect free iteration we can peek upcoming values by cloning the iterator instance, walk the clone forward a few values, and then getting rid of the clone. Array Iterator, unlike Map Iterator, Set Iterator, etc, is different in that it is implemented in JavaScript built-ins. But we can identify one with PrivateNames. This is our implementation of cloning an Array Iterator.

If you see a way that user code can access this object then we might have to abandon this approach or seek an alternative. Maybe that is possible if someone mutates the ArrayIterator prototype? Namely `[].values().__proto__.next`? Starting off with an empty structure won&apos;t get us the necessary `next` function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322369</commentid>
    <comment_count>5</comment_count>
      <attachid>313688</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-23 12:05:15 -0700</bug_when>
    <thetext>Comment on attachment 313688
[PATCH] Proposed Fix

After talking with Saam going to go a safer route:

  - Only peek iterators when not observable (no user code)
  - Do a better job cloning ArrayIterators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322545</commentid>
    <comment_count>6</comment_count>
      <attachid>313767</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-23 19:24:22 -0700</bug_when>
    <thetext>Created attachment 313767
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322546</commentid>
    <comment_count>7</comment_count>
      <attachid>313768</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-23 19:25:47 -0700</bug_when>
    <thetext>Created attachment 313768
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322580</commentid>
    <comment_count>8</comment_count>
      <attachid>313768</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-24 00:23:41 -0700</bug_when>
    <thetext>Comment on attachment 313768
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:557
&gt; +        // FIXME: Reflect.enumerate iteration can be observable, but it is also removed from ECMAScript.

I am removing this in: &lt;https://webkit.org/b/173806&gt; Remove Reflect.enumerate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322651</commentid>
    <comment_count>9</comment_count>
      <attachid>313768</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-24 17:22:12 -0700</bug_when>
    <thetext>Comment on attachment 313768
[PATCH] Proposed Fix

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        When Inspector generates an object preview for an ArrayIterator instance it made

I like how this patch turned out

&gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:527
&gt; +    JSObject* clone = constructEmptyObject(exec, ArrayIteratorPrototype::create(vm, globalObject, ArrayIteratorPrototype::createStructure(vm, globalObject, globalObject-&gt;iteratorPrototype())));

Does the global object not cache this structure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323162</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-27 10:24:34 -0700</bug_when>
    <thetext>&gt; &gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:527
&gt; &gt; +    JSObject* clone = constructEmptyObject(exec, ArrayIteratorPrototype::create(vm, globalObject, ArrayIteratorPrototype::createStructure(vm, globalObject, globalObject-&gt;iteratorPrototype())));
&gt; 
&gt; Does the global object not cache this structure?

It doesn&apos;t. Want me to add it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323167</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-27 10:44:29 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/r218836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323311</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-06-27 16:28:02 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #10)
&gt; &gt; &gt; Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:527
&gt; &gt; &gt; +    JSObject* clone = constructEmptyObject(exec, ArrayIteratorPrototype::create(vm, globalObject, ArrayIteratorPrototype::createStructure(vm, globalObject, globalObject-&gt;iteratorPrototype())));
&gt; &gt; 
&gt; &gt; Does the global object not cache this structure?
&gt; 
&gt; It doesn&apos;t. Want me to add it?

I&apos;m not sure what you went with. It&apos;s probably better in the long run, but not essential for this code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313688</attachid>
            <date>2017-06-22 22:12:45 -0700</date>
            <delta_ts>2017-06-23 19:24:22 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>iter-2.patch</filename>
            <type>text/plain</type>
            <size>9082</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYjUzNzc1MTI4Ny4uZWY2ZTIzNzQwZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAog
MjAxNy0wNi0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENyYXNoIGdlbmVyYXRpbmcgb2JqZWN0IHByZXZpZXcgZm9yIEFy
cmF5SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzc1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwv
cmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL3Jl
bW90ZS1vYmplY3QuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL21vZGVs
L3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICBUZXN0IGdlbmVyYXRpbmcgYSBw
cmV2aWV3IGZvciBhbiBBcnJheUl0ZXJhdG9yIHRoYXQgaGFzIGhhZCBhIGByZXR1cm5gIHByb3Bl
cnR5IGFkZGVkIHRvIGl0LgorCisyMDE3LTA2LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogUGF1c2luZyB3aXRoIGEgZGVl
cCBjYWxsIHN0YWNrIGNhbiBiZSB2ZXJ5IHNsb3csIGF2b2lkIGVhZ2VybHkgZ2VuZXJhdGluZyBv
YmplY3QgcHJldmlld3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MzY5OAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwv
cmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwv
cmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggMzEyYTk3MmUzMzguLjllMWVhN2FkZWJj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmpl
Y3QtZXhwZWN0ZWQudHh0CkBAIC00MDc4LDYgKzQwNzgsNzkgQEAgRVhQUkVTU0lPTjogUmVmbGVj
dC5lbnVtZXJhdGUoWzEsIDIsIDMsIDQsIDUsIDYsIDddKQogfQogCiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjogaXRlciA9
IFsxLCAyXVtTeW1ib2wuaXRlcmF0b3JdKCk7IGl0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24oKXt9
OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0b3Ii
LAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5
IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAg
ICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJBcnJheSBJdGVy
YXRvciIsCisgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAor
ICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImFycmF5IiwK
KyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIs
CisgICAgICAgICJfdmFsdWVQcmV2aWV3IjogeworICAgICAgICAgICJfdHlwZSI6ICJvYmplY3Qi
LAorICAgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIsCisgICAgICAgICAgIl9kZXNjcmlwdGlv
biI6ICJBcnJheSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9v
dmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfc2l6ZSI6IDIsCisgICAgICAgICAgIl9wcm9w
ZXJ0aWVzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUiOiAiMCIsCisg
ICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICAgICAiX3ZhbHVlIjog
IjEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUi
OiAiMSIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICAgICAi
X3ZhbHVlIjogIjIiCisgICAgICAgICAgICB9CisgICAgICAgICAgXSwKKyAgICAgICAgICAiX2Vu
dHJpZXMiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAg
ICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisgICAgICAgICJfdHlwZSI6
ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogInZhbHVlIiwKKyAgICAgICAgIl9pbnRlcm5h
bCI6IHRydWUKKyAgICAgIH0KKyAgICBdLAorICAgICJfZW50cmllcyI6IFsKKyAgICAgIHsKKyAg
ICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAg
ICAiX2Rlc2NyaXB0aW9uIjogIjEiLAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAg
ICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBudWxs
LAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAg
IHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAibnVtYmVyIiwKKyAg
ICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjIiLAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVl
LAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMi
OiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfQor
ICAgIF0KKyAgfQorfQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogRVhQUkVTU0lPTjogbmV3IFByb21pc2UoZnVuY3Rpb24oKXt9KQogewog
ICAiX3R5cGUiOiAib2JqZWN0IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
b2RlbC9yZW1vdGUtb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVt
b3RlLW9iamVjdC5odG1sCmluZGV4IDA4NGVjZDM4MjE4Li41NTAwNDVjM2I4OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC5odG1sCkBAIC0xNjEsNiAr
MTYxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHtleHByZXNzaW9uOiAieCA9IHVuZGVm
aW5lZDsgKGZ1bmN0aW9uKCkgeyB4ID0gYXJndW1lbnRzOyB9KSgxLCAndHdvJyk7IHhbU3ltYm9s
Lml0ZXJhdG9yXSgpIn0sCiAgICAgICAgIHtleHByZXNzaW9uOiAiUmVmbGVjdC5lbnVtZXJhdGUo
e2E6MSwgYjoyLCBjOjN9KSJ9LAogICAgICAgICB7ZXhwcmVzc2lvbjogIlJlZmxlY3QuZW51bWVy
YXRlKFsxLCAyLCAzLCA0LCA1LCA2LCA3XSkifSwKKyAgICAgICAge2V4cHJlc3Npb246ICJpdGVy
ID0gWzEsIDJdW1N5bWJvbC5pdGVyYXRvcl0oKTsgaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbigp
e307IGl0ZXIifSwKIAogICAgICAgICAvLyBQcm9taXNlCiAgICAgICAgIHtleHByZXNzaW9uOiAi
bmV3IFByb21pc2UoZnVuY3Rpb24oKXt9KSJ9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1leHBl
Y3RlZC50eHQKaW5kZXggMmJlNzYyOGI5YWMuLmZiMTRkZTk0ZTQwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvbW9kZWwvcmVt
b3RlLW9iamVjdC1leHBlY3RlZC50eHQKQEAgLTQwODEsNiArNDA4MSw3OSBAQCBFWFBSRVNTSU9O
OiBSZWZsZWN0LmVudW1lcmF0ZShbMSwgMiwgMywgNCwgNSwgNiwgN10pCiB9CiAKIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9O
OiBpdGVyID0gWzEsIDJdW1N5bWJvbC5pdGVyYXRvcl0oKTsgaXRlclsncmV0dXJuJ10gPSBmdW5j
dGlvbigpe307IGl0ZXIKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJp
dGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24i
OiAiQXJyYXkgSXRlcmF0b3IiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVj
dCIsCisgICAgIl9zdWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFy
cmF5IEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93Ijog
ZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAi
YXJyYXkiLAorICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjog
ImFycmF5IiwKKyAgICAgICAgIl92YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjog
Im9iamVjdCIsCisgICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rl
c2NyaXB0aW9uIjogIkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAg
ICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAg
ICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6
ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJf
dmFsdWUiOiAiMSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAg
ICAgICAgICJfdmFsdWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAg
ICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRy
dWUKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAg
Il90eXBlIjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAi
X2ludGVybmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAg
ICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRy
dWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGll
cyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9
LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1i
ZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVz
cyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJv
cGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9Cisg
ICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBFWFBSRVNTSU9OOiBuZXcgUHJvbWlzZShmdW5jdGlvbigp
e30pCiB7CiAgICJfdHlwZSI6ICJvYmplY3QiLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzQ1NzkyOTFiN2YuLmMzNTczMzAwMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyOCBAQAogMjAxNy0wNi0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENyYXNoIGdlbmVyYXRpbmcgb2JqZWN0IHBy
ZXZpZXcgZm9yIEFycmF5SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mzc1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpjbG9u
ZUFycmF5SXRlcmF0b3JPYmplY3QpOgorICAgICAgICBXaGVuIEluc3BlY3RvciBnZW5lcmF0ZXMg
YW4gb2JqZWN0IHByZXZpZXcgZm9yIGFuIEFycmF5SXRlcmF0b3IgaXQgbWFrZXMgYSAiY2xvbmUi
CisgICAgICAgIG9mIHRoZSBvcmlnaW5hbCBBcnJheUl0ZXJhdG9yIGluc3RhbmNlIGJ5IGNvbnN0
cnVjdGluZyBhIG5ldyBvYmplY3Qgd2l0aCB0aGUKKyAgICAgICAgaW5zdGFuY2UncyBzdHJ1Y3R1
cmUuIFRoaXMgaXMgYmVjYXVzZSB0aGUgQXJyYXlJdGVyYXRvciBpcyBjcmVhdGVkIGJ5IEphdmFT
Y3JpcHQKKyAgICAgICAgYW5kIGl0cyBzdHJ1Y3R1cmUgaXMgbWFpbmx5IGEgbGlzdCBvZiBwcml2
YXRlIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbnNwZWN0b3IgZmlsbGVkIGluIHRo
ZSBQcml2YXRlTmFtZSBwcm9wZXJ0aWVzIG9uIHRoZSBzdHJ1Y3R1cmUgd2hpY2ggaXQgZXhwZWN0
ZWQKKyAgICAgICAgdG8gaGF2ZSBhY2Nlc3NlZCBmb3Igd2hhdCBpdCB3YW50ZWQgKGl0ZXJhdGUg
dGhlIG5leHQgNSBwcm9wZXJ0aWVzKS4gSG93ZXZlciBpdCBpcworICAgICAgICBwb3NzaWJsZSBm
b3IgdGhlIG9yaWdpbmFsIGluc3RhbmNlJ3Mgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlIGByZXR1
cm5gIHByb3BlcnR5CisgICAgICAgIGFuZCBvdXIgY2xvbmUgd2FzIG5vdCBmaWxsaW5nIHRoYXQg
c2xvdC4gSXRlcmF0aW9uIG9wZXJhdGlvbnMgY2hlY2sgdGhhdCBzbG90IGFuZAorICAgICAgICBh
Y3Qgb24gaXQuIFdpdGhvdXQgZmlsbGluZyB0aGF0IHNsb3Qgd2Ugd291bGQgY2F1c2UgYW4gQVNT
RVJUL0NSQVNIIGZvciBhbiBlbXB0eQorICAgICAgICB2YWx1ZS4gVGhpcyBmaXggYWx3YXlzIGZp
bGxzIHRoYXQgc2xvdCwgYW5kIGFueSBvdGhlciBpbnRlcm5hbCBwcm9wZXJ0aWVzIHRoYXQKKyAg
ICAgICAgQXJyYXlJdGVyYXRvciBtaWdodCB1c2UuCisKKzIwMTctMDYtMjIgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQYXVz
aW5nIHdpdGggYSBkZWVwIGNhbGwgc3RhY2sgY2FuIGJlIHZlcnkgc2xvdywgYXZvaWQgZWFnZXJs
eSBnZW5lcmF0aW5nIG9iamVjdCBwcmV2aWV3cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNjk4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggN2NjMGU4
OTgyM2EuLjIyMmNmZjI4OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtNTI3LDYgKzUyNyw4IEBA
IHN0YXRpYyBKU09iamVjdCogY2xvbmVBcnJheUl0ZXJhdG9yT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YywgVk0mIHZtLCBKU09iamVjdCogaXRlCiAgICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRPYmplY3RQcml2YXRlTmFtZSgpLCBp
dGVyYXRvck9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lKCkpKTsKICAgICBjbG9uZS0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9ySXNEb25l
UHJpdmF0ZU5hbWUoKSwgaXRlcmF0b3JPYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcklzRG9uZVByaXZhdGVOYW1lKCkpKTsK
ICAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5hcnJheUl0ZXJhdG9yTmV4dFByaXZhdGVOYW1lKCksIGl0ZXJhdG9yT2JqZWN0LT5nZXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0
UHJpdmF0ZU5hbWUoKSkpOworICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JLaW5kUHJpdmF0ZU5hbWUoKSwgaXRlcmF0
b3JPYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
YXJyYXlJdGVyYXRvcktpbmRQcml2YXRlTmFtZSgpKSk7CisgICAgY2xvbmUtPnB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cmV0dXJuS2V5d29yZCwganNVbmRlZmluZWQoKSk7CiAgICAg
cmV0dXJuIGNsb25lOwogfQogCg==
</data>
<flag name="review"
          id="334578"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313767</attachid>
            <date>2017-06-23 19:24:22 -0700</date>
            <delta_ts>2017-06-23 19:25:47 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>iter-3.patch</filename>
            <type>text/plain</type>
            <size>51625</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYjUzNzc1MTI4Ny4uYThmY2QxZDNmMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxNy0wNi0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENyYXNoIGdlbmVyYXRpbmcgb2JqZWN0IHByZXZpZXcgZm9yIEFy
cmF5SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzc1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaW5z
cGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvbW9kZWwvcmVtb3RlLW9iamVjdC5odG1sOgorICAgICAgICBUZXN0IGdlbmVyYXRpbmcgYSBw
cmV2aWV3IGZvciBhbiBBcnJheUl0ZXJhdG9yIHRoYXQgaGFzIGhhZCBhIGByZXR1cm5gIHByb3Bl
cnR5IGFkZGVkIHRvIGl0LgorCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmpl
Y3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9ycy5odG1sOiBBZGRlZC4K
KyAgICAgICAgVGVzdCBnZW5lcmF0aW5nIGEgcHJldmlldyBmb3IgZGlmZmVyZW50IGl0ZXJhdG9y
cyBhZnRlciB0aGUgSXRlcmF0b3JQcm90b3R5cGVzIGhhdmUgYmVlbiBtdXRhdGVkLgorCisgICAg
ICAgICogaW5zcGVjdG9yL21vZGVsL3Jlc291cmNlcy9yZW1vdGUtb2JqZWN0LXV0aWxpdGllcy5q
czogQWRkZWQuCisgICAgICAgIChydW5JbkJyb3dzZXJUZXN0KToKKyAgICAgICAgKFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFs
aXplci5jaGVja0NvbXBsZXRlKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIud2luZG93LnJ1blN0ZXBzKToKKyAgICAgICAgU2hhcmUgY29kZSBmb3IgcmVtb3RlLW9iamVj
dCBkdW1wIHRlc3RzLgorCiAyMDE3LTA2LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUGF1c2luZyB3aXRoIGEgZGVlcCBj
YWxsIHN0YWNrIGNhbiBiZSB2ZXJ5IHNsb3csIGF2b2lkIGVhZ2VybHkgZ2VuZXJhdGluZyBvYmpl
Y3QgcHJldmlld3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1v
dGUtb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1v
dGUtb2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCAzMTJhOTcyZTMzOC4uOWUxZWE3YWRlYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1l
eHBlY3RlZC50eHQKQEAgLTQwNzgsNiArNDA3OCw3OSBAQCBFWFBSRVNTSU9OOiBSZWZsZWN0LmVu
dW1lcmF0ZShbMSwgMiwgMywgNCwgNSwgNiwgN10pCiB9CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyID0gWzEs
IDJdW1N5bWJvbC5pdGVyYXRvcl0oKTsgaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbigpe307IGl0
ZXIKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisg
ICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkgSXRl
cmF0b3IiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9z
dWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IEl0ZXJhdG9y
IiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAg
Il9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAiYXJyYXkiLAorICAg
ICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAg
ICAgICAgIl92YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisg
ICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjog
IkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJm
bG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAgICAiX3Byb3BlcnRp
ZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAg
ICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMSIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIx
IiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFs
dWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBlIjogInN0
cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjog
dHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgeworICAgICAg
ICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJf
ZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAg
ICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisg
ICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9CisgICAg
XQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBFWFBSRVNTSU9OOiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pCiB7CiAgICJf
dHlwZSI6ICJvYmplY3QiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVs
L3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNzJmY2VmNjg4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0LW11dGF0ZWQtaXRlcmF0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5OCBAQAor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
RVhQUkVTU0lPTjogaXRlciA9ICdhbHBoYSdbU3ltYm9sLml0ZXJhdG9yXSgpCit7CisgICJfdHlw
ZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjog
IjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIlN0cmluZyBJdGVyYXRvciIsCisgICJf
cHJldmlldyI6IHsKKyAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRl
cmF0b3IiLAorICAgICJfZGVzY3JpcHRpb24iOiAiU3RyaW5nIEl0ZXJhdG9yIiwKKyAgICAiX2xv
c3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVz
IjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAic3RyaW5nIiwKKyAgICAgICAgIl90eXBl
IjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAiYWxwaGEiLAorICAgICAgICAiX2ludGVy
bmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiYSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAg
ICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAibCIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRy
dWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGll
cyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9
LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJp
bmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAicCIsCisgICAgICAgICAgIl9sb3NzbGVz
cyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJv
cGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9Cisg
ICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6
ICJzdHJpbmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiaCIsCisgICAgICAgICAgIl9s
b3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAg
ICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJf
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiYSIsCisgICAgICAg
ICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAg
ICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAor
ICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyLl9fcHJv
dG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAor
ICAiX2Rlc2NyaXB0aW9uIjogIlN0cmluZyBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAg
ICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJf
ZGVzY3JpcHRpb24iOiAiU3RyaW5nIEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwK
KyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgewor
ICAgICAgICAiX25hbWUiOiAic3RyaW5nIiwKKyAgICAgICAgIl90eXBlIjogInN0cmluZyIsCisg
ICAgICAgICJfdmFsdWUiOiAiYWxwaGEiLAorICAgICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAg
ICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBt
YXAgPSBuZXcgTWFwOyBtYXAuc2V0KDEsIDIpOyBtYXAuc2V0KCdrZXknLCAndmFsdWUnKTsgaXRl
ciA9IG1hcFtTeW1ib2wuaXRlcmF0b3JdKCkKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJf
c3VidHlwZSI6ICJpdGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJf
ZGVzY3JpcHRpb24iOiAiTWFwIEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlw
ZSI6ICJvYmplY3QiLAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlw
dGlvbiI6ICJNYXAgSXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiBmYWxzZSwKKyAgICAiX292
ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAi
X25hbWUiOiAibWFwIiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3Vi
dHlwZSI6ICJtYXAiLAorICAgICAgICAiX3ZhbHVlIjogIk1hcCIsCisgICAgICAgICJfaW50ZXJu
YWwiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisg
ICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogImtleSt2YWx1ZSIs
CisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAgICAiX2VudHJp
ZXMiOiBbCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAgICAgICAgIl90eXBlIjog
Im9iamVjdCIsCisgICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rl
c2NyaXB0aW9uIjogIkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAg
ICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAg
ICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6
ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJf
dmFsdWUiOiAiMSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAg
ICAgICAgICJfdmFsdWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAg
ICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAg
ICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAi
X3N1YnR5cGUiOiAiYXJyYXkiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkiLAor
ICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxz
ZSwKKyAgICAgICAgICAiX3NpemUiOiAyLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIl9uYW1lIjogIjAiLAorICAgICAgICAgICAgICAi
X3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICAgIl92YWx1ZSI6ICJrZXkiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUiOiAiMSIsCisgICAg
ICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAiX3ZhbHVlIjogInZh
bHVlIgorICAgICAgICAgICAgfQorICAgICAgICAgIF0sCisgICAgICAgICAgIl9lbnRyaWVzIjog
bnVsbAorICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVy
Ll9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmpl
Y3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJl
ZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIk1hcCBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsK
KyAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAg
ICJfZGVzY3JpcHRpb24iOiAiTWFwIEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogZmFsc2Us
CisgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsK
KyAgICAgICAgIl9uYW1lIjogIm1hcCIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAiX3N1YnR5cGUiOiAibWFwIiwKKyAgICAgICAgIl92YWx1ZSI6ICJNYXAiLAorICAgICAg
ICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjog
ImtpbmQiLAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6ICJr
ZXkrdmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisg
ICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBzZXQgPSBuZXcgU2V0OyBm
b3IgKHZhciBpID0gMDsgaSA8PSAxMDA7IGkrKykgc2V0LmFkZChpKTsgaXRlciA9IHNldFtTeW1i
b2wuaXRlcmF0b3JdKCkKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJp
dGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24i
OiAiU2V0IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3Qi
LAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJTZXQg
SXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiBmYWxzZSwKKyAgICAiX292ZXJmbG93IjogdHJ1
ZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJzZXQi
LAorICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogInNldCIs
CisgICAgICAgICJfdmFsdWUiOiAiU2V0IiwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBl
IjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVy
bmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiMCIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAg
ICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRy
dWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGll
cyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9
LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1i
ZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVz
cyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJv
cGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9Cisg
ICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6
ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMyIsCisgICAgICAgICAgIl9s
b3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAg
ICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJf
dHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiNCIsCisgICAgICAg
ICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAg
ICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAor
ICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyLl9fcHJv
dG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAor
ICAiX2Rlc2NyaXB0aW9uIjogIlNldCBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAgICAi
X3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJfZGVz
Y3JpcHRpb24iOiAiU2V0IEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogZmFsc2UsCisgICAg
Il9vdmVyZmxvdyI6IGZhbHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAg
ICAgIl9uYW1lIjogInNldCIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAgICAgICAi
X3N1YnR5cGUiOiAic2V0IiwKKyAgICAgICAgIl92YWx1ZSI6ICJTZXQiLAorICAgICAgICAiX2lu
dGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImtpbmQi
LAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6ICJ2YWx1ZSIs
CisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAgICAiX2VudHJp
ZXMiOiBudWxsCisgIH0KK30KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0VYUFJFU1NJT046IGFycmF5SXRlciA9IFsxLDIsM11bU3ltYm9s
Lml0ZXJhdG9yXSgpCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRl
cmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjog
IkFycmF5IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3Qi
LAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJBcnJh
eSBJdGVyYXRvciIsCisgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgIl9vdmVyZmxvdyI6IGZh
bHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImFy
cmF5IiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3VidHlwZSI6ICJh
cnJheSIsCisgICAgICAgICJfdmFsdWVQcmV2aWV3IjogeworICAgICAgICAgICJfdHlwZSI6ICJv
YmplY3QiLAorICAgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIsCisgICAgICAgICAgIl9kZXNj
cmlwdGlvbiI6ICJBcnJheSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAg
ICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfc2l6ZSI6IDMsCisgICAgICAgICAg
Il9wcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUiOiAi
MCIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICAgICAiX3Zh
bHVlIjogIjEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAi
X25hbWUiOiAiMSIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAg
ICAgICAiX3ZhbHVlIjogIjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAiX25hbWUiOiAiMiIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAor
ICAgICAgICAgICAgICAiX3ZhbHVlIjogIjMiCisgICAgICAgICAgICB9CisgICAgICAgICAgXSwK
KyAgICAgICAgICAiX2VudHJpZXMiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJfaW50ZXJu
YWwiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisg
ICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogInZhbHVlIiwKKyAg
ICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0KKyAgICBdLAorICAgICJfZW50cmllcyI6
IFsKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAibnVt
YmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjEiLAorICAgICAgICAgICJfbG9zc2xl
c3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3By
b3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUi
OiAibnVtYmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjIiLAorICAgICAgICAgICJf
bG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAg
ICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAg
ICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAi
X3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjMiLAorICAgICAg
ICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAg
ICAgICAgICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwK
KyAgICAgICAgfQorICAgICAgfQorICAgIF0KKyAgfQorfQorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjogeCA9IHVuZGVm
aW5lZDsgKGZ1bmN0aW9uKCkgeyB4ID0gYXJndW1lbnRzOyB9KSgzLCAnYXJnJyk7IGFyZ3VtZW50
c0l0ZXIgPSB4W1N5bWJvbC5pdGVyYXRvcl0oKQoreworICAiX3R5cGUiOiAib2JqZWN0IiwKKyAg
Il9zdWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgIl9vYmplY3RJZCI6ICI8ZmlsdGVyZWQ+IiwKKyAg
Il9kZXNjcmlwdGlvbiI6ICJBcnJheSBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAgICAi
X3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJfZGVz
Y3JpcHRpb24iOiAiQXJyYXkgSXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAg
ICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAg
ICAgICJfbmFtZSI6ICJhcnJheSIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAgICAg
ICAiX3N1YnR5cGUiOiAiYXJyYXkiLAorICAgICAgICAiX3ZhbHVlUHJldmlldyI6IHsKKyAgICAg
ICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAiX3N1YnR5cGUiOiAiYXJyYXkiLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiQXJndW1lbnRzIiwKKyAgICAgICAgICAiX2xvc3Ns
ZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9z
aXplIjogMiwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIs
CisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjog
InN0cmluZyIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiYXJnIgorICAgICAgICAgICAgfQor
ICAgICAgICAgIF0sCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9LAorICAg
ICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1l
IjogImtpbmQiLAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6
ICJ2YWx1ZSIsCisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAg
ICAiX2VudHJpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAgICAgICAg
Il90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgIl9kZXNjcmlwdGlvbiI6ICIzIiwKKyAgICAg
ICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFsc2UsCisg
ICAgICAgICAgIl9wcm9wZXJ0aWVzIjogbnVsbCwKKyAgICAgICAgICAiX2VudHJpZXMiOiBudWxs
CisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAg
ICAgICAgIl90eXBlIjogInN0cmluZyIsCisgICAgICAgICAgIl9kZXNjcmlwdGlvbiI6ICJhcmci
LAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBm
YWxzZSwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfQorICAgIF0KKyAgfQorfQorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjog
YXJyYXlJdGVyLl9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBhcnJheUl0ZXIKK3sKKyAg
Il90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICJfb2JqZWN0
SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkgSXRlcmF0b3IiLAor
ICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9zdWJ0eXBlIjog
Iml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IEl0ZXJhdG9yIiwKKyAgICAi
X2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0
aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAiYXJyYXkiLAorICAgICAgICAiX3R5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgIl92
YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
Il9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IiwK
KyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFs
c2UsCisgICAgICAgICAgIl9zaXplIjogMywKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBbCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAgICAgICAgICAg
Il90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMSIKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIxIiwKKyAgICAg
ICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMiIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIy
IiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFs
dWUiOiAiMyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBlIjogInN0
cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjog
dHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBS
RVNTSU9OOiBhcmd1bWVudHNJdGVyLl9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBhcmd1
bWVudHNJdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0
b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIkFy
cmF5IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJBcnJheSBJ
dGVyYXRvciIsCisgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgIl9vdmVyZmxvdyI6IGZhbHNl
LAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImFycmF5
IiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3VidHlwZSI6ICJhcnJh
eSIsCisgICAgICAgICJfdmFsdWVQcmV2aWV3IjogeworICAgICAgICAgICJfdHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIsCisgICAgICAgICAgIl9kZXNjcmlw
dGlvbiI6ICJBcmd1bWVudHMiLAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAg
ICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3NpemUiOiAyLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIl9uYW1lIjog
IjAiLAorICAgICAgICAgICAgICAiX3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAgICAgICAgIl92
YWx1ZSI6ICIzIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
Il9uYW1lIjogIjEiLAorICAgICAgICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAg
ICAgICAgIl92YWx1ZSI6ICJhcmciCisgICAgICAgICAgICB9CisgICAgICAgICAgXSwKKyAgICAg
ICAgICAiX2VudHJpZXMiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJfaW50ZXJuYWwiOiB0
cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisgICAgICAg
ICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogInZhbHVlIiwKKyAgICAgICAg
Il9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0KKyAgICBdLAorICAgICJfZW50cmllcyI6IG51bGwK
KyAgfQorfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3Rl
LW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWZlMWM1MDVkZmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9y
cy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZW1vdGUtb2JqZWN0LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisg
ICAgbGV0IHN0ZXBzID0gWworICAgICAgICAvLyBTdHJpbmcgSXRlcmF0b3IKKyAgICAgICAge2V4
cHJlc3Npb246IGBpdGVyID0gJ2FscGhhJ1tTeW1ib2wuaXRlcmF0b3JdKClgfSwKKyAgICAgICAg
e2V4cHJlc3Npb246IGBpdGVyLl9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyYH0s
CisKKyAgICAgICAgLy8gTWFwIEl0ZXJhdG9yCisgICAgICAgIHtleHByZXNzaW9uOiBgbWFwID0g
bmV3IE1hcDsgbWFwLnNldCgxLCAyKTsgbWFwLnNldCgna2V5JywgJ3ZhbHVlJyk7IGl0ZXIgPSBt
YXBbU3ltYm9sLml0ZXJhdG9yXSgpYH0sCisgICAgICAgIHtleHByZXNzaW9uOiBgaXRlci5fX3By
b3RvX18ubmV4dCA9IGZ1bmN0aW9uKCl7fTsgaXRlcmB9LAorCisgICAgICAgIC8vIFNldCBJdGVy
YXRvcgorICAgICAgICB7ZXhwcmVzc2lvbjogYHNldCA9IG5ldyBTZXQ7IGZvciAodmFyIGkgPSAw
OyBpIDw9IDEwMDsgaSsrKSBzZXQuYWRkKGkpOyBpdGVyID0gc2V0W1N5bWJvbC5pdGVyYXRvcl0o
KWB9LAorICAgICAgICB7ZXhwcmVzc2lvbjogYGl0ZXIuX19wcm90b19fLm5leHQgPSBmdW5jdGlv
bigpe307IGl0ZXJgfSwKKworICAgICAgICAvLyBBcnJheSBJdGVyYXRvciAoYXJyYXkgYW5kIGFy
Z3VtZW50cykKKyAgICAgICAge2V4cHJlc3Npb246IGBhcnJheUl0ZXIgPSBbMSwyLDNdW1N5bWJv
bC5pdGVyYXRvcl0oKWB9LAorICAgICAgICB7ZXhwcmVzc2lvbjogYHggPSB1bmRlZmluZWQ7IChm
dW5jdGlvbigpIHsgeCA9IGFyZ3VtZW50czsgfSkoMywgJ2FyZycpOyBhcmd1bWVudHNJdGVyID0g
eFtTeW1ib2wuaXRlcmF0b3JdKClgfSwKKyAgICAgICAge2V4cHJlc3Npb246IGBhcnJheUl0ZXIu
X19wcm90b19fLm5leHQgPSBmdW5jdGlvbigpe307IGFycmF5SXRlcmB9LAorICAgICAgICB7ZXhw
cmVzc2lvbjogYGFyZ3VtZW50c0l0ZXIuX19wcm90b19fLm5leHQgPSBmdW5jdGlvbigpe307IGFy
Z3VtZW50c0l0ZXJgfSwKKyAgICBdOworCisgICAgaWYgKCF3aW5kb3cuV2ViSW5zcGVjdG9yKSB7
CisgICAgICAgIHdpbmRvdy5zdGVwcyA9IHN0ZXBzOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgcnVuU3RlcHMoc3RlcHMpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKTsgcnVuSW5Ccm93c2VyVGVzdCgpOyI+PC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0Lmh0bWwKaW5kZXggMDg0
ZWNkMzgyMTguLmQyMzA4MzBhMDg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvcmVtb3RlLW9iamVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2Rl
bC9yZW1vdGUtb2JqZWN0Lmh0bWwKQEAgLTEsMTMgKzEsMTMgQEAKLTwhZG9jdHlwZSBodG1sPgor
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3JlbW90ZS1vYmplY3QtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlv
biB0ZXN0KCkKIHsKLSAgICB2YXIgY3VycmVudFN0ZXBJbmRleCA9IDA7Ci0gICAgdmFyIHN0ZXBz
ID0gWworICAgIGxldCBzdGVwcyA9IFsKICAgICAvLyBTcGVjaWFsOgogCiAgICAgICAgIC8vIE51
bGwgLyB1bmRlZmluZWQKQEAgLTE2MSw2ICsxNjEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAge2V4cHJlc3Npb246ICJ4ID0gdW5kZWZpbmVkOyAoZnVuY3Rpb24oKSB7IHggPSBhcmd1bWVu
dHM7IH0pKDEsICd0d28nKTsgeFtTeW1ib2wuaXRlcmF0b3JdKCkifSwKICAgICAgICAge2V4cHJl
c3Npb246ICJSZWZsZWN0LmVudW1lcmF0ZSh7YToxLCBiOjIsIGM6M30pIn0sCiAgICAgICAgIHtl
eHByZXNzaW9uOiAiUmVmbGVjdC5lbnVtZXJhdGUoWzEsIDIsIDMsIDQsIDUsIDYsIDddKSJ9LAor
ICAgICAgICB7ZXhwcmVzc2lvbjogIml0ZXIgPSBbMSwgMl1bU3ltYm9sLml0ZXJhdG9yXSgpOyBp
dGVyWydyZXR1cm4nXSA9IGZ1bmN0aW9uKCl7fTsgaXRlciJ9LAogCiAgICAgICAgIC8vIFByb21p
c2UKICAgICAgICAge2V4cHJlc3Npb246ICJuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pIn0sCkBA
IC0xOTMsNjAgKzE5NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0SlNPTkZpbHRlcihrZXksIHZhbHVlKQotICAg
IHsKLSAgICAgICAgaWYgKGtleSA9PT0gIl90YXJnZXQiIHx8IGtleSA9PT0gIl9oYXNDaGlsZHJl
biIgfHwga2V5ID09PSAiX2xpc3RlbmVycyIpCi0gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVk
OwotICAgICAgICBpZiAoa2V5ID09PSAiX29iamVjdElkIiB8fCBrZXkgPT09ICJfc3RhY2tUcmFj
ZSIpCi0gICAgICAgICAgICByZXR1cm4gIjxmaWx0ZXJlZD4iOwotICAgICAgICByZXR1cm4gdmFs
dWU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuU3RlcHMoKSB7Ci0KLSAgICAgICAgZnVuY3Rp
b24gYWZ0ZXJTdGVwKCkgewotICAgICAgICAgICAgaWYgKCsrY3VycmVudFN0ZXBJbmRleCA+PSBz
dGVwcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blN0ZXAoc3RlcCkgewotICAgICAg
ICAgICAgaWYgKHN0ZXAuYnJvd3Nlck9ubHkpIHsKLSAgICAgICAgICAgICAgICBhZnRlclN0ZXAo
KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5ldmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KHN0
ZXAuZXhwcmVzc2lvbiwge29iamVjdEdyb3VwOiAidGVzdCIsIGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnNBbmRNdXRlQ29uc29sZTogdHJ1ZSwgZ2VuZXJhdGVQcmV2aWV3OiB0cnVlfSwgZnVuY3Rpb24o
cmVtb3RlT2JqZWN0LCB3YXNUaHJvd24pIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVYUFJFU1NJT046ICIgKyBzdGVwLmV4cHJlc3Npb24p
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlbW90ZU9iamVjdCBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKEpTT04uc3RyaW5naWZ5KHJlbW90ZU9iamVjdCwgcmVtb3RlT2JqZWN0SlNP
TkZpbHRlciwgIiAgIikpOwotICAgICAgICAgICAgICAgIGFmdGVyU3RlcCgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKHZhciBzdGVwIG9mIHN0ZXBzKQotICAg
ICAgICAgICAgcnVuU3RlcChzdGVwKTsKLSAgICB9Ci0KLSAgICBydW5TdGVwcygpOwotfQotCi1m
dW5jdGlvbiBydW5JbkJyb3dzZXJUZXN0KCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHJldHVybjsKLSAKLSAgICB0ZXN0KCk7IC8vIGdldCBzdGVwcy4KLQotICAgIGZv
ciAodmFyIHN0ZXAgb2Ygc3RlcHMpIHsKLSAgICAgICAgY29uc29sZS5pbmZvKCJFWFBSRVNTSU9O
Iiwgc3RlcC5leHByZXNzaW9uKTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGNvbnNvbGUu
bG9nKGV2YWwoc3RlcC5leHByZXNzaW9uKSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgICAgIGNvbnNvbGUubG9nKCJFWENFUFRJT046ICIgKyBlKTsKLSAgICAgICAgfQotICAgIH0K
KyAgICBydW5TdGVwcyhzdGVwcyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZXNvdXJjZXMvcmVtb3RlLW9iamVjdC11dGls
aXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVzb3VyY2VzL3JlbW90ZS1v
YmplY3QtdXRpbGl0aWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kMWU5ZDExZjRkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
b2RlbC9yZXNvdXJjZXMvcmVtb3RlLW9iamVjdC11dGlsaXRpZXMuanMKQEAgLTAsMCArMSw1MCBA
QAorZnVuY3Rpb24gcnVuSW5Ccm93c2VyVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHJldHVybjsKKyAKKyAgICB0ZXN0KCk7IC8vIFBvcHVsYXRlIHdpbmRvdy5z
dGVwcy4KKworICAgIGZvciAobGV0IHN0ZXAgb2Ygc3RlcHMpIHsKKyAgICAgICAgY29uc29sZS5p
bmZvKCJFWFBSRVNTSU9OIiwgc3RlcC5leHByZXNzaW9uKTsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIGNvbnNvbGUubG9nKGV2YWwoc3RlcC5leHByZXNzaW9uKSk7CisgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFWENFUFRJT046ICIgKyBlKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7
CisgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0SlNPTkZpbHRlcihrZXksIHZhbHVlKSB7CisgICAg
ICAgIGlmIChrZXkgPT09ICJfdGFyZ2V0IiB8fCBrZXkgPT09ICJfaGFzQ2hpbGRyZW4iIHx8IGtl
eSA9PT0gIl9saXN0ZW5lcnMiKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAg
ICAgaWYgKGtleSA9PT0gIl9vYmplY3RJZCIgfHwga2V5ID09PSAiX3N0YWNrVHJhY2UiKQorICAg
ICAgICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAg
IH0KKworICAgIHdpbmRvdy5ydW5TdGVwcyA9IGZ1bmN0aW9uKHN0ZXBzKSB7CisgICAgICAgIGxl
dCBjdXJyZW50U3RlcEluZGV4ID0gMDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja0NvbXBsZXRl
KCkgeworICAgICAgICAgICAgaWYgKCsrY3VycmVudFN0ZXBJbmRleCA+PSBzdGVwcy5sZW5ndGgp
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZvciAobGV0IHtleHByZXNzaW9uLCBicm93c2VyT25seX0gb2Ygc3RlcHMp
IHsKKyAgICAgICAgICAgIGlmIChicm93c2VyT25seSkgeworICAgICAgICAgICAgICAgIGNoZWNr
Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5ldmFsdWF0ZUluSW5zcGVjdGVk
V2luZG93KGV4cHJlc3Npb24sIHtvYmplY3RHcm91cDogInRlc3QiLCBkb05vdFBhdXNlT25FeGNl
cHRpb25zQW5kTXV0ZUNvbnNvbGU6IHRydWUsIGdlbmVyYXRlUHJldmlldzogdHJ1ZX0sIChyZW1v
dGVPYmplY3QsIHdhc1Rocm93bikgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCIiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRVhQUkVTU0lPTjogIiArIGV4cHJlc3Npb24pOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlbW90ZU9iamVjdCBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKEpTT04uc3RyaW5naWZ5KHJlbW90ZU9iamVjdCwgcmVtb3RlT2JqZWN0SlNPTkZpbHRl
ciwgMikpOworICAgICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgfTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1leHBlY3Rl
ZC50eHQKaW5kZXggMmJlNzYyOGI5YWMuLmZiMTRkZTk0ZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvbW9kZWwvcmVtb3Rl
LW9iamVjdC1leHBlY3RlZC50eHQKQEAgLTQwODEsNiArNDA4MSw3OSBAQCBFWFBSRVNTSU9OOiBS
ZWZsZWN0LmVudW1lcmF0ZShbMSwgMiwgMywgNCwgNSwgNiwgN10pCiB9CiAKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBp
dGVyID0gWzEsIDJdW1N5bWJvbC5pdGVyYXRvcl0oKTsgaXRlclsncmV0dXJuJ10gPSBmdW5jdGlv
bigpe307IGl0ZXIKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVy
YXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAi
QXJyYXkgSXRlcmF0b3IiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIs
CisgICAgIl9zdWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5
IEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFs
c2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAiYXJy
YXkiLAorICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFy
cmF5IiwKKyAgICAgICAgIl92YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjogIm9i
amVjdCIsCisgICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2Ny
aXB0aW9uIjogIkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAg
ICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAgICAi
X3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIw
IiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFs
dWUiOiAiMSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJf
bmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAg
ICAgICJfdmFsdWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAgICAg
ICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUK
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90
eXBlIjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2lu
dGVybmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAg
eworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAg
ICAgICAgICJfZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUs
CisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6
IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAor
ICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIi
LAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6
IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVy
dGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAg
ICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiBFWFBSRVNTSU9OOiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe30p
CiB7CiAgICJfdHlwZSI6ICJvYmplY3QiLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ1
NzkyOTFiN2YuLjk0ZjE1OTc3ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1OCBAQAorMjAxNy0wNi0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENyYXNoIGdlbmVyYXRpbmcgb2JqZWN0IHByZXZp
ZXcgZm9yIEFycmF5SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3Mzc1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBJbnNw
ZWN0b3IgZ2VuZXJhdGVzIGFuIG9iamVjdCBwcmV2aWV3IGZvciBhbiBBcnJheUl0ZXJhdG9yIGlu
c3RhbmNlIGl0IG1hZGUKKyAgICAgICAgYSAiY2xvbmUiIG9mIHRoZSBvcmlnaW5hbCBBcnJheUl0
ZXJhdG9yIGluc3RhbmNlIGJ5IGNvbnN0cnVjdGluZyBhIG5ldyBvYmplY3Qgd2l0aAorICAgICAg
ICB0aGUgaW5zdGFuY2UncyBzdHJ1Y3R1cmUuIEhvd2V2ZXIsIHVzZXIgY29kZSBjb3VsZCBoYXZl
IG1vZGlmaWVkIHRoYXQgaW5zdGFuY2UncworICAgICAgICBzdHJ1Y3R1cmUsIHN1Y2ggYXMgYWRk
aW5nIC8gcmVtb3ZpbmcgcHJvcGVydGllcy4gVGhlIGByZXR1cm5gIHByb3BlcnR5IGhhZCBzcGVj
aWFsCisgICAgICAgIG1lYW5pbmcsIGFuZCBvdXIgY2xvbmUgZGlkIG5vdCBmaWxsIHRoYXQgc2xv
dC4gVGhpcyBhcHByb2FjaCBpcyBicml0dGxlIGluIHRoYXQKKyAgICAgICAgd2Ugd2VyZW4ndCBz
YXRpc2Z5aW5nIHRoZSBleHBlY3RhdGlvbnMgb2YgYW4gb2JqZWN0IHdpdGggYSBwYXJ0aWN1bGFy
IFN0cnVjdHVyZSwKKyAgICAgICAgYW5kIHRoZSBvcmlnaW5hbCBnb2FsIG9mIGhhdmluZyBXZWIg
SW5zcGVjdG9yIHBlZWsgdmFsdWVzIG9mIGJ1aWx0LWluIEl0ZXJhdG9ycworICAgICAgICB3YXMg
dG8gYXZvaWQgb2JzZXJ2YWJsZSBiZWhhdmlvci4KKworICAgICAgICBUaGlzIHRpZ2h0ZW5zIFdl
YiBJbnNwZWN0b3IncyBJdGVyYXRvciBwcmV2aWV3IHRvIG9ubHkgcGVlayB2YWx1ZXMgaWYgdGhl
CisgICAgICAgIEl0ZXJhdG9ycyB3b3VsZCBhY3R1YWxseSBiZSBub24tb2JzZXJ2YWJsZS4gSXQg
YWxzbyBidWlsZHMgYW4gQXJyYXlJdGVyYXRvcgorICAgICAgICBjbG9uZSBsaWtlIGEgcmVndWxh
ciBvYmplY3QgY29uc3RydWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRT
Y3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6Y2xvbmVBcnJheUl0ZXJhdG9yT2Jq
ZWN0KToKKyAgICAgICAgQnVpbGQgdXAgdGhlIE9iamVjdCBmcm9tIHNjcmF0Y2ggd2l0aCBhIG5l
dyBBcnJheUl0ZXJhdG9yIHByb3RvdHlwZS4KKworICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVj
dGVkU2NyaXB0SG9zdDo6aXRlcmF0b3JFbnRyaWVzKToKKyAgICAgICAgT25seSBjbG9uZSBhbmQg
cGVlayBpdGVyYXRvcnMgaWYgaXQgd291bGQgbm90IGJlIG9ic2VydmFibGUuCisgICAgICAgIEFs
c28gdXBkYXRlIGl0ZXJhdGlvbiB0byBiZSBtb3JlIGluIGxpbmUgd2l0aCBJdGVyYXRpb25PcGVy
YXRpb25zLCBzdWNoIGFzIHdoZW4KKyAgICAgICAgd2UgY2FsbCBpdGVyYXRvckNsb3NlLgorCisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xv
YmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjpzdHJpbmdJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk6Cisg
ICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmlzU3RyaW5nUHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmRO
b25PYnNlcnZhYmxlKToKKyAgICAgICAgQWRkIGEgU3RyaW5nSXRlcmF0b3IgV2F0Y2hQb2ludCBp
biBsaW5lIHdpdGggdGhlIEFycmF5L01hcC9TZXQgaXRlcmF0b3Igd2F0Y2hwb2ludHMuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTTWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNYXA6OmlzSXRlcmF0
b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKToKKyAgICAgICAgKEpTQzo6SlNNYXA6OmNh
bkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNYXAuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTZXQ6OmlzSXRl
cmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKToKKyAgICAgICAgKEpTQzo6SlNTZXQ6
OmNhbkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTZXQu
aDoKKyAgICAgICAgUHJvbW90ZSBpc0l0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJs
ZSB0byBhIG1ldGhvZC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpjYW5Eb0Zhc3RQdXREaXJlY3RJbmRleCk6CisgICAgICAgICogcnVudGltZS9KU1R5
cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjppc0FyZ3VtZW50c1R5cGUpOgorICAg
ICAgICBIZWxwZXIgdG8gZGV0ZWN0IGlmIGFuIE9iamVjdCBpcyBhbiBBcmd1bWVudHMgdHlwZS4K
KwogMjAxNy0wNi0yMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhdXNpbmcgd2l0aCBhIGRlZXAgY2FsbCBzdGFjayBjYW4g
YmUgdmVyeSBzbG93LCBhdm9pZCBlYWdlcmx5IGdlbmVyYXRpbmcgb2JqZWN0IHByZXZpZXdzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3QuY3BwCmluZGV4IDdjYzBlODk4MjNhLi4zYzc0ZTA2YzZkYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9z
dC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U0luamVjdGVkU2NyaXB0SG9zdC5oIgogCisjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlw
ZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIK
ICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKQEAgLTMzLDYgKzM0LDcgQEAKICNpbmNsdWRlICJF
cnJvci5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1ZGUgIkl0ZXJh
dG9yT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIkl0ZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVk
ZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKQEAgLTM1OSw3ICszNjEsNyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBhcnJh
eS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywgY29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0
eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBraW5kKSkpOwogICAgICAg
ICByZXR1cm4gYXJyYXk7CiAgICAgfQotICAgICAgICAKKwogICAgIGlmIChKU1NldEl0ZXJhdG9y
KiBzZXRJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8SlNTZXRJdGVyYXRvcio+KHZtLCB2YWx1ZSkp
IHsKICAgICAgICAgU3RyaW5nIGtpbmQ7CiAgICAgICAgIHN3aXRjaCAoc2V0SXRlcmF0b3ItPmtp
bmQoKSkgewpAQCAtNTE5LDE0ICs1MjEsMTUgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9z
dDo6d2Vha1NldEVudHJpZXMoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBhcnJheTsKIH0K
IAotc3RhdGljIEpTT2JqZWN0KiBjbG9uZUFycmF5SXRlcmF0b3JPYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBpdGVyYXRvck9iamVjdCwgSlNWYWx1ZSBuZXh0SW5kZXgp
CitzdGF0aWMgSlNPYmplY3QqIGNsb25lQXJyYXlJdGVyYXRvck9iamVjdChFeGVjU3RhdGUqIGV4
ZWMsIFZNJiB2bSwgSlNPYmplY3QqIGl0ZXJhdG9yT2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIG5leHRJbmRleCwgSlNWYWx1ZSBpdGVyYXRlZE9iamVjdCkKIHsK
ICAgICBBU1NFUlQoaXRlcmF0b3JPYmplY3QtPnR5cGUoKSA9PSBGaW5hbE9iamVjdFR5cGUpOwot
ICAgIEpTT2JqZWN0KiBjbG9uZSA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMsIGl0ZXJhdG9y
T2JqZWN0LT5zdHJ1Y3R1cmUoKSk7CisgICAgSlNPYmplY3QqIGNsb25lID0gY29uc3RydWN0RW1w
dHlPYmplY3QoZXhlYywgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPml0ZXJhdG9yUHJvdG90eXBlKCkpKSk7CisgICAgY2xvbmUt
PnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRP
YmplY3RQcml2YXRlTmFtZSgpLCBpdGVyYXRlZE9iamVjdCk7CisgICAgY2xvbmUtPnB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcktpbmRQ
cml2YXRlTmFtZSgpLCBpdGVyYXRvck9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yS2luZFByaXZhdGVOYW1lKCkpKTsKICAg
ICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5h
cnJheUl0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKLSAgICBjbG9u
ZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRl
ZE9iamVjdFByaXZhdGVOYW1lKCksIGl0ZXJhdG9yT2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkT2JqZWN0UHJpdmF0ZU5hbWUoKSkp
OwotICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmFycmF5SXRlcmF0b3JJc0RvbmVQcml2YXRlTmFtZSgpLCBpdGVyYXRvck9iamVjdC0+Z2V0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9y
SXNEb25lUHJpdmF0ZU5hbWUoKSkpOwogICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwg
aXRlcmF0b3JPYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuYXJyYXlJdGVyYXRvck5leHRQcml2YXRlTmFtZSgpKSk7CisgICAgY2xvbmUtPnB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcklz
RG9uZVByaXZhdGVOYW1lKCksIGl0ZXJhdG9yT2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JJc0RvbmVQcml2YXRlTmFtZSgp
KSk7CiAgICAgcmV0dXJuIGNsb25lOwogfQogCkBAIC01MzcsNTcgKzU0MCw2OCBAQCBKU1ZhbHVl
IEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjppdGVyYXRvckVudHJpZXMoRXhlY1N0YXRlKiBleGVjKQog
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKICAgICBKU1ZhbHVlIGl0ZXJhdG9yOworICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGlmIChKU01hcEl0ZXJh
dG9yKiBtYXBJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8SlNNYXBJdGVyYXRvcio+KHZtLCB2YWx1
ZSkpCi0gICAgICAgIGl0ZXJhdG9yID0gbWFwSXRlcmF0b3ItPmNsb25lKGV4ZWMpOwotICAgIGVs
c2UgaWYgKEpTU2V0SXRlcmF0b3IqIHNldEl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU1NldEl0
ZXJhdG9yKj4odm0sIHZhbHVlKSkKLSAgICAgICAgaXRlcmF0b3IgPSBzZXRJdGVyYXRvci0+Y2xv
bmUoZXhlYyk7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJdGVyYXRvciogc3RyaW5nSXRlcmF0b3Ig
PSBqc0R5bmFtaWNDYXN0PEpTU3RyaW5nSXRlcmF0b3IqPih2bSwgdmFsdWUpKQotICAgICAgICBp
dGVyYXRvciA9IHN0cmluZ0l0ZXJhdG9yLT5jbG9uZShleGVjKTsKLSAgICBlbHNlIGlmIChKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5hbWVJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+KHZtLCB2YWx1ZSkpIHsKKyAgICBpZiAoSlNNYXBJdGVy
YXRvciogbWFwSXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTTWFwSXRlcmF0b3IqPih2bSwgdmFs
dWUpKSB7CisgICAgICAgIGlmIChqc0Nhc3Q8SlNNYXAqPihtYXBJdGVyYXRvci0+aXRlcmF0ZWRW
YWx1ZSgpKS0+aXNJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAg
ICAgICAgIGl0ZXJhdG9yID0gbWFwSXRlcmF0b3ItPmNsb25lKGV4ZWMpOworICAgIH0gZWxzZSBp
ZiAoSlNTZXRJdGVyYXRvciogc2V0SXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTU2V0SXRlcmF0
b3IqPih2bSwgdmFsdWUpKSB7CisgICAgICAgIGlmIChqc0Nhc3Q8SlNTZXQqPihzZXRJdGVyYXRv
ci0+aXRlcmF0ZWRWYWx1ZSgpKS0+aXNJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFi
bGUoKSkKKyAgICAgICAgICAgIGl0ZXJhdG9yID0gc2V0SXRlcmF0b3ItPmNsb25lKGV4ZWMpOwor
ICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJdGVyYXRvciogc3RyaW5nSXRlcmF0b3IgPSBqc0R5bmFt
aWNDYXN0PEpTU3RyaW5nSXRlcmF0b3IqPih2bSwgdmFsdWUpKSB7CisgICAgICAgIGlmIChnbG9i
YWxPYmplY3QtPmlzU3RyaW5nUHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNl
cnZhYmxlKCkpCisgICAgICAgICAgICBpdGVyYXRvciA9IHN0cmluZ0l0ZXJhdG9yLT5jbG9uZShl
eGVjKTsKKyAgICB9IGVsc2UgaWYgKEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFt
ZUl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKj4odm0sIHZh
bHVlKSkgeworICAgICAgICAvLyBGSVhNRTogUmVmbGVjdC5lbnVtZXJhdGUgaXRlcmF0aW9uIGNh
biBiZSBvYnNlcnZhYmxlLCBidXQgaXQgaXMgYWxzbyByZW1vdmVkIGZyb20gRUNNQVNjcmlwdC4K
ICAgICAgICAgaXRlcmF0b3IgPSBwcm9wZXJ0eU5hbWVJdGVyYXRvci0+Y2xvbmUoZXhlYyk7Ci0g
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgaWYgKEpTT2JqZWN0KiBpdGVyYXRvck9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNPYmplY3QqPih2bSwgdmFsdWUpKSB7Ci0gICAgICAgICAgICAvLyBBcnJheSBJdGVyYXRvcnMg
YXJlIGNyZWF0ZWQgaW4gSlMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRodXMgdGhlIG9ubHkg
d2F5IHRvIGtub3cgd2UgaGF2ZSBvbmUgaXMgdG8KLSAgICAgICAgICAgIC8vIGxvb2sgZm9yIGEg
cHJvcGVydHkgdGhhdCBpcyB1bmlxdWUgdG8gdGhlbS4KLSAgICAgICAgICAgIGlmIChKU1ZhbHVl
IG5leHRJbmRleCA9IGl0ZXJhdG9yT2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpKSkK
LSAgICAgICAgICAgICAgICBpdGVyYXRvciA9IGNsb25lQXJyYXlJdGVyYXRvck9iamVjdChleGVj
LCB2bSwgaXRlcmF0b3JPYmplY3QsIG5leHRJbmRleCk7CisgICAgfSBlbHNlIGlmIChKU09iamVj
dCogaXRlcmF0b3JPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIHZhbHVlKSkg
eworICAgICAgICAvLyBEZXRlY3QgYW4gQXJyYXlJdGVyYXRvciBieSBjaGVja2luZyBmb3Igb25l
IG9mIGl0cyB1bmlxdWUgcHJpdmF0ZSBwcm9wZXJ0aWVzLgorICAgICAgICBpZiAoSlNWYWx1ZSBu
ZXh0SW5kZXggPSBpdGVyYXRvck9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5hbWUoKSkpIHsK
KyAgICAgICAgICAgIEpTVmFsdWUgaXRlcmF0ZWRPYmplY3QgPSBpdGVyYXRvck9iamVjdC0+Z2V0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZE9iamVj
dFByaXZhdGVOYW1lKCkpOworICAgICAgICAgICAgaWYgKGlzSlNBcnJheShpdGVyYXRlZE9iamVj
dCkpIHsKKyAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4o
aXRlcmF0ZWRPYmplY3QpOworICAgICAgICAgICAgICAgIGlmIChhcnJheS0+aXNJdGVyYXRvclBy
b3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaXRlcmF0
b3IgPSBjbG9uZUFycmF5SXRlcmF0b3JPYmplY3QoZXhlYywgdm0sIGl0ZXJhdG9yT2JqZWN0LCBn
bG9iYWxPYmplY3QsIG5leHRJbmRleCwgaXRlcmF0ZWRPYmplY3QpOworICAgICAgICAgICAgfSBl
bHNlIGlmIChpdGVyYXRlZE9iamVjdC5pc09iamVjdCgpICYmIFR5cGVJbmZvOjppc0FyZ3VtZW50
c1R5cGUoYXNPYmplY3QoaXRlcmF0ZWRPYmplY3QpLT50eXBlKCkpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGdsb2JhbE9iamVjdC0+aXNBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciA9IGNsb25l
QXJyYXlJdGVyYXRvck9iamVjdChleGVjLCB2bSwgaXRlcmF0b3JPYmplY3QsIGdsb2JhbE9iamVj
dCwgbmV4dEluZGV4LCBpdGVyYXRlZE9iamVjdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBpZiAoIWl0
ZXJhdG9yKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIHVuc2lnbmVkIG51
bWJlclRvRmV0Y2ggPSA1OwogICAgIEpTVmFsdWUgbnVtYmVyVG9GZXRjaEFyZyA9IGV4ZWMtPmFy
Z3VtZW50KDEpOwogICAgIGRvdWJsZSBmZXRjaERvdWJsZSA9IG51bWJlclRvRmV0Y2hBcmcudG9J
bnRlZ2VyKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAg
aWYgKGZldGNoRG91YmxlID49IDApCiAgICAgICAgIG51bWJlclRvRmV0Y2ggPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZmV0Y2hEb3VibGUpOwogCiAgICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1
Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJUb0ZldGNoOyArK2kpIHsKICAgICAg
ICAgSlNWYWx1ZSBuZXh0ID0gaXRlcmF0b3JTdGVwKGV4ZWMsIGl0ZXJhdG9yKTsKLSAgICAgICAg
aWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBpZiAobmV4dC5pc0ZhbHNlKCkpCisgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNl
cHRpb24oKSkgfHwgbmV4dC5pc0ZhbHNlKCkpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICBKU1ZhbHVlIG5leHRWYWx1ZSA9IGl0ZXJhdG9yVmFsdWUoZXhlYywgbmV4dCk7Ci0gICAgICAg
IGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpCi0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBKU09iamVj
dCogZW50cnkgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKICAgICAgICAgZW50cnktPnB1
dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJ2YWx1ZSIp
LCBuZXh0VmFsdWUpOwogICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgZW50
cnkpOwotICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQorICAgICAgICBp
ZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CisgICAgICAgICAgICBzY29wZS5yZWxl
YXNlKCk7CisgICAgICAgICAgICBpdGVyYXRvckNsb3NlKGV4ZWMsIGl0ZXJhdG9yKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogCi0gICAgaXRlcmF0b3JDbG9zZShleGVj
LCBpdGVyYXRvcik7Ci0KICAgICByZXR1cm4gYXJyYXk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCBiYjZkZjkyYjgzMi4u
NzllNzVkOWM4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTMyNSw2ICszMjUsNyBAQCBKU0dsb2JhbE9iamVjdDo6SlNHbG9i
YWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0
TQogICAgICwgbV9hcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KElzV2F0Y2hlZCkKICAg
ICAsIG1fbWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoSXNXYXRjaGVkKQogICAgICwgbV9z
ZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludChJc1dhdGNoZWQpCisgICAgLCBtX3N0cmluZ0l0
ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KElzV2F0Y2hlZCkKICAgICAsIG1fbWFwU2V0V2F0Y2hw
b2ludChJc1dhdGNoZWQpCiAgICAgLCBtX3NldEFkZFdhdGNocG9pbnQoSXNXYXRjaGVkKQogICAg
ICwgbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50KENsZWFyV2F0Y2hwb2ludCkKQEAgLTkzNyw3ICs5
MzgsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICAgICAgbV9hcnJheUl0ZXJh
dG9yUHJvdG90eXBlTmV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHZtLCBjb25kaXRpb24sIG1f
YXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CiAgICAgICAgICAgICBtX2FycmF5SXRl
cmF0b3JQcm90b3R5cGVOZXh0LT5pbnN0YWxsKCk7CiAgICAgICAgIH0KLQogICAgICAgICB7CiAg
ICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0
aXZlV2F0Y2hwb2ludCh0aGlzLT5hcnJheVByb3RvdHlwZSgpLCBtX3ZtLnByb3BlcnR5TmFtZXMt
Pml0ZXJhdG9yU3ltYm9sKTsKICAgICAgICAgICAgIG1fYXJyYXlQcm90b3R5cGVTeW1ib2xJdGVy
YXRvcldhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX2Fy
cmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQpOwpAQCAtOTQ5LDcgKzk0OSw2IEBAIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dl
ck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgICAgICBtX21hcEl0ZXJhdG9yUHJvdG90eXBlTmV4
dFdhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRp
dmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21hcEl0
ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKICAgICAgICAgICAgIG1fbWFwSXRlcmF0b3JQcm90
b3R5cGVOZXh0V2F0Y2hwb2ludC0+aW5zdGFsbCgpOwogICAgICAgICB9Ci0KICAgICAgICAgewog
ICAgICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uID0gc2V0dXBBZGFw
dGl2ZVdhdGNocG9pbnQobV9tYXBQcm90b3R5cGUuZ2V0KCksIG1fdm0ucHJvcGVydHlOYW1lcy0+
aXRlcmF0b3JTeW1ib2wpOwogICAgICAgICAgICAgbV9tYXBQcm90b3R5cGVTeW1ib2xJdGVyYXRv
cldhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRp
dmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21hcEl0
ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKQEAgLTk2MSw3ICs5NjAsNiBAQCBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1l
ICMjIENvbnN0cnVjdAogICAgICAgICAgICAgbV9zZXRJdGVyYXRvclByb3RvdHlwZU5leHRXYXRj
aHBvaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0
Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odm0sIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRv
clByb3RvY29sV2F0Y2hwb2ludCk7CiAgICAgICAgICAgICBtX3NldEl0ZXJhdG9yUHJvdG90eXBl
TmV4dFdhdGNocG9pbnQtPmluc3RhbGwoKTsKICAgICAgICAgfQotCiAgICAgICAgIHsKICAgICAg
ICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA9IHNldHVwQWRhcHRpdmVX
YXRjaHBvaW50KG1fc2V0UHJvdG90eXBlLmdldCgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPml0ZXJh
dG9yU3ltYm9sKTsKICAgICAgICAgICAgIG1fc2V0UHJvdG90eXBlU3ltYm9sSXRlcmF0b3JXYXRj
aHBvaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0
Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odm0sIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRv
clByb3RvY29sV2F0Y2hwb2ludCk7CkBAIC05NjksNiArOTY3LDE3IEBAIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMg
Q29uc3RydWN0CiAgICAgICAgIH0KIAogICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0aXZlV2F0Y2hwb2ludChtX3N0cmlu
Z0l0ZXJhdG9yUHJvdG90eXBlLmdldCgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPm5leHQpOworICAg
ICAgICAgICAgbV9zdHJpbmdJdGVyYXRvclByb3RvdHlwZU5leHRXYXRjaHBvaW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVX
YXRjaHBvaW50U2V0Pj4odm0sIGNvbmRpdGlvbiwgbV9zdHJpbmdJdGVyYXRvclByb3RvY29sV2F0
Y2hwb2ludCk7CisgICAgICAgICAgICBtX3N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlTmV4dFdhdGNo
cG9pbnQtPmluc3RhbGwoKTsKKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBPYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0aXZlV2F0Y2hwb2ludCht
X3N0cmluZ1Byb3RvdHlwZS5nZXQoKSwgbV92bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJv
bCk7CisgICAgICAgICAgICBtX3N0cmluZ1Byb3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2lu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9p
bnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHZtLCBjb25kaXRpb24sIG1fc3RyaW5nSXRlcmF0b3JQ
cm90b2NvbFdhdGNocG9pbnQpOworICAgICAgICAgICAgbV9zdHJpbmdQcm90b3R5cGVTeW1ib2xJ
dGVyYXRvcldhdGNocG9pbnQtPmluc3RhbGwoKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKICAg
ICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA9IHNldHVwQWRhcHRp
dmVXYXRjaHBvaW50KG1fbWFwUHJvdG90eXBlLmdldCgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPnNl
dCk7CiAgICAgICAgICAgICBtX21hcFByb3RvdHlwZVNldFdhdGNocG9pbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNo
cG9pbnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21hcFNldFdhdGNocG9pbnQpOwogICAgICAgICAg
ICAgbV9tYXBQcm90b3R5cGVTZXRXYXRjaHBvaW50LT5pbnN0YWxsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA5MDYyMmZhNmYzOC4u
ODZkODkwNTRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtNDA4LDYgKzQwOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVXYXRjaHBv
aW50U2V0JiBhcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9hcnJh
eUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYg
bWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoKSB7IHJldHVybiBtX21hcEl0ZXJhdG9yUHJv
dG9jb2xXYXRjaHBvaW50OyB9CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgc2V0SXRlcmF0b3JQ
cm90b2NvbFdhdGNocG9pbnQoKSB7IHJldHVybiBtX3NldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50OyB9CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgc3RyaW5nSXRlcmF0b3JQcm90b2NvbFdh
dGNocG9pbnQoKSB7IHJldHVybiBtX3N0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9
CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgbWFwU2V0V2F0Y2hwb2ludCgpIHsgcmV0dXJuIG1f
bWFwU2V0V2F0Y2hwb2ludDsgfQogICAgIElubGluZVdhdGNocG9pbnRTZXQmIHNldEFkZFdhdGNo
cG9pbnQoKSB7IHJldHVybiBtX3NldEFkZFdhdGNocG9pbnQ7IH0KICAgICBJbmxpbmVXYXRjaHBv
aW50U2V0JiBhcnJheVNwZWNpZXNXYXRjaHBvaW50KCkgeyByZXR1cm4gbV9hcnJheVNwZWNpZXNX
YXRjaHBvaW50OyB9CkBAIC00MTYsNiArNDE3LDcgQEAgcHVibGljOgogICAgIElubGluZVdhdGNo
cG9pbnRTZXQgbV9hcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OwogICAgIElubGluZVdh
dGNocG9pbnRTZXQgbV9tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludDsKICAgICBJbmxpbmVX
YXRjaHBvaW50U2V0IG1fc2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQ7CisgICAgSW5saW5l
V2F0Y2hwb2ludFNldCBtX3N0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OwogICAgIElu
bGluZVdhdGNocG9pbnRTZXQgbV9tYXBTZXRXYXRjaHBvaW50OwogICAgIElubGluZVdhdGNocG9p
bnRTZXQgbV9zZXRBZGRXYXRjaHBvaW50OwogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9hcnJh
eVNwZWNpZXNXYXRjaHBvaW50OwpAQCAtNDI1LDEyICs0MjcsMTUgQEAgcHVibGljOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxp
bmVXYXRjaHBvaW50U2V0Pj4gbV9tYXBJdGVyYXRvclByb3RvdHlwZU5leHRXYXRjaHBvaW50Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2lu
dDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4gbV9zZXRQcm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNo
cG9pbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVX
YXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX3NldEl0ZXJhdG9yUHJvdG90eXBlTmV4
dFdhdGNocG9pbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+PiBtX3N0cmluZ1Byb3RvdHlwZVN5
bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVy
dHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fc3RyaW5n
SXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2Jq
ZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+
IG1fbWFwUHJvdG90eXBlU2V0V2F0Y2hwb2ludDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0
UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1f
c2V0UHJvdG90eXBlQWRkV2F0Y2hwb2ludDsKIAogICAgIGJvb2wgaXNBcnJheVByb3RvdHlwZUl0
ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNNYXBQcm90
b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKTsKICAgICBib29sIGlz
U2V0UHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKCk7CisgICAg
Ym9vbCBpc1N0cmluZ1Byb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJs
ZSgpOwogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVTZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwog
ICAgIGJvb2wgaXNTZXRQcm90b3R5cGVBZGRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdElubGlu
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5l
cy5oCmluZGV4IGE1ZDA2ZGFhOTFhLi41MmU5Mzc2MWJhNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVzLmgKQEAgLTgyLDYg
KzgyLDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNTZXRQcm90b3R5
cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VyCiAgICAgcmV0dXJuIHNldEl0ZXJhdG9y
UHJvdG9jb2xXYXRjaHBvaW50KCkuaXNTdGlsbFZhbGlkKCk7CiB9CiAKK0FMV0FZU19JTkxJTkUg
Ym9vbCBKU0dsb2JhbE9iamVjdDo6aXNTdHJpbmdQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFz
dEFuZE5vbk9ic2VydmFibGUoKQoreworICAgIHJldHVybiBzdHJpbmdJdGVyYXRvclByb3RvY29s
V2F0Y2hwb2ludCgpLmlzU3RpbGxWYWxpZCgpOworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNH
bG9iYWxPYmplY3Q6OmlzTWFwUHJvdG90eXBlU2V0RmFzdEFuZE5vbk9ic2VydmFibGUoKQogewog
ICAgIHJldHVybiBtYXBTZXRXYXRjaHBvaW50KCkuaXNTdGlsbFZhbGlkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01hcC5jcHAKaW5kZXggNzA0NDFkNWQ2YjMuLjhhY2E1NzJhNTU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXAuY3BwCkBAIC00NSwyNyArNDUs
MjggQEAgSlNNYXAqIEpTTWFwOjpjbG9uZShFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCitib29sIEpTTWFwOjpp
c0l0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpCit7CisgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmdsb2JhbE9iamVjdCgpOworICAgIGlmICghZ2xv
YmFsT2JqZWN0LT5pc01hcFByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2
YWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IHRoaXMtPnN0cnVjdHVyZSgpOworICAgIC8vIFRoaXMgaXMgdGhlIGZhc3QgY2FzZS4gTWFu
eSBtYXBzIHdpbGwgYmUgYW4gb3JpZ2luYWwgbWFwLgorICAgIGlmIChzdHJ1Y3R1cmUgPT0gZ2xv
YmFsT2JqZWN0LT5tYXBTdHJ1Y3R1cmUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBp
ZiAoc3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSAhPSBnbG9iYWxPYmplY3QtPm1hcFByb3Rv
dHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZ2V0RGlyZWN0T2Zmc2V0
KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT52bSgpLnByb3BlcnR5TmFtZXMtPml0
ZXJhdG9yU3ltYm9sKSAhPSBpbnZhbGlkT2Zmc2V0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBKU01hcDo6Y2FuQ2xvbmVGYXN0QW5kTm9uT2Jz
ZXJ2YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBhdXRvIGlzSXRlcmF0b3JQcm90
b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlID0gWyZdICgpIHsKLSAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBpZiAoIWds
b2JhbE9iamVjdC0+aXNNYXBQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2Vy
dmFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgpOwotICAgICAgICAvLyBUaGlzIGlzIHRoZSBm
YXN0IGNhc2UuIE1hbnkgbWFwcyB3aWxsIGJlIGFuIG9yaWdpbmFsIG1hcC4KLSAgICAgICAgaWYg
KHN0cnVjdHVyZSA9PSBnbG9iYWxPYmplY3QtPm1hcFN0cnVjdHVyZSgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBlKCkg
IT0gZ2xvYmFsT2JqZWN0LT5tYXBQcm90b3R5cGUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgICAgICBpZiAoZ2V0RGlyZWN0T2Zmc2V0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xv
YmFsT2JqZWN0LT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKSAhPSBpbnZhbGlk
T2Zmc2V0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH07Ci0KICAgICBhdXRvIHNldEZhc3RBbmROb25PYnNlcnZhYmxlID0gWyZdIChTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKTsKICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3Qt
PmlzTWFwUHJvdG90eXBlU2V0RmFzdEFuZE5vbk9ic2VydmFibGUoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU01hcC5oCmluZGV4IGU3NDlhYzU5ZjZhLi44MWUzMjZkYTBiMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXAuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICAgICAgYWRkKGV4ZWMsIGtleSwgdmFsdWUpOwogICAgIH0KIAorICAgIGJvb2wgaXNJdGVy
YXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKTsKICAgICBib29sIGNhbkNsb25lRmFz
dEFuZE5vbk9ic2VydmFibGUoU3RydWN0dXJlKik7CiAgICAgSlNNYXAqIGNsb25lKEV4ZWNTdGF0
ZSosIFZNJiwgU3RydWN0dXJlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcAppbmRleCAxZDEyNjg4ZWQ5Yy4uOWEzNGEyZmJhM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTIzNjEsOSArMjM2MSw3IEBAIEFM
V0FZU19JTkxJTkUgc3RhdGljIGJvb2wgY2FuRG9GYXN0UHV0RGlyZWN0SW5kZXgoSlNPYmplY3Qq
IG9iamVjdCkKIHsKICAgICByZXR1cm4gaXNKU0FycmF5KG9iamVjdCkKICAgICAgICAgfHwgaXNK
U0ZpbmFsT2JqZWN0KG9iamVjdCkKLSAgICAgICAgfHwgb2JqZWN0LT50eXBlKCkgPT0gRGlyZWN0
QXJndW1lbnRzVHlwZQotICAgICAgICB8fCBvYmplY3QtPnR5cGUoKSA9PSBTY29wZWRBcmd1bWVu
dHNUeXBlCi0gICAgICAgIHx8IG9iamVjdC0+dHlwZSgpID09IENsb25lZEFyZ3VtZW50c1R5cGU7
CisgICAgICAgIHx8IFR5cGVJbmZvOjppc0FyZ3VtZW50c1R5cGUob2JqZWN0LT50eXBlKCkpOwog
fQogCiAvLyBEZWZpbmVkIGluIEVTNS4xIDguMTIuOQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTZXQuY3BwCmluZGV4IGI0YzY0ODk4ZDAxLi5lNGY0YTE2ZTQ4NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmNwcApAQCAtNDUsMjcgKzQ1LDI4IEBAIEpTU2V0KiBK
U1NldDo6Y2xvbmUoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAorYm9vbCBKU1NldDo6aXNJdGVyYXRvclByb3Rv
Y29sRmFzdEFuZE5vbk9ic2VydmFibGUoKQoreworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSB0aGlzLT5nbG9iYWxPYmplY3QoKTsKKyAgICBpZiAoIWdsb2JhbE9iamVjdC0+aXNT
ZXRQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1
Y3R1cmUoKTsKKyAgICAvLyBUaGlzIGlzIHRoZSBmYXN0IGNhc2UuIE1hbnkgc2V0cyB3aWxsIGJl
IGFuIG9yaWdpbmFsIHNldC4KKyAgICBpZiAoc3RydWN0dXJlID09IGdsb2JhbE9iamVjdC0+c2V0
U3RydWN0dXJlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHN0cnVjdHVyZS0+
c3RvcmVkUHJvdG90eXBlKCkgIT0gZ2xvYmFsT2JqZWN0LT5qc1NldFByb3RvdHlwZSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZ2V0RGlyZWN0T2Zmc2V0KGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9s
KSAhPSBpbnZhbGlkT2Zmc2V0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogYm9vbCBKU1NldDo6Y2FuQ2xvbmVGYXN0QW5kTm9uT2JzZXJ2YWJsZShTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBhdXRvIGlzSXRlcmF0b3JQcm90b2NvbEZhc3RBbmRO
b25PYnNlcnZhYmxlID0gWyZdICgpIHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IHRoaXMtPmdsb2JhbE9iamVjdCgpOwotICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+
aXNTZXRQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IHRoaXMtPnN0cnVjdHVyZSgpOwotICAgICAgICAvLyBUaGlzIGlzIHRoZSBmYXN0IGNhc2UuIE1h
bnkgc2V0cyB3aWxsIGJlIGFuIG9yaWdpbmFsIHNldC4KLSAgICAgICAgaWYgKHN0cnVjdHVyZSA9
PSBnbG9iYWxPYmplY3QtPnNldFN0cnVjdHVyZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBlKCkgIT0gZ2xvYmFsT2Jq
ZWN0LT5qc1NldFByb3RvdHlwZSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIGlmIChnZXREaXJlY3RPZmZzZXQoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3Qt
PnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpICE9IGludmFsaWRPZmZzZXQpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfTsK
LQogICAgIGF1dG8gYWRkRmFzdEFuZE5vbk9ic2VydmFibGUgPSBbJl0gKFN0cnVjdHVyZSogc3Ry
dWN0dXJlKSB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdHJ1Y3R1
cmUtPmdsb2JhbE9iamVjdCgpOwogICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+aXNTZXRQcm90
b3R5cGVBZGRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2V0LmgKaW5kZXggYjZiNzQ1MzM1ZmEuLmU2NzY0MDc5ZTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU2V0LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCisgICAgYm9vbCBpc0l0ZXJhdG9yUHJvdG9jb2xGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgY2FuQ2xvbmVGYXN0QW5kTm9uT2JzZXJ2YWJs
ZShTdHJ1Y3R1cmUqKTsKICAgICBKU1NldCogY2xvbmUoRXhlY1N0YXRlKiwgVk0mLCBTdHJ1Y3R1
cmUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
SW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCmluZGV4
IDE2ZWQ0YmUyMDUwLi45NGRmMjI5MTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZUluZm8uaApAQCAtOTQsNiArOTQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgaXNJ
bW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxh
Z3MyKElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0KTsgfQogICAgIGJvb2wgaW50ZXJj
ZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpIGNv
bnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyk7IH0KIAorICAgIHN0YXRpYyBib29sIGlzQXJn
dW1lbnRzVHlwZShKU1R5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0eXBlID09IERp
cmVjdEFyZ3VtZW50c1R5cGUKKyAgICAgICAgICAgIHx8IHR5cGUgPT0gU2NvcGVkQXJndW1lbnRz
VHlwZQorICAgICAgICAgICAgfHwgdHlwZSA9PSBDbG9uZWRBcmd1bWVudHNUeXBlOworICAgIH0K
KwogICAgIHN0YXRpYyBwdHJkaWZmX3QgZmxhZ3NPZmZzZXQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihUeXBlSW5mbywgbV9mbGFncyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313768</attachid>
            <date>2017-06-23 19:25:47 -0700</date>
            <delta_ts>2017-06-27 10:24:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>iter-4.patch</filename>
            <type>text/plain</type>
            <size>51595</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYjUzNzc1MTI4Ny4uYThmY2QxZDNmMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxNy0wNi0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENyYXNoIGdlbmVyYXRpbmcgb2JqZWN0IHByZXZpZXcgZm9yIEFy
cmF5SXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzc1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaW5z
cGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvbW9kZWwvcmVtb3RlLW9iamVjdC5odG1sOgorICAgICAgICBUZXN0IGdlbmVyYXRpbmcgYSBw
cmV2aWV3IGZvciBhbiBBcnJheUl0ZXJhdG9yIHRoYXQgaGFzIGhhZCBhIGByZXR1cm5gIHByb3Bl
cnR5IGFkZGVkIHRvIGl0LgorCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmpl
Y3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9ycy5odG1sOiBBZGRlZC4K
KyAgICAgICAgVGVzdCBnZW5lcmF0aW5nIGEgcHJldmlldyBmb3IgZGlmZmVyZW50IGl0ZXJhdG9y
cyBhZnRlciB0aGUgSXRlcmF0b3JQcm90b3R5cGVzIGhhdmUgYmVlbiBtdXRhdGVkLgorCisgICAg
ICAgICogaW5zcGVjdG9yL21vZGVsL3Jlc291cmNlcy9yZW1vdGUtb2JqZWN0LXV0aWxpdGllcy5q
czogQWRkZWQuCisgICAgICAgIChydW5JbkJyb3dzZXJUZXN0KToKKyAgICAgICAgKFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFs
aXplci5jaGVja0NvbXBsZXRlKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIud2luZG93LnJ1blN0ZXBzKToKKyAgICAgICAgU2hhcmUgY29kZSBmb3IgcmVtb3RlLW9iamVj
dCBkdW1wIHRlc3RzLgorCiAyMDE3LTA2LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUGF1c2luZyB3aXRoIGEgZGVlcCBj
YWxsIHN0YWNrIGNhbiBiZSB2ZXJ5IHNsb3csIGF2b2lkIGVhZ2VybHkgZ2VuZXJhdGluZyBvYmpl
Y3QgcHJldmlld3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1v
dGUtb2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1v
dGUtb2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCAzMTJhOTcyZTMzOC4uOWUxZWE3YWRlYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1l
eHBlY3RlZC50eHQKQEAgLTQwNzgsNiArNDA3OCw3OSBAQCBFWFBSRVNTSU9OOiBSZWZsZWN0LmVu
dW1lcmF0ZShbMSwgMiwgMywgNCwgNSwgNiwgN10pCiB9CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyID0gWzEs
IDJdW1N5bWJvbC5pdGVyYXRvcl0oKTsgaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbigpe307IGl0
ZXIKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisg
ICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkgSXRl
cmF0b3IiLAorICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9z
dWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IEl0ZXJhdG9y
IiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAg
Il9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAiYXJyYXkiLAorICAg
ICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAg
ICAgICAgIl92YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisg
ICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjog
IkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJm
bG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAgICAiX3Byb3BlcnRp
ZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAg
ICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMSIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIx
IiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFs
dWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBlIjogInN0
cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjog
dHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgeworICAgICAg
ICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJf
ZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAg
ICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisg
ICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9CisgICAg
XQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBFWFBSRVNTSU9OOiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pCiB7CiAgICJf
dHlwZSI6ICJvYmplY3QiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVs
L3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNzJmY2VmNjg4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0LW11dGF0ZWQtaXRlcmF0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5OCBAQAor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
RVhQUkVTU0lPTjogaXRlciA9ICdhbHBoYSdbU3ltYm9sLml0ZXJhdG9yXSgpCit7CisgICJfdHlw
ZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjog
IjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIlN0cmluZyBJdGVyYXRvciIsCisgICJf
cHJldmlldyI6IHsKKyAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRl
cmF0b3IiLAorICAgICJfZGVzY3JpcHRpb24iOiAiU3RyaW5nIEl0ZXJhdG9yIiwKKyAgICAiX2xv
c3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVz
IjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAic3RyaW5nIiwKKyAgICAgICAgIl90eXBl
IjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAiYWxwaGEiLAorICAgICAgICAiX2ludGVy
bmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiYSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAg
ICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAibCIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRy
dWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGll
cyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9
LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJzdHJp
bmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAicCIsCisgICAgICAgICAgIl9sb3NzbGVz
cyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJv
cGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9Cisg
ICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6
ICJzdHJpbmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiaCIsCisgICAgICAgICAgIl9s
b3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAg
ICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJf
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiYSIsCisgICAgICAg
ICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAg
ICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAor
ICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyLl9fcHJv
dG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAor
ICAiX2Rlc2NyaXB0aW9uIjogIlN0cmluZyBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAg
ICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJf
ZGVzY3JpcHRpb24iOiAiU3RyaW5nIEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogdHJ1ZSwK
KyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgewor
ICAgICAgICAiX25hbWUiOiAic3RyaW5nIiwKKyAgICAgICAgIl90eXBlIjogInN0cmluZyIsCisg
ICAgICAgICJfdmFsdWUiOiAiYWxwaGEiLAorICAgICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAg
ICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBt
YXAgPSBuZXcgTWFwOyBtYXAuc2V0KDEsIDIpOyBtYXAuc2V0KCdrZXknLCAndmFsdWUnKTsgaXRl
ciA9IG1hcFtTeW1ib2wuaXRlcmF0b3JdKCkKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJf
c3VidHlwZSI6ICJpdGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJf
ZGVzY3JpcHRpb24iOiAiTWFwIEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlw
ZSI6ICJvYmplY3QiLAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlw
dGlvbiI6ICJNYXAgSXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiBmYWxzZSwKKyAgICAiX292
ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAgICAgeworICAgICAgICAi
X25hbWUiOiAibWFwIiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3Vi
dHlwZSI6ICJtYXAiLAorICAgICAgICAiX3ZhbHVlIjogIk1hcCIsCisgICAgICAgICJfaW50ZXJu
YWwiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisg
ICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogImtleSt2YWx1ZSIs
CisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAgICAiX2VudHJp
ZXMiOiBbCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAgICAgICAgIl90eXBlIjog
Im9iamVjdCIsCisgICAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rl
c2NyaXB0aW9uIjogIkFycmF5IiwKKyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAg
ICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9zaXplIjogMiwKKyAgICAgICAg
ICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6
ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJf
dmFsdWUiOiAiMSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAg
ICAgICAgICJfdmFsdWUiOiAiMiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAg
ICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAg
ICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAi
X3N1YnR5cGUiOiAiYXJyYXkiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkiLAor
ICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxz
ZSwKKyAgICAgICAgICAiX3NpemUiOiAyLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIl9uYW1lIjogIjAiLAorICAgICAgICAgICAgICAi
X3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICAgIl92YWx1ZSI6ICJrZXkiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUiOiAiMSIsCisgICAg
ICAgICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAiX3ZhbHVlIjogInZh
bHVlIgorICAgICAgICAgICAgfQorICAgICAgICAgIF0sCisgICAgICAgICAgIl9lbnRyaWVzIjog
bnVsbAorICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVy
Ll9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmpl
Y3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJl
ZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIk1hcCBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsK
KyAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAg
ICJfZGVzY3JpcHRpb24iOiAiTWFwIEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogZmFsc2Us
CisgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsK
KyAgICAgICAgIl9uYW1lIjogIm1hcCIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAiX3N1YnR5cGUiOiAibWFwIiwKKyAgICAgICAgIl92YWx1ZSI6ICJNYXAiLAorICAgICAg
ICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjog
ImtpbmQiLAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6ICJr
ZXkrdmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisg
ICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBzZXQgPSBuZXcgU2V0OyBm
b3IgKHZhciBpID0gMDsgaSA8PSAxMDA7IGkrKykgc2V0LmFkZChpKTsgaXRlciA9IHNldFtTeW1i
b2wuaXRlcmF0b3JdKCkKK3sKKyAgIl90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJp
dGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24i
OiAiU2V0IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3Qi
LAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJTZXQg
SXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiBmYWxzZSwKKyAgICAiX292ZXJmbG93IjogdHJ1
ZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJzZXQi
LAorICAgICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogInNldCIs
CisgICAgICAgICJfdmFsdWUiOiAiU2V0IiwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBl
IjogInN0cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVy
bmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogWworICAgICAgewor
ICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAg
ICAgICJfZGVzY3JpcHRpb24iOiAiMCIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisg
ICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51
bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9LAorICAg
ICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRy
dWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGll
cyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9
LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6ICJudW1i
ZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMiIsCisgICAgICAgICAgIl9sb3NzbGVz
cyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfcHJv
cGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9Cisg
ICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJfdHlwZSI6
ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMyIsCisgICAgICAgICAgIl9s
b3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAg
ICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAgICAgICJf
dHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiNCIsCisgICAgICAg
ICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAg
ICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAor
ICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyLl9fcHJv
dG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAor
ICAiX2Rlc2NyaXB0aW9uIjogIlNldCBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAgICAi
X3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJfZGVz
Y3JpcHRpb24iOiAiU2V0IEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjogZmFsc2UsCisgICAg
Il9vdmVyZmxvdyI6IGZhbHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAg
ICAgIl9uYW1lIjogInNldCIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAgICAgICAi
X3N1YnR5cGUiOiAic2V0IiwKKyAgICAgICAgIl92YWx1ZSI6ICJTZXQiLAorICAgICAgICAiX2lu
dGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImtpbmQi
LAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6ICJ2YWx1ZSIs
CisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAgICAiX2VudHJp
ZXMiOiBudWxsCisgIH0KK30KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0VYUFJFU1NJT046IGFycmF5SXRlciA9IFsxLDIsM11bU3ltYm9s
Lml0ZXJhdG9yXSgpCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRl
cmF0b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjog
IkFycmF5IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3Qi
LAorICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJBcnJh
eSBJdGVyYXRvciIsCisgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgIl9vdmVyZmxvdyI6IGZh
bHNlLAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImFy
cmF5IiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3VidHlwZSI6ICJh
cnJheSIsCisgICAgICAgICJfdmFsdWVQcmV2aWV3IjogeworICAgICAgICAgICJfdHlwZSI6ICJv
YmplY3QiLAorICAgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIsCisgICAgICAgICAgIl9kZXNj
cmlwdGlvbiI6ICJBcnJheSIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAg
ICAgIl9vdmVyZmxvdyI6IGZhbHNlLAorICAgICAgICAgICJfc2l6ZSI6IDMsCisgICAgICAgICAg
Il9wcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAiX25hbWUiOiAi
MCIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICAgICAiX3Zh
bHVlIjogIjEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAi
X25hbWUiOiAiMSIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAg
ICAgICAiX3ZhbHVlIjogIjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAiX25hbWUiOiAiMiIsCisgICAgICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAor
ICAgICAgICAgICAgICAiX3ZhbHVlIjogIjMiCisgICAgICAgICAgICB9CisgICAgICAgICAgXSwK
KyAgICAgICAgICAiX2VudHJpZXMiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJfaW50ZXJu
YWwiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisg
ICAgICAgICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogInZhbHVlIiwKKyAg
ICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0KKyAgICBdLAorICAgICJfZW50cmllcyI6
IFsKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUiOiAibnVt
YmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjEiLAorICAgICAgICAgICJfbG9zc2xl
c3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3By
b3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfQor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAiX3R5cGUi
OiAibnVtYmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjIiLAorICAgICAgICAgICJf
bG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAg
ICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAg
ICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl92YWx1ZSI6IHsKKyAgICAgICAgICAi
X3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIjMiLAorICAgICAg
ICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAg
ICAgICAgICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwK
KyAgICAgICAgfQorICAgICAgfQorICAgIF0KKyAgfQorfQorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjogeCA9IHVuZGVm
aW5lZDsgKGZ1bmN0aW9uKCkgeyB4ID0gYXJndW1lbnRzOyB9KSgzLCAnYXJnJyk7IGFyZ3VtZW50
c0l0ZXIgPSB4W1N5bWJvbC5pdGVyYXRvcl0oKQoreworICAiX3R5cGUiOiAib2JqZWN0IiwKKyAg
Il9zdWJ0eXBlIjogIml0ZXJhdG9yIiwKKyAgIl9vYmplY3RJZCI6ICI8ZmlsdGVyZWQ+IiwKKyAg
Il9kZXNjcmlwdGlvbiI6ICJBcnJheSBJdGVyYXRvciIsCisgICJfcHJldmlldyI6IHsKKyAgICAi
X3R5cGUiOiAib2JqZWN0IiwKKyAgICAiX3N1YnR5cGUiOiAiaXRlcmF0b3IiLAorICAgICJfZGVz
Y3JpcHRpb24iOiAiQXJyYXkgSXRlcmF0b3IiLAorICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAg
ICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICB7CisgICAg
ICAgICJfbmFtZSI6ICJhcnJheSIsCisgICAgICAgICJfdHlwZSI6ICJvYmplY3QiLAorICAgICAg
ICAiX3N1YnR5cGUiOiAiYXJyYXkiLAorICAgICAgICAiX3ZhbHVlUHJldmlldyI6IHsKKyAgICAg
ICAgICAiX3R5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAiX3N1YnR5cGUiOiAiYXJyYXkiLAor
ICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiQXJndW1lbnRzIiwKKyAgICAgICAgICAiX2xvc3Ns
ZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAgICAgIl9z
aXplIjogMiwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIs
CisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90eXBlIjog
InN0cmluZyIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiYXJnIgorICAgICAgICAgICAgfQor
ICAgICAgICAgIF0sCisgICAgICAgICAgIl9lbnRyaWVzIjogbnVsbAorICAgICAgICB9LAorICAg
ICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgIl9uYW1l
IjogImtpbmQiLAorICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgIl92YWx1ZSI6
ICJ2YWx1ZSIsCisgICAgICAgICJfaW50ZXJuYWwiOiB0cnVlCisgICAgICB9CisgICAgXSwKKyAg
ICAiX2VudHJpZXMiOiBbCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAgICAgICAg
Il90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgIl9kZXNjcmlwdGlvbiI6ICIzIiwKKyAgICAg
ICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFsc2UsCisg
ICAgICAgICAgIl9wcm9wZXJ0aWVzIjogbnVsbCwKKyAgICAgICAgICAiX2VudHJpZXMiOiBudWxs
CisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJfdmFsdWUiOiB7CisgICAg
ICAgICAgIl90eXBlIjogInN0cmluZyIsCisgICAgICAgICAgIl9kZXNjcmlwdGlvbiI6ICJhcmci
LAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAgICAgICJfb3ZlcmZsb3ciOiBm
YWxzZSwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBudWxsLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfQorICAgICAgfQorICAgIF0KKyAgfQorfQorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRVhQUkVTU0lPTjog
YXJyYXlJdGVyLl9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBhcnJheUl0ZXIKK3sKKyAg
Il90eXBlIjogIm9iamVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICJfb2JqZWN0
SWQiOiAiPGZpbHRlcmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkgSXRlcmF0b3IiLAor
ICAiX3ByZXZpZXciOiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9zdWJ0eXBlIjog
Iml0ZXJhdG9yIiwKKyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IEl0ZXJhdG9yIiwKKyAgICAi
X2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0
aWVzIjogWworICAgICAgeworICAgICAgICAiX25hbWUiOiAiYXJyYXkiLAorICAgICAgICAiX3R5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgIl92
YWx1ZVByZXZpZXciOiB7CisgICAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
Il9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IiwK
KyAgICAgICAgICAiX2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFs
c2UsCisgICAgICAgICAgIl9zaXplIjogMywKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBbCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAgICAgICAgICAg
Il90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMSIKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIxIiwKKyAgICAg
ICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMiIK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIy
IiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFs
dWUiOiAiMyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBdLAorICAgICAgICAgICJfZW50cmll
cyI6IG51bGwKKyAgICAgICAgfSwKKyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJfbmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBlIjogInN0
cmluZyIsCisgICAgICAgICJfdmFsdWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjog
dHJ1ZQorICAgICAgfQorICAgIF0sCisgICAgIl9lbnRyaWVzIjogbnVsbAorICB9Cit9CisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitFWFBS
RVNTSU9OOiBhcmd1bWVudHNJdGVyLl9fcHJvdG9fXy5uZXh0ID0gZnVuY3Rpb24oKXt9OyBhcmd1
bWVudHNJdGVyCit7CisgICJfdHlwZSI6ICJvYmplY3QiLAorICAiX3N1YnR5cGUiOiAiaXRlcmF0
b3IiLAorICAiX29iamVjdElkIjogIjxmaWx0ZXJlZD4iLAorICAiX2Rlc2NyaXB0aW9uIjogIkFy
cmF5IEl0ZXJhdG9yIiwKKyAgIl9wcmV2aWV3IjogeworICAgICJfdHlwZSI6ICJvYmplY3QiLAor
ICAgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICAgIl9kZXNjcmlwdGlvbiI6ICJBcnJheSBJ
dGVyYXRvciIsCisgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgIl9vdmVyZmxvdyI6IGZhbHNl
LAorICAgICJfcHJvcGVydGllcyI6IFsKKyAgICAgIHsKKyAgICAgICAgIl9uYW1lIjogImFycmF5
IiwKKyAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICJfc3VidHlwZSI6ICJhcnJh
eSIsCisgICAgICAgICJfdmFsdWVQcmV2aWV3IjogeworICAgICAgICAgICJfdHlwZSI6ICJvYmpl
Y3QiLAorICAgICAgICAgICJfc3VidHlwZSI6ICJhcnJheSIsCisgICAgICAgICAgIl9kZXNjcmlw
dGlvbiI6ICJBcmd1bWVudHMiLAorICAgICAgICAgICJfbG9zc2xlc3MiOiB0cnVlLAorICAgICAg
ICAgICJfb3ZlcmZsb3ciOiBmYWxzZSwKKyAgICAgICAgICAiX3NpemUiOiAyLAorICAgICAgICAg
ICJfcHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIl9uYW1lIjog
IjAiLAorICAgICAgICAgICAgICAiX3R5cGUiOiAibnVtYmVyIiwKKyAgICAgICAgICAgICAgIl92
YWx1ZSI6ICIzIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
Il9uYW1lIjogIjEiLAorICAgICAgICAgICAgICAiX3R5cGUiOiAic3RyaW5nIiwKKyAgICAgICAg
ICAgICAgIl92YWx1ZSI6ICJhcmciCisgICAgICAgICAgICB9CisgICAgICAgICAgXSwKKyAgICAg
ICAgICAiX2VudHJpZXMiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJfaW50ZXJuYWwiOiB0
cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiX25hbWUiOiAia2luZCIsCisgICAgICAg
ICJfdHlwZSI6ICJzdHJpbmciLAorICAgICAgICAiX3ZhbHVlIjogInZhbHVlIiwKKyAgICAgICAg
Il9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0KKyAgICBdLAorICAgICJfZW50cmllcyI6IG51bGwK
KyAgfQorfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3Rl
LW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL3JlbW90ZS1vYmplY3QtbXV0YXRlZC1pdGVyYXRvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjk5YzQzYjk3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1tdXRhdGVkLWl0ZXJhdG9y
cy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZW1vdGUtb2JqZWN0LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN0ZXBzID0gWworICAgICAgICAvLyBT
dHJpbmcgSXRlcmF0b3IKKyAgICAgICAge2V4cHJlc3Npb246IGBpdGVyID0gJ2FscGhhJ1tTeW1i
b2wuaXRlcmF0b3JdKClgfSwKKyAgICAgICAge2V4cHJlc3Npb246IGBpdGVyLl9fcHJvdG9fXy5u
ZXh0ID0gZnVuY3Rpb24oKXt9OyBpdGVyYH0sCisKKyAgICAgICAgLy8gTWFwIEl0ZXJhdG9yCisg
ICAgICAgIHtleHByZXNzaW9uOiBgbWFwID0gbmV3IE1hcDsgbWFwLnNldCgxLCAyKTsgbWFwLnNl
dCgna2V5JywgJ3ZhbHVlJyk7IGl0ZXIgPSBtYXBbU3ltYm9sLml0ZXJhdG9yXSgpYH0sCisgICAg
ICAgIHtleHByZXNzaW9uOiBgaXRlci5fX3Byb3RvX18ubmV4dCA9IGZ1bmN0aW9uKCl7fTsgaXRl
cmB9LAorCisgICAgICAgIC8vIFNldCBJdGVyYXRvcgorICAgICAgICB7ZXhwcmVzc2lvbjogYHNl
dCA9IG5ldyBTZXQ7IGZvciAodmFyIGkgPSAwOyBpIDw9IDEwMDsgaSsrKSBzZXQuYWRkKGkpOyBp
dGVyID0gc2V0W1N5bWJvbC5pdGVyYXRvcl0oKWB9LAorICAgICAgICB7ZXhwcmVzc2lvbjogYGl0
ZXIuX19wcm90b19fLm5leHQgPSBmdW5jdGlvbigpe307IGl0ZXJgfSwKKworICAgICAgICAvLyBB
cnJheSBJdGVyYXRvciAoYXJyYXkgYW5kIGFyZ3VtZW50cykKKyAgICAgICAge2V4cHJlc3Npb246
IGBhcnJheUl0ZXIgPSBbMSwyLDNdW1N5bWJvbC5pdGVyYXRvcl0oKWB9LAorICAgICAgICB7ZXhw
cmVzc2lvbjogYHggPSB1bmRlZmluZWQ7IChmdW5jdGlvbigpIHsgeCA9IGFyZ3VtZW50czsgfSko
MywgJ2FyZycpOyBhcmd1bWVudHNJdGVyID0geFtTeW1ib2wuaXRlcmF0b3JdKClgfSwKKyAgICAg
ICAge2V4cHJlc3Npb246IGBhcnJheUl0ZXIuX19wcm90b19fLm5leHQgPSBmdW5jdGlvbigpe307
IGFycmF5SXRlcmB9LAorICAgICAgICB7ZXhwcmVzc2lvbjogYGFyZ3VtZW50c0l0ZXIuX19wcm90
b19fLm5leHQgPSBmdW5jdGlvbigpe307IGFyZ3VtZW50c0l0ZXJgfSwKKyAgICBdOworCisgICAg
aWYgKCF3aW5kb3cuV2ViSW5zcGVjdG9yKSB7CisgICAgICAgIHdpbmRvdy5zdGVwcyA9IHN0ZXBz
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcnVuU3RlcHMoc3RlcHMpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsgcnVuSW5Ccm93c2VyVGVz
dCgpOyI+PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL3JlbW90ZS1vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9y
ZW1vdGUtb2JqZWN0Lmh0bWwKaW5kZXggMDg0ZWNkMzgyMTguLmQyMzA4MzBhMDg2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0Lmh0bWwKQEAgLTEsMTMg
KzEsMTMgQEAKLTwhZG9jdHlwZSBodG1sPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9dXRmLTgiPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlbW90ZS1vYmplY3QtdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICB2YXIgY3VycmVudFN0
ZXBJbmRleCA9IDA7Ci0gICAgdmFyIHN0ZXBzID0gWworICAgIGxldCBzdGVwcyA9IFsKICAgICAv
LyBTcGVjaWFsOgogCiAgICAgICAgIC8vIE51bGwgLyB1bmRlZmluZWQKQEAgLTE2MSw2ICsxNjEs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAge2V4cHJlc3Npb246ICJ4ID0gdW5kZWZpbmVk
OyAoZnVuY3Rpb24oKSB7IHggPSBhcmd1bWVudHM7IH0pKDEsICd0d28nKTsgeFtTeW1ib2wuaXRl
cmF0b3JdKCkifSwKICAgICAgICAge2V4cHJlc3Npb246ICJSZWZsZWN0LmVudW1lcmF0ZSh7YTox
LCBiOjIsIGM6M30pIn0sCiAgICAgICAgIHtleHByZXNzaW9uOiAiUmVmbGVjdC5lbnVtZXJhdGUo
WzEsIDIsIDMsIDQsIDUsIDYsIDddKSJ9LAorICAgICAgICB7ZXhwcmVzc2lvbjogIml0ZXIgPSBb
MSwgMl1bU3ltYm9sLml0ZXJhdG9yXSgpOyBpdGVyWydyZXR1cm4nXSA9IGZ1bmN0aW9uKCl7fTsg
aXRlciJ9LAogCiAgICAgICAgIC8vIFByb21pc2UKICAgICAgICAge2V4cHJlc3Npb246ICJuZXcg
UHJvbWlzZShmdW5jdGlvbigpe30pIn0sCkBAIC0xOTMsNjAgKzE5NCw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0
SlNPTkZpbHRlcihrZXksIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKGtleSA9PT0gIl90YXJn
ZXQiIHx8IGtleSA9PT0gIl9oYXNDaGlsZHJlbiIgfHwga2V5ID09PSAiX2xpc3RlbmVycyIpCi0g
ICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICBpZiAoa2V5ID09PSAiX29iamVj
dElkIiB8fCBrZXkgPT09ICJfc3RhY2tUcmFjZSIpCi0gICAgICAgICAgICByZXR1cm4gIjxmaWx0
ZXJlZD4iOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVu
U3RlcHMoKSB7Ci0KLSAgICAgICAgZnVuY3Rpb24gYWZ0ZXJTdGVwKCkgewotICAgICAgICAgICAg
aWYgKCsrY3VycmVudFN0ZXBJbmRleCA+PSBzdGVwcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIHJ1blN0ZXAoc3RlcCkgewotICAgICAgICAgICAgaWYgKHN0ZXAuYnJvd3Nlck9ubHkpIHsK
LSAgICAgICAgICAgICAgICBhZnRlclN0ZXAoKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5l
dmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KHN0ZXAuZXhwcmVzc2lvbiwge29iamVjdEdyb3VwOiAi
dGVzdCIsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogdHJ1ZSwgZ2VuZXJh
dGVQcmV2aWV3OiB0cnVlfSwgZnVuY3Rpb24ocmVtb3RlT2JqZWN0LCB3YXNUaHJvd24pIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVYUFJF
U1NJT046ICIgKyBzdGVwLmV4cHJlc3Npb24pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KHJlbW90ZU9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKEpTT04uc3RyaW5naWZ5KHJl
bW90ZU9iamVjdCwgcmVtb3RlT2JqZWN0SlNPTkZpbHRlciwgIiAgIikpOwotICAgICAgICAgICAg
ICAgIGFmdGVyU3RlcCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBm
b3IgKHZhciBzdGVwIG9mIHN0ZXBzKQotICAgICAgICAgICAgcnVuU3RlcChzdGVwKTsKLSAgICB9
Ci0KLSAgICBydW5TdGVwcygpOwotfQotCi1mdW5jdGlvbiBydW5JbkJyb3dzZXJUZXN0KCkKLXsK
LSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHJldHVybjsKLSAKLSAgICB0ZXN0
KCk7IC8vIGdldCBzdGVwcy4KLQotICAgIGZvciAodmFyIHN0ZXAgb2Ygc3RlcHMpIHsKLSAgICAg
ICAgY29uc29sZS5pbmZvKCJFWFBSRVNTSU9OIiwgc3RlcC5leHByZXNzaW9uKTsKLSAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKGV2YWwoc3RlcC5leHByZXNzaW9uKSk7Ci0g
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKCJFWENFUFRJT046
ICIgKyBlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBydW5TdGVwcyhzdGVwcyk7CiB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9y
ZXNvdXJjZXMvcmVtb3RlLW9iamVjdC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvbW9kZWwvcmVzb3VyY2VzL3JlbW90ZS1vYmplY3QtdXRpbGl0aWVzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMWU5ZDExZjRkMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9yZXNvdXJjZXMvcmVtb3RlLW9iamVjdC11
dGlsaXRpZXMuanMKQEAgLTAsMCArMSw1MCBAQAorZnVuY3Rpb24gcnVuSW5Ccm93c2VyVGVzdCgp
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKyAKKyAgICB0
ZXN0KCk7IC8vIFBvcHVsYXRlIHdpbmRvdy5zdGVwcy4KKworICAgIGZvciAobGV0IHN0ZXAgb2Yg
c3RlcHMpIHsKKyAgICAgICAgY29uc29sZS5pbmZvKCJFWFBSRVNTSU9OIiwgc3RlcC5leHByZXNz
aW9uKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKGV2YWwoc3RlcC5l
eHByZXNzaW9uKSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJFWENFUFRJT046ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworVGVzdFBhZ2Uu
cmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0SlNP
TkZpbHRlcihrZXksIHZhbHVlKSB7CisgICAgICAgIGlmIChrZXkgPT09ICJfdGFyZ2V0IiB8fCBr
ZXkgPT09ICJfaGFzQ2hpbGRyZW4iIHx8IGtleSA9PT0gIl9saXN0ZW5lcnMiKQorICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgaWYgKGtleSA9PT0gIl9vYmplY3RJZCIgfHwg
a2V5ID09PSAiX3N0YWNrVHJhY2UiKQorICAgICAgICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHdpbmRvdy5ydW5TdGVwcyA9IGZ1
bmN0aW9uKHN0ZXBzKSB7CisgICAgICAgIGxldCBjdXJyZW50U3RlcEluZGV4ID0gMDsKKworICAg
ICAgICBmdW5jdGlvbiBjaGVja0NvbXBsZXRlKCkgeworICAgICAgICAgICAgaWYgKCsrY3VycmVu
dFN0ZXBJbmRleCA+PSBzdGVwcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHtleHByZXNz
aW9uLCBicm93c2VyT25seX0gb2Ygc3RlcHMpIHsKKyAgICAgICAgICAgIGlmIChicm93c2VyT25s
eSkgeworICAgICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1l
TWFuYWdlci5ldmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KGV4cHJlc3Npb24sIHtvYmplY3RHcm91
cDogInRlc3QiLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGU6IHRydWUsIGdl
bmVyYXRlUHJldmlldzogdHJ1ZX0sIChyZW1vdGVPYmplY3QsIHdhc1Rocm93bikgPT4geworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRVhQUkVT
U0lPTjogIiArIGV4cHJlc3Npb24pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KHJlbW90ZU9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKEpTT04uc3RyaW5naWZ5KHJlbW90ZU9i
amVjdCwgcmVtb3RlT2JqZWN0SlNPTkZpbHRlciwgMikpOworICAgICAgICAgICAgICAgIGNoZWNr
Q29tcGxldGUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfTsKK30pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9tb2RlbC9yZW1vdGUt
b2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3Iv
bW9kZWwvcmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggMmJlNzYyOGI5YWMuLmZiMTRk
ZTk0ZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL21v
ZGVsL3JlbW90ZS1vYmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1leHBlY3RlZC50eHQKQEAgLTQwODEs
NiArNDA4MSw3OSBAQCBFWFBSRVNTSU9OOiBSZWZsZWN0LmVudW1lcmF0ZShbMSwgMiwgMywgNCwg
NSwgNiwgN10pCiB9CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitFWFBSRVNTSU9OOiBpdGVyID0gWzEsIDJdW1N5bWJvbC5pdGVyYXRvcl0o
KTsgaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbigpe307IGl0ZXIKK3sKKyAgIl90eXBlIjogIm9i
amVjdCIsCisgICJfc3VidHlwZSI6ICJpdGVyYXRvciIsCisgICJfb2JqZWN0SWQiOiAiPGZpbHRl
cmVkPiIsCisgICJfZGVzY3JpcHRpb24iOiAiQXJyYXkgSXRlcmF0b3IiLAorICAiX3ByZXZpZXci
OiB7CisgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgIl9zdWJ0eXBlIjogIml0ZXJhdG9yIiwK
KyAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IEl0ZXJhdG9yIiwKKyAgICAiX2xvc3NsZXNzIjog
dHJ1ZSwKKyAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgIl9wcm9wZXJ0aWVzIjogWworICAg
ICAgeworICAgICAgICAiX25hbWUiOiAiYXJyYXkiLAorICAgICAgICAiX3R5cGUiOiAib2JqZWN0
IiwKKyAgICAgICAgIl9zdWJ0eXBlIjogImFycmF5IiwKKyAgICAgICAgIl92YWx1ZVByZXZpZXci
OiB7CisgICAgICAgICAgIl90eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgIl9zdWJ0eXBlIjog
ImFycmF5IiwKKyAgICAgICAgICAiX2Rlc2NyaXB0aW9uIjogIkFycmF5IiwKKyAgICAgICAgICAi
X2xvc3NsZXNzIjogdHJ1ZSwKKyAgICAgICAgICAiX292ZXJmbG93IjogZmFsc2UsCisgICAgICAg
ICAgIl9zaXplIjogMiwKKyAgICAgICAgICAiX3Byb3BlcnRpZXMiOiBbCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICJfbmFtZSI6ICIwIiwKKyAgICAgICAgICAgICAgIl90eXBlIjogIm51
bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMSIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICJfbmFtZSI6ICIxIiwKKyAgICAgICAgICAgICAgIl90
eXBlIjogIm51bWJlciIsCisgICAgICAgICAgICAgICJfdmFsdWUiOiAiMiIKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICBdLAorICAgICAgICAgICJfZW50cmllcyI6IG51bGwKKyAgICAgICAgfSwK
KyAgICAgICAgIl9pbnRlcm5hbCI6IHRydWUKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJf
bmFtZSI6ICJraW5kIiwKKyAgICAgICAgIl90eXBlIjogInN0cmluZyIsCisgICAgICAgICJfdmFs
dWUiOiAidmFsdWUiLAorICAgICAgICAiX2ludGVybmFsIjogdHJ1ZQorICAgICAgfQorICAgIF0s
CisgICAgIl9lbnRyaWVzIjogWworICAgICAgeworICAgICAgICAiX3ZhbHVlIjogeworICAgICAg
ICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAiMSIsCisg
ICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6IGZhbHNl
LAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRyaWVzIjog
bnVsbAorICAgICAgICB9CisgICAgICB9LAorICAgICAgeworICAgICAgICAiX3ZhbHVlIjogewor
ICAgICAgICAgICJfdHlwZSI6ICJudW1iZXIiLAorICAgICAgICAgICJfZGVzY3JpcHRpb24iOiAi
MiIsCisgICAgICAgICAgIl9sb3NzbGVzcyI6IHRydWUsCisgICAgICAgICAgIl9vdmVyZmxvdyI6
IGZhbHNlLAorICAgICAgICAgICJfcHJvcGVydGllcyI6IG51bGwsCisgICAgICAgICAgIl9lbnRy
aWVzIjogbnVsbAorICAgICAgICB9CisgICAgICB9CisgICAgXQorICB9Cit9CisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBFWFBSRVNTSU9O
OiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pCiB7CiAgICJfdHlwZSI6ICJvYmplY3QiLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzQ1NzkyOTFiN2YuLjk0ZjE1OTc3ZWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNy0wNi0yMyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENy
YXNoIGdlbmVyYXRpbmcgb2JqZWN0IHByZXZpZXcgZm9yIEFycmF5SXRlcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzc1NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzI4NTkwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBJbnNwZWN0b3IgZ2VuZXJhdGVzIGFuIG9iamVjdCBwcmV2
aWV3IGZvciBhbiBBcnJheUl0ZXJhdG9yIGluc3RhbmNlIGl0IG1hZGUKKyAgICAgICAgYSAiY2xv
bmUiIG9mIHRoZSBvcmlnaW5hbCBBcnJheUl0ZXJhdG9yIGluc3RhbmNlIGJ5IGNvbnN0cnVjdGlu
ZyBhIG5ldyBvYmplY3Qgd2l0aAorICAgICAgICB0aGUgaW5zdGFuY2UncyBzdHJ1Y3R1cmUuIEhv
d2V2ZXIsIHVzZXIgY29kZSBjb3VsZCBoYXZlIG1vZGlmaWVkIHRoYXQgaW5zdGFuY2UncworICAg
ICAgICBzdHJ1Y3R1cmUsIHN1Y2ggYXMgYWRkaW5nIC8gcmVtb3ZpbmcgcHJvcGVydGllcy4gVGhl
IGByZXR1cm5gIHByb3BlcnR5IGhhZCBzcGVjaWFsCisgICAgICAgIG1lYW5pbmcsIGFuZCBvdXIg
Y2xvbmUgZGlkIG5vdCBmaWxsIHRoYXQgc2xvdC4gVGhpcyBhcHByb2FjaCBpcyBicml0dGxlIGlu
IHRoYXQKKyAgICAgICAgd2Ugd2VyZW4ndCBzYXRpc2Z5aW5nIHRoZSBleHBlY3RhdGlvbnMgb2Yg
YW4gb2JqZWN0IHdpdGggYSBwYXJ0aWN1bGFyIFN0cnVjdHVyZSwKKyAgICAgICAgYW5kIHRoZSBv
cmlnaW5hbCBnb2FsIG9mIGhhdmluZyBXZWIgSW5zcGVjdG9yIHBlZWsgdmFsdWVzIG9mIGJ1aWx0
LWluIEl0ZXJhdG9ycworICAgICAgICB3YXMgdG8gYXZvaWQgb2JzZXJ2YWJsZSBiZWhhdmlvci4K
KworICAgICAgICBUaGlzIHRpZ2h0ZW5zIFdlYiBJbnNwZWN0b3IncyBJdGVyYXRvciBwcmV2aWV3
IHRvIG9ubHkgcGVlayB2YWx1ZXMgaWYgdGhlCisgICAgICAgIEl0ZXJhdG9ycyB3b3VsZCBhY3R1
YWxseSBiZSBub24tb2JzZXJ2YWJsZS4gSXQgYWxzbyBidWlsZHMgYW4gQXJyYXlJdGVyYXRvcgor
ICAgICAgICBjbG9uZSBsaWtlIGEgcmVndWxhciBvYmplY3QgY29uc3RydWN0aW9uLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6Y2xvbmVBcnJheUl0ZXJhdG9yT2JqZWN0KToKKyAgICAgICAgQnVpbGQgdXAgdGhlIE9i
amVjdCBmcm9tIHNjcmF0Y2ggd2l0aCBhIG5ldyBBcnJheUl0ZXJhdG9yIHByb3RvdHlwZS4KKwor
ICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6aXRlcmF0b3JFbnRyaWVz
KToKKyAgICAgICAgT25seSBjbG9uZSBhbmQgcGVlayBpdGVyYXRvcnMgaWYgaXQgd291bGQgbm90
IGJlIG9ic2VydmFibGUuCisgICAgICAgIEFsc28gdXBkYXRlIGl0ZXJhdGlvbiB0byBiZSBtb3Jl
IGluIGxpbmUgd2l0aCBJdGVyYXRpb25PcGVyYXRpb25zLCBzdWNoIGFzIHdoZW4KKyAgICAgICAg
d2UgY2FsbCBpdGVyYXRvckNsb3NlLgorCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2JhbE9iamVjdCk6Cisg
ICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzdHJpbmdJdGVy
YXRvclByb3RvY29sV2F0Y2hwb2ludCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmlzU3RyaW5nUHJvdG90
eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKToKKyAgICAgICAgQWRkIGEg
U3RyaW5nSXRlcmF0b3IgV2F0Y2hQb2ludCBpbiBsaW5lIHdpdGggdGhlIEFycmF5L01hcC9TZXQg
aXRlcmF0b3Igd2F0Y2hwb2ludHMuCisKKyAgICAgICAgKiBydW50aW1lL0pTTWFwLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNNYXA6OmlzSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxl
KToKKyAgICAgICAgKEpTQzo6SlNNYXA6OmNhbkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNNYXAuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2V0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNTZXQ6OmlzSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZh
YmxlKToKKyAgICAgICAgKEpTQzo6SlNTZXQ6OmNhbkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNTZXQuaDoKKyAgICAgICAgUHJvbW90ZSBpc0l0ZXJhdG9y
UHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSB0byBhIG1ldGhvZC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpjYW5Eb0Zhc3RQdXREaXJlY3RJbmRl
eCk6CisgICAgICAgICogcnVudGltZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJ
bmZvOjppc0FyZ3VtZW50c1R5cGUpOgorICAgICAgICBIZWxwZXIgdG8gZGV0ZWN0IGlmIGFuIE9i
amVjdCBpcyBhbiBBcmd1bWVudHMgdHlwZS4KKwogMjAxNy0wNi0yMiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBhdXNpbmcg
d2l0aCBhIGRlZXAgY2FsbCBzdGFjayBjYW4gYmUgdmVyeSBzbG93LCBhdm9pZCBlYWdlcmx5IGdl
bmVyYXRpbmcgb2JqZWN0IHByZXZpZXdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDdjYzBlODk4MjNh
Li4zYzc0ZTA2YzZkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0luamVjdGVkU2NyaXB0SG9zdC5oIgogCisjaW5j
bHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKQEAg
LTMzLDYgKzM0LDcgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0SG9zdC5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgorI2luY2x1ZGUgIkl0
ZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQm91
bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTM1OSw3ICszNjEsNyBA
QCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywgY29uc3RydWN0SW50ZXJuYWxQcm9wZXJ0eShleGVjLCAia2luZCIsIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBraW5kKSkpOwogICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgfQotICAgICAg
ICAKKwogICAgIGlmIChKU1NldEl0ZXJhdG9yKiBzZXRJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8
SlNTZXRJdGVyYXRvcio+KHZtLCB2YWx1ZSkpIHsKICAgICAgICAgU3RyaW5nIGtpbmQ7CiAgICAg
ICAgIHN3aXRjaCAoc2V0SXRlcmF0b3ItPmtpbmQoKSkgewpAQCAtNTE5LDE0ICs1MjEsMTUgQEAg
SlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6d2Vha1NldEVudHJpZXMoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHJldHVybiBhcnJheTsKIH0KIAotc3RhdGljIEpTT2JqZWN0KiBjbG9uZUFycmF5
SXRlcmF0b3JPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBpdGVyYXRv
ck9iamVjdCwgSlNWYWx1ZSBuZXh0SW5kZXgpCitzdGF0aWMgSlNPYmplY3QqIGNsb25lQXJyYXlJ
dGVyYXRvck9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSlNPYmplY3QqIGl0ZXJhdG9y
T2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG5leHRJbmRleCwg
SlNWYWx1ZSBpdGVyYXRlZE9iamVjdCkKIHsKICAgICBBU1NFUlQoaXRlcmF0b3JPYmplY3QtPnR5
cGUoKSA9PSBGaW5hbE9iamVjdFR5cGUpOwotICAgIEpTT2JqZWN0KiBjbG9uZSA9IGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGV4ZWMsIGl0ZXJhdG9yT2JqZWN0LT5zdHJ1Y3R1cmUoKSk7CisgICAgSlNP
YmplY3QqIGNsb25lID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYywgQXJyYXlJdGVyYXRvclBy
b3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPml0ZXJhdG9y
UHJvdG90eXBlKCkpKSk7CisgICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRPYmplY3RQcml2YXRlTmFtZSgpLCBpdGVyYXRlZE9i
amVjdCk7CisgICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuYXJyYXlJdGVyYXRvcktpbmRQcml2YXRlTmFtZSgpLCBpdGVyYXRvck9iamVjdC0+
Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJh
dG9yS2luZFByaXZhdGVOYW1lKCkpKTsKICAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9yTmV4dEluZGV4UHJpdmF0ZU5h
bWUoKSwgbmV4dEluZGV4KTsKLSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lKCksIGl0ZXJhdG9y
T2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0
ZXJhdGVkT2JqZWN0UHJpdmF0ZU5hbWUoKSkpOwotICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JJc0RvbmVQcml2YXRl
TmFtZSgpLCBpdGVyYXRvck9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9ySXNEb25lUHJpdmF0ZU5hbWUoKSkpOwogICAgIGNs
b25lLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5
SXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUoKSwgaXRlcmF0b3JPYmplY3QtPmdldERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvck5leHRQcml2YXRl
TmFtZSgpKSk7CisgICAgY2xvbmUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvcklzRG9uZVByaXZhdGVOYW1lKCksIGl0ZXJhdG9yT2Jq
ZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5
SXRlcmF0b3JJc0RvbmVQcml2YXRlTmFtZSgpKSk7CiAgICAgcmV0dXJuIGNsb25lOwogfQogCkBA
IC01MzcsNTcgKzU0MCw2OCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjppdGVyYXRv
ckVudHJpZXMoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKICAgICBKU1ZhbHVlIGl0
ZXJhdG9yOworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApOwotICAgIGlmIChKU01hcEl0ZXJhdG9yKiBtYXBJdGVyYXRvciA9IGpzRHluYW1pY0Nh
c3Q8SlNNYXBJdGVyYXRvcio+KHZtLCB2YWx1ZSkpCi0gICAgICAgIGl0ZXJhdG9yID0gbWFwSXRl
cmF0b3ItPmNsb25lKGV4ZWMpOwotICAgIGVsc2UgaWYgKEpTU2V0SXRlcmF0b3IqIHNldEl0ZXJh
dG9yID0ganNEeW5hbWljQ2FzdDxKU1NldEl0ZXJhdG9yKj4odm0sIHZhbHVlKSkKLSAgICAgICAg
aXRlcmF0b3IgPSBzZXRJdGVyYXRvci0+Y2xvbmUoZXhlYyk7Ci0gICAgZWxzZSBpZiAoSlNTdHJp
bmdJdGVyYXRvciogc3RyaW5nSXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTU3RyaW5nSXRlcmF0
b3IqPih2bSwgdmFsdWUpKQotICAgICAgICBpdGVyYXRvciA9IHN0cmluZ0l0ZXJhdG9yLT5jbG9u
ZShleGVjKTsKLSAgICBlbHNlIGlmIChKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5h
bWVJdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+KHZtLCB2
YWx1ZSkpIHsKKyAgICBpZiAoSlNNYXBJdGVyYXRvciogbWFwSXRlcmF0b3IgPSBqc0R5bmFtaWND
YXN0PEpTTWFwSXRlcmF0b3IqPih2bSwgdmFsdWUpKSB7CisgICAgICAgIGlmIChqc0Nhc3Q8SlNN
YXAqPihtYXBJdGVyYXRvci0+aXRlcmF0ZWRWYWx1ZSgpKS0+aXNJdGVyYXRvclByb3RvY29sRmFz
dEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAgICAgICAgIGl0ZXJhdG9yID0gbWFwSXRlcmF0b3It
PmNsb25lKGV4ZWMpOworICAgIH0gZWxzZSBpZiAoSlNTZXRJdGVyYXRvciogc2V0SXRlcmF0b3Ig
PSBqc0R5bmFtaWNDYXN0PEpTU2V0SXRlcmF0b3IqPih2bSwgdmFsdWUpKSB7CisgICAgICAgIGlm
IChqc0Nhc3Q8SlNTZXQqPihzZXRJdGVyYXRvci0+aXRlcmF0ZWRWYWx1ZSgpKS0+aXNJdGVyYXRv
clByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAgICAgICAgIGl0ZXJhdG9yID0g
c2V0SXRlcmF0b3ItPmNsb25lKGV4ZWMpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJdGVyYXRv
ciogc3RyaW5nSXRlcmF0b3IgPSBqc0R5bmFtaWNDYXN0PEpTU3RyaW5nSXRlcmF0b3IqPih2bSwg
dmFsdWUpKSB7CisgICAgICAgIGlmIChnbG9iYWxPYmplY3QtPmlzU3RyaW5nUHJvdG90eXBlSXRl
cmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKCkpCisgICAgICAgICAgICBpdGVyYXRv
ciA9IHN0cmluZ0l0ZXJhdG9yLT5jbG9uZShleGVjKTsKKyAgICB9IGVsc2UgaWYgKEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IqIHByb3BlcnR5TmFtZUl0ZXJhdG9yID0ganNEeW5hbWljQ2FzdDxKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKj4odm0sIHZhbHVlKSkgeworICAgICAgICAvLyBGSVhNRTogUmVm
bGVjdC5lbnVtZXJhdGUgaXRlcmF0aW9uIGNhbiBiZSBvYnNlcnZhYmxlLCBidXQgaXQgaXMgYWxz
byByZW1vdmVkIGZyb20gRUNNQVNjcmlwdC4KICAgICAgICAgaXRlcmF0b3IgPSBwcm9wZXJ0eU5h
bWVJdGVyYXRvci0+Y2xvbmUoZXhlYyk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEpTT2JqZWN0KiBpdGVy
YXRvck9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdmFsdWUpKSB7Ci0gICAg
ICAgICAgICAvLyBBcnJheSBJdGVyYXRvcnMgYXJlIGNyZWF0ZWQgaW4gSlMgZm9yIHBlcmZvcm1h
bmNlIHJlYXNvbnMuIFRodXMgdGhlIG9ubHkgd2F5IHRvIGtub3cgd2UgaGF2ZSBvbmUgaXMgdG8K
LSAgICAgICAgICAgIC8vIGxvb2sgZm9yIGEgcHJvcGVydHkgdGhhdCBpcyB1bmlxdWUgdG8gdGhl
bS4KLSAgICAgICAgICAgIGlmIChKU1ZhbHVlIG5leHRJbmRleCA9IGl0ZXJhdG9yT2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0
b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpKSkKLSAgICAgICAgICAgICAgICBpdGVyYXRvciA9IGNs
b25lQXJyYXlJdGVyYXRvck9iamVjdChleGVjLCB2bSwgaXRlcmF0b3JPYmplY3QsIG5leHRJbmRl
eCk7CisgICAgfSBlbHNlIGlmIChKU09iamVjdCogaXRlcmF0b3JPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTT2JqZWN0Kj4odm0sIHZhbHVlKSkgeworICAgICAgICAvLyBEZXRlY3QgYW4gQXJyYXlJ
dGVyYXRvciBieSBjaGVja2luZyBmb3Igb25lIG9mIGl0cyB1bmlxdWUgcHJpdmF0ZSBwcm9wZXJ0
aWVzLgorICAgICAgICBpZiAoSlNWYWx1ZSBuZXh0SW5kZXggPSBpdGVyYXRvck9iamVjdC0+Z2V0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcnJheUl0ZXJhdG9y
TmV4dEluZGV4UHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgaXRlcmF0ZWRP
YmplY3QgPSBpdGVyYXRvck9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5pdGVyYXRlZE9iamVjdFByaXZhdGVOYW1lKCkpOworICAgICAgICAgICAg
aWYgKGlzSlNBcnJheShpdGVyYXRlZE9iamVjdCkpIHsKKyAgICAgICAgICAgICAgICBKU0FycmF5
KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4oaXRlcmF0ZWRPYmplY3QpOworICAgICAgICAgICAg
ICAgIGlmIChhcnJheS0+aXNJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IgPSBjbG9uZUFycmF5SXRlcmF0b3JPYmplY3Qo
ZXhlYywgdm0sIGl0ZXJhdG9yT2JqZWN0LCBnbG9iYWxPYmplY3QsIG5leHRJbmRleCwgaXRlcmF0
ZWRPYmplY3QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVyYXRlZE9iamVjdC5pc09iamVj
dCgpICYmIFR5cGVJbmZvOjppc0FyZ3VtZW50c1R5cGUoYXNPYmplY3QoaXRlcmF0ZWRPYmplY3Qp
LT50eXBlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+aXNBcnJheVBy
b3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpKQorICAgICAgICAg
ICAgICAgICAgICBpdGVyYXRvciA9IGNsb25lQXJyYXlJdGVyYXRvck9iamVjdChleGVjLCB2bSwg
aXRlcmF0b3JPYmplY3QsIGdsb2JhbE9iamVjdCwgbmV4dEluZGV4LCBpdGVyYXRlZE9iamVjdCk7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKICAgICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIHVuc2lnbmVkIG51bWJlclRvRmV0Y2ggPSA1OwogICAgIEpTVmFsdWUg
bnVtYmVyVG9GZXRjaEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIGRvdWJsZSBmZXRjaERv
dWJsZSA9IG51bWJlclRvRmV0Y2hBcmcudG9JbnRlZ2VyKGV4ZWMpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgaWYgKGZldGNoRG91YmxlID49IDApCiAgICAgICAg
IG51bWJlclRvRmV0Y2ggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmV0Y2hEb3VibGUpOwogCiAg
ICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1iZXJUb0ZldGNoOyArK2kpIHsKICAgICAgICAgSlNWYWx1ZSBuZXh0ID0gaXRlcmF0b3JTdGVw
KGV4ZWMsIGl0ZXJhdG9yKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigp
KSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAobmV4dC5pc0ZhbHNlKCkpCisgICAg
ICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkgfHwgbmV4dC5pc0ZhbHNlKCkpCiAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICBKU1ZhbHVlIG5leHRWYWx1ZSA9IGl0ZXJhdG9y
VmFsdWUoZXhlYywgbmV4dCk7Ci0gICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24o
KSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAogICAgICAgICBKU09iamVjdCogZW50cnkgPSBjb25zdHJ1Y3RFbXB0eU9iamVj
dChleGVjKTsKICAgICAgICAgZW50cnktPnB1dERpcmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKGV4ZWMsICJ2YWx1ZSIpLCBuZXh0VmFsdWUpOwogICAgICAgICBhcnJheS0+
cHV0RGlyZWN0SW5kZXgoZXhlYywgaSwgZW50cnkpOwotICAgICAgICBpZiAoVU5MSUtFTFkoc2Nv
cGUuZXhjZXB0aW9uKCkpKQorICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkp
KSB7CisgICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgICAgICAgICBpdGVyYXRvckNs
b3NlKGV4ZWMsIGl0ZXJhdG9yKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAg
fQogCi0gICAgaXRlcmF0b3JDbG9zZShleGVjLCBpdGVyYXRvcik7Ci0KICAgICByZXR1cm4gYXJy
YXk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCBiYjZkZjkyYjgzMi4uNzllNzVkOWM4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTMyNSw2ICszMjUs
NyBAQCBKU0dsb2JhbE9iamVjdDo6SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgR2xvYmFsT2JqZWN0TQogICAgICwgbV9hcnJheUl0ZXJhdG9yUHJvdG9j
b2xXYXRjaHBvaW50KElzV2F0Y2hlZCkKICAgICAsIG1fbWFwSXRlcmF0b3JQcm90b2NvbFdhdGNo
cG9pbnQoSXNXYXRjaGVkKQogICAgICwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludChJ
c1dhdGNoZWQpCisgICAgLCBtX3N0cmluZ0l0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KElzV2F0
Y2hlZCkKICAgICAsIG1fbWFwU2V0V2F0Y2hwb2ludChJc1dhdGNoZWQpCiAgICAgLCBtX3NldEFk
ZFdhdGNocG9pbnQoSXNXYXRjaGVkKQogICAgICwgbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50KENs
ZWFyV2F0Y2hwb2ludCkKQEAgLTkzNyw3ICs5MzgsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVj
dAogICAgICAgICAgICAgbV9hcnJheUl0ZXJhdG9yUHJvdG90eXBlTmV4dCA9IHN0ZDo6bWFrZV91
bmlxdWU8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hw
b2ludFNldD4+KHZtLCBjb25kaXRpb24sIG1fYXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2lu
dCk7CiAgICAgICAgICAgICBtX2FycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0LT5pbnN0YWxsKCk7
CiAgICAgICAgIH0KLQogICAgICAgICB7CiAgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRp
dGlvbiBjb25kaXRpb24gPSBzZXR1cEFkYXB0aXZlV2F0Y2hwb2ludCh0aGlzLT5hcnJheVByb3Rv
dHlwZSgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKICAgICAgICAgICAg
IG1fYXJyYXlQcm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9p
bnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX2FycmF5SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQp
OwpAQCAtOTQ5LDcgKzk0OSw2IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgICAg
ICBtX21hcEl0ZXJhdG9yUHJvdG90eXBlTmV4dFdhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRT
ZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKICAg
ICAgICAgICAgIG1fbWFwSXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2ludC0+aW5zdGFsbCgp
OwogICAgICAgICB9Ci0KICAgICAgICAgewogICAgICAgICAgICAgT2JqZWN0UHJvcGVydHlDb25k
aXRpb24gY29uZGl0aW9uID0gc2V0dXBBZGFwdGl2ZVdhdGNocG9pbnQobV9tYXBQcm90b3R5cGUu
Z2V0KCksIG1fdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpOwogICAgICAgICAgICAg
bV9tYXBQcm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRT
ZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KTsKQEAg
LTk2MSw3ICs5NjAsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICAgICAgbV9z
ZXRJdGVyYXRvclByb3RvdHlwZU5leHRXYXRjaHBvaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPYmpl
Y3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4o
dm0sIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CiAgICAgICAg
ICAgICBtX3NldEl0ZXJhdG9yUHJvdG90eXBlTmV4dFdhdGNocG9pbnQtPmluc3RhbGwoKTsKICAg
ICAgICAgfQotCiAgICAgICAgIHsKICAgICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
IGNvbmRpdGlvbiA9IHNldHVwQWRhcHRpdmVXYXRjaHBvaW50KG1fc2V0UHJvdG90eXBlLmdldCgp
LCBtX3ZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKICAgICAgICAgICAgIG1fc2V0
UHJvdG90eXBlU3ltYm9sSXRlcmF0b3JXYXRjaHBvaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPYmpl
Y3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4o
dm0sIGNvbmRpdGlvbiwgbV9zZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CkBAIC05Njks
NiArOTY3LDE3IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgIH0KIAogICAgICAg
ICB7CisgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gPSBzZXR1
cEFkYXB0aXZlV2F0Y2hwb2ludChtX3N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmdldCgpLCBtX3Zt
LnByb3BlcnR5TmFtZXMtPm5leHQpOworICAgICAgICAgICAgbV9zdHJpbmdJdGVyYXRvclByb3Rv
dHlwZU5leHRXYXRjaHBvaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPYmplY3RQcm9wZXJ0eUNoYW5n
ZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4odm0sIGNvbmRpdGlvbiwg
bV9zdHJpbmdJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCk7CisgICAgICAgICAgICBtX3N0cmlu
Z0l0ZXJhdG9yUHJvdG90eXBlTmV4dFdhdGNocG9pbnQtPmluc3RhbGwoKTsKKyAgICAgICAgfQor
ICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24g
PSBzZXR1cEFkYXB0aXZlV2F0Y2hwb2ludChtX3N0cmluZ1Byb3RvdHlwZS5nZXQoKSwgbV92bS5w
cm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCk7CisgICAgICAgICAgICBtX3N0cmluZ1Byb3Rv
dHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludCA9IHN0ZDo6bWFrZV91bmlxdWU8T2JqZWN0UHJv
cGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+KHZtLCBj
b25kaXRpb24sIG1fc3RyaW5nSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQpOworICAgICAgICAg
ICAgbV9zdHJpbmdQcm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQtPmluc3RhbGwoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHsKICAgICAgICAgICAgIE9iamVjdFByb3BlcnR5Q29uZGl0
aW9uIGNvbmRpdGlvbiA9IHNldHVwQWRhcHRpdmVXYXRjaHBvaW50KG1fbWFwUHJvdG90eXBlLmdl
dCgpLCBtX3ZtLnByb3BlcnR5TmFtZXMtPnNldCk7CiAgICAgICAgICAgICBtX21hcFByb3RvdHlw
ZVNldFdhdGNocG9pbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+Pih2bSwgY29uZGl0aW9uLCBtX21h
cFNldFdhdGNocG9pbnQpOwogICAgICAgICAgICAgbV9tYXBQcm90b3R5cGVTZXRXYXRjaHBvaW50
LT5pbnN0YWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAppbmRleCA5MDYyMmZhNmYzOC4uODZkODkwNTRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtNDA4LDYgKzQwOCw3IEBA
IHB1YmxpYzoKICAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBhcnJheUl0ZXJhdG9yUHJvdG9jb2xX
YXRjaHBvaW50KCkgeyByZXR1cm4gbV9hcnJheUl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9
CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgbWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQo
KSB7IHJldHVybiBtX21hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9CiAgICAgSW5saW5l
V2F0Y2hwb2ludFNldCYgc2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoKSB7IHJldHVybiBt
X3NldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9CisgICAgSW5saW5lV2F0Y2hwb2ludFNl
dCYgc3RyaW5nSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoKSB7IHJldHVybiBtX3N0cmluZ0l0
ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50OyB9CiAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgbWFw
U2V0V2F0Y2hwb2ludCgpIHsgcmV0dXJuIG1fbWFwU2V0V2F0Y2hwb2ludDsgfQogICAgIElubGlu
ZVdhdGNocG9pbnRTZXQmIHNldEFkZFdhdGNocG9pbnQoKSB7IHJldHVybiBtX3NldEFkZFdhdGNo
cG9pbnQ7IH0KICAgICBJbmxpbmVXYXRjaHBvaW50U2V0JiBhcnJheVNwZWNpZXNXYXRjaHBvaW50
KCkgeyByZXR1cm4gbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50OyB9CkBAIC00MTYsNiArNDE3LDcg
QEAgcHVibGljOgogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9hcnJheUl0ZXJhdG9yUHJvdG9j
b2xXYXRjaHBvaW50OwogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9tYXBJdGVyYXRvclByb3Rv
Y29sV2F0Y2hwb2ludDsKICAgICBJbmxpbmVXYXRjaHBvaW50U2V0IG1fc2V0SXRlcmF0b3JQcm90
b2NvbFdhdGNocG9pbnQ7CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX3N0cmluZ0l0ZXJhdG9y
UHJvdG9jb2xXYXRjaHBvaW50OwogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9tYXBTZXRXYXRj
aHBvaW50OwogICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9zZXRBZGRXYXRjaHBvaW50OwogICAg
IElubGluZVdhdGNocG9pbnRTZXQgbV9hcnJheVNwZWNpZXNXYXRjaHBvaW50OwpAQCAtNDI1LDEy
ICs0MjcsMTUgQEAgcHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9wZXJ0eUNo
YW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4gbV9tYXBJdGVyYXRv
clByb3RvdHlwZU5leHRXYXRjaHBvaW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxPYmplY3RQcm9w
ZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludDxJbmxpbmVXYXRjaHBvaW50U2V0Pj4gbV9zZXRQ
cm90b3R5cGVTeW1ib2xJdGVyYXRvcldhdGNocG9pbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE9i
amVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9pbnRTZXQ+
PiBtX3NldEl0ZXJhdG9yUHJvdG90eXBlTmV4dFdhdGNocG9pbnQ7CisgICAgc3RkOjp1bmlxdWVf
cHRyPE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50PElubGluZVdhdGNocG9p
bnRTZXQ+PiBtX3N0cmluZ1Byb3RvdHlwZVN5bWJvbEl0ZXJhdG9yV2F0Y2hwb2ludDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQ8SW5s
aW5lV2F0Y2hwb2ludFNldD4+IG1fc3RyaW5nSXRlcmF0b3JQcm90b3R5cGVOZXh0V2F0Y2hwb2lu
dDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNo
cG9pbnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fbWFwUHJvdG90eXBlU2V0V2F0Y2hwb2ludDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9p
bnQ8SW5saW5lV2F0Y2hwb2ludFNldD4+IG1fc2V0UHJvdG90eXBlQWRkV2F0Y2hwb2ludDsKIAog
ICAgIGJvb2wgaXNBcnJheVByb3RvdHlwZUl0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2
YWJsZSgpOwogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5v
bk9ic2VydmFibGUoKTsKICAgICBib29sIGlzU2V0UHJvdG90eXBlSXRlcmF0b3JQcm90b2NvbEZh
c3RBbmROb25PYnNlcnZhYmxlKCk7CisgICAgYm9vbCBpc1N0cmluZ1Byb3RvdHlwZUl0ZXJhdG9y
UHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNNYXBQcm90b3R5cGVT
ZXRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wgaXNTZXRQcm90b3R5cGVBZGRGYXN0
QW5kTm9uT2JzZXJ2YWJsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0SW5saW5lcy5oCmluZGV4IGE1ZDA2ZGFhOTFhLi41MmU5Mzc2
MWJhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RJbmxpbmVzLmgKQEAgLTgyLDYgKzgyLDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBK
U0dsb2JhbE9iamVjdDo6aXNTZXRQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9i
c2VyCiAgICAgcmV0dXJuIHNldEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50KCkuaXNTdGlsbFZh
bGlkKCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNTdHJpbmdQ
cm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKQoreworICAgIHJl
dHVybiBzdHJpbmdJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludCgpLmlzU3RpbGxWYWxpZCgpOwor
fQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNHbG9iYWxPYmplY3Q6OmlzTWFwUHJvdG90eXBlU2V0
RmFzdEFuZE5vbk9ic2VydmFibGUoKQogewogICAgIHJldHVybiBtYXBTZXRXYXRjaHBvaW50KCku
aXNTdGlsbFZhbGlkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01hcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5jcHAKaW5k
ZXggNzA0NDFkNWQ2YjMuLjhhY2E1NzJhNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU01hcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNYXAuY3BwCkBAIC00NSwyNyArNDUsMjggQEAgSlNNYXAqIEpTTWFwOjpjbG9uZShFeGVj
U3RhdGUqIGV4ZWMsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGlu
c3RhbmNlOwogfQogCitib29sIEpTTWFwOjppc0l0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2Jz
ZXJ2YWJsZSgpCit7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmds
b2JhbE9iamVjdCgpOworICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pc01hcFByb3RvdHlwZUl0ZXJh
dG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgpOworICAgIC8v
IFRoaXMgaXMgdGhlIGZhc3QgY2FzZS4gTWFueSBtYXBzIHdpbGwgYmUgYW4gb3JpZ2luYWwgbWFw
LgorICAgIGlmIChzdHJ1Y3R1cmUgPT0gZ2xvYmFsT2JqZWN0LT5tYXBTdHJ1Y3R1cmUoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoc3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUo
KSAhPSBnbG9iYWxPYmplY3QtPm1hcFByb3RvdHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoZ2V0RGlyZWN0T2Zmc2V0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKSAhPSBpbnZhbGlkT2Zmc2V0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBK
U01hcDo6Y2FuQ2xvbmVGYXN0QW5kTm9uT2JzZXJ2YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
IHsKLSAgICBhdXRvIGlzSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlID0gWyZd
ICgpIHsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmdsb2Jh
bE9iamVjdCgpOwotICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+aXNNYXBQcm90b3R5cGVJdGVy
YXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgp
OwotICAgICAgICAvLyBUaGlzIGlzIHRoZSBmYXN0IGNhc2UuIE1hbnkgbWFwcyB3aWxsIGJlIGFu
IG9yaWdpbmFsIG1hcC4KLSAgICAgICAgaWYgKHN0cnVjdHVyZSA9PSBnbG9iYWxPYmplY3QtPm1h
cFN0cnVjdHVyZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHN0
cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBlKCkgIT0gZ2xvYmFsT2JqZWN0LT5tYXBQcm90b3R5cGUo
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoZ2V0RGlyZWN0T2Zm
c2V0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT52bSgpLnByb3BlcnR5TmFtZXMt
Pml0ZXJhdG9yU3ltYm9sKSAhPSBpbnZhbGlkT2Zmc2V0KQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH07Ci0KICAgICBhdXRvIHNldEZhc3RB
bmROb25PYnNlcnZhYmxlID0gWyZdIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgewogICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKTsK
ICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QtPmlzTWFwUHJvdG90eXBlU2V0RmFzdEFuZE5vbk9i
c2VydmFibGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oCmluZGV4IGU3NDlh
YzU5ZjZhLi44MWUzMjZkYTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5o
CkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAgICAgYWRkKGV4ZWMsIGtleSwgdmFsdWUp
OwogICAgIH0KIAorICAgIGJvb2wgaXNJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFi
bGUoKTsKICAgICBib29sIGNhbkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUoU3RydWN0dXJlKik7
CiAgICAgSlNNYXAqIGNsb25lKEV4ZWNTdGF0ZSosIFZNJiwgU3RydWN0dXJlKik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCAxZDEyNjg4ZWQ5Yy4u
OWEzNGEyZmJhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKQEAgLTIzNjEsOSArMjM2MSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgY2FuRG9G
YXN0UHV0RGlyZWN0SW5kZXgoSlNPYmplY3QqIG9iamVjdCkKIHsKICAgICByZXR1cm4gaXNKU0Fy
cmF5KG9iamVjdCkKICAgICAgICAgfHwgaXNKU0ZpbmFsT2JqZWN0KG9iamVjdCkKLSAgICAgICAg
fHwgb2JqZWN0LT50eXBlKCkgPT0gRGlyZWN0QXJndW1lbnRzVHlwZQotICAgICAgICB8fCBvYmpl
Y3QtPnR5cGUoKSA9PSBTY29wZWRBcmd1bWVudHNUeXBlCi0gICAgICAgIHx8IG9iamVjdC0+dHlw
ZSgpID09IENsb25lZEFyZ3VtZW50c1R5cGU7CisgICAgICAgIHx8IFR5cGVJbmZvOjppc0FyZ3Vt
ZW50c1R5cGUob2JqZWN0LT50eXBlKCkpOwogfQogCiAvLyBEZWZpbmVkIGluIEVTNS4xIDguMTIu
OQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuY3BwCmluZGV4IGI0YzY0ODk4ZDAx
Li5lNGY0YTE2ZTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmNwcApA
QCAtNDUsMjcgKzQ1LDI4IEBAIEpTU2V0KiBKU1NldDo6Y2xvbmUoRXhlY1N0YXRlKiBleGVjLCBW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAor
Ym9vbCBKU1NldDo6aXNJdGVyYXRvclByb3RvY29sRmFzdEFuZE5vbk9ic2VydmFibGUoKQorewor
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0aGlzLT5nbG9iYWxPYmplY3QoKTsK
KyAgICBpZiAoIWdsb2JhbE9iamVjdC0+aXNTZXRQcm90b3R5cGVJdGVyYXRvclByb3RvY29sRmFz
dEFuZE5vbk9ic2VydmFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1Y3R1cmUoKTsKKyAgICAvLyBUaGlzIGlzIHRoZSBm
YXN0IGNhc2UuIE1hbnkgc2V0cyB3aWxsIGJlIGFuIG9yaWdpbmFsIHNldC4KKyAgICBpZiAoc3Ry
dWN0dXJlID09IGdsb2JhbE9iamVjdC0+c2V0U3RydWN0dXJlKCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKHN0cnVjdHVyZS0+c3RvcmVkUHJvdG90eXBlKCkgIT0gZ2xvYmFsT2Jq
ZWN0LT5qc1NldFByb3RvdHlwZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
Z2V0RGlyZWN0T2Zmc2V0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT52bSgpLnBy
b3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKSAhPSBpbnZhbGlkT2Zmc2V0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBKU1NldDo6Y2FuQ2xv
bmVGYXN0QW5kTm9uT2JzZXJ2YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBhdXRv
IGlzSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlID0gWyZdICgpIHsKLSAgICAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXMtPmdsb2JhbE9iamVjdCgpOwot
ICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+aXNTZXRQcm90b3R5cGVJdGVyYXRvclByb3RvY29s
RmFzdEFuZE5vbk9ic2VydmFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgpOwotICAgICAgICAv
LyBUaGlzIGlzIHRoZSBmYXN0IGNhc2UuIE1hbnkgc2V0cyB3aWxsIGJlIGFuIG9yaWdpbmFsIHNl
dC4KLSAgICAgICAgaWYgKHN0cnVjdHVyZSA9PSBnbG9iYWxPYmplY3QtPnNldFN0cnVjdHVyZSgp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+c3Rv
cmVkUHJvdG90eXBlKCkgIT0gZ2xvYmFsT2JqZWN0LT5qc1NldFByb3RvdHlwZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmIChnZXREaXJlY3RPZmZzZXQoZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPnZtKCkucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JT
eW1ib2wpICE9IGludmFsaWRPZmZzZXQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfTsKLQogICAgIGF1dG8gYWRkRmFzdEFuZE5vbk9ic2Vy
dmFibGUgPSBbJl0gKFN0cnVjdHVyZSogc3RydWN0dXJlKSB7CiAgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpOwogICAgICAgICBp
ZiAoIWdsb2JhbE9iamVjdC0+aXNTZXRQcm90b3R5cGVBZGRGYXN0QW5kTm9uT2JzZXJ2YWJsZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmgKaW5kZXggYjZiNzQ1MzM1ZmEuLmU2
NzY0MDc5ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nl
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmgKQEAgLTUyLDYg
KzUyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCisgICAg
Ym9vbCBpc0l0ZXJhdG9yUHJvdG9jb2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpOwogICAgIGJvb2wg
Y2FuQ2xvbmVGYXN0QW5kTm9uT2JzZXJ2YWJsZShTdHJ1Y3R1cmUqKTsKICAgICBKU1NldCogY2xv
bmUoRXhlY1N0YXRlKiwgVk0mLCBTdHJ1Y3R1cmUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlSW5mby5oCmluZGV4IDE2ZWQ0YmUyMDUwLi45NGRmMjI5MTIxZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaApAQCAtOTQsNiArOTQs
MTMgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3Qo
KSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGlj
T2JqZWN0KTsgfQogICAgIGJvb2wgaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybygpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyk7
IH0KIAorICAgIHN0YXRpYyBib29sIGlzQXJndW1lbnRzVHlwZShKU1R5cGUgdHlwZSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0eXBlID09IERpcmVjdEFyZ3VtZW50c1R5cGUKKyAgICAgICAgICAg
IHx8IHR5cGUgPT0gU2NvcGVkQXJndW1lbnRzVHlwZQorICAgICAgICAgICAgfHwgdHlwZSA9PSBD
bG9uZWRBcmd1bWVudHNUeXBlOworICAgIH0KKwogICAgIHN0YXRpYyBwdHJkaWZmX3QgZmxhZ3NP
ZmZzZXQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihUeXBlSW5mbywg
bV9mbGFncyk7Cg==
</data>
<flag name="review"
          id="334667"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>