<?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>138189</bug_id>
          
          <creation_ts>2014-10-29 15:04:21 -0700</creation_ts>
          <short_desc>Web Inspector: Show Selector&apos;s Specificity</short_desc>
          <delta_ts>2014-11-03 12:03:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044859</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-29 15:04:21 -0700</bug_when>
    <thetext>* SUMMARY:
The inspector should show selector&apos;s specificity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044860</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-29 15:04:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/18717361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044861</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-10-29 15:04:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/18817190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044869</commentid>
    <comment_count>3</comment_count>
      <attachid>240632</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-29 15:29:08 -0700</bug_when>
    <thetext>Created attachment 240632
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045188</commentid>
    <comment_count>4</comment_count>
      <attachid>240632</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 17:30:46 -0700</bug_when>
    <thetext>Comment on attachment 240632
[PATCH] Proposed Fix

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

The C++ side looks reasonable, no idea about the JS part. You may want to get a second review :)

&gt; LayoutTests/inspector/css/selector-specificity.html:15
&gt; +h1:before,
&gt; +body h1:before,
&gt; +body.a h1.b:before {

:before -&gt; ::before.

&quot;:before&quot; is the legacy syntax from CSS 2.

&gt; Source/JavaScriptCore/inspector/protocol/CSS.json:66
&gt; +                { &quot;name&quot;: &quot;specificity&quot;, &quot;optional&quot;: true, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;integer&quot; }, &quot;description&quot;: &quot;Specificity (a, b, c) tuple. If missing the specificity is not known statically and may be dynamic.&quot; }

What would be the value for dynamic specificity?

&gt; Source/WebCore/css/CSSSelector.h:53
&gt; +        static const unsigned maxValueMask = 0xffffff;
&gt; +        static const unsigned idMask = 0xff0000;
&gt; +        static const unsigned classMask = 0xff00;
&gt; +        static const unsigned elementMask = 0xff;

I would prefer a typed enum to namespace this:
enum class SpecificityMask {
    Id,
    Class,
    Element,
    All
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045317</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 11:24:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 240632 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240632&amp;action=review
&gt; 
&gt; The C++ side looks reasonable, no idea about the JS part. You may want to
&gt; get a second review :)
&gt; 
&gt; &gt; LayoutTests/inspector/css/selector-specificity.html:15
&gt; &gt; +h1:before,
&gt; &gt; +body h1:before,
&gt; &gt; +body.a h1.b:before {
&gt; 
&gt; :before -&gt; ::before.
&gt; 
&gt; &quot;:before&quot; is the legacy syntax from CSS 2.

Oops!


&gt; &gt; Source/JavaScriptCore/inspector/protocol/CSS.json:66
&gt; &gt; +                { &quot;name&quot;: &quot;specificity&quot;, &quot;optional&quot;: true, &quot;type&quot;: &quot;array&quot;, &quot;items&quot;: { &quot;type&quot;: &quot;integer&quot; }, &quot;description&quot;: &quot;Specificity (a, b, c) tuple. If missing the specificity is not known statically and may be dynamic.&quot; }
&gt; 
&gt; What would be the value for dynamic specificity?

It could just be no specificity = dynamic.

&gt; &gt; Source/WebCore/css/CSSSelector.h:53
&gt; &gt; +        static const unsigned maxValueMask = 0xffffff;
&gt; &gt; +        static const unsigned idMask = 0xff0000;
&gt; &gt; +        static const unsigned classMask = 0xff00;
&gt; &gt; +        static const unsigned elementMask = 0xff;
&gt; 
&gt; I would prefer a typed enum to namespace this:
&gt; enum class SpecificityMask {
&gt;     Id,
&gt;     Class,
&gt;     Element,
&gt;     All
&gt; }

I don&apos;t understand this comment.

The masks are bitmasks for the different pieces of the specificity tuple stored in the &quot;unsigned&quot; returned from CSSSelector::specificity. I&apos;m not sure a typed enum is useful here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045324</commentid>
    <comment_count>6</comment_count>
      <attachid>240632</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-10-31 11:33:41 -0700</bug_when>
    <thetext>Comment on attachment 240632
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:183
&gt; +                selectorElement.title = WebInspector.UIString(&quot;Specificity: (%d, %d, %d)&quot;).format(specificity[0], specificity[1], specificity[2]);

I expected a single number in the UI, not a tuple. It is hard to understand what the three numbers represent. The CSS spec totals the three into a final, easier to compare, number.

http://www.w3.org/TR/selectors/#specificity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045337</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 12:00:04 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 240632 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240632&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:183
&gt; &gt; +                selectorElement.title = WebInspector.UIString(&quot;Specificity: (%d, %d, %d)&quot;).format(specificity[0], specificity[1], specificity[2]);
&gt; 
&gt; I expected a single number in the UI, not a tuple. It is hard to understand
&gt; what the three numbers represent. The CSS spec totals the three into a
&gt; final, easier to compare, number.

Yes, I thought about this too.


The spec says:
&lt;http://www.w3.org/TR/selectors/#specificity&gt;
&gt; Concatenating the three numbers a-b-c (in a number system with a large base) gives the specificity.

However, assuming a specific number base (x) can produce an incorrect number if individually either (a), (b), or (c) is larger then the base (x).

This explains it clearly:
&lt;http://juicystudio.com/article/selector-specificity.php&gt;
&gt; One solution suggested is to count the numbers in each column, and multiply by its denary position.
&gt; In simple terms, multiply a by 100, b by 10, and c by 1 (remains the same), and then add them
&gt; together. The problem with this approach is that it falls down when one of the columns has a count
&gt; of ten or higher. For example, 11 elements (c) would outweigh a single class (b) using this method,
&gt; but that cannot be true. A single class would outweigh 100 or more elements. The simplest way to
&gt; cater for the large base is to just accept that b outweighs any number of c, and that a outweighs
&gt; any number of b (which is true of any number system).

However, it is not uncommon to do simple math for selectors with (1000, 100, 10, 1). As mentioned above and elsewhere:
&lt;http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/&gt;
&gt; Start at 0, add 1000 for style attribute, add 100 for each ID, add 10 for each attribute,
&gt; class or pseudo-class, add 1 for each element name or pseudo-element.

I think that is reasonable. How do you feel about displaying something like:

    Specificity (5, 4, 2) ≈ 542.

I think in practice we won&apos;t find many selectors that have more than 10 tags. We may see selectors with more than 10 class/pseudo components but it is probably rare. We can always see if this happens by just checking if any value is &gt; 10 and decide to do something else. Having the &quot;approx&quot; sign instead of &quot;equal&quot; sign gives us a get out of jail card for these edge cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045442</commentid>
    <comment_count>8</comment_count>
      <attachid>240632</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 16:57:35 -0700</bug_when>
    <thetext>Comment on attachment 240632
[PATCH] Proposed Fix

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

&gt;&gt;&gt; Source/WebCore/css/CSSSelector.h:53
&gt;&gt;&gt; +        static const unsigned elementMask = 0xff;
&gt;&gt; 
&gt;&gt; I would prefer a typed enum to namespace this:
&gt;&gt; enum class SpecificityMask {
&gt;&gt;     Id,
&gt;&gt;     Class,
&gt;&gt;     Element,
&gt;&gt;     All
&gt;&gt; }
&gt; 
&gt; I don&apos;t understand this comment.
&gt; 
&gt; The masks are bitmasks for the different pieces of the specificity tuple stored in the &quot;unsigned&quot; returned from CSSSelector::specificity. I&apos;m not sure a typed enum is useful here.

Oh, I see now. I forgot to include the CSSSelector.cpp changes here. I&apos;m just moving these masks from the .cpp to the .h so the inspector code can use it. New patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045447</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-31 17:22:22 -0700</bug_when>
    <thetext>Personally I find the single number unreadable.

Cases with &gt;= 10 in a column are fairly common too in practice.

In WebKit, the max value is type 255. You could have funny cases:
-(1, 0, 0) = 100
-(0, 0, 255) = 255

You could adds zeros I guess:
-(1, 0, 0) = 001000000
-(0, 0, 255) = 000000255</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045455</commentid>
    <comment_count>10</comment_count>
      <attachid>240772</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 17:54:06 -0700</bug_when>
    <thetext>Created attachment 240772
[PATCH] Proposed Fix

Take 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045456</commentid>
    <comment_count>11</comment_count>
      <attachid>240773</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 17:55:28 -0700</bug_when>
    <thetext>Created attachment 240773
[IMAGE] Example

I think we hit the sweet spot with:

    Specificity: (1, 0, 1) ≈ 101

The tuple is the hard truth. The number we show after is a mere approximation I would say most web developers are thinking of in their head.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045802</commentid>
    <comment_count>12</comment_count>
      <attachid>240772</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-03 11:39:13 -0800</bug_when>
    <thetext>Comment on attachment 240772
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:763
&gt; +            return selectors.map(function(selectorText) {
&gt; +                return new WebInspector.CSSSelector(selectorText);
&gt; +            });

Wild return ... return here. JS, stay crazy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045813</commentid>
    <comment_count>13</comment_count>
      <attachid>240772</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 12:03:53 -0800</bug_when>
    <thetext>Comment on attachment 240772
[PATCH] Proposed Fix

Clearing flags on attachment: 240772

Committed r175483: &lt;http://trac.webkit.org/changeset/175483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045814</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 12:03:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240632</attachid>
            <date>2014-10-29 15:29:08 -0700</date>
            <delta_ts>2014-10-31 17:54:06 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>specificity.patch</filename>
            <type>text/plain</type>
            <size>31154</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMzVlNDFkLi5jZTlhMDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMTAt
MjkgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFNlbGVjdG9yJ3MgU3BlY2lmaWNpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0
eWxlLXByb3BlcnRpZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNw
ZWNpZmljaXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9z
ZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sLgorCiAyMDE0LTEwLTI5ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBNYXZlcmlj
a3MgcmVzdWx0cyBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM3Mjc1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21hdGNoZWQtc3R5
bGUtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0
eWxlLXByb3BlcnRpZXMuaHRtbAppbmRleCBmYWUyMGZlLi41NTYyMjk4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0
bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMubGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgICAgIHZhciBydWxlID0gbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXNbaV07Ci0gICAg
ICAgICAgICBpZiAocnVsZS50eXBlICE9IFdlYkluc3BlY3Rvci5DU1NSdWxlLlR5cGUuQXV0aG9y
KQorICAgICAgICAgICAgaWYgKHJ1bGUudHlwZSAhPT0gV2ViSW5zcGVjdG9yLkNTU1J1bGUuVHlw
ZS5BdXRob3IpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aDsgKytqKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2VsZWN0b3Itc3BlY2lmaWNp
dHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMTVk
YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9y
LXNwZWNpZmljaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0aW5nIHRoYXQg
c2VsZWN0b3JzIGhhdmUgZXhwZWN0ZWQgc3BlY2lmaWNpdHkgdmFsdWVzLgorCisqICgwLCAwLCAw
KQoraDEgKDAsIDAsIDEpCisuY2xhc3MgKDAsIDEsIDApCisjaWQgKDEsIDAsIDApCitib2R5IGgx
LmNsYXNzLW9uZS5jbGFzcy10d28gKDAsIDIsIDIpCitib2R5ICNmb28gKDEsIDAsIDEpCitib2R5
ID4gI2ZvbyAoMSwgMCwgMSkKK2JvZHkgPiAjZm9vLmEuYiAoMSwgMiwgMSkKK2gxOmJlZm9yZSAo
MCwgMSwgMSkKK2JvZHkgaDE6YmVmb3JlICgwLCAxLCAyKQorYm9keS5hIGgxLmI6YmVmb3JlICgw
LCAzLCAyKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9y
LXNwZWNpZmljaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNw
ZWNpZmljaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdiZjUz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2VsZWN0b3It
c3BlY2lmaWNpdHkuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CisqLAoraDEsCisuY2xhc3MsCisjaWQsCitib2R5IGgxLmNsYXNz
LW9uZS5jbGFzcy10d28sCitib2R5ICNmb28sCitib2R5ID4gI2ZvbywKK2JvZHkgPiAjZm9vLmEu
YiwKK2gxOmJlZm9yZSwKK2JvZHkgaDE6YmVmb3JlLAorYm9keS5hIGgxLmI6YmVmb3JlIHsKKyAg
ICBjb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgdmFyIG5vZGVTdHlsZXM7
CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVNlbGVjdG9ycygpCisgICAgeworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgcnVsZSA9IG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzW2ldOworICAgICAg
ICAgICAgaWYgKHJ1bGUudHlwZSAhPT0gV2ViSW5zcGVjdG9yLkNTU1J1bGUuVHlwZS5BdXRob3Ip
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGZvciAodmFyIHNlbGVj
dG9yIG9mIHJ1bGUuc2VsZWN0b3JzKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KHNlbGVjdG9yLnRleHQgKyAiICgiICsgc2VsZWN0b3Iuc3BlY2lmaWNpdHkuam9pbigiLCAiKSAr
ICIpIik7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU3R5bGVzUmVmcmVzaGVkKCkKKyAgICB7CisgICAg
ICAgIG5vZGVTdHlsZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NTm9kZVN0
eWxlcy5FdmVudC5SZWZyZXNoZWQsIG9uU3R5bGVzUmVmcmVzaGVkLCB0aGlzKTsKKyAgICAgICAg
dmFsaWRhdGVTZWxlY3RvcnMoKTsKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1h
bmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBX
ZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQs
ICIjbm9kZTEiLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7CisgICAgICAgICAgICBpZiAoY29u
dGVudE5vZGVJZCkgeworICAgICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9y
LmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKKyAgICAgICAgICAgICAg
ICBub2RlU3R5bGVzID0gV2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2Rl
KGRvbU5vZGUpOworCisgICAgICAgICAgICAgICAgaWYgKG5vZGVTdHlsZXMubmVlZHNSZWZyZXNo
KQorICAgICAgICAgICAgICAgICAgICBub2RlU3R5bGVzLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRPTU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVkLCBvblN0eWxlc1JlZnJlc2hlZCwg
dGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB2YWxpZGF0
ZVNlbGVjdG9ycygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRE9NIG5vZGUgbm90IGZvdW5kLiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICAgPHA+VGVzdGluZyB0aGF0IHNlbGVjdG9ycyBoYXZlIGV4cGVjdGVkIHNwZWNpZmljaXR5
IHZhbHVlcy48L3A+CisKKyAgICA8ZGl2IGlkPSJub2RlMSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBkZTBhMmY2Li4wODVjNzExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0xMC0yOSAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNo
b3cgU2VsZWN0b3IncyBTcGVjaWZpY2l0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpzb246CisgICAgICAg
IENyZWF0ZSBhIG5ldyBuYW1lZCB0eXBlIENTU1NlbGVjdG9yIHRvIGluY2x1ZGUgYSBzZWxlY3Rv
cidzIHRleHQgYW5kIHNwZWNpZmljaXR5LgorICAgICAgICBUaGUgc3BlY2lmaWNpdHkgdHVwbGUg
aXMgb3B0aW9uYWwgYXMgaXQgbWF5IHNvb24gYmUgbWFkZSBkeW5hbWljIGluIHNvbWUgY2FzZXMu
CisKIDIwMTQtMTAtMjggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzUyNDkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbgppbmRleCAyMjRlMTc1
Li4wMTU4N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL0NTUy5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvQ1NTLmpzb24KQEAgLTU5LDEwICs1OSwxOSBAQAogICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIk1hdGNoIGRhdGEgZm9yIGEgQ1NTIHJ1bGUuIgogICAgICAgICB9LAogICAgICAgICB7
CisgICAgICAgICAgICAiaWQiOiAiQ1NTU2VsZWN0b3IiLAorICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDYW5vbmlj
YWxpemVkIHNlbGVjdG9yIHRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Bl
Y2lmaWNpdHkiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsg
InR5cGUiOiAiaW50ZWdlciIgfSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmljaXR5IChhLCBiLCBj
KSB0dXBsZS4gSWYgbWlzc2luZyB0aGUgc3BlY2lmaWNpdHkgaXMgbm90IGtub3duIHN0YXRpY2Fs
bHkgYW5kIG1heSBiZSBkeW5hbWljLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJDU1Mgc2VsZWN0b3IuIgorICAgICAgICB9LAorICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiU2VsZWN0b3JMaXN0IiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInNlbGVjdG9ycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJp
bmciIH0sICJkZXNjcmlwdGlvbiI6ICJTZWxlY3RvcnMgaW4gdGhlIGxpc3QuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic2VsZWN0b3JzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMi
OiB7ICIkcmVmIjogIkNTU1NlbGVjdG9yIiB9LCAiZGVzY3JpcHRpb24iOiAiU2VsZWN0b3JzIGlu
IHRoZSBsaXN0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUnVsZSBzZWxlY3RvciB0ZXh0LiIgfSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJhbmdlIiwgIiRyZWYiOiAiU291cmNlUmFuZ2UiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUnVsZSBzZWxlY3RvciByYW5nZSBpbiB0aGUg
dW5kZXJseWluZyByZXNvdXJjZSAoaWYgYXZhaWxhYmxlKS4iIH0KICAgICAgICAgICAgIF0sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMzIyZDg2MC4uOWRhZTAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBA
CisyMDE0LTEwLTI5ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBTZWxlY3RvcidzIFNwZWNpZmljaXR5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgxODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Iv
Y3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rv
ci5oOgorICAgICAgICBSZW1vdmUgdmVyeSBzdGFsZSBjb21tZW50LiAnKicgaXMgYSBzdGFyQXRv
bSBub3cgaW5zdGVhZCBvZiBhIHNwZWNpYWwgLTEgdGFnLgorICAgICAgICBNYWRlIHRoZSBzcGVj
aWZpY2l0eSBtYXNrcyBwdWJsaWMgY2xhc3MgY29uc3RhbnRzLgorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6YnVpbGRB
cnJheUZvckNvbXB1dGVkU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6
OnN0eWxlV2l0aFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVT
aGVldDo6YnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0SW5mbyk6CisgICAgICAgIERyaXZlIGJ5IHVz
ZSByZWxlYXNlKCkgaW4gc29tZSBjYXNlcyB0byByZWR1Y2UgcmVmIGNvdW50IGNodXJuLgorCisg
ICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclNlbGVjdG9ySGVscGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNlbGVjdG9yc0Zyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclNlbGVjdG9yTGlzdCk6CisgICAg
ICAgIEJ1aWxkIENTU1NlbGVjdG9yIG9iamVjdHMgZm9yIFNlbGVjdG9yTGlzdHMuCisKIDIwMTQt
MTAtMjkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0g
TlVMTC1kZXJlZmVyZW5jZSBjcmFzaCBpbiBNZWRpYUtleXM6OnNldE1lZGlhRWxlbWVudCgpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA5M2FkNWU0Li5kM2FjMDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaApAQCAtNDcsNyArNDcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAvLyBjaGVja3MgaWYgdGhlIDIgc2VsZWN0b3JzIChpbmNsdWRpbmcgc3ViIHNlbGVj
dG9ycykgYWdyZWUuCiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYp
IGNvbnN0OwogCi0gICAgICAgIC8vIHRhZyA9PSAtMSBtZWFucyBhcHBseSB0byBhbGwgZWxlbWVu
dHMgKFNlbGVjdG9yID0gKikKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFZhbHVl
TWFzayA9IDB4ZmZmZmZmOworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaWRNYXNrID0g
MHhmZjAwMDA7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjbGFzc01hc2sgPSAweGZm
MDA7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50TWFzayA9IDB4ZmY7CiAK
ICAgICAgICAgdW5zaWduZWQgc3BlY2lmaWNpdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IGY2MWNmMjMuLjg0
ZGMwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAKQEAgLTE1MSwxMiArMTUxLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U+IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoCiAg
ICAgVGV4dFBvc2l0aW9uIHN0YXJ0ID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6dGV4dFBvc2l0
aW9uRnJvbU9mZnNldChyYW5nZS5zdGFydCwgKmxpbmVFbmRpbmdzKTsKICAgICBUZXh0UG9zaXRp
b24gZW5kID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6dGV4dFBvc2l0aW9uRnJvbU9mZnNldChy
YW5nZS5lbmQsICpsaW5lRW5kaW5ncyk7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpTb3VyY2VSYW5nZT4gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpT
b3VyY2VSYW5nZTo6Y3JlYXRlKCkKKyAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpTb3VyY2VSYW5nZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldFN0YXJ0TGluZShzdGFydC5tX2xp
bmUuemVyb0Jhc2VkSW50KCkpCiAgICAgICAgIC5zZXRTdGFydENvbHVtbihzdGFydC5tX2NvbHVt
bi56ZXJvQmFzZWRJbnQoKSkKICAgICAgICAgLnNldEVuZExpbmUoZW5kLm1fbGluZS56ZXJvQmFz
ZWRJbnQoKSkKLSAgICAgICAgLnNldEVuZENvbHVtbihlbmQubV9jb2x1bW4uemVyb0Jhc2VkSW50
KCkpOwotICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgICAgICAuc2V0RW5kQ29sdW1u
KGVuZC5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKSkKKyAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAog
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NNZWRpYT4gYnVp
bGRNZWRpYU9iamVjdChjb25zdCBNZWRpYUxpc3QqIG1lZGlhLCBNZWRpYUxpc3RTb3VyY2UgbWVk
aWFMaXN0U291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAgLTMyNyw3ICszMjcsNyBA
QCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZQogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpDU1NDb21wdXRlZFN0eWxlUHJvcGVydHk+IGVudHJ5ID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NDb21wdXRlZFN0eWxlUHJvcGVydHk6OmNyZWF0ZSgpCiAgICAgICAg
ICAgICAuc2V0TmFtZShwcm9wZXJ0eUVudHJ5Lm5hbWUpCiAgICAgICAgICAgICAuc2V0VmFsdWUo
cHJvcGVydHlFbnRyeS52YWx1ZSk7Ci0gICAgICAgIHJlc3VsdC0+YWRkSXRlbShlbnRyeSk7Cisg
ICAgICAgIHJlc3VsdC0+YWRkSXRlbShlbnRyeS5yZWxlYXNlKCkpOwogICAgIH0KIAogICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZSgpOwpAQCAtNjAzLDcgKzYwMyw3IEBAIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0
aFByb3BlcnRpCiAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpTaG9ydGhhbmRFbnRyeT4gZW50cnkgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OlNob3J0aGFuZEVudHJ5OjpjcmVhdGUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC5zZXROYW1lKHNob3J0aGFuZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFs
dWUoc2hvcnRoYW5kVmFsdWUoc2hvcnRoYW5kKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
aG9ydGhhbmRFbnRyaWVzLT5hZGRJdGVtKGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNob3J0aGFuZEVudHJpZXMtPmFkZEl0ZW0oZW50cnkucmVsZWFzZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTYxNCwxMCAr
NjE0LDEwIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4g
SW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpCiAgICAgICAgICAgICBwcm9wZXJ0eS0+
c2V0U3RhdHVzKHN0YXR1cyk7CiAgICAgfQogCi0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTU3R5bGU+IHJlc3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
U3R5bGU6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRDc3NQcm9wZXJ0aWVzKHByb3BlcnRpZXNPYmpl
Y3QpCi0gICAgICAgIC5zZXRTaG9ydGhhbmRFbnRyaWVzKHNob3J0aGFuZEVudHJpZXMpOwotICAg
IHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29s
OjpDU1M6OkNTU1N0eWxlOjpjcmVhdGUoKQorICAgICAgICAuc2V0Q3NzUHJvcGVydGllcyhwcm9w
ZXJ0aWVzT2JqZWN0LnJlbGVhc2UoKSkKKyAgICAgICAgLnNldFNob3J0aGFuZEVudHJpZXMoc2hv
cnRoYW5kRW50cmllcy5yZWxlYXNlKCkpCisgICAgICAgIC5yZWxlYXNlKCk7CiB9CiAKIFBhc3NS
ZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IEluc3BlY3RvclN0eWxlOjpleHRyYWN0U291cmNlRGF0
YSgpIGNvbnN0CkBAIC05ODEsNTMgKzk4MSw3NSBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4gSW5zcGVjdG9yU3R5bGVTaGVldDo6Ygog
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3R5bGVTaGVldC0+b3duZXJEb2N1bWVudCgpOwog
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRy
OwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFk
ZXI+IHJlc3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRl
cjo6Y3JlYXRlKCkKKyAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHls
ZVNoZWV0SGVhZGVyOjpjcmVhdGUoKQogICAgICAgICAuc2V0U3R5bGVTaGVldElkKGlkKCkpCiAg
ICAgICAgIC5zZXRPcmlnaW4obV9vcmlnaW4pCiAgICAgICAgIC5zZXREaXNhYmxlZChzdHlsZVNo
ZWV0LT5kaXNhYmxlZCgpKQogICAgICAgICAuc2V0U291cmNlVVJMKGZpbmFsVVJMKCkpCiAgICAg
ICAgIC5zZXRUaXRsZShzdHlsZVNoZWV0LT50aXRsZSgpKQotICAgICAgICAuc2V0RnJhbWVJZCht
X3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSkpOworICAgICAgICAuc2V0RnJhbWVJZChtX3BhZ2VB
Z2VudC0+ZnJhbWVJZChmcmFtZSkpCisgICAgICAgIC5yZWxlYXNlKCk7Cit9CisKK3N0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0b3I+IGJ1aWxkT2Jq
ZWN0Rm9yU2VsZWN0b3JIZWxwZXIoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQsIHVuc2lnbmVk
IHNwZWNpZmljaXR5KQoreworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNT
U1NlbGVjdG9yPiBzZWxlY3RvciA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0
b3I6OmNyZWF0ZSgpCisgICAgICAgIC5zZXRUZXh0KHNlbGVjdG9yVGV4dCk7CisKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8aW50Pj4gdHVwbGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBcnJheTxpbnQ+OjpjcmVhdGUoKTsKKyAgICB0dXBsZS0+YWRkSXRlbShzdGF0aWNf
Y2FzdDxpbnQ+KChzcGVjaWZpY2l0eSAmIENTU1NlbGVjdG9yOjppZE1hc2spID4+IDE2KSk7Cisg
ICAgdHVwbGUtPmFkZEl0ZW0oc3RhdGljX2Nhc3Q8aW50Pigoc3BlY2lmaWNpdHkgJiBDU1NTZWxl
Y3Rvcjo6Y2xhc3NNYXNrKSA+PiA4KSk7CisgICAgdHVwbGUtPmFkZEl0ZW0oc3RhdGljX2Nhc3Q8
aW50PihzcGVjaWZpY2l0eSAmIENTU1NlbGVjdG9yOjplbGVtZW50TWFzaykpOworICAgIHNlbGVj
dG9yLT5zZXRTcGVjaWZpY2l0eSh0dXBsZS5yZWxlYXNlKCkpOwogCi0gICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKIH0KIAotc3RhdGlj
IFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8U3RyaW5nPj4gc2VsZWN0b3Jz
RnJvbVNvdXJjZShjb25zdCBDU1NSdWxlU291cmNlRGF0YSogc291cmNlRGF0YSwgY29uc3QgU3Ry
aW5nJiBzaGVldFRleHQpCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpB
cnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVjdG9yPj4gc2VsZWN0b3JzRnJv
bVNvdXJjZShjb25zdCBDU1NSdWxlU291cmNlRGF0YSogc291cmNlRGF0YSwgY29uc3QgU3RyaW5n
JiBzaGVldFRleHQsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KQogewogICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNz
aW9uLCBjb21tZW50LCAoIi9cXCpbXl0qP1xcKi8iLCBUZXh0Q2FzZVNlbnNpdGl2ZSwgSlNDOjpZ
YXJyOjpNdWx0aWxpbmVFbmFibGVkKSk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFycmF5PFN0cmluZz4+IHJlc3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PFN0cmlu
Zz46OmNyZWF0ZSgpOworCisgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0b3I+PiByZXN1bHQgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVjdG9yPjo6
Y3JlYXRlKCk7CiAgICAgY29uc3QgU2VsZWN0b3JSYW5nZUxpc3QmIHJhbmdlcyA9IHNvdXJjZURh
dGEtPnNlbGVjdG9yUmFuZ2VzOworICAgIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IHNl
bGVjdG9yTGlzdC5maXJzdCgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gcmFuZ2Vz
LnNpemUoKTsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBjb25zdCBTb3VyY2VSYW5nZSYgcmFu
Z2UgPSByYW5nZXMuYXQoaSk7Ci0gICAgICAgIFN0cmluZyBzZWxlY3RvciA9IHNoZWV0VGV4dC5z
dWJzdHJpbmcocmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCgpKTsKKyAgICAgICAgU3RyaW5nIHNl
bGVjdG9yVGV4dCA9IHNoZWV0VGV4dC5zdWJzdHJpbmcocmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0
aCgpKTsKIAogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHNlZSBhbnkgY29tbWVudHMgaW4g
dGhlIHNlbGVjdG9yIGNvbXBvbmVudHMsIG9ubHkgdGhlIG1lYW5pbmdmdWwgcGFydHMuCi0gICAg
ICAgIHJlcGxhY2Uoc2VsZWN0b3IsIGNvbW1lbnQsICIiKTsKLSAgICAgICAgcmVzdWx0LT5hZGRJ
dGVtKHNlbGVjdG9yLnN0cmlwV2hpdGVTcGFjZSgpKTsKKyAgICAgICAgcmVwbGFjZShzZWxlY3Rv
clRleHQsIGNvbW1lbnQsIFN0cmluZygpKTsKKyAgICAgICAgcmVzdWx0LT5hZGRJdGVtKGJ1aWxk
T2JqZWN0Rm9yU2VsZWN0b3JIZWxwZXIoc2VsZWN0b3JUZXh0LnN0cmlwV2hpdGVTcGFjZSgpLCBz
ZWxlY3Rvci0+c3BlY2lmaWNpdHkoKSkpOworCisgICAgICAgIHNlbGVjdG9yID0gQ1NTU2VsZWN0
b3JMaXN0OjpuZXh0KHNlbGVjdG9yKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
KCk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTZWxlY3Rv
cj4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTZWxlY3Rvcihjb25zdCBDU1NT
ZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgcmV0dXJuIGJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3JI
ZWxwZXIoc2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLCBzZWxlY3Rvci0+c3BlY2lmaWNpdHkoKSk7
Cit9CisKIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTZWxlY3Rvckxpc3Q+
IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3JMaXN0KENTU1N0eWxl
UnVsZSogcnVsZSkKIHsKICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGE7
CiAgICAgaWYgKGVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKQogICAgICAgICBzb3VyY2VEYXRhID0g
cnVsZVNvdXJjZURhdGFGb3IoJnJ1bGUtPnN0eWxlKCkpOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpBcnJheTxTdHJpbmc+PiBzZWxlY3RvcnM7CisgICAgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0b3I+
PiBzZWxlY3RvcnM7CiAKICAgICAvLyBUaGlzIGludGVudGlvbmFsbHkgZG9lcyBub3QgcmVseSBv
biB0aGUgc291cmNlIGRhdGEgdG8gYXZvaWQgY2F0Y2hpbmcgdGhlIHRyYWlsaW5nIGNvbW1lbnRz
IChiZWZvcmUgdGhlIGRlY2xhcmF0aW9uIHN0YXJ0aW5nICd7JykuCiAgICAgU3RyaW5nIHNlbGVj
dG9yVGV4dCA9IHJ1bGUtPnNlbGVjdG9yVGV4dCgpOwogCiAgICAgaWYgKHNvdXJjZURhdGEpCi0g
ICAgICAgIHNlbGVjdG9ycyA9IHNlbGVjdG9yc0Zyb21Tb3VyY2Uoc291cmNlRGF0YS5nZXQoKSwg
bV9wYXJzZWRTdHlsZVNoZWV0LT50ZXh0KCkpOworICAgICAgICBzZWxlY3RvcnMgPSBzZWxlY3Rv
cnNGcm9tU291cmNlKHNvdXJjZURhdGEuZ2V0KCksIG1fcGFyc2VkU3R5bGVTaGVldC0+dGV4dCgp
LCBydWxlLT5zdHlsZVJ1bGUoKS0+c2VsZWN0b3JMaXN0KCkpOwogICAgIGVsc2UgewotICAgICAg
ICBzZWxlY3RvcnMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+OjpjcmVhdGUo
KTsKKyAgICAgICAgc2VsZWN0b3JzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTZWxlY3Rvcj46OmNyZWF0ZSgpOwogICAgICAgICBjb25z
dCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCA9IHJ1bGUtPnN0eWxlUnVsZSgpLT5zZWxl
Y3Rvckxpc3QoKTsKICAgICAgICAgZm9yIChjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBz
ZWxlY3Rvckxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0
OjpuZXh0KHNlbGVjdG9yKSkKLSAgICAgICAgICAgIHNlbGVjdG9ycy0+YWRkSXRlbShzZWxlY3Rv
ci0+c2VsZWN0b3JUZXh0KCkpOworICAgICAgICAgICAgc2VsZWN0b3JzLT5hZGRJdGVtKGJ1aWxk
T2JqZWN0Rm9yU2VsZWN0b3Ioc2VsZWN0b3IpKTsKICAgICB9CiAgICAgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6U2VsZWN0b3JMaXN0PiByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OlNlbGVjdG9yTGlzdDo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFNlbGVjdG9ycyhz
ZWxlY3RvcnMpCisgICAgICAgIC5zZXRTZWxlY3RvcnMoc2VsZWN0b3JzLnJlbGVhc2UoKSkKICAg
ICAgICAgLnNldFRleHQoc2VsZWN0b3JUZXh0KQogICAgICAgICAucmVsZWFzZSgpOwogICAgIGlm
IChzb3VyY2VEYXRhKQpAQCAtMTA3NCwxMCArMTA5NiwxMCBAQCBQYXNzUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2Jq
ZWN0RgogCiAgICAgSW5zcGVjdG9yQ1NTSWQgaWQgPSBydWxlT3JTdHlsZUlkKHN0eWxlKTsKICAg
ICBpZiAoaWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpDU1M6OkNTU1N0eWxlPiBib2d1c1N0eWxlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpD
U1NTdHlsZTo6Y3JlYXRlKCkKKyAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6Q1NTU3R5bGU6OmNyZWF0ZSgpCiAgICAgICAgICAgICAuc2V0Q3NzUHJvcGVydGllcyhBcnJh
eTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1Byb3BlcnR5Pjo6Y3JlYXRlKCkpCi0gICAg
ICAgICAgICAuc2V0U2hvcnRoYW5kRW50cmllcyhBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OlNob3J0aGFuZEVudHJ5Pjo6Y3JlYXRlKCkpOwotICAgICAgICByZXR1cm4gYm9ndXNTdHls
ZS5yZWxlYXNlKCk7CisgICAgICAgICAgICAuc2V0U2hvcnRoYW5kRW50cmllcyhBcnJheTxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OlNob3J0aGFuZEVudHJ5Pjo6Y3JlYXRlKCkpCisgICAgICAg
ICAgICAucmVsZWFzZSgpOwogICAgIH0KICAgICBSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IGluc3Bl
Y3RvclN0eWxlID0gaW5zcGVjdG9yU3R5bGVGb3JJZChpZCk7CiAgICAgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+IHJlc3VsdCA9IGluc3BlY3RvclN0eWxlLT5idWls
ZE9iamVjdEZvclN0eWxlKCk7CkBAIC0xMTc1LDEwICsxMTk3LDggQEAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JTdHlsZT4gSW5zcGVjdG9yU3R5bGVTaGVldDo6aW5zcGVjdG9yU3R5bGVGb3JJZChjb25z
dCBJbnNwZWMKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JTdHlsZU1h
cDo6aXRlcmF0b3IgaXQgPSBtX2luc3BlY3RvclN0eWxlcy5maW5kKHN0eWxlKTsKLSAgICBpZiAo
aXQgPT0gbV9pbnNwZWN0b3JTdHlsZXMuZW5kKCkpIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rv
clN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoaWQsIHN0eWxl
LCB0aGlzKTsKLSAgICAgICAgcmV0dXJuIGluc3BlY3RvclN0eWxlLnJlbGVhc2UoKTsKLSAgICB9
CisgICAgaWYgKGl0ID09IG1faW5zcGVjdG9yU3R5bGVzLmVuZCgpKQorICAgICAgICByZXR1cm4g
SW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShpZCwgc3R5bGUsIHRoaXMpOwogICAgIHJldHVybiBpdC0+
dmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5oCmluZGV4IDdmYWZjMjkuLmFmN2RmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBQYXJz
ZWRTdHlsZVNoZWV0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NSdWxlTGlzdDsK
K2NsYXNzIENTU1NlbGVjdG9yOwogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENT
U1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7CkBAIC0yNDMsNiArMjQ0LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHJlc291cmNlU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNv
bnN0OwogICAgIGJvb2wgaW5saW5lU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0
OwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NSdWxlPj4gYnVpbGRBcnJheUZvclJ1bGVMaXN0KENTU1J1bGVMaXN0
Kik7CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVjdG9y
PiBidWlsZE9iamVjdEZvclNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNlbGVjdG9yTGlzdD4gYnVpbGRPYmplY3RG
b3JTZWxlY3Rvckxpc3QoQ1NTU3R5bGVSdWxlKik7CiAKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQq
IG1fcGFnZUFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggOTYzYjc5Ni4uYzg2NmVi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTQtMTAtMjkg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTaG93IFNlbGVjdG9yJ3MgU3BlY2lmaWNpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorICAgICAgICBBZGQgbmV3IGZpbGVzIGFu
ZCBzdHJpbmdzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanM6
CisgICAgICAgIENvbnN0cnVjdG9yIGZ1bmN0aW9ucyBhcmUgbm90IG5lZWRlZCwgcmVtb3ZlIHVu
bmVjZXNzYXJ5IGNvZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxl
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBlLnNldCBzZWxlY3Rv
cnMpOiBEZWxldGVkLgorICAgICAgICBUaGlzIHdhcyB1bnVzZWQgYW5kIGlzIG5vIGxvbmdlciBj
b3JyZWN0LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUuZ2V0IG1h
dGNoZWRTZWxlY3RvclRleHQpOgorICAgICAgICBVcGRhdGUgbm93IHRoYXQgc2VsZWN0b3JzIGFy
ZSBhIGxpc3Qgb2Ygb2JqZWN0cywgbm90IGp1c3Qgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NTU1NlbGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTZWxlY3Rvci5wcm90b3R5cGUu
Z2V0IHNwZWNpZmljaXR5KToKKyAgICAgICAgTmV3IG1vZGVsIG9iamVjdCBmb3IgcHJvdG9jb2wg
dHlwZSBDU1MuQ1NTU2VsZWN0b3IuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9E
T01Ob2RlU3R5bGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJv
dG90eXBlLl9wYXJzZVNlbGVjdG9yTGlzdFBheWxvYWQucmV0dXJuKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5fcGFyc2VTZWxlY3Rvckxpc3RQYXlsb2Fk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5fcGFyc2VS
dWxlUGF5bG9hZCk6CisgICAgICAgIEhhbmRsZSBwYXJzaW5nIG9sZCBhbmQgbmV3IFNlbGVjdG9y
TGlzdHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLnByb3RvdHlwZS5yZWZyZXNoLmFwcGVuZFNlbGVjdG9yKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5wcm90b3R5cGUucmVmcmVzaC5hcHBl
bmRTZWxlY3RvclRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uLnByb3RvdHlwZS5yZWZyZXNoKToKKyAgICAgICAgVXBkYXRlIHRoZSBjb2RlIG5v
dyB0aGF0IHRoZSBsaXN0IG9mIHNlbGVjdG9ycyBhcmUgbW9kZWwgb2JqZWN0cyBpbnN0ZWFkCisg
ICAgICAgIG9mIGp1c3Qgc2VsZWN0b3IgdGV4dCBzdHJpbmdzLgorCiAyMDE0LTEwLTEwIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHRpbWVsaW5lcyBzaG91bGQgbm90IGNvdW50IHRpbWUgZWxhcHNlZCB3aGlsZSBwYXVzZWQg
aW4gdGhlIGRlYnVnZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA4MDYw
MzRiZmQ3ZGI0ZWIyYjQ3Y2NmOTdmY2EzZGZjODM4Mjc3YzcyLi5iYTJjMjkzN2MwYjhhODJiMDkz
MjQxOWFiMzU2YzM4Nzg1YTBiMDNjIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDEyMgp6
Y21jYnlqUVBgWTxfJWtTcllBRkdHTmJgOWglUkJNV1V5alRWOTtQdFdrX01yMGtWKjNPJEhAflNm
SDNLNUd5ZVIKWEdaWmtTZl5gdzRkLTRKZi1PY05GdTlPNC1MaGwlOQoKZGVsdGEgMTQKV2NtZXln
b2NZRXc8XyVrU1p1Wn1gU1B9cHsqJDE9JAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbAppbmRleCAyNjJkNTRiLi4zMDc3OTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0yMTIsNiArMjEyLDcg
QEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU01lZGlhLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1Byb3BlcnR5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0NTU1J1bGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvQ1NTU2VsZWN0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NT
U3R5bGVEZWNsYXJhdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
U1NTdHlsZVNoZWV0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxG
cmFtZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanMKaW5kZXggNmU0YTRlYi4uYThjNDI4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU01l
ZGlhLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NNZWRpYS5qcwpAQCAtMzIsOCArMzIsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTTWVkaWEgPSBmdW5j
dGlvbih0eXBlLCB0ZXh0LCBzb3VyY2VDb2RlTG9jYXRpb24pCiAgICAgdGhpcy5fc291cmNlQ29k
ZUxvY2F0aW9uID0gc291cmNlQ29kZUxvY2F0aW9uIHx8IG51bGw7CiB9OwogCi1XZWJJbnNwZWN0
b3IuT2JqZWN0LmFkZENvbnN0cnVjdG9yRnVuY3Rpb25zKFdlYkluc3BlY3Rvci5DU1NNZWRpYSk7
Ci0KIFdlYkluc3BlY3Rvci5DU1NNZWRpYS5UeXBlID0gewogICAgIE1lZGlhUnVsZTogImNzcy1t
ZWRpYS10eXBlLW1lZGlhLXJ1bGUiLAogICAgIEltcG9ydFJ1bGU6ICJjc3MtbWVkaWEtdHlwZS1p
bXBvcnQtcnVsZSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTUnVsZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DU1NSdWxlLmpzCmluZGV4IDg4NjZjYjAuLjA3ZDA3MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpz
CkBAIC0xMzksMTEgKzEzOSw2IEBAIFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdG9yczsKICAgICB9LAogCi0gICAgc2V0IHNlbGVj
dG9ycyhzZWxlY3RvcnMpCi0gICAgewotICAgICAgICB0aGlzLnNlbGVjdG9yVGV4dCA9IChzZWxl
Y3RvcnMgfHwgW10pLmpvaW4oIiwgIik7Ci0gICAgfSwKLQogICAgIGdldCBtYXRjaGVkU2VsZWN0
b3JJbmRpY2VzKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9tYXRjaGVkU2VsZWN0b3JJ
bmRpY2VzOwpAQCAtMTc4LDcgKzE3Myw3IEBAIFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgaWYgKCJfbWF0Y2hlZFNlbGVjdG9yVGV4dCIgaW4gdGhpcykKICAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9tYXRjaGVkU2VsZWN0b3JUZXh0OwogCi0gICAgICAgIHRoaXMu
X21hdGNoZWRTZWxlY3RvclRleHQgPSB0aGlzLm1hdGNoZWRTZWxlY3RvcnMuam9pbigiLCAiKTsK
KyAgICAgICAgdGhpcy5fbWF0Y2hlZFNlbGVjdG9yVGV4dCA9IHRoaXMubWF0Y2hlZFNlbGVjdG9y
cy5tYXAoZnVuY3Rpb24oeCkgeyByZXR1cm4geC50ZXh0OyB9KS5qb2luKCIsICIpOwogCiAgICAg
ICAgIHJldHVybiB0aGlzLl9tYXRjaGVkU2VsZWN0b3JUZXh0OwogICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU2VsZWN0b3Iu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU2VsZWN0
b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQyYzU5ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NTZWxlY3Rvci5qcwpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9y
LkNTU1NlbGVjdG9yID0gZnVuY3Rpb24odGV4dCwgc3BlY2lmaWNpdHkpCit7CisgICAgV2ViSW5z
cGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOworCisgICAgY29uc29sZS5hc3NlcnQodGV4dCk7CisK
KyAgICB0aGlzLl90ZXh0ID0gdGV4dDsKKyAgICB0aGlzLl9zcGVjaWZpY2l0eSA9IHNwZWNpZmlj
aXR5IHx8IG51bGw7Cit9OworCitXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3IucHJvdG90eXBlID0g
eworICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3IsCisgICAgX19wcm90
b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZSwKKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IHRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQ7CisgICAgfSwK
KworICAgIGdldCBzcGVjaWZpY2l0eSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc3Bl
Y2lmaWNpdHk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKaW5kZXggZmQ0MzNjNi4u
ODAyZTJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKQEAgLTc0NSw2ICs3NDUsMjkgQEAgV2Vi
SW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gc3R5
bGVEZWNsYXJhdGlvbjsKICAgICB9LAogCisgICAgX3BhcnNlU2VsZWN0b3JMaXN0UGF5bG9hZDog
ZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAo
aU9TIDYpOiBUaGUgcGF5bG9hZCBkaWQgbm90IGhhdmUgJ3NlbGVjdG9yTGlzdCcuCisgICAgICAg
IGlmICghc2VsZWN0b3JMaXN0KQorICAgICAgICAgICAgcmV0dXJuIFtdOworCisgICAgICAgIHZh
ciBzZWxlY3RvcnMgPSBzZWxlY3Rvckxpc3Quc2VsZWN0b3JzOworICAgICAgICBpZiAoIXNlbGVj
dG9ycy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gW107CisKKyAgICAgICAgLy8gQ09NUEFU
SUJJTElUWSAoaU9TIDgpOiBUaGUgc2VsZWN0b3JMaXN0IHBheWxvYWQgd2FzIGFuIGFycmF5IG9m
IHNlbGVjdG9yIHRleHQgc3RyaW5ncy4KKyAgICAgICAgLy8gTm93IHRoZXkgYXJlIENTU1NlbGVj
dG9yIG9iamVjdHMgd2l0aCBtdWx0aXBsZSBwcm9wZXJ0aWVzLgorICAgICAgICBpZiAodHlwZW9m
IHNlbGVjdG9yc1swXSA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHJldHVybiBzZWxlY3Rv
cnMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yVGV4dCkgeworICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yKHNlbGVjdG9yVGV4dCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzZWxlY3RvcnMubWFwKGZ1bmN0aW9uKHNl
bGVjdG9yUGF5bG9hZCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1NT
U2VsZWN0b3Ioc2VsZWN0b3JQYXlsb2FkLnRleHQsIHNlbGVjdG9yUGF5bG9hZC5zcGVjaWZpY2l0
eSk7CisgICAgICAgIH0pOworICAgIH0sCisKICAgICBfcGFyc2VSdWxlUGF5bG9hZDogZnVuY3Rp
b24ocGF5bG9hZCwgbWF0Y2hlZFNlbGVjdG9ySW5kaWNlcywgbm9kZSwgaW5oZXJpdGVkLCBydWxl
T2NjdXJyZW5jZXMpCiAgICAgewogICAgICAgICBpZiAoIXBheWxvYWQpCkBAIC03OTEsNyArODE0
LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlID0gewogICAgICAgICAv
LyBDT01QQVRJQklMSVRZIChpT1MgNik6IFRoZSBwYXlsb2FkIGhhZCAnc2VsZWN0b3JUZXh0JyBh
cyBhIHByb3BlcnR5LAogICAgICAgICAvLyBub3cgaXQgaGFzICdzZWxlY3Rvckxpc3QnIHdpdGgg
YSAndGV4dCcgcHJvcGVydHkuIFN1cHBvcnQgYm90aCBoZXJlLgogICAgICAgICB2YXIgc2VsZWN0
b3JUZXh0ID0gcGF5bG9hZC5zZWxlY3Rvckxpc3QgPyBwYXlsb2FkLnNlbGVjdG9yTGlzdC50ZXh0
IDogcGF5bG9hZC5zZWxlY3RvclRleHQ7Ci0gICAgICAgIHZhciBzZWxlY3RvcnMgPSBwYXlsb2Fk
LnNlbGVjdG9yTGlzdCA/IHBheWxvYWQuc2VsZWN0b3JMaXN0LnNlbGVjdG9ycyA6IFtdOworICAg
ICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5fcGFyc2VTZWxlY3Rvckxpc3RQYXlsb2FkKHBheWxv
YWQuc2VsZWN0b3JMaXN0KTsKIAogICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgNik6IFRo
ZSBwYXlsb2FkIGRpZCBub3QgaGF2ZSAnc2VsZWN0b3JMaXN0Jy4KICAgICAgICAgLy8gRmFsbGJh
Y2sgdG8gdXNpbmcgJ3NvdXJjZUxpbmUnIHdpdGhvdXQgY29sdW1uIGluZm9ybWF0aW9uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDRkYzFl
ODcuLjdkNGJiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWwKQEAgLTc0LDYgKzc0LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU0tl
eXdvcmRDb21wbGV0aW9ucy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9D
U1NQcm9wZXJ0eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DU1NSdWxl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1NlbGVjdG9yLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTU3R5bGVTaGVldC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9ET01Ob2RlLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKaW5kZXggYWYwZDljNS4u
OTdjMTNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMK
QEAgLTE2OCwxMiArMTY4LDI4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1MjAxNCAiKSk7CiAKLSAgICAgICAgZnVu
Y3Rpb24gYXBwZW5kU2VsZWN0b3Ioc2VsZWN0b3JUZXh0LCBtYXRjaGVkKQorICAgICAgICBmdW5j
dGlvbiBhcHBlbmRTZWxlY3RvcihzZWxlY3RvciwgbWF0Y2hlZCkKICAgICAgICAgeworICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoc2VsZWN0b3IgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQ1NT
U2VsZWN0b3IpOworCiAgICAgICAgICAgICB2YXIgc2VsZWN0b3JFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgc2VsZWN0b3JFbGVtZW50LnRleHRD
b250ZW50ID0gc2VsZWN0b3IudGV4dDsKKwogICAgICAgICAgICAgaWYgKG1hdGNoZWQpCiAgICAg
ICAgICAgICAgICAgc2VsZWN0b3JFbGVtZW50LmNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbi5NYXRjaGVkU2VsZWN0b3JFbGVtZW50U3R5bGVDbGFzc05h
bWU7CisKKyAgICAgICAgICAgIHZhciBzcGVjaWZpY2l0eSA9IHNlbGVjdG9yLnNwZWNpZmljaXR5
OworICAgICAgICAgICAgaWYgKHNwZWNpZmljaXR5KQorICAgICAgICAgICAgICAgIHNlbGVjdG9y
RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3BlY2lmaWNpdHk6ICglZCwg
JWQsICVkKSIpLmZvcm1hdChzcGVjaWZpY2l0eVswXSwgc3BlY2lmaWNpdHlbMV0sIHNwZWNpZmlj
aXR5WzJdKTsKKworICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmFwcGVuZENoaWxk
KHNlbGVjdG9yRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRT
ZWxlY3RvclRleHRLbm93blRvTWF0Y2goc2VsZWN0b3JUZXh0KQorICAgICAgICB7CisgICAgICAg
ICAgICB2YXIgc2VsZWN0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OwogICAgICAgICAgICAgc2VsZWN0b3JFbGVtZW50LnRleHRDb250ZW50ID0gc2VsZWN0b3JUZXh0
OworICAgICAgICAgICAgc2VsZWN0b3JFbGVtZW50LmNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5D
U1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5NYXRjaGVkU2VsZWN0b3JFbGVtZW50U3R5bGVDbGFz
c05hbWU7CiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnQuYXBwZW5kQ2hpbGQoc2Vs
ZWN0b3JFbGVtZW50KTsKICAgICAgICAgfQogCkBAIC0xOTAsNyArMjA2LDcgQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiLCAiKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgYXBwZW5kU2VsZWN0b3IuY2FsbCh0aGlzLCB0aGlzLl9zdHls
ZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRT
ZWxlY3RvclRleHRLbm93blRvTWF0Y2guY2FsbCh0aGlzLCB0aGlzLl9zdHlsZS5vd25lclJ1bGUu
c2VsZWN0b3JUZXh0KTsKIAogICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLm93bmVyUnVsZS5z
b3VyY2VDb2RlTG9jYXRpb24pIHsKICAgICAgICAgICAgICAgICB2YXIgc291cmNlQ29kZUxpbmsg
PSBXZWJJbnNwZWN0b3IuY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uTGluayh0aGlzLl9zdHlsZS5v
d25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLCB0cnVlKTsKQEAgLTIyMywxMiArMjM5LDEyIEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uLlR5cGUuSW5saW5lOgotICAgICAgICAgICAgYXBwZW5kU2VsZWN0b3IuY2FsbCh0
aGlzLCBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKHRoaXMuX3N0eWxlLm5vZGUpLCB0
cnVlKTsKKyAgICAgICAgICAgIGFwcGVuZFNlbGVjdG9yVGV4dEtub3duVG9NYXRjaC5jYWxsKHRo
aXMsIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvck5vZGUodGhpcy5fc3R5bGUubm9kZSkpOwog
ICAgICAgICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlIEF0dHJpYnV0ZSIpKSk7CiAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uLlR5cGUuQXR0cmlidXRlOgotICAgICAgICAgICAgYXBwZW5kU2VsZWN0b3IuY2Fs
bCh0aGlzLCBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKHRoaXMuX3N0eWxlLm5vZGUp
LCB0cnVlKTsKKyAgICAgICAgICAgIGFwcGVuZFNlbGVjdG9yVGV4dEtub3duVG9NYXRjaC5jYWxs
KHRoaXMsIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvck5vZGUodGhpcy5fc3R5bGUubm9kZSkp
OwogICAgICAgICAgICAgdGhpcy5fb3JpZ2luRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkhUTUwgQXR0cmlidXRlcyIpKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQo=
</data>
<flag name="review"
          id="265408"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="265409"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240772</attachid>
            <date>2014-10-31 17:54:06 -0700</date>
            <delta_ts>2014-11-03 12:03:53 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>specificity-v2.patch</filename>
            <type>text/plain</type>
            <size>33009</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNjVmNTEyLi40YmU3NWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMTAt
MzEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFNlbGVjdG9yJ3MgU3BlY2lmaWNpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0
eWxlLXByb3BlcnRpZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNw
ZWNpZmljaXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9z
ZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sLgorCiAyMDE0LTEwLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHdlYmtpdCBwcmVmaXggZnJvbSBDU1MgY29sdW1ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCmluZGV4IGZhZTIw
ZmUuLjU1NjIyOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbWF0Y2hl
ZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9t
YXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbApAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlU3R5bGVzLm1h
dGNoZWRSdWxlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJ1bGUgPSBub2RlU3R5
bGVzLm1hdGNoZWRSdWxlc1tpXTsKLSAgICAgICAgICAgIGlmIChydWxlLnR5cGUgIT0gV2ViSW5z
cGVjdG9yLkNTU1J1bGUuVHlwZS5BdXRob3IpCisgICAgICAgICAgICBpZiAocnVsZS50eXBlICE9
PSBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5UeXBlLkF1dGhvcikKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBydWxlLnN0eWxlLnByb3Bl
cnRpZXMubGVuZ3RoOyArK2opIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3Mvc2VsZWN0b3Itc3BlY2lmaWNpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9zZWxlY3Rvci1zcGVjaWZpY2l0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjEwYmE2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3Mvc2VsZWN0b3Itc3BlY2lmaWNpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3RpbmcgdGhhdCBzZWxlY3RvcnMgaGF2ZSBleHBlY3RlZCBzcGVjaWZp
Y2l0eSB2YWx1ZXMuCisKKyogKDAsIDAsIDApCitoMSAoMCwgMCwgMSkKKy5jbGFzcyAoMCwgMSwg
MCkKKyNpZCAoMSwgMCwgMCkKK2JvZHkgaDEuY2xhc3Mtb25lLmNsYXNzLXR3byAoMCwgMiwgMikK
K2JvZHkgI2ZvbyAoMSwgMCwgMSkKK2JvZHkgPiAjZm9vICgxLCAwLCAxKQorYm9keSA+ICNmb28u
YS5iICgxLCAyLCAxKQoraDE6OmJlZm9yZSAoMCwgMSwgMSkKK2JvZHkgaDE6OmJlZm9yZSAoMCwg
MSwgMikKK2JvZHkuYSBoMS5iOjpiZWZvcmUgKDAsIDMsIDIpCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwKc2ltaWxhcml0
eSBpbmRleCA1MyUKY29weSBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbWF0Y2hlZC1z
dHlsZS1wcm9wZXJ0aWVzLmh0bWwKY29weSB0byBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Nl
bGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwKaW5kZXggZmFlMjBmZS4uMGE2ZmJmYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0
bWwKQEAgLTIsMTQgKzIsMTggQEAKIDxodG1sPgogPGhlYWQ+CiA8c3R5bGU+Ci1kaXYjbm9kZTEg
ewotICAgIEJBQ0tHUk9VTkQtQ09MT1I6Ymx1ZTsKLSAgICBDT0xPUjp3aGl0ZTsKLSAgICBib3Jk
ZXItU1RZTEU6c29saWQ7Ci0gICAgQk9SREVSLXdpZHRoOjA7Ci0gICAgcG9zaXRpb246YWJzb2x1
dGU7Ci0gICAgVG9QOjA7Ci0gICAgbEVmVDowOworKiwKK2gxLAorLmNsYXNzLAorI2lkLAorYm9k
eSBoMS5jbGFzcy1vbmUuY2xhc3MtdHdvLAorYm9keSAjZm9vLAorYm9keSA+ICNmb28sCitib2R5
ID4gI2Zvby5hLmIsCitoMTo6YmVmb3JlLAorYm9keSBoMTo6YmVmb3JlLAorYm9keS5hIGgxLmI6
OmJlZm9yZSB7CisgICAgY29sb3I6IGdyZWVuOwogfQogPC9zdHlsZT4KIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KQEAgLTE3LDM2ICsyMSwxNSBAQCBkaXYjbm9kZTEgewogZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICB2YXIgbm9kZVN0eWxlczsKIAotICAgIGZ1bmN0aW9uIHZhbGlk
YXRlUHJvcGVydHlOYW1lKG5hbWUpCi0gICAgewotICAgICAgICBpZiAodHlwZW9mIG5hbWUgIT0g
InN0cmluZyIpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJVbmV4cGVjdGVkIHBy
b3BlcnR5IG5hbWUgdHlwZTogIiArIHR5cGVvZiBuYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChuYW1lLnRvTG93ZXJDYXNlKCkgIT0gbmFt
ZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb3BlcnR5IG5hbWUgY29udGFp
bnMgdXBwZXJjYXNlIGNoYXJhY3RlcnM6ICIgKyBuYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiB2YWxpZGF0ZVN0eWxlcygpCisgICAgZnVuY3Rpb24gdmFsaWRhdGVTZWxlY3RvcnMoKQog
ICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlU3R5bGVzLm1hdGNoZWRSdWxl
cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJ1bGUgPSBub2RlU3R5bGVzLm1hdGNo
ZWRSdWxlc1tpXTsKLSAgICAgICAgICAgIGlmIChydWxlLnR5cGUgIT0gV2ViSW5zcGVjdG9yLkNT
U1J1bGUuVHlwZS5BdXRob3IpCisgICAgICAgICAgICBpZiAocnVsZS50eXBlICE9PSBXZWJJbnNw
ZWN0b3IuQ1NTUnVsZS5UeXBlLkF1dGhvcikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBydWxlLnN0eWxlLnByb3BlcnRpZXMubGVu
Z3RoOyArK2opIHsKLSAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBydWxlLnN0eWxlLnBy
b3BlcnRpZXNbal07Ci0KLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkuYW5vbnltb3VzKQot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgICAgIGlmICh2YWxp
ZGF0ZVByb3BlcnR5TmFtZShwcm9wZXJ0eS5uYW1lKSkKLSAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlByb3BlcnR5IHZhbGlkOiAiICsgcHJvcGVydHkubmFtZSk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZhciBzZWxlY3RvciBvZiBydWxlLnNlbGVjdG9y
cykKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzZWxlY3Rvci50ZXh0ICsgIiAo
IiArIHNlbGVjdG9yLnNwZWNpZmljaXR5LmpvaW4oIiwgIikgKyAiKSIpOwogICAgICAgICB9CiAK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKQEAgLTU1LDcgKzM4LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICBmdW5jdGlvbiBvblN0eWxlc1JlZnJlc2hlZCgpCiAgICAg
ewogICAgICAgICBub2RlU3R5bGVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRP
TU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVkLCBvblN0eWxlc1JlZnJlc2hlZCwgdGhpcyk7Ci0g
ICAgICAgIHZhbGlkYXRlU3R5bGVzKCk7CisgICAgICAgIHZhbGlkYXRlU2VsZWN0b3JzKCk7CiAg
ICAgfQogCiAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVudChm
dW5jdGlvbihkb2N1bWVudE5vZGUpIHsKQEAgLTY3LDcgKzUwLDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVkc1JlZnJlc2gpCiAgICAgICAg
ICAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
Tm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIG9uU3R5bGVzUmVmcmVzaGVkLCB0aGlzKTsKICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlU3R5bGVzKCk7
CisgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlU2VsZWN0b3JzKCk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJET00gbm9kZSBub3Qg
Zm91bmQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
QEAgLTc4LDcgKzYxLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIDwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB0aGUgYXV0aG9y
IHJ1bGVzIHJldHVybmVkIGJ5IENTU1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlIGhhdmUgbG93
ZXJjYXNlIHByb3BlcnR5IG5hbWVzIHJlZ2FyZGxlc3Mgb2YgQ1NTIHNvdXJjZSBmb3JtYXR0aW5n
LjwvcD4KKyAgICA8cD5UZXN0aW5nIHRoYXQgc2VsZWN0b3JzIGhhdmUgZXhwZWN0ZWQgc3BlY2lm
aWNpdHkgdmFsdWVzLjwvcD4KIAogICAgIDxkaXYgaWQ9Im5vZGUxIj48L2Rpdj4KIDwvYm9keT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5OGNlMzMuLjc0NzczMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTEwLTMxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBT
ZWxlY3RvcidzIFNwZWNpZmljaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzgxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbjoKKyAgICAgICAgQ3Jl
YXRlIGEgbmV3IG5hbWVkIHR5cGUgQ1NTU2VsZWN0b3IgdG8gaW5jbHVkZSBhIHNlbGVjdG9yJ3Mg
dGV4dCBhbmQgc3BlY2lmaWNpdHkuCisgICAgICAgIFRoZSBzcGVjaWZpY2l0eSB0dXBsZSBpcyBv
cHRpb25hbCBhcyBpdCBtYXkgc29vbiBiZSBtYWRlIGR5bmFtaWMgaW4gc29tZSBjYXNlcy4KKwog
MjAxNC0xMC0zMSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc2NvcGUgb3BlcmFuZCB0byBvcF9wdXNoX3dpdGhfc2NvcGUsIG9wX3B1c2hfbmFtZV9z
Y29wZSBhbmQgb3BfcG9wX3Njb3BlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9DU1MuanNvbgppbmRleCAyMjRlMTc1Li4wMTU4N2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpzb24KQEAgLTU5
LDEwICs1OSwxOSBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1hdGNoIGRhdGEgZm9y
IGEgQ1NTIHJ1bGUuIgogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAi
Q1NTU2VsZWN0b3IiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAg
ICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDYW5vbmljYWxpemVkIHNlbGVjdG9yIHRleHQu
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3BlY2lmaWNpdHkiLCAib3B0aW9uYWwi
OiB0cnVlLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAiaW50ZWdlciIgfSwg
ImRlc2NyaXB0aW9uIjogIlNwZWNpZmljaXR5IChhLCBiLCBjKSB0dXBsZS4gSWYgbWlzc2luZyB0
aGUgc3BlY2lmaWNpdHkgaXMgbm90IGtub3duIHN0YXRpY2FsbHkgYW5kIG1heSBiZSBkeW5hbWlj
LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDU1Mgc2Vs
ZWN0b3IuIgorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiU2VsZWN0
b3JMaXN0IiwKICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbGVjdG9ycyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6
ICJTZWxlY3RvcnMgaW4gdGhlIGxpc3QuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2VsZWN0b3JzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNTU1NlbGVj
dG9yIiB9LCAiZGVzY3JpcHRpb24iOiAiU2VsZWN0b3JzIGluIHRoZSBsaXN0LiIgfSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiUnVsZSBzZWxlY3RvciB0ZXh0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJhbmdlIiwgIiRyZWYiOiAiU291cmNlUmFuZ2UiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiUnVsZSBzZWxlY3RvciByYW5nZSBpbiB0aGUgdW5kZXJseWluZyByZXNvdXJjZSAo
aWYgYXZhaWxhYmxlKS4iIH0KICAgICAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGYxNTczZS4u
ZjJlNDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTMxICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
U2hvdyBTZWxlY3RvcidzIFNwZWNpZmljaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmlj
aXR5Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICBSZW1vdmUg
dmVyeSBzdGFsZSBjb21tZW50LiAnKicgaXMgYSBzdGFyQXRvbSBub3cgaW5zdGVhZCBvZiBhIHNw
ZWNpYWwgLTEgdGFnLgorICAgICAgICBNYWRlIHRoZSBzcGVjaWZpY2l0eSBtYXNrcyBwdWJsaWMg
Y2xhc3MgY29uc3RhbnRzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6YnVpbGRBcnJheUZvckNvbXB1dGVkU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JT
dHlsZVNoZWV0SW5mbyk6CisgICAgICAgIERyaXZlIGJ5IHVzZSByZWxlYXNlKCkgaW4gc29tZSBj
YXNlcyB0byByZWR1Y2UgcmVmIGNvdW50IGNodXJuLgorCisgICAgICAgIChXZWJDb3JlOjpidWls
ZE9iamVjdEZvclNlbGVjdG9ySGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdG9yc0Zy
b21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRP
YmplY3RGb3JTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0
OjpidWlsZE9iamVjdEZvclNlbGVjdG9yTGlzdCk6CisgICAgICAgIEJ1aWxkIENTU1NlbGVjdG9y
IG9iamVjdHMgZm9yIFNlbGVjdG9yTGlzdHMuCisKIDIwMTQtMTAtMzEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6
ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudCgpIGZhc3RlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAKaW5kZXggMDllYTM0Ni4uMjk2ZTNlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCkBAIC02MSwxMiArNjEsNiBAQCB2b2lkIENTU1NlbGVjdG9yOjpjcmVhdGVS
YXJlRGF0YSgpCiAKIHVuc2lnbmVkIENTU1NlbGVjdG9yOjpzcGVjaWZpY2l0eSgpIGNvbnN0CiB7
Ci0gICAgLy8gbWFrZSBzdXJlIHRoZSByZXN1bHQgZG9lc24ndCBvdmVyZmxvdwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBtYXhWYWx1ZU1hc2sgPSAweGZmZmZmZjsKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaWRNYXNrID0gMHhmZjAwMDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGNsYXNzTWFzayA9IDB4ZmYwMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZWxlbWVudE1h
c2sgPSAweGZmOwotCiAgICAgaWYgKGlzRm9yUGFnZSgpKQogICAgICAgICByZXR1cm4gc3BlY2lm
aWNpdHlGb3JQYWdlKCkgJiBtYXhWYWx1ZU1hc2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
aW5kZXggOTNhZDVlNC4uZDNhYzAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTQ3
LDcgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gY2hlY2tzIGlmIHRo
ZSAyIHNlbGVjdG9ycyAoaW5jbHVkaW5nIHN1YiBzZWxlY3RvcnMpIGFncmVlLgogICAgICAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTU2VsZWN0b3ImKSBjb25zdDsKIAotICAgICAgICAvLyB0
YWcgPT0gLTEgbWVhbnMgYXBwbHkgdG8gYWxsIGVsZW1lbnRzIChTZWxlY3RvciA9ICopCisgICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWYWx1ZU1hc2sgPSAweGZmZmZmZjsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlkTWFzayA9IDB4ZmYwMDAwOworICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgY2xhc3NNYXNrID0gMHhmZjAwOworICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgZWxlbWVudE1hc2sgPSAweGZmOwogCiAgICAgICAgIHVuc2lnbmVkIHNwZWNp
ZmljaXR5KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcAppbmRleCBmNjFjZjIzLi44NGRjMDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xNTEsMTIgKzE1
MSwxMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNvdXJj
ZVJhbmdlPiBidWlsZFNvdXJjZVJhbmdlT2JqZWN0KAogICAgIFRleHRQb3NpdGlvbiBzdGFydCA9
IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OnRleHRQb3NpdGlvbkZyb21PZmZzZXQocmFuZ2Uuc3Rh
cnQsICpsaW5lRW5kaW5ncyk7CiAgICAgVGV4dFBvc2l0aW9uIGVuZCA9IENvbnRlbnRTZWFyY2hV
dGlsaXRpZXM6OnRleHRQb3NpdGlvbkZyb21PZmZzZXQocmFuZ2UuZW5kLCAqbGluZUVuZGluZ3Mp
OwogCi0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U+IHJl
c3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U6OmNyZWF0ZSgpCisg
ICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U6OmNyZWF0ZSgp
CiAgICAgICAgIC5zZXRTdGFydExpbmUoc3RhcnQubV9saW5lLnplcm9CYXNlZEludCgpKQogICAg
ICAgICAuc2V0U3RhcnRDb2x1bW4oc3RhcnQubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkpCiAgICAg
ICAgIC5zZXRFbmRMaW5lKGVuZC5tX2xpbmUuemVyb0Jhc2VkSW50KCkpCi0gICAgICAgIC5zZXRF
bmRDb2x1bW4oZW5kLm1fY29sdW1uLnplcm9CYXNlZEludCgpKTsKLSAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2UoKTsKKyAgICAgICAgLnNldEVuZENvbHVtbihlbmQubV9jb2x1bW4uemVyb0Jhc2Vk
SW50KCkpCisgICAgICAgIC5yZWxlYXNlKCk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTTWVkaWE+IGJ1aWxkTWVkaWFPYmplY3QoY29uc3QgTWVk
aWFMaXN0KiBtZWRpYSwgTWVkaWFMaXN0U291cmNlIG1lZGlhTGlzdFNvdXJjZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpCkBAIC0zMjcsNyArMzI3LDcgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6
OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5
bGUKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRT
dHlsZVByb3BlcnR5PiBlbnRyeSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0
ZWRTdHlsZVByb3BlcnR5OjpjcmVhdGUoKQogICAgICAgICAgICAgLnNldE5hbWUocHJvcGVydHlF
bnRyeS5uYW1lKQogICAgICAgICAgICAgLnNldFZhbHVlKHByb3BlcnR5RW50cnkudmFsdWUpOwot
ICAgICAgICByZXN1bHQtPmFkZEl0ZW0oZW50cnkpOworICAgICAgICByZXN1bHQtPmFkZEl0ZW0o
ZW50cnkucmVsZWFzZSgpKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsK
QEAgLTYwMyw3ICs2MDMsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9wZXJ0aQogICAgICAgICAgICAg
ICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U2hvcnRoYW5kRW50
cnk+IGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTaG9ydGhhbmRFbnRyeTo6Y3Jl
YXRlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TmFtZShzaG9ydGhhbmQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFZhbHVlKHNob3J0aGFuZFZhbHVlKHNob3J0
aGFuZCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kRW50cmllcy0+YWRkSXRl
bShlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGhhbmRFbnRyaWVzLT5hZGRJ
dGVtKGVudHJ5LnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CkBAIC02MTQsMTAgKzYxNCwxMCBAQCBQYXNzUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpzdHlsZVdp
dGhQcm9wZXJ0aQogICAgICAgICAgICAgcHJvcGVydHktPnNldFN0YXR1cyhzdGF0dXMpOwogICAg
IH0KIAotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiByZXN1
bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlOjpjcmVhdGUoKQotICAgICAg
ICAuc2V0Q3NzUHJvcGVydGllcyhwcm9wZXJ0aWVzT2JqZWN0KQotICAgICAgICAuc2V0U2hvcnRo
YW5kRW50cmllcyhzaG9ydGhhbmRFbnRyaWVzKTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZTo6Y3JlYXRl
KCkKKyAgICAgICAgLnNldENzc1Byb3BlcnRpZXMocHJvcGVydGllc09iamVjdC5yZWxlYXNlKCkp
CisgICAgICAgIC5zZXRTaG9ydGhhbmRFbnRyaWVzKHNob3J0aGFuZEVudHJpZXMucmVsZWFzZSgp
KQorICAgICAgICAucmVsZWFzZSgpOwogfQogCiBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRh
PiBJbnNwZWN0b3JTdHlsZTo6ZXh0cmFjdFNvdXJjZURhdGEoKSBjb25zdApAQCAtOTgxLDUzICs5
ODEsNzUgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hl
ZXRIZWFkZXI+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmIKIAogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHN0eWxlU2hlZXQtPm93bmVyRG9jdW1lbnQoKTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogbnVsbHB0cjsKLSAgICBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPiByZXN1bHQgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI6OmNyZWF0ZSgpCisgICAgcmV0dXJu
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcjo6Y3JlYXRlKCkK
ICAgICAgICAgLnNldFN0eWxlU2hlZXRJZChpZCgpKQogICAgICAgICAuc2V0T3JpZ2luKG1fb3Jp
Z2luKQogICAgICAgICAuc2V0RGlzYWJsZWQoc3R5bGVTaGVldC0+ZGlzYWJsZWQoKSkKICAgICAg
ICAgLnNldFNvdXJjZVVSTChmaW5hbFVSTCgpKQogICAgICAgICAuc2V0VGl0bGUoc3R5bGVTaGVl
dC0+dGl0bGUoKSkKLSAgICAgICAgLnNldEZyYW1lSWQobV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJh
bWUpKTsKKyAgICAgICAgLnNldEZyYW1lSWQobV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpKQor
ICAgICAgICAucmVsZWFzZSgpOworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OkNTU1NlbGVjdG9yPiBidWlsZE9iamVjdEZvclNlbGVjdG9ySGVscGVyKGNv
bnN0IFN0cmluZyYgc2VsZWN0b3JUZXh0LCB1bnNpZ25lZCBzcGVjaWZpY2l0eSkKK3sKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTZWxlY3Rvcj4gc2VsZWN0b3IgPSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVjdG9yOjpjcmVhdGUoKQorICAgICAgICAu
c2V0VGV4dChzZWxlY3RvclRleHQpOworCisgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFycmF5PGludD4+IHR1cGxlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8aW50Pjo6Y3Jl
YXRlKCk7CisgICAgdHVwbGUtPmFkZEl0ZW0oc3RhdGljX2Nhc3Q8aW50Pigoc3BlY2lmaWNpdHkg
JiBDU1NTZWxlY3Rvcjo6aWRNYXNrKSA+PiAxNikpOworICAgIHR1cGxlLT5hZGRJdGVtKHN0YXRp
Y19jYXN0PGludD4oKHNwZWNpZmljaXR5ICYgQ1NTU2VsZWN0b3I6OmNsYXNzTWFzaykgPj4gOCkp
OworICAgIHR1cGxlLT5hZGRJdGVtKHN0YXRpY19jYXN0PGludD4oc3BlY2lmaWNpdHkgJiBDU1NT
ZWxlY3Rvcjo6ZWxlbWVudE1hc2spKTsKKyAgICBzZWxlY3Rvci0+c2V0U3BlY2lmaWNpdHkodHVw
bGUucmVsZWFzZSgpKTsKIAotICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgIHJldHVy
biBzZWxlY3Rvci5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFycmF5PFN0cmluZz4+IHNlbGVjdG9yc0Zyb21Tb3VyY2UoY29uc3QgQ1NTUnVs
ZVNvdXJjZURhdGEqIHNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0KQorc3RhdGlj
IFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpDU1NTZWxlY3Rvcj4+IHNlbGVjdG9yc0Zyb21Tb3VyY2UoY29uc3QgQ1NTUnVsZVNv
dXJjZURhdGEqIHNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0LCBjb25zdCBDU1NT
ZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKIHsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgY29tbWVudCwgKCIvXFwqW15d
Kj9cXCovIiwgVGV4dENhc2VTZW5zaXRpdmUsIEpTQzo6WWFycjo6TXVsdGlsaW5lRW5hYmxlZCkp
OwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+PiByZXN1bHQg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+OjpjcmVhdGUoKTsKKworICAgIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1NlbGVjdG9yPj4gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTZWxlY3Rvcj46OmNyZWF0ZSgpOwogICAgIGNvbnN0IFNl
bGVjdG9yUmFuZ2VMaXN0JiByYW5nZXMgPSBzb3VyY2VEYXRhLT5zZWxlY3RvclJhbmdlczsKKyAg
ICBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBzZWxlY3Rvckxpc3QuZmlyc3QoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHJhbmdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kp
IHsKICAgICAgICAgY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlID0gcmFuZ2VzLmF0KGkpOwotICAg
ICAgICBTdHJpbmcgc2VsZWN0b3IgPSBzaGVldFRleHQuc3Vic3RyaW5nKHJhbmdlLnN0YXJ0LCBy
YW5nZS5sZW5ndGgoKSk7CisgICAgICAgIFN0cmluZyBzZWxlY3RvclRleHQgPSBzaGVldFRleHQu
c3Vic3RyaW5nKHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgoKSk7CiAKICAgICAgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBzZWUgYW55IGNvbW1lbnRzIGluIHRoZSBzZWxlY3RvciBjb21wb25lbnRz
LCBvbmx5IHRoZSBtZWFuaW5nZnVsIHBhcnRzLgotICAgICAgICByZXBsYWNlKHNlbGVjdG9yLCBj
b21tZW50LCAiIik7Ci0gICAgICAgIHJlc3VsdC0+YWRkSXRlbShzZWxlY3Rvci5zdHJpcFdoaXRl
U3BhY2UoKSk7CisgICAgICAgIHJlcGxhY2Uoc2VsZWN0b3JUZXh0LCBjb21tZW50LCBTdHJpbmco
KSk7CisgICAgICAgIHJlc3VsdC0+YWRkSXRlbShidWlsZE9iamVjdEZvclNlbGVjdG9ySGVscGVy
KHNlbGVjdG9yVGV4dC5zdHJpcFdoaXRlU3BhY2UoKSwgc2VsZWN0b3ItPnNwZWNpZmljaXR5KCkp
KTsKKworICAgICAgICBzZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzZWxlY3Rvcik7
CiAgICAgfQogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0b3I+IEluc3BlY3RvclN0eWxlU2hlZXQ6
OmJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQorewor
ICAgIHJldHVybiBidWlsZE9iamVjdEZvclNlbGVjdG9ySGVscGVyKHNlbGVjdG9yLT5zZWxlY3Rv
clRleHQoKSwgc2VsZWN0b3ItPnNwZWNpZmljaXR5KCkpOworfQorCiBQYXNzUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6U2VsZWN0b3JMaXN0PiBJbnNwZWN0b3JTdHlsZVNoZWV0Ojpi
dWlsZE9iamVjdEZvclNlbGVjdG9yTGlzdChDU1NTdHlsZVJ1bGUqIHJ1bGUpCiB7CiAgICAgUmVm
UHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhOwogICAgIGlmIChlbnN1cmVQYXJzZWRE
YXRhUmVhZHkoKSkKICAgICAgICAgc291cmNlRGF0YSA9IHJ1bGVTb3VyY2VEYXRhRm9yKCZydWxl
LT5zdHlsZSgpKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8U3RyaW5n
Pj4gc2VsZWN0b3JzOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVjdG9yPj4gc2VsZWN0b3JzOwogCiAgICAgLy8g
VGhpcyBpbnRlbnRpb25hbGx5IGRvZXMgbm90IHJlbHkgb24gdGhlIHNvdXJjZSBkYXRhIHRvIGF2
b2lkIGNhdGNoaW5nIHRoZSB0cmFpbGluZyBjb21tZW50cyAoYmVmb3JlIHRoZSBkZWNsYXJhdGlv
biBzdGFydGluZyAneycpLgogICAgIFN0cmluZyBzZWxlY3RvclRleHQgPSBydWxlLT5zZWxlY3Rv
clRleHQoKTsKIAogICAgIGlmIChzb3VyY2VEYXRhKQotICAgICAgICBzZWxlY3RvcnMgPSBzZWxl
Y3RvcnNGcm9tU291cmNlKHNvdXJjZURhdGEuZ2V0KCksIG1fcGFyc2VkU3R5bGVTaGVldC0+dGV4
dCgpKTsKKyAgICAgICAgc2VsZWN0b3JzID0gc2VsZWN0b3JzRnJvbVNvdXJjZShzb3VyY2VEYXRh
LmdldCgpLCBtX3BhcnNlZFN0eWxlU2hlZXQtPnRleHQoKSwgcnVsZS0+c3R5bGVSdWxlKCktPnNl
bGVjdG9yTGlzdCgpKTsKICAgICBlbHNlIHsKLSAgICAgICAgc2VsZWN0b3JzID0gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7CisgICAgICAgIHNlbGVjdG9ycyA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
U2VsZWN0b3I+OjpjcmVhdGUoKTsKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxl
Y3Rvckxpc3QgPSBydWxlLT5zdHlsZVJ1bGUoKS0+c2VsZWN0b3JMaXN0KCk7CiAgICAgICAgIGZv
ciAoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNl
bGVjdG9yOyBzZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzZWxlY3RvcikpCi0gICAg
ICAgICAgICBzZWxlY3RvcnMtPmFkZEl0ZW0oc2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpKTsKKyAg
ICAgICAgICAgIHNlbGVjdG9ycy0+YWRkSXRlbShidWlsZE9iamVjdEZvclNlbGVjdG9yKHNlbGVj
dG9yKSk7CiAgICAgfQogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNlbGVj
dG9yTGlzdD4gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTZWxlY3Rvckxpc3Q6
OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRTZWxlY3RvcnMoc2VsZWN0b3JzKQorICAgICAgICAuc2V0
U2VsZWN0b3JzKHNlbGVjdG9ycy5yZWxlYXNlKCkpCiAgICAgICAgIC5zZXRUZXh0KHNlbGVjdG9y
VGV4dCkKICAgICAgICAgLnJlbGVhc2UoKTsKICAgICBpZiAoc291cmNlRGF0YSkKQEAgLTEwNzQs
MTAgKzEwOTYsMTAgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0
eWxlPiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEYKIAogICAgIEluc3BlY3RvckNT
U0lkIGlkID0gcnVsZU9yU3R5bGVJZChzdHlsZSk7CiAgICAgaWYgKGlkLmlzRW1wdHkoKSkgewot
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYm9ndXNT
dHlsZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU6OmNyZWF0ZSgpCisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlOjpjcmVhdGUoKQog
ICAgICAgICAgICAgLnNldENzc1Byb3BlcnRpZXMoQXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpDU1NQcm9wZXJ0eT46OmNyZWF0ZSgpKQotICAgICAgICAgICAgLnNldFNob3J0aGFuZEVu
dHJpZXMoQXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTaG9ydGhhbmRFbnRyeT46OmNy
ZWF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIGJvZ3VzU3R5bGUucmVsZWFzZSgpOworICAgICAgICAg
ICAgLnNldFNob3J0aGFuZEVudHJpZXMoQXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpT
aG9ydGhhbmRFbnRyeT46OmNyZWF0ZSgpKQorICAgICAgICAgICAgLnJlbGVhc2UoKTsKICAgICB9
CiAgICAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IGluc3BlY3RvclN0
eWxlRm9ySWQoaWQpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0
eWxlPiByZXN1bHQgPSBpbnNwZWN0b3JTdHlsZS0+YnVpbGRPYmplY3RGb3JTdHlsZSgpOwpAQCAt
MTE3NSwxMCArMTE5Nyw4IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IEluc3BlY3RvclN0
eWxlU2hlZXQ6Omluc3BlY3RvclN0eWxlRm9ySWQoY29uc3QgSW5zcGVjCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pbnNw
ZWN0b3JTdHlsZXMuZmluZChzdHlsZSk7Ci0gICAgaWYgKGl0ID09IG1faW5zcGVjdG9yU3R5bGVz
LmVuZCgpKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gaW5zcGVjdG9yU3R5bGUg
PSBJbnNwZWN0b3JTdHlsZTo6Y3JlYXRlKGlkLCBzdHlsZSwgdGhpcyk7Ci0gICAgICAgIHJldHVy
biBpbnNwZWN0b3JTdHlsZS5yZWxlYXNlKCk7Ci0gICAgfQorICAgIGlmIChpdCA9PSBtX2luc3Bl
Y3RvclN0eWxlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclN0eWxlOjpjcmVhdGUo
aWQsIHN0eWxlLCB0aGlzKTsKICAgICByZXR1cm4gaXQtPnZhbHVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAppbmRleCBmZWVhZTM4Li5m
ZGJmNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgUGFyc2VkU3R5bGVTaGVldDsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUnVsZUxpc3Q7CitjbGFzcyBDU1NTZWxlY3RvcjsKIGNs
YXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NT
dHlsZVNoZWV0OwpAQCAtMjQzLDYgKzI0NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZXNvdXJj
ZVN0eWxlU2hlZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdDsKICAgICBib29sIGlubGluZVN0
eWxlU2hlZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdDsKICAgICBQYXNzUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4+
IGJ1aWxkQXJyYXlGb3JSdWxlTGlzdChDU1NSdWxlTGlzdCopOworICAgIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTZWxlY3Rvcj4gYnVpbGRPYmplY3RGb3JTZWxlY3Rv
cihjb25zdCBDU1NTZWxlY3RvciopOwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpTZWxlY3Rvckxpc3Q+IGJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3JMaXN0KENTU1N0eWxl
UnVsZSopOwogCiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCmluZGV4IDhkZDMwMjYuLmFiZTE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEwLTMxICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBTZWxlY3Rvcidz
IFNwZWNpZmljaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzgxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rl
c3QuaHRtbDoKKyAgICAgICAgQWRkIG5ldyBmaWxlcyBhbmQgc3RyaW5ncy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU01lZGlhLmpzOgorICAgICAgICBDb25zdHJ1Y3RvciBm
dW5jdGlvbnMgYXJlIG5vdCBuZWVkZWQsIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb2RlLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUnVsZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NSdWxlLnByb3RvdHlwZS5zZXQgc2VsZWN0b3JzKTogRGVsZXRlZC4KKyAgICAgICAg
VGhpcyB3YXMgdW51c2VkIGFuZCBpcyBubyBsb25nZXIgY29ycmVjdC4KKworICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBlLmdldCBtYXRjaGVkU2VsZWN0b3JUZXh0KToKKyAg
ICAgICAgVXBkYXRlIG5vdyB0aGF0IHNlbGVjdG9ycyBhcmUgYSBsaXN0IG9mIG9iamVjdHMsIG5v
dCBqdXN0IHN0cmluZ3MuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTZWxl
Y3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTZWxlY3Rvcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3IucHJvdG90eXBlLmdldCBzcGVjaWZpY2l0eSk6CisgICAg
ICAgIE5ldyBtb2RlbCBvYmplY3QgZm9yIHByb3RvY29sIHR5cGUgQ1NTLkNTU1NlbGVjdG9yLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5fcGFyc2VTZWxlY3Rvckxp
c3RQYXlsb2FkLnJldHVybik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5w
cm90b3R5cGUuX3BhcnNlU2VsZWN0b3JMaXN0UGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUuX3BhcnNlUnVsZVBheWxvYWQpOgorICAgICAgICBI
YW5kbGUgcGFyc2luZyBvbGQgYW5kIG5ldyBTZWxlY3Rvckxpc3RzLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5wcm90b3R5cGUucmVmcmVz
aC5hcHBlbmRTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvblNlY3Rpb24ucHJvdG90eXBlLnJlZnJlc2guYXBwZW5kU2VsZWN0b3JUZXh0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5wcm90b3R5cGUucmVm
cmVzaCk6CisgICAgICAgIFVwZGF0ZSB0aGUgY29kZSBub3cgdGhhdCB0aGUgbGlzdCBvZiBzZWxl
Y3RvcnMgYXJlIG1vZGVsIG9iamVjdHMgaW5zdGVhZAorICAgICAgICBvZiBqdXN0IHNlbGVjdG9y
IHRleHQgc3RyaW5ncy4KKwogMjAxNC0xMC0zMCAgRGFuYSBCdXJrYXJ0ICA8ZGJ1cmthcnRAYXBw
bGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xODgyMTI2MD4gUHJlcGFyZSBmb3Ig
dGhlIG15c3RlcmlvdXMgZnV0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCA4MDYwMzRiZmQ3ZGI0ZWIyYjQ3Y2NmOTdmY2EzZGZjODM4Mjc3YzcyLi41NDYxMTRmZDY5N2Fl
NmIxZjI0MjM4OGQxM2RjYjI2MDQzNTQyMTk0IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRh
IDE0Ngp6Y21jYnlqSmEoRV5NPFdFPnlzSFc4UGIzbE0zKnBCR0ZVTXZGbGFFU0dOZHIqMDluWWlD
V0NeSzJVSlhuQXJ7RTgKYjEhNShKVjFAI1FSSXErQiUkZHdsck1ZP2kmWHRrP0JZN0h+CgpkZWx0
YSAxNApXY21abyQhRiojR15NPFdFSHopNX1FQ35RTlA2dTU4CgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDI2MmQ1NGIuLjMwNzc5NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTIx
Miw2ICsyMTIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTTWVkaWEuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTUHJvcGVydHkuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTUnVsZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9DU1NTZWxlY3Rvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL0NTU1N0eWxlU2hlZXQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJN
b2RlbHMvQ2FsbEZyYW1lLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NNZWRpYS5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NNZWRpYS5qcwppbmRleCA2ZTRhNGViLi5h
OGM0Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ1NTTWVkaWEuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU01lZGlhLmpzCkBAIC0zMiw4ICszMiw2IEBAIFdlYkluc3BlY3Rvci5DU1NN
ZWRpYSA9IGZ1bmN0aW9uKHR5cGUsIHRleHQsIHNvdXJjZUNvZGVMb2NhdGlvbikKICAgICB0aGlz
Ll9zb3VyY2VDb2RlTG9jYXRpb24gPSBzb3VyY2VDb2RlTG9jYXRpb24gfHwgbnVsbDsKIH07CiAK
LVdlYkluc3BlY3Rvci5PYmplY3QuYWRkQ29uc3RydWN0b3JGdW5jdGlvbnMoV2ViSW5zcGVjdG9y
LkNTU01lZGlhKTsKLQogV2ViSW5zcGVjdG9yLkNTU01lZGlhLlR5cGUgPSB7CiAgICAgTWVkaWFS
dWxlOiAiY3NzLW1lZGlhLXR5cGUtbWVkaWEtcnVsZSIsCiAgICAgSW1wb3J0UnVsZTogImNzcy1t
ZWRpYS10eXBlLWltcG9ydC1ydWxlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKaW5kZXggODg2NmNiMC4uMDdkMDcxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1J1bGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1J1bGUuanMKQEAgLTEzOSwxMSArMTM5LDYgQEAgV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0b3JzOwogICAgIH0sCiAKLSAg
ICBzZXQgc2VsZWN0b3JzKHNlbGVjdG9ycykKLSAgICB7Ci0gICAgICAgIHRoaXMuc2VsZWN0b3JU
ZXh0ID0gKHNlbGVjdG9ycyB8fCBbXSkuam9pbigiLCAiKTsKLSAgICB9LAotCiAgICAgZ2V0IG1h
dGNoZWRTZWxlY3RvckluZGljZXMoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNo
ZWRTZWxlY3RvckluZGljZXM7CkBAIC0xNzgsNyArMTczLDcgQEAgV2ViSW5zcGVjdG9yLkNTU1J1
bGUucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIl9tYXRjaGVkU2VsZWN0b3JUZXh0IiBpbiB0
aGlzKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoZWRTZWxlY3RvclRleHQ7CiAKLSAg
ICAgICAgdGhpcy5fbWF0Y2hlZFNlbGVjdG9yVGV4dCA9IHRoaXMubWF0Y2hlZFNlbGVjdG9ycy5q
b2luKCIsICIpOworICAgICAgICB0aGlzLl9tYXRjaGVkU2VsZWN0b3JUZXh0ID0gdGhpcy5tYXRj
aGVkU2VsZWN0b3JzLm1hcChmdW5jdGlvbih4KSB7IHJldHVybiB4LnRleHQ7IH0pLmpvaW4oIiwg
Iik7CiAKICAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoZWRTZWxlY3RvclRleHQ7CiAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NNZWRpYS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NTZWxlY3Rvci5qcwpzaW1pbGFyaXR5IGluZGV4IDYzJQpjb3B5IGZyb20gU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU01lZGlhLmpzCmNvcHkgdG8gU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1NlbGVjdG9yLmpzCmluZGV4
IDZlNGE0ZWIuLmFkMmM1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9DU1NNZWRpYS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU2VsZWN0b3IuanMKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDQzICsyMywyOSBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5DU1NNZWRpYSA9
IGZ1bmN0aW9uKHR5cGUsIHRleHQsIHNvdXJjZUNvZGVMb2NhdGlvbikKK1dlYkluc3BlY3Rvci5D
U1NTZWxlY3RvciA9IGZ1bmN0aW9uKHRleHQsIHNwZWNpZmljaXR5KQogewogICAgIFdlYkluc3Bl
Y3Rvci5PYmplY3QuY2FsbCh0aGlzKTsKIAotICAgIHRoaXMuX3R5cGUgPSB0eXBlIHx8IG51bGw7
Ci0gICAgdGhpcy5fdGV4dCA9IHRleHQgfHwgIiI7Ci0gICAgdGhpcy5fc291cmNlQ29kZUxvY2F0
aW9uID0gc291cmNlQ29kZUxvY2F0aW9uIHx8IG51bGw7Ci19OwotCi1XZWJJbnNwZWN0b3IuT2Jq
ZWN0LmFkZENvbnN0cnVjdG9yRnVuY3Rpb25zKFdlYkluc3BlY3Rvci5DU1NNZWRpYSk7CisgICAg
Y29uc29sZS5hc3NlcnQodGV4dCk7CiAKLVdlYkluc3BlY3Rvci5DU1NNZWRpYS5UeXBlID0gewot
ICAgIE1lZGlhUnVsZTogImNzcy1tZWRpYS10eXBlLW1lZGlhLXJ1bGUiLAotICAgIEltcG9ydFJ1
bGU6ICJjc3MtbWVkaWEtdHlwZS1pbXBvcnQtcnVsZSIsCi0gICAgTGlua2VkU3R5bGVTaGVldDog
ImNzcy1tZWRpYS10eXBlLWxpbmtlZC1zdHlsZXNoZWV0IiwKLSAgICBJbmxpbmVTdHlsZVNoZWV0
OiAiY3NzLW1lZGlhLXR5cGUtaW5saW5lLXN0eWxlc2hlZXQiCisgICAgdGhpcy5fdGV4dCA9IHRl
eHQ7CisgICAgdGhpcy5fc3BlY2lmaWNpdHkgPSBzcGVjaWZpY2l0eSB8fCBudWxsOwogfTsKIAot
V2ViSW5zcGVjdG9yLkNTU01lZGlhLnByb3RvdHlwZSA9IHsKLSAgICBjb25zdHJ1Y3RvcjogV2Vi
SW5zcGVjdG9yLkNTU01lZGlhLAorV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yLnByb3RvdHlwZSA9
IHsKKyAgICBjb25zdHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yLAorICAgIF9fcHJv
dG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUsCiAKICAgICAvLyBQdWJsaWMKIAot
ICAgIGdldCB0eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlOwotICAgIH0s
Ci0KICAgICBnZXQgdGV4dCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fdGV4dDsKICAg
ICB9LAogCi0gICAgZ2V0IHNvdXJjZUNvZGVMb2NhdGlvbigpCisgICAgZ2V0IHNwZWNpZmljaXR5
KCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb247CisgICAg
ICAgIHJldHVybiB0aGlzLl9zcGVjaWZpY2l0eTsKICAgICB9CiB9OwotCi1XZWJJbnNwZWN0b3Iu
Q1NTTWVkaWEucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90
eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0RPTU5vZGVTdHlsZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcwppbmRleCBmZDQzM2M2Li44MDJlMmI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0
eWxlcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
RE9NTm9kZVN0eWxlcy5qcwpAQCAtNzQ1LDYgKzc0NSwyOSBAQCBXZWJJbnNwZWN0b3IuRE9NTm9k
ZVN0eWxlcy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBzdHlsZURlY2xhcmF0aW9uOwog
ICAgIH0sCiAKKyAgICBfcGFyc2VTZWxlY3Rvckxpc3RQYXlsb2FkOiBmdW5jdGlvbihzZWxlY3Rv
ckxpc3QpCisgICAgeworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgNik6IFRoZSBwYXls
b2FkIGRpZCBub3QgaGF2ZSAnc2VsZWN0b3JMaXN0Jy4KKyAgICAgICAgaWYgKCFzZWxlY3Rvckxp
c3QpCisgICAgICAgICAgICByZXR1cm4gW107CisKKyAgICAgICAgdmFyIHNlbGVjdG9ycyA9IHNl
bGVjdG9yTGlzdC5zZWxlY3RvcnM7CisgICAgICAgIGlmICghc2VsZWN0b3JzLmxlbmd0aCkKKyAg
ICAgICAgICAgIHJldHVybiBbXTsKKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgOCk6
IFRoZSBzZWxlY3Rvckxpc3QgcGF5bG9hZCB3YXMgYW4gYXJyYXkgb2Ygc2VsZWN0b3IgdGV4dCBz
dHJpbmdzLgorICAgICAgICAvLyBOb3cgdGhleSBhcmUgQ1NTU2VsZWN0b3Igb2JqZWN0cyB3aXRo
IG11bHRpcGxlIHByb3BlcnRpZXMuCisgICAgICAgIGlmICh0eXBlb2Ygc2VsZWN0b3JzWzBdID09
PSAic3RyaW5nIikgeworICAgICAgICAgICAgcmV0dXJuIHNlbGVjdG9ycy5tYXAoZnVuY3Rpb24o
c2VsZWN0b3JUZXh0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
Q1NTU2VsZWN0b3Ioc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIHNlbGVjdG9ycy5tYXAoZnVuY3Rpb24oc2VsZWN0b3JQYXlsb2FkKSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvcihzZWxlY3Rv
clBheWxvYWQudGV4dCwgc2VsZWN0b3JQYXlsb2FkLnNwZWNpZmljaXR5KTsKKyAgICAgICAgfSk7
CisgICAgfSwKKwogICAgIF9wYXJzZVJ1bGVQYXlsb2FkOiBmdW5jdGlvbihwYXlsb2FkLCBtYXRj
aGVkU2VsZWN0b3JJbmRpY2VzLCBub2RlLCBpbmhlcml0ZWQsIHJ1bGVPY2N1cnJlbmNlcykKICAg
ICB7CiAgICAgICAgIGlmICghcGF5bG9hZCkKQEAgLTc5MSw3ICs4MTQsNyBAQCBXZWJJbnNwZWN0
b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIENPTVBBVElCSUxJVFkg
KGlPUyA2KTogVGhlIHBheWxvYWQgaGFkICdzZWxlY3RvclRleHQnIGFzIGEgcHJvcGVydHksCiAg
ICAgICAgIC8vIG5vdyBpdCBoYXMgJ3NlbGVjdG9yTGlzdCcgd2l0aCBhICd0ZXh0JyBwcm9wZXJ0
eS4gU3VwcG9ydCBib3RoIGhlcmUuCiAgICAgICAgIHZhciBzZWxlY3RvclRleHQgPSBwYXlsb2Fk
LnNlbGVjdG9yTGlzdCA/IHBheWxvYWQuc2VsZWN0b3JMaXN0LnRleHQgOiBwYXlsb2FkLnNlbGVj
dG9yVGV4dDsKLSAgICAgICAgdmFyIHNlbGVjdG9ycyA9IHBheWxvYWQuc2VsZWN0b3JMaXN0ID8g
cGF5bG9hZC5zZWxlY3Rvckxpc3Quc2VsZWN0b3JzIDogW107CisgICAgICAgIHZhciBzZWxlY3Rv
cnMgPSB0aGlzLl9wYXJzZVNlbGVjdG9yTGlzdFBheWxvYWQocGF5bG9hZC5zZWxlY3Rvckxpc3Qp
OwogCiAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyA2KTogVGhlIHBheWxvYWQgZGlkIG5v
dCBoYXZlICdzZWxlY3Rvckxpc3QnLgogICAgICAgICAvLyBGYWxsYmFjayB0byB1c2luZyAnc291
cmNlTGluZScgd2l0aG91dCBjb2x1bW4gaW5mb3JtYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggNGRjMWU4Ny4uN2Q0YmI1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtNzQs
NiArNzQsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTS2V5d29yZENvbXBsZXRpb25z
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1Byb3BlcnR5LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1J1bGUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTU2VsZWN0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJNb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9DU1NTdHlsZVNoZWV0LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iTW9kZWxzL0RPTU5vZGUuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCBhZjBkOWM1Li4wNGZlODQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwpAQCAtMTY4LDEyICsxNjgs
MzAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICB0aGlzLl9vcmlnaW5FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCIgXHUyMDE0ICIpKTsKIAotICAgICAgICBmdW5jdGlvbiBhcHBlbmRTZWxl
Y3RvcihzZWxlY3RvclRleHQsIG1hdGNoZWQpCisgICAgICAgIGZ1bmN0aW9uIGFwcGVuZFNlbGVj
dG9yKHNlbGVjdG9yLCBtYXRjaGVkKQogICAgICAgICB7CisgICAgICAgICAgICBjb25zb2xlLmFz
c2VydChzZWxlY3RvciBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5DU1NTZWxlY3Rvcik7CisKICAg
ICAgICAgICAgIHZhciBzZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CisgICAgICAgICAgICBzZWxlY3RvckVsZW1lbnQudGV4dENvbnRlbnQgPSBzZWxlY3Rv
ci50ZXh0OworCiAgICAgICAgICAgICBpZiAobWF0Y2hlZCkKICAgICAgICAgICAgICAgICBzZWxl
Y3RvckVsZW1lbnQuY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLk1hdGNoZWRTZWxlY3RvckVsZW1lbnRTdHlsZUNsYXNzTmFtZTsKKworICAgICAgICAg
ICAgdmFyIHNwZWNpZmljaXR5ID0gc2VsZWN0b3Iuc3BlY2lmaWNpdHk7CisgICAgICAgICAgICBp
ZiAoc3BlY2lmaWNpdHkpIHsKKyAgICAgICAgICAgICAgICB2YXIgYXBwcm94aW1hdGVkU3BlY2lm
aWNpdHkgPSAoc3BlY2lmaWNpdHlbMF0gKiAxMDApICsgKHNwZWNpZmljaXR5WzFdICogMTApICsg
c3BlY2lmaWNpdHlbMl07CisgICAgICAgICAgICAgICAgc2VsZWN0b3JFbGVtZW50LnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTcGVjaWZpY2l0eTogKCVkLCAlZCwgJWQpIOKJiCAlZCIp
LmZvcm1hdChzcGVjaWZpY2l0eVswXSwgc3BlY2lmaWNpdHlbMV0sIHNwZWNpZmljaXR5WzJdLCBh
cHByb3hpbWF0ZWRTcGVjaWZpY2l0eSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMuX3NlbGVjdG9yRWxlbWVudC5hcHBlbmRDaGlsZChzZWxlY3RvckVsZW1lbnQpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kU2VsZWN0b3JUZXh0S25vd25Ub01hdGNoKHNl
bGVjdG9yVGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHNlbGVjdG9yRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgIHNlbGVjdG9yRWxl
bWVudC50ZXh0Q29udGVudCA9IHNlbGVjdG9yVGV4dDsKKyAgICAgICAgICAgIHNlbGVjdG9yRWxl
bWVudC5jbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
TWF0Y2hlZFNlbGVjdG9yRWxlbWVudFN0eWxlQ2xhc3NOYW1lOwogICAgICAgICAgICAgdGhpcy5f
c2VsZWN0b3JFbGVtZW50LmFwcGVuZENoaWxkKHNlbGVjdG9yRWxlbWVudCk7CiAgICAgICAgIH0K
IApAQCAtMTkwLDcgKzIwOCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3Rv
ckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiwgIikpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGFwcGVu
ZFNlbGVjdG9yLmNhbGwodGhpcywgdGhpcy5fc3R5bGUub3duZXJSdWxlLnNlbGVjdG9yVGV4dCwg
dHJ1ZSk7CisgICAgICAgICAgICAgICAgYXBwZW5kU2VsZWN0b3JUZXh0S25vd25Ub01hdGNoLmNh
bGwodGhpcywgdGhpcy5fc3R5bGUub3duZXJSdWxlLnNlbGVjdG9yVGV4dCk7CiAKICAgICAgICAg
ICAgIGlmICh0aGlzLl9zdHlsZS5vd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uKSB7CiAgICAg
ICAgICAgICAgICAgdmFyIHNvdXJjZUNvZGVMaW5rID0gV2ViSW5zcGVjdG9yLmNyZWF0ZVNvdXJj
ZUNvZGVMb2NhdGlvbkxpbmsodGhpcy5fc3R5bGUub3duZXJSdWxlLnNvdXJjZUNvZGVMb2NhdGlv
biwgdHJ1ZSk7CkBAIC0yMjMsMTIgKzI0MSwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLklubGluZToKLSAg
ICAgICAgICAgIGFwcGVuZFNlbGVjdG9yLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLmRpc3BsYXlO
YW1lRm9yTm9kZSh0aGlzLl9zdHlsZS5ub2RlKSwgdHJ1ZSk7CisgICAgICAgICAgICBhcHBlbmRT
ZWxlY3RvclRleHRLbm93blRvTWF0Y2guY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuZGlzcGxheU5h
bWVGb3JOb2RlKHRoaXMuX3N0eWxlLm5vZGUpKTsKICAgICAgICAgICAgIHRoaXMuX29yaWdpbkVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTdHlsZSBBdHRyaWJ1dGUiKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLkF0dHJpYnV0ZToK
LSAgICAgICAgICAgIGFwcGVuZFNlbGVjdG9yLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLmRpc3Bs
YXlOYW1lRm9yTm9kZSh0aGlzLl9zdHlsZS5ub2RlKSwgdHJ1ZSk7CisgICAgICAgICAgICBhcHBl
bmRTZWxlY3RvclRleHRLbm93blRvTWF0Y2guY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuZGlzcGxh
eU5hbWVGb3JOb2RlKHRoaXMuX3N0eWxlLm5vZGUpKTsKICAgICAgICAgICAgIHRoaXMuX29yaWdp
bkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJIVE1MIEF0dHJpYnV0ZXMiKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>240773</attachid>
            <date>2014-10-31 17:55:28 -0700</date>
            <delta_ts>2014-10-31 17:55:28 -0700</delta_ts>
            <desc>[IMAGE] Example</desc>
            <filename>example.png</filename>
            <type>image/png</type>
            <size>45682</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">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
tML0uhlqZm/GM9th1jmFMMVpCn9K5ZRuc6q5p3m+eY15rwXDIsSi0KLB4uVU/amJUzdMbZ361dLO
MtNyn+V9KyWrIKtCqyar19am1mzrCuubNjQbP5slNo02r2zNbLm2O23v2NHtQu1W2rXYfbF3sBfa
19oPOOg7JDlsd+h2VHaMcFzjeNmJ4OTltMSp2emjs71znvNR579czF0yXA66PJ9mNI07bd+0Pldd
V5brHtceN6Zbkttutx53HXeWe6X7Yw89D47Hfo9nniae6Z6HPF96WXoJvU54vfd29l7kfdYH8/H3
KfZp91XyjfEt933kp+uX6lfjN+Rv57/A/2wAISA4YENAd6BmIDuwOnAoyCFoUdCFYGpwVHB58OMQ
0xBhSFMoGhoUuin0QZhBGD+sIRyEB4ZvCn8YYRSRE/HbdOL0iOkV059GWkUujGyNokfNiToY9S7a
K3pd9P0Y4xhRTEusfOzM2OrY93E+cRvjeuKnxi+Kv5agnsBLaEwkJcYm7k8cnuE7Y8uM/pl2M4tm
3p5lNGverCuz1Wdnzj41R34Oa86xJEJSXNLBpM+scFYlazg5MHl78hDbm72V/YLjwdnMGeC6cjdy
n6W4pmxMeZ7qmropdSDNPa00bZDnzSvnvUoPSN+V/j4jPONAxmhmXGZdFjkrKeskX4mfwb+QrZU9
L7tTYCYoEvTkOOdsyRkSBgv35yK5s3Ib85ThUadNZCz6SdSb75Zfkf9hbuzcY/MU5/Hntc03nb96
/rMCv4JfFuAL2AtaFuosXLawd5Hnoj2LkcXJi1uW6C1ZsaR/qf/SqmWUZRnLfi+0LNxY+HZ53PKm
FZorlq7o+8n/p5oiuSJhUfdKl5W7VuGreKvaV9us3rb6azGn+GqJZUlpyec17DVXf7b6uezn0bUp
a9vX2a/buZ64nr/+9gb3DVUbFTcWbOzbFLqpfjNzc/Hmt1vmbLlSalu6aytlq2hrT1lIWeM2/W3r
t30uTyu/VeFVUbddY/vq7e93cHZ07fTYWbtLc1fJrk+7ebvv7PHfU19pWFm6l7g3f+/TfbH7Wn9x
/KV6v/r+kv1fDvAP9FRFVl2odqiuPqhxcF0NWiOqGTg081DHYZ/DjbXmtXvqGHUlR8AR0ZE/fk36
9fbR4KMtxxyP1R43OL79BP1EcT1SP79+qCGtoacxobHzZNDJliaXphO/Wfx2oFmnueKUyql1pymn
V5wePVNwZvis4OzgudRzfS1zWu6fjz9/88L0C+0Xgy9evuR36XyrZ+uZy66Xm684Xzl51fFqwzX7
a/Vtdm0nfrf7/US7fXv9dYfrjR1OHU2d0zpPd7l3nbvhc+PSzcCb126F3eq8HXP7TvfM7p47nDvP
72befXUv/97I/aUPCA+KHyo8LH2k8ajyXyb/quux7znV69Pb9jjq8f0+dt+LJ7lPPveveEp7WvpM
+1n1c+vnzQN+Ax1/zPij/4Xgxchg0Z+Kf25/afzy+F8ef7UNxQ/1vxK+Gn295o3amwNvbd+2DEcM
P3qX9W7kffEHtQ9VHx0/tn6K+/RsZO5n0ueyLyZfmr4Gf30wmjU6KmAJWZKjAAYrmpICwOsDANAS
4NkB3uMoctL7l6Qg0jujhMA/sfSOJin2ABzwACBmKQAh8IyyE1YDyFT4Fh+/oz0AamMzUcdKboqN
tTQXFd5iCB9GR99oAkBqAuCLcHR0ZMfo6Jd9UOxdAM7mSO994kKEZ/zdamJq61YAP5Z/A03tazJr
tnZjAAAB1WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9i
ZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpy
ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8
L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3Jp
ZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlm
ZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAg
PC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KAtiABQAAQABJREFUeAHsvQ9cVUX6P/5W4PJPkCsKiqig
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
0HgE/j9hqYY1cubHpwAAAABJRU5ErkJggg==
</data>

          </attachment>
      

    </bug>

</bugzilla>