<?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>110011</bug_id>
          
          <creation_ts>2013-02-16 06:36:11 -0800</creation_ts>
          <short_desc>transition properties can&apos;t be found in CSSStyleDeclaration</short_desc>
          <delta_ts>2016-05-11 10:08:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>http://jsfiddle.net/syoichi/nnAey/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93136</blocked>
    
    <blocked>156944</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Syoichi Tsuyuhara">syoichi</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>apavlov</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>hyatt</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834707</commentid>
    <comment_count>0</comment_count>
    <who name="Syoichi Tsuyuhara">syoichi</who>
    <bug_when>2013-02-16 06:36:11 -0800</bug_when>
    <thetext>On Chromium 27.0.1414.0 (182962), transition properties can&apos;t be found in CSSStyleDeclaration.
But prefixed transition properties can be found.

transition properties
http://jsfiddle.net/syoichi/nnAey/
prefixed transition properties
http://jsfiddle.net/syoichi/E2nDn/

And, by this bug, it seems that Web Inspector&apos;s Suggest box doesn&apos;t suggest transition properties in Styles pane of Elements panel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835020</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-17 12:19:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/13232242&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835054</commentid>
    <comment_count>2</comment_count>
    <who name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</who>
    <bug_when>2013-02-17 15:39:38 -0800</bug_when>
    <thetext>I can confirm it on both Chrome Canary 27.0.1415.0 and WebKit nightly r143127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844383</commentid>
    <comment_count>3</comment_count>
      <attachid>190788</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-02-28 12:55:06 -0800</bug_when>
    <thetext>Created attachment 190788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845256</commentid>
    <comment_count>4</comment_count>
      <attachid>190788</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-01 09:59:15 -0800</bug_when>
    <thetext>Comment on attachment 190788
Patch

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

Minor typos and grammar in changelog.

I&apos;m happy with the approach. As you said on IRC, antti or kling should probably double check.

&gt; Source/WebCore/ChangeLog:11
&gt; +        identically parse the two versions which means that when we populate StylePropertySet

Suggestion: break sentence after &quot;two versions&quot;. e.g &quot;..parse the two versions. This means that...&quot;

&gt; Source/WebCore/ChangeLog:15
&gt; +        prefixed), each properties have their own id and we know handle them in

Suggestion: again, break after &quot;prefixed)&quot;. And then &quot;Each property has its own id and we NOW handle them...&quot; (typo for know/now)

&gt; Source/WebCore/ChangeLog:16
&gt; +        the parsing code as disctints properties and add both versions to the

typo: distinct (singular)

&gt; Source/WebCore/ChangeLog:19
&gt; +        prefixed and the unprefixed entries. Last point the style resolution

Typo: &quot;Last point&quot; -&gt; &quot;Finally,&quot;

&gt; Source/WebCore/ChangeLog:22
&gt; +        and the unprefixed versions are not resolved. This is to avoid creating
&gt; +        two times animation objects for the resolved style.

&quot;This is to avoid creating the animation objects two times for the resolved style&quot;

&gt; Source/WebCore/ChangeLog:34
&gt; +        (WebCore::CSSParser::parseTransitionShorthand): add both prefixed and

Nit, &quot;add&quot; -&gt; &quot;Add&quot;

&gt; Source/WebCore/ChangeLog:52
&gt; +        (WebCore::StylePropertySet::removePrefixedOrUnprefixedProperty): Remove
&gt; +        also the prefixed or unprefixed shorthand if it exists.

Nit: &quot;Also remove...&quot;

&gt; Source/WebCore/ChangeLog:58
&gt; +        (WebCore::StylePropertySet::setPrefixedOrUnPrefixedProperty): If it
&gt; +        exists a unprefixed or prefixed counterpart of the property we&apos;re
&gt; +        trying to set then we update the other one.

&quot;If a unprefixed or prefixed counterpart of the the property we&apos;re trying to set exists then we update the other one&quot;

&gt; Source/WebCore/ChangeLog:74
&gt; +        unprefixed property we do not want to resolve two times and create

&quot;do not want to resolve twice and create...&quot;

&gt; Source/WebCore/css/CSSParser.cpp:1539
&gt; +void CSSParser::addPrefixedAndUnPrefixedProperty(CSSPropertyID propId, PassRefPtr&lt;CSSValue&gt; value, bool important, bool implicit)

This name is a little cumbersome, but I&apos;m not coming up with great alternatives.

addPropertyWithPrefixingVariant

&gt; Source/WebCore/css/CSSProperty.h:95
&gt; +inline CSSPropertyID prefixedOrUnPrefixedPropertyId(CSSPropertyID propId)

Similarly, how about

prefixingVariantForPropertyId

&gt; Source/WebCore/css/StylePropertySet.cpp:588
&gt; +    bool ret = removePropertiesInSet(shorthand.properties(), shorthand.length());
&gt; +
&gt; +    CSSPropertyID prefixedOrUnprefixedID = prefixedOrUnPrefixedPropertyId(propertyID);
&gt; +    if (prefixedOrUnprefixedID == propertyID)
&gt; +        return ret;

We should have a better name for the &quot;ret&quot; variable.

&gt; Source/WebCore/css/StylePropertySet.cpp:590
&gt; +    StylePropertyShorthand prefixedOrUnprefixedShorthand = shorthandForProperty(prefixedOrUnprefixedID);

And here is another case where it would be nice to avoid the ugly &quot;prefixedOrUnprefixed&quot; (it also avoids the issue of where to capitalize :)

shorthandPrefixingVariant

&gt; Source/WebCore/css/StylePropertySet.cpp:709
&gt; +void StylePropertySet::appendPrefixedAndUnprefixed(const CSSProperty&amp; property)

appendPrefixingVariant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845261</commentid>
    <comment_count>5</comment_count>
      <attachid>190788</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-01 10:01:44 -0800</bug_when>
    <thetext>Comment on attachment 190788
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:22
&gt;&gt; +        two times animation objects for the resolved style.
&gt; 
&gt; &quot;This is to avoid creating the animation objects two times for the resolved style&quot;

errr... &quot;creating the animation objects twice for&quot; is better

&gt;&gt; Source/WebCore/ChangeLog:58
&gt;&gt; +        trying to set then we update the other one.
&gt; 
&gt; &quot;If a unprefixed or prefixed counterpart of the the property we&apos;re trying to set exists then we update the other one&quot;

&quot;set exists, then&quot; (add comma)

&gt; Source/WebCore/ChangeLog:75
&gt; +        animations in double, therefore when we try to resolve the unprefixed

&quot;and create duplicate animations. Therefore..&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845318</commentid>
    <comment_count>6</comment_count>
      <attachid>190994</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-03-01 11:04:59 -0800</bug_when>
    <thetext>Created attachment 190994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846434</commentid>
    <comment_count>7</comment_count>
      <attachid>190994</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-04 06:44:29 -0800</bug_when>
    <thetext>Comment on attachment 190994
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846453</commentid>
    <comment_count>8</comment_count>
      <attachid>190994</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 07:11:05 -0800</bug_when>
    <thetext>Comment on attachment 190994
Patch

Clearing flags on attachment: 190994

Committed r144626: &lt;http://trac.webkit.org/changeset/144626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846454</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 07:11:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848358</commentid>
    <comment_count>10</comment_count>
    <who name="Syoichi Tsuyuhara">syoichi</who>
    <bug_when>2013-03-05 18:54:01 -0800</bug_when>
    <thetext>I confirmed that this bug is fixed on Chromium 27.0.1431.0 (186272).
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171923</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-03-07 21:22:37 -0800</bug_when>
    <thetext>I want to revert this patch. It causes element.style.cssText to report both prefixed and unprefixed versions of animation and transition properties, which is wrong.

Also, why was this all specific to just animations and transitions, and not other prefixed properties?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191967</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2016-05-11 10:08:52 -0700</bug_when>
    <thetext>This is mostly reverted by the fix for https://bugs.webkit.org/show_bug.cgi?id=157569.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190788</attachid>
            <date>2013-02-28 12:55:06 -0800</date>
            <delta_ts>2013-03-01 11:04:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110011-20130228175117.patch</filename>
            <type>text/plain</type>
            <size>31805</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBkNmRhYWU2MWNiNjY3
MmE0NzhiNWRkYTZmZTVlOTgwZjBjNzE1My4uYjcwMzhjODdjNzM0YWZkOTExNjZhY2Q4OGZmZDhm
MWE3OWU4MWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEzLTAyLTI4ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgdHJhbnNpdGlvbiBwcm9w
ZXJ0aWVzIGNhbid0IGJlIGZvdW5kIGluIENTU1N0eWxlRGVjbGFyYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDAxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmV2aW91cyBhcHByb2Fj
aCBmb3IgaGFuZGxpbmcgdGhlIHVucHJlZml4aW5nIHdhcyB0byBhbGlhcyB0aGUKKyAgICAgICAg
dW5wcmVmaXhlZCBwcm9wZXJ0aWVzIHdpdGggdGhlIHByZWZpeGVkIG9uZXMgaW4gQ1NTUHJvcGVy
dHlOYW1lcy5pbi4KKyAgICAgICAgVW5mb3J0dW5hdGVseSBpdCB3aWxsIGFsaWFzIHRoZSBwcm9w
ZXJ0aWVzIGluIHRoZSBwYXJzaW5nIGNvZGUgd2hpY2ggd2lsbCBqdXN0CisgICAgICAgIGlkZW50
aWNhbGx5IHBhcnNlIHRoZSB0d28gdmVyc2lvbnMgd2hpY2ggbWVhbnMgdGhhdCB3aGVuIHdlIHBv
cHVsYXRlIFN0eWxlUHJvcGVydHlTZXQKKyAgICAgICAgd2UgZG8gbm90IGhhdmUgaW5mb3JtYXRp
b24gd2hldGhlciB3ZSBqdXN0IHBhcnNlZCB0aGUgcHJlZml4ZWQsIHRoZQorICAgICAgICB1bnBy
ZWZpeGVkIHByb3BlcnRpZXMgb3Igd2UgcGFyc2VkIGJvdGguIFRoZSBwYXRjaCB0YWtlcyBhbm90
aGVyCisgICAgICAgIGFwcHJvYWNoIGJ5IGNyZWF0aW5nIHR3byBkaXN0aW5jdHMgc2V0cyBvZiBw
cm9wZXJ0aWVzICh1bnByZWZpeGVkIGFuZAorICAgICAgICBwcmVmaXhlZCksIGVhY2ggcHJvcGVy
dGllcyBoYXZlIHRoZWlyIG93biBpZCBhbmQgd2Uga25vdyBoYW5kbGUgdGhlbSBpbgorICAgICAg
ICB0aGUgcGFyc2luZyBjb2RlIGFzIGRpc2N0aW50cyBwcm9wZXJ0aWVzIGFuZCBhZGQgYm90aCB2
ZXJzaW9ucyB0byB0aGUKKyAgICAgICAgZGVjbGFyZWQgc3R5bGUuIEluIG9yZGVyIHRvIGF2b2lk
IHByb3BlcnRpZXMgZ2V0dGluZyBvdXQgb2Ygc3luYywgCisgICAgICAgIHRoaXMgcGF0Y2ggYWRk
cyBmZXcgZmFjaWxpdGllcyB0byBTdHlsZVByb3BlcnR5U2V0IHRvIHVwZGF0ZSB0aGUKKyAgICAg
ICAgcHJlZml4ZWQgYW5kIHRoZSB1bnByZWZpeGVkIGVudHJpZXMuIExhc3QgcG9pbnQgdGhlIHN0
eWxlIHJlc29sdXRpb24KKyAgICAgICAgaGFwcGVucyBvbmx5IGZvciB0aGUgcHJlZml4ZWQgdmVy
c2lvbiAodG8gbGltaXQgdGhlIHNpemUgb2YgdGhpcyBwYXRjaCkKKyAgICAgICAgYW5kIHRoZSB1
bnByZWZpeGVkIHZlcnNpb25zIGFyZSBub3QgcmVzb2x2ZWQuIFRoaXMgaXMgdG8gYXZvaWQgY3Jl
YXRpbmcKKyAgICAgICAgdHdvIHRpbWVzIGFuaW1hdGlvbiBvYmplY3RzIGZvciB0aGUgcmVzb2x2
ZWQgc3R5bGUuCisKKyAgICAgICAgVGVzdCA6IHRyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNp
bmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmFkZFByZWZpeGVkQW5kVW5QcmVm
aXhlZFByb3BlcnR5KTogQWx3YXlzIGFkZCB0aGUKKyAgICAgICAgcHJlZml4ZWQgYW5kIHRoZSB1
bnByZWZpeGVkIHByb3BlcnR5IGV2ZW4gaWYgb25seSBvbmUgaXMgc3BlY2lmaWVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQpOiBh
ZGQgYm90aCBwcmVmaXhlZCBhbmQKKyAgICAgICAgdW5wcmVmaXhlZCBsb25naGFuZHMgdG8gdGhl
IGRlY2xhcmF0ZWQgc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQW5p
bWF0aW9uUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKENT
U1BhcnNlcik6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NT
UHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OnByZWZpeGVkT3JVblByZWZpeGVkUHJvcGVy
dHlJZCk6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBnaXZlbgorICAgICAgICBwcm9wZXJ0eSBpZCBh
bmQgcmV0dXJucyBpdHMgcHJlZml4ZWQgb3IgdW5wcmVmaXhlZCBpZCBpZiBpdCBleGlzdHMuIElm
CisgICAgICAgIG5vdCBpdCByZXR1cm5zIHRoZSBzYW1lIGlkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL1N0eWxl
UHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Z2V0
UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpyZW1v
dmVTaG9ydGhhbmRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0
OjpyZW1vdmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Ojpy
ZW1vdmVQcmVmaXhlZE9yVW5wcmVmaXhlZFByb3BlcnR5KTogUmVtb3ZlCisgICAgICAgIGFsc28g
dGhlIHByZWZpeGVkIG9yIHVucHJlZml4ZWQgc2hvcnRoYW5kIGlmIGl0IGV4aXN0cy4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6c2V0UHJv
cGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6YXBwZW5kUHJlZml4
ZWRBbmRVbnByZWZpeGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OnNl
dFByZWZpeGVkT3JVblByZWZpeGVkUHJvcGVydHkpOiBJZiBpdAorICAgICAgICBleGlzdHMgYSB1
bnByZWZpeGVkIG9yIHByZWZpeGVkIGNvdW50ZXJwYXJ0IG9mIHRoZSBwcm9wZXJ0eSB3ZSdyZQor
ICAgICAgICB0cnlpbmcgdG8gc2V0IHRoZW4gd2UgdXBkYXRlIHRoZSBvdGhlciBvbmUuCisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Ojphc1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVQcm9wZXJ0eVNldDo6bWVyZ2VBbmRPdmVycmlkZU9uQ29uZmxpY3QpOgorICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToK
KyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0cmFuc2l0aW9uU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6c2hvcnRoYW5kRm9yUHJvcGVydHkpOiBEZWZpbmUgdGhlIHRyYW5zaXRpb25zIHVu
cHJlZml4ZWQKKyAgICAgICAgbG9uZ2hhbmRzLgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNv
bHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5
KTogU3R5bGVCdWlsZGVyIHdpbGwgaGFuZGxlIHRoZQorICAgICAgICByZXNvbHV0aW9uIGFuZCB0
aGUgY3JlYXRpb24gb2YgdGhlIGFuaW1hdGlvbnMgZm9yIHRoZSBzdHlsZS4gQXMgdGhlCisgICAg
ICAgIGRlY2xhcmF0ZWQgc3R5bGUgbm93IGNvbnRhaW5zIGRlY2xhcmF0aW9ucyBmb3IgdGhlIHBy
ZWZpeGVkIGFuZAorICAgICAgICB1bnByZWZpeGVkIHByb3BlcnR5IHdlIGRvIG5vdCB3YW50IHRv
IHJlc29sdmUgdHdvIHRpbWVzIGFuZCBjcmVhdGUKKyAgICAgICAgYW5pbWF0aW9ucyBpbiBkb3Vi
bGUsIHRoZXJlZm9yZSB3aGVuIHdlIHRyeSB0byByZXNvbHZlIHRoZSB1bnByZWZpeGVkCisgICAg
ICAgIHZlcnNpb24gd2UganVzdCBiYWlsIG91dC4KKwogMjAxMy0wMi0yNSAgQWxleGlzIE1lbmFy
ZCAgPGFsZXhpc0B3ZWJraXQub3JnPgogCiAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHkgcHJv
cGVydHkgZG9lc24ndCBhY2NlcHQgImFsbCwgPElERU5UPiIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDgyOTE3NDhmOGE1
MzE4YmJiNzlkOWI3ZDUyMjg1ZWI5OTI4YzY3NDAuLmQ5MDRmMGQyYjRkYWU4MWQ0NDI4OGM5MjM0
NGM3NmM4MmE2NzQ4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xOTgsNiArMTk4LDEwIEBAIHN0YXRpYyBjb25zdCBD
U1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5VGV4
dE92ZXJmbG93LAogICAgIENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybSwKICAgICBDU1NQcm9wZXJ0
eVRvcCwKKyAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheSwKKyAgICBDU1NQcm9wZXJ0eVRy
YW5zaXRpb25EdXJhdGlvbiwKKyAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eSwKKyAg
ICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwKICAgICBDU1NQcm9wZXJ0eVVu
aWNvZGVCaWRpLAogICAgIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbiwKICAgICBDU1NQcm9wZXJ0
eVZpc2liaWxpdHksCkBAIC0yNTIzLDE0ICsyNTI3LDE5IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9w
ZXJ0CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybVN0
eWxlOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZSgoc3R5bGUtPnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFuc2Zvcm1TdHlsZTNEUHJlc2Vy
dmUzRCkgPyBDU1NWYWx1ZVByZXNlcnZlM2QgOiBDU1NWYWx1ZUZsYXQpOworICAgICAgICBjYXNl
IENTU1Byb3BlcnR5VHJhbnNpdGlvbkRlbGF5OgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0VHJhbnNpdGlvbkRlbGF5OgogICAgICAgICAgICAgcmV0dXJuIGdldERlbGF5VmFsdWUoc3R5
bGUtPnRyYW5zaXRpb25zKCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1
cmF0aW9uOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1cmF0aW9u
OgogICAgICAgICAgICAgcmV0dXJuIGdldER1cmF0aW9uVmFsdWUoc3R5bGUtPnRyYW5zaXRpb25z
KCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvblByb3BlcnR5OgogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblByb3BlcnR5OgogICAgICAgICAgICAg
cmV0dXJuIGdldFRyYW5zaXRpb25Qcm9wZXJ0eVZhbHVlKHN0eWxlLT50cmFuc2l0aW9ucygpKTsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAg
ICAgICAgIHJldHVybiBnZXRUaW1pbmdGdW5jdGlvblZhbHVlKHN0eWxlLT50cmFuc2l0aW9ucygp
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb246CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOiB7CiAgICAgICAgICAgICBjb25zdCBBbmltYXRpb25M
aXN0KiBhbmltTGlzdCA9IHN0eWxlLT50cmFuc2l0aW9ucygpOwogICAgICAgICAgICAgaWYgKGFu
aW1MaXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGUwMDJlMTAyZWEwMzA3NzEw
N2M0OWMyMjk5MDEyZjcwNWQyYzgwYTYuLjZiMjlkMTQ4ZGU2ODVlZTg3MGI0ZWYxNGExOGEwZGIz
ZWU0YzM5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xNTM2LDYgKzE1MzYsMTcg
QEAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUHJv
cGVydHlTZXQoKQogICAgIHJldHVybiBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGVJbW11dGFibGUo
cmVzdWx0cy5kYXRhKCksIHJlc3VsdHMuc2l6ZSgpLCBtX2NvbnRleHQubW9kZSk7CiB9CiAKK3Zv
aWQgQ1NTUGFyc2VyOjphZGRQcmVmaXhlZEFuZFVuUHJlZml4ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEIHByb3BJZCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBi
b29sIGltcGxpY2l0KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsID0gdmFsdWUuZ2V0KCk7
CisgICAgYWRkUHJvcGVydHkocHJvcElkLCB2YWx1ZSwgaW1wb3J0YW50LCBpbXBsaWNpdCk7CisK
KyAgICBDU1NQcm9wZXJ0eUlEIHByZWZpeGVkT3JVbnByZWZpeGVkUHJvcGVydHlJRCA9IHByZWZp
eGVkT3JVblByZWZpeGVkUHJvcGVydHlJZChwcm9wSWQpOworICAgIGlmIChwcmVmaXhlZE9yVW5w
cmVmaXhlZFByb3BlcnR5SUQgPT0gcHJvcElkKQorICAgICAgICByZXR1cm47CisgICAgYWRkUHJv
cGVydHkocHJlZml4ZWRPclVucHJlZml4ZWRQcm9wZXJ0eUlELCB2YWwucmVsZWFzZSgpLCBpbXBv
cnRhbnQsIGltcGxpY2l0KTsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmFkZFByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcElkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9vbCBpbXBvcnRh
bnQsIGJvb2wgaW1wbGljaXQpCiB7CiAgICAgbV9wYXJzZWRQcm9wZXJ0aWVzLmFwcGVuZChDU1NQ
cm9wZXJ0eShwcm9wSWQsIHZhbHVlLCBpbXBvcnRhbnQsIG1fY3VycmVudFNob3J0aGFuZCwgbV9p
bXBsaWNpdFNob3J0aGFuZCB8fCBpbXBsaWNpdCkpOwpAQCAtMjU2NSw2ICsyNTc2LDEwIEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uUGxheVN0YXRlOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVRyYW5zaXRpb25EZWxheToKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1
cmF0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFu
c2l0aW9uRHVyYXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1p
bmdGdW5jdGlvbjoKQEAgLTI1NzIsNyArMjU4Nyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgUmVmUHRy
PENTU1ZhbHVlPiB2YWw7CiAgICAgICAgIEFuaW1hdGlvblBhcnNlQ29udGV4dCBjb250ZXh0Owog
ICAgICAgICBpZiAocGFyc2VBbmltYXRpb25Qcm9wZXJ0eShwcm9wSWQsIHZhbCwgY29udGV4dCkp
IHsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsLnJlbGVhc2UoKSwgaW1wb3J0
YW50KTsKKyAgICAgICAgICAgIGFkZFByZWZpeGVkQW5kVW5QcmVmaXhlZFByb3BlcnR5KHByb3BJ
ZCwgdmFsLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4MTEsOCArMjgyNiw5IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICAgICAgcmV0dXJuIHBhcnNlU2hvcnRoYW5kKHByb3BJZCwgd2Via2l0VGV4dFN0
cm9rZVNob3J0aGFuZCgpLCBpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRB
bmltYXRpb246CiAgICAgICAgIHJldHVybiBwYXJzZUFuaW1hdGlvblNob3J0aGFuZChpbXBvcnRh
bnQpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2l0aW9uOgotICAgICAgICByZXR1cm4gcGFyc2VUcmFuc2l0aW9uU2hvcnRo
YW5kKGltcG9ydGFudCk7CisgICAgICAgIHJldHVybiBwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQo
cHJvcElkLCBpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlJbnZhbGlkOgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2U6CkBAIC0zMzI5LDEyICsz
MzQ1LDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblNob3J0aGFuZChib29sIGlt
cG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJh
bnNpdGlvblNob3J0aGFuZChib29sIGltcG9ydGFudCkKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVRy
YW5zaXRpb25TaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQog
ewogICAgIGNvbnN0IHVuc2lnbmVkIG51bVByb3BlcnRpZXMgPSA0OwotICAgIEFTU0VSVChudW1Q
cm9wZXJ0aWVzID09IHdlYmtpdFRyYW5zaXRpb25TaG9ydGhhbmQoKS5sZW5ndGgoKSk7CisgICAg
Y29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kID0gc2hvcnRoYW5kRm9yUHJv
cGVydHkocHJvcElkKTsKKyAgICBBU1NFUlQobnVtUHJvcGVydGllcyA9PSBzaG9ydGhhbmQubGVu
Z3RoKCkpOwogCi0gICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NTUHJvcGVydHlXZWJr
aXRUcmFuc2l0aW9uKTsKKyAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBwcm9wSWQpOwog
CiAgICAgYm9vbCBwYXJzZWRQcm9wZXJ0eVtudW1Qcm9wZXJ0aWVzXSA9IHsgZmFsc2UgfTsKICAg
ICBBbmltYXRpb25QYXJzZUNvbnRleHQgY29udGV4dDsKQEAgLTMzNjAsNyArMzM3Nyw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAg
ICAgICAgIGZvciAoaSA9IDA7ICFmb3VuZCAmJiBpIDwgbnVtUHJvcGVydGllczsgKytpKSB7CiAg
ICAgICAgICAgICBpZiAoIXBhcnNlZFByb3BlcnR5W2ldKSB7CiAgICAgICAgICAgICAgICAgUmVm
UHRyPENTU1ZhbHVlPiB2YWw7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNlQW5pbWF0aW9uUHJv
cGVydHkod2Via2l0VHJhbnNpdGlvblNob3J0aGFuZCgpLnByb3BlcnRpZXMoKVtpXSwgdmFsLCBj
b250ZXh0KSkgeworICAgICAgICAgICAgICAgIGlmIChwYXJzZUFuaW1hdGlvblByb3BlcnR5KHNo
b3J0aGFuZC5wcm9wZXJ0aWVzKClbaV0sIHZhbCwgY29udGV4dCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgcGFyc2VkUHJvcGVydHlbaV0gPSBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIGFkZEFuaW1hdGlvblZhbHVlKHZhbHVlc1tpXSwgdmFsLnJlbGVhc2UoKSk7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtMzM4NSw3ICszNDAyLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJh
bnNpdGlvblNob3J0aGFuZChib29sIGltcG9ydGFudCkKIAogICAgIC8vIE5vdyBhZGQgYWxsIG9m
IHRoZSBwcm9wZXJ0aWVzIHdlIGZvdW5kLgogICAgIGZvciAoaSA9IDA7IGkgPCBudW1Qcm9wZXJ0
aWVzOyBpKyspCi0gICAgICAgIGFkZFByb3BlcnR5KHdlYmtpdFRyYW5zaXRpb25TaG9ydGhhbmQo
KS5wcm9wZXJ0aWVzKClbaV0sIHZhbHVlc1tpXS5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAg
ICAgIGFkZFByZWZpeGVkQW5kVW5QcmVmaXhlZFByb3BlcnR5KHNob3J0aGFuZC5wcm9wZXJ0aWVz
KClbaV0sIHZhbHVlc1tpXS5yZWxlYXNlKCksIGltcG9ydGFudCk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTQ1NjQsNiArNDU4MSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlv
blByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiByCiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgc3dpdGNoIChwcm9wSWQpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uRGVsYXk6CisgICAgICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheToKICAgICAgICAgICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5OgogICAgICAgICAgICAgICAgICAgICBjdXJy
VmFsdWUgPSBwYXJzZUFuaW1hdGlvbkRlbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChj
dXJyVmFsdWUpCkBAIC00NTc1LDYgKzQ1OTMsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VBbmlt
YXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUmVmUHRyPENTU1ZhbHVlPiYgcgog
ICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFu
aW1hdGlvbkR1cmF0aW9uOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0
aW9uRHVyYXRpb246CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
aXRpb25EdXJhdGlvbjoKICAgICAgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFyc2VBbmlt
YXRpb25EdXJhdGlvbigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoY3VyclZhbHVlKQpAQCAt
NDYwMCw2ICs0NjE5LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHIKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGN1cnJWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0
LT5uZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uUHJvcGVydHk6CiAgICAgICAgICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eToKICAgICAgICAgICAgICAgICAgICAg
Y3VyclZhbHVlID0gcGFyc2VBbmltYXRpb25Qcm9wZXJ0eShjb250ZXh0KTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHZhbHVlICYmICFjb250ZXh0LmFuaW1hdGlvblByb3BlcnR5S2V5d29yZEFs
bG93ZWQoKSkKQEAgLTQ2MDgsNiArNDYyOCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1h
dGlvblByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiByCiAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5p
bWF0aW9uVGltaW5nRnVuY3Rpb246CisgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRy
YW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgICAgICAgICAgICAgICAgICBjdXJy
VmFsdWUgPSBwYXJzZUFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjdXJyVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggZGNiYTAzMzc3MzJl
MjU2NjQzYjQxMzk1NDY5ZjE2OWFhMTAzNGRlMi4uMTZkZTQxMGY3OTNlNzdjMjgzNzRiNzQ0OWJh
NmJlMDI1MmI0NWQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtOTQsNiArOTQsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gcGFyc2VJbmxp
bmVTdHlsZURlY2xhcmF0aW9uKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqKTsKICAgICBQYXNzT3du
UHRyPE1lZGlhUXVlcnk+IHBhcnNlTWVkaWFRdWVyeShjb25zdCBTdHJpbmcmKTsKIAorICAgIHZv
aWQgYWRkUHJlZml4ZWRBbmRVblByZWZpeGVkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFsc2UpOwog
ICAgIHZvaWQgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4s
IGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFsc2UpOwogICAgIHZvaWQgcm9sbGJh
Y2tMYXN0UHJvcGVydGllcyhpbnQgbnVtKTsKICAgICBib29sIGhhc1Byb3BlcnRpZXMoKSBjb25z
dCB7IHJldHVybiAhbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKTsgfQpAQCAtMTUxLDcgKzE1
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVHJhbnNmb3JtT3JpZ2luU2hvcnRoYW5kKFJl
ZlB0cjxDU1NWYWx1ZT4mLCBSZWZQdHI8Q1NTVmFsdWU+JiwgUmVmUHRyPENTU1ZhbHVlPiYpOwog
ICAgIGJvb2wgcGFyc2VDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUoQ1NTUGFyc2VyVmFs
dWVMaXN0KiYgYXJncywgZG91YmxlJiByZXN1bHQpOwogICAgIGJvb2wgcGFyc2VBbmltYXRpb25Q
cm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBSZWZQdHI8Q1NTVmFsdWU+JiwgQW5pbWF0aW9uUGFyc2VD
b250ZXh0Jik7Ci0gICAgYm9vbCBwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQoYm9vbCBpbXBvcnRh
bnQpOworICAgIGJvb2wgcGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQsIGJv
b2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlQW5pbWF0aW9uU2hvcnRoYW5kKGJvb2wgaW1w
b3J0YW50KTsKIAogICAgIGJvb2wgY3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmluZGV4IDNhNDAyY2ZmNzVkZmUzNWNlMjViZDUwYzg3MTdh
NWUxZTQ2NWQwNmEuLmEyYzBlNmNkYjEyYjRkMTM3MGFiNzQ5NjlkOTEwNzQyYjEzMjYyYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtNDg5LDYgKzQ4OSwxMSBAQCBib29sIENT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkK
ICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFVuZGVybGluZVN0eWxlOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0VW5kZXJsaW5lV2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRvcDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlv
bkRlbGF5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRHVyYXRpb246CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJh
bnNpdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlVbmljb2RlQmlkaToK
ICAgICBjYXNlIENTU1Byb3BlcnR5VW5pY29kZVJhbmdlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlW
ZXJ0aWNhbEFsaWduOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAppbmRleCA1MjJjOWRmMWI5NmFl
YjdlNDZiZjZhMGY1Y2VlYmYwZGU5NDI5MWQ0Li43N2FjMjgwYjEzODQ5MjY4ODdjYWQzODU5OTZj
NTc0YTMwMDIyZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaApAQCAtOTIsNiArOTIsNDgg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fdmFsdWU7CiB9OwogCitpbmxpbmUg
Q1NTUHJvcGVydHlJRCBwcmVmaXhlZE9yVW5QcmVmaXhlZFByb3BlcnR5SWQoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQpCit7CisgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVydHlJ
bnZhbGlkOworICAgIHN3aXRjaCAocHJvcElkKSB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5z
aXRpb25EZWxheToKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5V2Via2l0VHJhbnNp
dGlvbkRlbGF5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlv
bkR1cmF0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0
aW9uRHVyYXRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0
aW9uUHJvcGVydHk6CisgICAgICAgIHByb3BlcnR5SWQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
aXRpb25Qcm9wZXJ0eTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5z
aXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5V2Vi
a2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1Byb3BlcnR5VHJhbnNpdGlvbjoKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5V2Vi
a2l0VHJhbnNpdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRyYW5zaXRpb25EZWxheToKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5VHJhbnNp
dGlvbkRlbGF5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJh
bnNpdGlvbkR1cmF0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVydHlUcmFuc2l0
aW9uRHVyYXRpb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
cmFuc2l0aW9uUHJvcGVydHk6CisgICAgICAgIHByb3BlcnR5SWQgPSBDU1NQcm9wZXJ0eVRyYW5z
aXRpb25Qcm9wZXJ0eTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3Bl
cnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbjoKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3Bl
cnR5VHJhbnNpdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcHJv
cGVydHlJZCA9IHByb3BJZDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVChwcm9w
ZXJ0eUlkICE9IENTU1Byb3BlcnR5SW52YWxpZCk7CisgICAgcmV0dXJuIHByb3BlcnR5SWQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGFjM2ZkZTU2MTViNWIxMzljOGZhZDE0NDk5
ODk2ZDRhZDdiNjY2ZGEuLjk2ZDY3NTZkNjVhY2U2OWQ4YjFlZDQ5Yjc5ODIyNmQzMDI4Y2M0ODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0xODIsMTEgKzE4Miwx
MSBAQCB0ZXh0LXVuZGVybGluZS1tb2RlCiB0ZXh0LXVuZGVybGluZS1zdHlsZQogdGV4dC11bmRl
cmxpbmUtd2lkdGgKIHRvcAotdHJhbnNpdGlvbiA9IC13ZWJraXQtdHJhbnNpdGlvbgotdHJhbnNp
dGlvbi1kZWxheSA9IC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheQotdHJhbnNpdGlvbi1kdXJhdGlv
biA9IC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbgotdHJhbnNpdGlvbi1wcm9wZXJ0eSA9IC13
ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eQotdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gPSAt
d2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uCit0cmFuc2l0aW9uCit0cmFuc2l0aW9u
LWRlbGF5Cit0cmFuc2l0aW9uLWR1cmF0aW9uCit0cmFuc2l0aW9uLXByb3BlcnR5Cit0cmFuc2l0
aW9uLXRpbWluZy1mdW5jdGlvbgogCiB1bmljb2RlLWJpZGkKIHVuaWNvZGUtcmFuZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCAwNjM0MTU0ZGE1OGNkY2YxMmEz
MDJlMzcwYTM3YjQ1OGQyMGYwODJlLi5lYmNjNmI4NThkZTJiMjA0M2JhMzQ4ZTgwZTFkNjgzMWIx
NDcwOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBAIC0xNzIs
NiArMTcyLDggQEAgU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmdldFByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAgICByZXR1cm4gZ2V0Q29tbW9uVmFs
dWUob3ZlcmZsb3dTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CiAg
ICAgICAgIHJldHVybiBnZXQ0VmFsdWVzKHBhZGRpbmdTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVRyYW5zaXRpb246CisgICAgICAgIHJldHVybiBnZXRMYXllcmVkU2hvcnRoYW5k
VmFsdWUodHJhbnNpdGlvblNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0
eWxlOgogICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUobGlzdFN0eWxlU2hvcnRoYW5k
KCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb246CkBAIC01NzgsNyAr
NTgwLDE1IEBAIGJvb2wgU3R5bGVQcm9wZXJ0eVNldDo6cmVtb3ZlU2hvcnRoYW5kUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQgc2hv
cnRoYW5kID0gc2hvcnRoYW5kRm9yUHJvcGVydHkocHJvcGVydHlJRCk7CiAgICAgaWYgKCFzaG9y
dGhhbmQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gcmVtb3Zl
UHJvcGVydGllc0luU2V0KHNob3J0aGFuZC5wcm9wZXJ0aWVzKCksIHNob3J0aGFuZC5sZW5ndGgo
KSk7CisKKyAgICBib29sIHJldCA9IHJlbW92ZVByb3BlcnRpZXNJblNldChzaG9ydGhhbmQucHJv
cGVydGllcygpLCBzaG9ydGhhbmQubGVuZ3RoKCkpOworCisgICAgQ1NTUHJvcGVydHlJRCBwcmVm
aXhlZE9yVW5wcmVmaXhlZElEID0gcHJlZml4ZWRPclVuUHJlZml4ZWRQcm9wZXJ0eUlkKHByb3Bl
cnR5SUQpOworICAgIGlmIChwcmVmaXhlZE9yVW5wcmVmaXhlZElEID09IHByb3BlcnR5SUQpCisg
ICAgICAgIHJldHVybiByZXQ7CisKKyAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kIHByZWZpeGVk
T3JVbnByZWZpeGVkU2hvcnRoYW5kID0gc2hvcnRoYW5kRm9yUHJvcGVydHkocHJlZml4ZWRPclVu
cHJlZml4ZWRJRCk7CisgICAgcmV0dXJuIHJlbW92ZVByb3BlcnRpZXNJblNldChwcmVmaXhlZE9y
VW5wcmVmaXhlZFNob3J0aGFuZC5wcm9wZXJ0aWVzKCksIHByZWZpeGVkT3JVbnByZWZpeGVkU2hv
cnRoYW5kLmxlbmd0aCgpKTsKIH0KIAogYm9vbCBTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZyogcmV0dXJuVGV4dCkKQEAgLTYw
NCwxMCArNjE0LDIwIEBAIGJvb2wgU3R5bGVQcm9wZXJ0eVNldDo6cmVtb3ZlUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlELCBTdHJpbmcqIHJldHVyblRlCiAgICAgLy8gQSBtb3JlIGVm
ZmljaWVudCByZW1vdmFsIHN0cmF0ZWd5IHdvdWxkIGludm9sdmUgbWFya2luZyBlbnRyaWVzIGFz
IGVtcHR5CiAgICAgLy8gYW5kIHN3ZWVwaW5nIHRoZW0gd2hlbiB0aGUgdmVjdG9yIGdyb3dzIHRv
byBiaWcuCiAgICAgbXV0YWJsZVByb3BlcnR5VmVjdG9yKCkucmVtb3ZlKGZvdW5kUHJvcGVydHlJ
bmRleCk7Ci0gICAgCisKKyAgICByZW1vdmVQcmVmaXhlZE9yVW5wcmVmaXhlZFByb3BlcnR5KHBy
b3BlcnR5SUQpOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5bGVQcm9wZXJ0eVNl
dDo6cmVtb3ZlUHJlZml4ZWRPclVucHJlZml4ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SUQpCit7CisgICAgaW50IGZvdW5kUHJvcGVydHlJbmRleCA9IGZpbmRQcm9wZXJ0eUluZGV4
KHByZWZpeGVkT3JVblByZWZpeGVkUHJvcGVydHlJZChwcm9wZXJ0eUlEKSk7CisgICAgaWYgKGZv
dW5kUHJvcGVydHlJbmRleCA9PSAtMSkKKyAgICAgICAgcmV0dXJuOworICAgIG11dGFibGVQcm9w
ZXJ0eVZlY3RvcigpLnJlbW92ZShmb3VuZFByb3BlcnR5SW5kZXgpOworfQorCiBib29sIFN0eWxl
UHJvcGVydHlTZXQ6OnByb3BlcnR5SXNJbXBvcnRhbnQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
KSBjb25zdAogewogICAgIGludCBmb3VuZFByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVydHlJbmRl
eChwcm9wZXJ0eUlEKTsKQEAgLTY3OSwxMCArNjk5LDI4IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNl
dDo6c2V0UHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5LCBDU1NQcm9wZXJ0eSog
c2xvCiAgICAgICAgIENTU1Byb3BlcnR5KiB0b1JlcGxhY2UgPSBzbG90ID8gc2xvdCA6IGZpbmRN
dXRhYmxlQ1NTUHJvcGVydHlXaXRoSUQocHJvcGVydHkuaWQoKSk7CiAgICAgICAgIGlmICh0b1Jl
cGxhY2UpIHsKICAgICAgICAgICAgICp0b1JlcGxhY2UgPSBwcm9wZXJ0eTsKKyAgICAgICAgICAg
IHNldFByZWZpeGVkT3JVblByZWZpeGVkUHJvcGVydHkocHJvcGVydHkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAgIGFwcGVuZFByZWZpeGVkQW5kVW5wcmVmaXhl
ZChwcm9wZXJ0eSk7Cit9CisKK3ZvaWQgU3R5bGVQcm9wZXJ0eVNldDo6YXBwZW5kUHJlZml4ZWRB
bmRVbnByZWZpeGVkKGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSkKK3sKICAgICBtdXRhYmxl
UHJvcGVydHlWZWN0b3IoKS5hcHBlbmQocHJvcGVydHkpOworICAgIENTU1Byb3BlcnR5SUQgcHJl
Zml4ZWRPclVucHJlZml4ZWRJRCA9IHByZWZpeGVkT3JVblByZWZpeGVkUHJvcGVydHlJZChwcm9w
ZXJ0eS5pZCgpKTsKKyAgICBpZiAocHJlZml4ZWRPclVucHJlZml4ZWRJRCA9PSBwcm9wZXJ0eS5p
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgbXV0YWJsZVByb3BlcnR5VmVjdG9yKCkuYXBwZW5k
KENTU1Byb3BlcnR5KHByZWZpeGVkT3JVbnByZWZpeGVkSUQsIHByb3BlcnR5LnZhbHVlKCksIHBy
b3BlcnR5LmlzSW1wb3J0YW50KCksIHByb3BlcnR5LnNob3J0aGFuZElEKCksIHByb3BlcnR5Lm1l
dGFkYXRhKCkubV9pbXBsaWNpdCkpOworfQorCit2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnNldFBy
ZWZpeGVkT3JVblByZWZpeGVkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5KQor
eworICAgIENTU1Byb3BlcnR5SUQgcHJlZml4ZWRPclVucHJlZml4ZWRJRCA9IHByZWZpeGVkT3JV
blByZWZpeGVkUHJvcGVydHlJZChwcm9wZXJ0eS5pZCgpKTsKKyAgICBDU1NQcm9wZXJ0eSogdG9S
ZXBsYWNlID0gZmluZE11dGFibGVDU1NQcm9wZXJ0eVdpdGhJRChwcmVmaXhlZE9yVW5wcmVmaXhl
ZElEKTsKKyAgICBpZiAodG9SZXBsYWNlKQorICAgICAgICAqdG9SZXBsYWNlID0gQ1NTUHJvcGVy
dHkocHJlZml4ZWRPclVucHJlZml4ZWRJRCwgcHJvcGVydHkudmFsdWUoKSwgcHJvcGVydHkuaXNJ
bXBvcnRhbnQoKSwgcHJvcGVydHkuc2hvcnRoYW5kSUQoKSwgcHJvcGVydHkubWV0YWRhdGEoKS5t
X2ltcGxpY2l0KTsKIH0KIAogYm9vbCBTdHlsZVByb3BlcnR5U2V0OjpzZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQsIGludCBpZGVudGlmaWVyLCBib29sIGltcG9ydGFudCkKQEAg
LTgzMyw2ICs4NzEsMTIgQEAgU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmFzVGV4dCgpIGNvbnN0
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdDoKICAgICAgICAgICAgIHNob3J0
aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVBhZGRpbmc7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EdXJhdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5z
aXRpb25EZWxheToKKyAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0
eVRyYW5zaXRpb247CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbk5hbWU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmlt
YXRpb25EdXJhdGlvbjoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRp
bWluZ0Z1bmN0aW9uOgpAQCAtOTkxLDcgKzEwMzUsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6
Om1lcmdlQW5kT3ZlcnJpZGVPbkNvbmZsaWN0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIG90aGVy
KQogICAgICAgICBpZiAob2xkKQogICAgICAgICAgICAgc2V0UHJvcGVydHkodG9NZXJnZS50b0NT
U1Byb3BlcnR5KCksIG9sZCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG11dGFibGVQcm9w
ZXJ0eVZlY3RvcigpLmFwcGVuZCh0b01lcmdlLnRvQ1NTUHJvcGVydHkoKSk7CisgICAgICAgICAg
ICBhcHBlbmRQcmVmaXhlZEFuZFVucHJlZml4ZWQodG9NZXJnZS50b0NTU1Byb3BlcnR5KCkpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKaW5kZXggMDJlMDA4
M2FhN2JmNmE3NzQ0MDQzYWRlODBiYTI1NDEwZTc5OWI1ZC4uNTEyMDljY2I3YTczMWNlMmJiNjU5
Mzg1MzQ1MWZmYTZjZmRlMWIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydHlTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5o
CkBAIC0xMTQsOSArMTE0LDEyIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIGRvIG5vdC4gRklY
TUU6IFRoaXMgaXMgdG9vIG1lc3N5LCB3ZSBjYW4gZG8gYmV0dGVyLgogICAgIGJvb2wgc2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlJRCwgaW50IGlkZW50aWZpZXIsIGJvb2wgaW1wb3J0YW50ID0gZmFs
c2UpOworICAgIHZvaWQgYXBwZW5kUHJlZml4ZWRBbmRVbnByZWZpeGVkKGNvbnN0IENTU1Byb3Bl
cnR5Jik7CisgICAgdm9pZCBzZXRQcmVmaXhlZE9yVW5QcmVmaXhlZFByb3BlcnR5KGNvbnN0IENT
U1Byb3BlcnR5Jik7CiAgICAgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBDU1NQcm9wZXJ0eSYsIENT
U1Byb3BlcnR5KiBzbG90ID0gMCk7CiAgICAgCiAgICAgYm9vbCByZW1vdmVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlELCBTdHJpbmcqIHJldHVyblRleHQgPSAwKTsKKyAgICB2b2lkIHJlbW92ZVByZWZp
eGVkT3JVbnByZWZpeGVkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CiAKICAgICB2b2lkIHBhcnNl
RGVjbGFyYXRpb24oY29uc3QgU3RyaW5nJiBzdHlsZURlY2xhcmF0aW9uLCBTdHlsZVNoZWV0Q29u
dGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydHlTaG9ydGhhbmQuY3BwCmluZGV4IGI1MThlOTg3YzJhZDIwZmI4MmZjMjc1Y2E2MTY4
MmMzM2FhMGQwOTAuLmMzMmY2ZDA0NWVlYTVkOWVmNzI1NDYyNjI2NTU0NGY5ODRmNDllOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHAKQEAgLTI0
Niw2ICsyNDYsMTggQEAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgcGFkZGluZ1Nob3J0
aGFuZCgpCiAgICAgcmV0dXJuIHBhZGRpbmdMb25naGFuZHM7CiB9CiAKK2NvbnN0IFN0eWxlUHJv
cGVydHlTaG9ydGhhbmQmIHRyYW5zaXRpb25TaG9ydGhhbmQoKQoreworICAgIHN0YXRpYyBjb25z
dCBDU1NQcm9wZXJ0eUlEIHRyYW5zaXRpb25Qcm9wZXJ0aWVzW10gPSB7CisgICAgICAgIENTU1By
b3BlcnR5VHJhbnNpdGlvblByb3BlcnR5LAorICAgICAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25E
dXJhdGlvbiwKKyAgICAgICAgQ1NTUHJvcGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24sCisg
ICAgICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbkRlbGF5CisgICAgfTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0eWxlUHJvcGVydHlTaG9ydGhhbmQsIHRyYW5zaXRpb25Mb25naGFuZHMsICh0
cmFuc2l0aW9uUHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdUSCh0cmFuc2l0aW9uUHJvcGVydGll
cykpKTsKKyAgICByZXR1cm4gdHJhbnNpdGlvbkxvbmdoYW5kczsKK30KKwogY29uc3QgU3R5bGVQ
cm9wZXJ0eVNob3J0aGFuZCYgd2Via2l0QW5pbWF0aW9uU2hvcnRoYW5kKCkKIHsKICAgICBzdGF0
aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBhbmltYXRpb25Qcm9wZXJ0aWVzW10gPSB7CkBAIC00OTMs
NiArNTA1LDggQEAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kRm9yUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgICAgICByZXR1cm4gb3ZlcmZsb3dT
aG9ydGhhbmQoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZzoKICAgICAgICAgcmV0dXJu
IHBhZGRpbmdTaG9ydGhhbmQoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKKyAg
ICAgICAgcmV0dXJuIHRyYW5zaXRpb25TaG9ydGhhbmQoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0QW5pbWF0aW9uOgogICAgICAgICByZXR1cm4gd2Via2l0QW5pbWF0aW9uU2hvcnRoYW5k
KCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckFmdGVyOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmgKaW5kZXggNWVhZDhhYjlhZTczMTI0MWFh
MTY3ZTBkYjFmMWIyMmQ3ZDgxYjliZi4uNDA5OGI1Y2UxNjFhM2MxMDBmNWE1NjExOTBiYzQxY2Zh
NDJhNzE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTaG9y
dGhhbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5o
CkBAIC04MCw2ICs4MCw3IEBAIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIG1hcmdpblNo
b3J0aGFuZCgpOwogY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgb3V0bGluZVNob3J0aGFu
ZCgpOwogY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgb3ZlcmZsb3dTaG9ydGhhbmQoKTsK
IGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHBhZGRpbmdTaG9ydGhhbmQoKTsKK2NvbnN0
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHRyYW5zaXRpb25TaG9ydGhhbmQoKTsKIGNvbnN0IFN0
eWxlUHJvcGVydHlTaG9ydGhhbmQmIHdlYmtpdEFuaW1hdGlvblNob3J0aGFuZCgpOwogY29uc3Qg
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgd2Via2l0QW5pbWF0aW9uU2hvcnRoYW5kRm9yUGFyc2lu
ZygpOwogY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgd2Via2l0Qm9yZGVyQWZ0ZXJTaG9y
dGhhbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA5ZmRhNWU0YjJl
MTkzMjczNDkzNmRiM2ZmNmI0Yjg4NDMzOTBjMzkxLi45NmMwOGJhZTliMTUxYzEyMWE2ODZlODAy
ZDgyY2M3OGEwNDg3ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0z
NTc2LDYgKzM1NzYsMTIgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1By
b3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0
R3JpZEl0ZW1Sb3cocm93KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAvLyBUaGVzZSBw
cm9wZXJ0aWVzIGFyZSBhbGlhc2VkIGFuZCBTdHlsZUJ1aWxkZXIgYWxyZWFkeSBhcHBsaWVkIHRo
ZSBwcm9wZXJ0eSBvbiB0aGUgcHJlZml4ZWQgdmVyc2lvbi4KKyAgICBjYXNlIENTU1Byb3BlcnR5
VHJhbnNpdGlvbkRlbGF5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRHVyYXRpb246
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICBjYXNlIENTU1By
b3BlcnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICByZXR1cm47CiAgICAgLy8g
VGhlc2UgcHJvcGVydGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIFN0eWxlQnVpbGRlciBsb29r
dXAgdGFibGUuCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRBdHRhY2htZW50OgogICAg
IGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ2xpcDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NDg2NzRhMGE0YWExZDBh
NTcyZTY2YzQ1ZTRhNGUwZjk5YTQzZGEwLi40MjU4OWI1YmRjYjkzMzAwNWVkYTU0ODYwNWJhYTRl
NWExZThmODE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMjggIEFsZXhpcyBNZW5h
cmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KKworICAgICAgICB0cmFuc2l0aW9uIHByb3BlcnRpZXMg
Y2FuJ3QgYmUgZm91bmQgaW4gQ1NTU3R5bGVEZWNsYXJhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBsYXlvdXQgdGVzdCB0byBjb3Zl
ciB0aGUgYnVnLgorCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5o
dG1sOgorCiAyMDEzLTAyLTI1ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eSBwcm9wZXJ0eSBkb2Vzbid0IGFjY2VwdCAiYWxs
LCA8SURFTlQ+Ii4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRp
b25zLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbnMtcGFyc2luZy1leHBlY3RlZC50eHQKaW5kZXggZDY4YWU3YzRmMTQ2YzM5YjM1ODZhYzE3
NmFjNjEwMTk4MzRkNjNlZC4uZjczMjAxZGE3Mjg2YzJlMDhlNDllYWUxMGY5NTYzZTQ0NDAyYzlj
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2lu
Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMt
cGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiBWYWxpZCB0cmFuc2l0aW9uLXByb3BlcnR5IHZhbHVlcy4KIFBBU1MgY29tcHV0ZWRTdHls
ZS50cmFuc2l0aW9uUHJvcGVydHkgaXMgJ2FsbCcKIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRU
cmFuc2l0aW9uUHJvcGVydHkgaXMgJ2FsbCcKK1BBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4
T2YoJ3RyYW5zaXRpb25Qcm9wZXJ0eScpIGlzIG5vdCAtMQorUEFTUyBPYmplY3Qua2V5cyhzdHls
ZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvblByb3BlcnR5JykgaXMgbm90IC0xCiBQQVNTIHN0
eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnbm9uZScKIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFu
c2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCiBQQVNTIHN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9w
ZXJ0eSBpcyAnbm9uZScKQEAgLTk4LDYgKzEwMCw4IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJr
aXRUcmFuc2l0aW9uUHJvcGVydHkgaXMgJ2FsbCcKIFZhbGlkIHRyYW5zaXRpb24tZHVyYXRpb24g
dmFsdWVzLgogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMnCiBQ
QVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKK1BBU1Mg
T2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EdXJhdGlvbicpIGlzIG5vdCAt
MQorUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkR1cmF0
aW9uJykgaXMgbm90IC0xCiBQQVNTIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMnCiBQ
QVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKIFBBU1Mgc3R5bGUu
d2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKQEAgLTE0Niw2ICsxNTAsOCBAQCBQQVNT
IGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKIFZhbGlkIHRy
YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZhbHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFu
c2l0aW9uVGltaW5nRnVuY3Rpb24gaXMgJ2Vhc2UnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0
VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdlYXNlJworUEFTUyBPYmplY3Qua2V5cyhzdHls
ZSkuaW5kZXhPZigndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJykgaXMgbm90IC0xCitQQVNTIE9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24n
KSBpcyBub3QgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5l
YXInCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5l
YXInCiBQQVNTIHN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiBpcyAnbGluZWFy
JwpAQCAtMjkwLDYgKzI5Niw4IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9u
VGltaW5nRnVuY3Rpb24gaXMgJ2Vhc2UnCiBWYWxpZCB0cmFuc2l0aW9uLWRlbGF5IHZhbHVlcy4K
IFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkgaXMgJzBzJwogUEFTUyBjb21wdXRl
ZFN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSBpcyAnMHMnCitQQVNTIE9iamVjdC5rZXlzKHN0
eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRGVsYXknKSBpcyBub3QgLTEKK1BBU1MgT2JqZWN0Lmtl
eXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25EZWxheScpIGlzIG5vdCAtMQogUEFT
UyBzdHlsZS50cmFuc2l0aW9uRGVsYXkgaXMgJzBzJwogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5z
aXRpb25EZWxheSBpcyAnMHMnCiBQQVNTIHN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSBpcyAn
MHMnCkBAIC0zMzgsNiArMzQ2LDggQEAgUEFTUyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRp
b25EZWxheSBpcyAnMHMnCiBWYWxpZCB0cmFuc2l0aW9uIHNob3J0aGFuZCB2YWx1ZXMuCiBQQVNT
IGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiBpcyAnYWxsIDBzIGVhc2UgMHMnCiBQQVNTIGNvbXB1
dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbiBpcyAnYWxsIDBzIGVhc2UgMHMnCitQQVNTIE9iamVj
dC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uJykgaXMgbm90IC0xCitQQVNTIE9iamVj
dC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uJykgaXMgbm90IC0xCiBQQVNT
IHN0eWxlLnRyYW5zaXRpb24gaXMgJ25vbmUnCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlv
biBpcyAnbm9uZSAwcyBlYXNlIDBzJwogUEFTUyBzdHlsZS53ZWJraXRUcmFuc2l0aW9uIGlzICdu
b25lJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFy
c2luZy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5o
dG1sCmluZGV4IDdkY2M5ZjRmODE3OWI5YmQ5ZDU0NDNlYjViNmFkZjhiOGNkNzE3YTMuLmJlMmRl
ZjExMTQ3YzRmYmQ2ZjFmNmMzNmM0YmJjNGFlMTJkNDI5N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWwKQEAgLTMwLDYgKzMwLDggQEAg
c2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblByb3BlcnR5IiwgIidhbGwnIik7CiBz
aG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ2FsbCci
KTsKIAogc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gIm5vbmUiOworc2hvdWxkTm90QmUoIk9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHknKSIsICItMSIpOwor
c2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9u
UHJvcGVydHknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIs
ICInbm9uZSciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIs
ICInbm9uZSciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAi
J25vbmUnIik7CkBAIC0xNzIsNiArMTc0LDggQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJh
bnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtp
dFRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlv
biA9ICIwcyI7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5z
aXRpb25EdXJhdGlvbicpIiwgIi0xIik7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUp
LmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25EdXJhdGlvbicpIiwgIi0xIik7CiBzaG91bGRCZSgi
c3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0
eWxlLnRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0
VHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKQEAgLTI1MCw2ICsyNTQsOCBAQCBzaG91bGRC
ZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2Vhc2UnIik7CiBz
aG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAi
J2Vhc2UnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiA9ICJsaW5lYXIiOwor
c2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uVGltaW5n
RnVuY3Rpb24nKSIsICItMSIpOworc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRl
eE9mKCd3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nKSIsICItMSIpOwogc2hvdWxkQmUo
InN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInbGluZWFyJyIpOwogc2hvdWxkQmUo
ImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5lYXInIik7CiBz
aG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5lYXIn
Iik7CkBAIC00NzEsNiArNDc3LDggQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlv
bkRlbGF5IiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRp
b25EZWxheSIsICInMHMnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25EZWxheSA9ICIwcyI7CitzaG91
bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EZWxheScpIiwg
Ii0xIik7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRy
YW5zaXRpb25EZWxheScpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvbkRlbGF5
IiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSIsICIn
MHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsK
QEAgLTU0OSw2ICs1NTcsOCBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIiwg
IidhbGwgMHMgZWFzZSAwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5z
aXRpb24iLCAiJ2FsbCAwcyBlYXNlIDBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uID0gIm5vbmUi
Oworc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uJyki
LCAiLTEiKTsKK3Nob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0
VHJhbnNpdGlvbicpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvbiIsICInbm9u
ZSciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb24iLCAiJ25vbmUgMHMgZWFz
ZSAwcyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uIiwgIidub25lJyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190994</attachid>
            <date>2013-03-01 11:04:59 -0800</date>
            <delta_ts>2013-03-04 07:11:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110011-20130301160109.patch</filename>
            <type>text/plain</type>
            <size>31708</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyODhlOWVjYThhMWM5
NGI0YWY5ZjlmMjQ2ZmE5ZWE0MTdkNjkxYi4uNjI0MjM3NzVlMmY5OWMyZjk4YWIyNzQxZDNiNjNm
YzFhNDQ2MmZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEzLTAyLTI4ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgdHJhbnNpdGlvbiBwcm9w
ZXJ0aWVzIGNhbid0IGJlIGZvdW5kIGluIENTU1N0eWxlRGVjbGFyYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDAxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmV2aW91cyBhcHByb2Fj
aCBmb3IgaGFuZGxpbmcgdGhlIHVucHJlZml4aW5nIHdhcyB0byBhbGlhcyB0aGUKKyAgICAgICAg
dW5wcmVmaXhlZCBwcm9wZXJ0aWVzIHdpdGggdGhlIHByZWZpeGVkIG9uZXMgaW4gQ1NTUHJvcGVy
dHlOYW1lcy5pbi4KKyAgICAgICAgVW5mb3J0dW5hdGVseSBpdCB3aWxsIGFsaWFzIHRoZSBwcm9w
ZXJ0aWVzIGluIHRoZSBwYXJzaW5nIGNvZGUgd2hpY2ggd2lsbCBqdXN0CisgICAgICAgIGlkZW50
aWNhbGx5IHBhcnNlIHRoZSB0d28gdmVyc2lvbnMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHdlIHBv
cHVsYXRlIFN0eWxlUHJvcGVydHlTZXQKKyAgICAgICAgd2UgZG8gbm90IGhhdmUgaW5mb3JtYXRp
b24gd2hldGhlciB3ZSBqdXN0IHBhcnNlZCB0aGUgcHJlZml4ZWQsIHRoZQorICAgICAgICB1bnBy
ZWZpeGVkIHByb3BlcnRpZXMgb3Igd2UgcGFyc2VkIGJvdGguIFRoZSBwYXRjaCB0YWtlcyBhbm90
aGVyCisgICAgICAgIGFwcHJvYWNoIGJ5IGNyZWF0aW5nIHR3byBkaXN0aW5jdCBzZXRzIG9mIHBy
b3BlcnRpZXMgKHVucHJlZml4ZWQgYW5kCisgICAgICAgIHByZWZpeGVkKS4gRWFjaCBwcm9wZXJ0
aWVzIGhhdmUgdGhlaXIgb3duIGlkIGFuZCB3ZSBub3cgaGFuZGxlIHRoZW0gaW4KKyAgICAgICAg
dGhlIHBhcnNpbmcgY29kZSBhcyBkaXNjdGludHMgcHJvcGVydGllcyBhbmQgYWRkIGJvdGggdmVy
c2lvbnMgdG8gdGhlCisgICAgICAgIGRlY2xhcmVkIHN0eWxlLiBJbiBvcmRlciB0byBhdm9pZCBw
cm9wZXJ0aWVzIGdldHRpbmcgb3V0IG9mIHN5bmMsIAorICAgICAgICB0aGlzIHBhdGNoIGFkZHMg
ZmV3IGZhY2lsaXRpZXMgdG8gU3R5bGVQcm9wZXJ0eVNldCB0byB1cGRhdGUgdGhlCisgICAgICAg
IHByZWZpeGVkIGFuZCB0aGUgdW5wcmVmaXhlZCBlbnRyaWVzLiBGaW5hbGx5IHRoZSBzdHlsZSBy
ZXNvbHV0aW9uCisgICAgICAgIGhhcHBlbnMgb25seSBmb3IgdGhlIHByZWZpeGVkIHZlcnNpb24g
KHRvIGxpbWl0IHRoZSBzaXplIG9mIHRoaXMgcGF0Y2gpCisgICAgICAgIGFuZCB0aGUgdW5wcmVm
aXhlZCB2ZXJzaW9ucyBhcmUgbm90IHJlc29sdmVkLiBUaGlzIGlzIHRvIGF2b2lkIGNyZWF0aW5n
CisgICAgICAgIHRoZSBhbmltYXRpb24gb2JqZWN0cyB0d2ljZSBmb3IgdGhlIHJlc29sdmVkIHN0
eWxlLgorCisgICAgICAgIFRlc3QgOiB0cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjphZGRQcm9wZXJ0eVdpdGhQcmVmaXhpbmdW
YXJpYW50KTogQWx3YXlzIGFkZCB0aGUKKyAgICAgICAgcHJlZml4ZWQgYW5kIHRoZSB1bnByZWZp
eGVkIHByb3BlcnR5IGV2ZW4gaWYgb25seSBvbmUgaXMgc3BlY2lmaWVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQpOiBBZGQgYm90
aCBwcmVmaXhlZCBhbmQKKyAgICAgICAgdW5wcmVmaXhlZCBsb25naGFuZHMgdG8gdGhlIGRlY2xh
cmF0ZWQgc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9u
UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKENTU1BhcnNl
cik6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVy
dHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OiBwcmVmaXhpbmdWYXJpYW50Rm9yUHJvcGVydHlJZCk6
IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBnaXZlbgorICAgICAgICBwcm9wZXJ0eSBpZCBhbmQgcmV0
dXJucyBpdHMgcHJlZml4ZWQgb3IgdW5wcmVmaXhlZCBpZCBpZiBpdCBleGlzdHMuIElmCisgICAg
ICAgIG5vdCBpdCByZXR1cm5zIHRoZSBzYW1lIGlkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Z2V0UHJvcGVy
dHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVTaG9y
dGhhbmRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpyZW1v
dmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVQ
cm9wZXJ0eSk6IFJlbW92ZQorICAgICAgICBhbHNvIHRoZSBwcmVmaXhlZCBvciB1bnByZWZpeGVk
IHNob3J0aGFuZCBpZiBpdCBleGlzdHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OnNldFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUHJvcGVydHlTZXQ6OiBhcHBlbmRQcmVmaXhpbmdWYXJpYW50UHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6c2V0UHJlZml4aW5nVmFyaWFudFByb3Bl
cnR5KTogSWYgaXQKKyAgICAgICAgZXhpc3RzIGEgdW5wcmVmaXhlZCBvciBwcmVmaXhlZCBjb3Vu
dGVycGFydCBvZiB0aGUgcHJvcGVydHkgd2UncmUKKyAgICAgICAgdHJ5aW5nIHRvIHNldCwgdGhl
biB3ZSB1cGRhdGUgdGhlIG90aGVyIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVy
dHlTZXQ6OmFzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjptZXJn
ZUFuZE92ZXJyaWRlT25Db25mbGljdCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQu
aDoKKyAgICAgICAgKFN0eWxlUHJvcGVydHlTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3Bl
cnR5U2hvcnRoYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zaXRpb25TaG9ydGhhbmQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzaG9ydGhhbmRGb3JQcm9w
ZXJ0eSk6IERlZmluZSB0aGUgdHJhbnNpdGlvbnMgdW5wcmVmaXhlZAorICAgICAgICBsb25naGFu
ZHMuCisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkpOiBTdHlsZUJ1aWxkZXIgd2lsbCBoYW5k
bGUgdGhlCisgICAgICAgIHJlc29sdXRpb24gYW5kIHRoZSBjcmVhdGlvbiBvZiB0aGUgYW5pbWF0
aW9ucyBmb3IgdGhlIHN0eWxlLiBBcyB0aGUKKyAgICAgICAgZGVjbGFyYXRlZCBzdHlsZSBub3cg
Y29udGFpbnMgZGVjbGFyYXRpb25zIGZvciB0aGUgcHJlZml4ZWQgYW5kCisgICAgICAgIHVucHJl
Zml4ZWQgcHJvcGVydHkgd2UgZG8gbm90IHdhbnQgdG8gcmVzb2x2ZSB0d28gdGltZXMgYW5kIGNy
ZWF0ZSBkdXBsaWNhdGUgYW5pbWF0aW9ucy4KKyAgICAgICAgVGhlcmVmb3JlIHdoZW4gd2UgdHJ5
IHRvIHJlc29sdmUgdGhlIHVucHJlZml4ZWQgdmVyc2lvbiB3ZSBqdXN0IGJhaWwgb3V0LgorCiAy
MDEzLTAzLTAxICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IE5hdmlnYXRvciBzaG91bGQgc2hvdyB0cmVlIGVsZW1lbnQgZm9y
IGVhY2ggZm9sZGVyIGluIHRoZSBzb3VyY2UgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMmFlMjUwYzQzMDdlZjcx
OTQyZjNjMjNmMDQzNTE3MzkzNmZjYjE4YS4uYWE3NWRmNmFiZTZmZDc5ZDQ1MTVjZDdiNGYzYTNk
MzlkOTFiOGZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE5OCw2ICsxOTgsMTAgQEAgc3RhdGljIGNvbnN0IENTU1By
b3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlUZXh0T3Zl
cmZsb3csCiAgICAgQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLAogICAgIENTU1Byb3BlcnR5VG9w
LAorICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbkRlbGF5LAorICAgIENTU1Byb3BlcnR5VHJhbnNp
dGlvbkR1cmF0aW9uLAorICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvblByb3BlcnR5LAorICAgIENT
U1Byb3BlcnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uLAogICAgIENTU1Byb3BlcnR5VW5pY29k
ZUJpZGksCiAgICAgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLAogICAgIENTU1Byb3BlcnR5Vmlz
aWJpbGl0eSwKQEAgLTI1MTcsMTQgKzI1MjEsMTkgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQK
ICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtU3R5bGU6
CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVl
KChzdHlsZS0+dHJhbnNmb3JtU3R5bGUzRCgpID09IFRyYW5zZm9ybVN0eWxlM0RQcmVzZXJ2ZTNE
KSA/IENTU1ZhbHVlUHJlc2VydmUzZCA6IENTU1ZhbHVlRmxhdCk7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlUcmFuc2l0aW9uRGVsYXk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
cmFuc2l0aW9uRGVsYXk6CiAgICAgICAgICAgICByZXR1cm4gZ2V0RGVsYXlWYWx1ZShzdHlsZS0+
dHJhbnNpdGlvbnMoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRHVyYXRp
b246CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uRHVyYXRpb246CiAg
ICAgICAgICAgICByZXR1cm4gZ2V0RHVyYXRpb25WYWx1ZShzdHlsZS0+dHJhbnNpdGlvbnMoKSk7
CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uUHJvcGVydHk6CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHk6CiAgICAgICAgICAgICByZXR1
cm4gZ2V0VHJhbnNpdGlvblByb3BlcnR5VmFsdWUoc3R5bGUtPnRyYW5zaXRpb25zKCkpOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgICAgICAg
ICAgcmV0dXJuIGdldFRpbWluZ0Z1bmN0aW9uVmFsdWUoc3R5bGUtPnRyYW5zaXRpb25zKCkpOwor
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zaXRpb246IHsKICAgICAgICAgICAgIGNvbnN0IEFuaW1hdGlvbkxpc3Qq
IGFuaW1MaXN0ID0gc3R5bGUtPnRyYW5zaXRpb25zKCk7CiAgICAgICAgICAgICBpZiAoYW5pbUxp
c3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZTAwMmUxMDJlYTAzMDc3MTA3YzQ5
YzIyOTkwMTJmNzA1ZDJjODBhNi4uM2YyZjAzMWMzMWIwYzFhZjg0MjVhZjM1ZmQzYWU2NzdmOGU3
YzQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE1MzYsNiArMTUzNiwxNyBAQCBQ
YXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVQcm9wZXJ0
eVNldCgpCiAgICAgcmV0dXJuIFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZUltbXV0YWJsZShyZXN1
bHRzLmRhdGEoKSwgcmVzdWx0cy5zaXplKCksIG1fY29udGV4dC5tb2RlKTsKIH0KIAordm9pZCBD
U1NQYXJzZXI6OmFkZFByb3BlcnR5V2l0aFByZWZpeGluZ1ZhcmlhbnQoQ1NTUHJvcGVydHlJRCBw
cm9wSWQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBp
bXBsaWNpdCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbCA9IHZhbHVlLmdldCgpOworICAg
IGFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWUsIGltcG9ydGFudCwgaW1wbGljaXQpOworCisgICAg
Q1NTUHJvcGVydHlJRCBwcmVmaXhpbmdWYXJpYW50ID0gcHJlZml4aW5nVmFyaWFudEZvclByb3Bl
cnR5SWQocHJvcElkKTsKKyAgICBpZiAocHJlZml4aW5nVmFyaWFudCA9PSBwcm9wSWQpCisgICAg
ICAgIHJldHVybjsKKyAgICBhZGRQcm9wZXJ0eShwcmVmaXhpbmdWYXJpYW50LCB2YWwucmVsZWFz
ZSgpLCBpbXBvcnRhbnQsIGltcGxpY2l0KTsKK30KKwogdm9pZCBDU1NQYXJzZXI6OmFkZFByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9v
bCBpbXBvcnRhbnQsIGJvb2wgaW1wbGljaXQpCiB7CiAgICAgbV9wYXJzZWRQcm9wZXJ0aWVzLmFw
cGVuZChDU1NQcm9wZXJ0eShwcm9wSWQsIHZhbHVlLCBpbXBvcnRhbnQsIG1fY3VycmVudFNob3J0
aGFuZCwgbV9pbXBsaWNpdFNob3J0aGFuZCB8fCBpbXBsaWNpdCkpOwpAQCAtMjU2NSw2ICsyNTc2
LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uUGxheVN0
YXRlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDoK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheToKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJh
bnNpdGlvbkR1cmF0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uVGltaW5nRnVu
Y3Rpb246CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkRlbGF5OgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUcmFuc2l0aW9uRHVyYXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5z
aXRpb25UaW1pbmdGdW5jdGlvbjoKQEAgLTI1NzIsNyArMjU4Nyw3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAg
ICAgUmVmUHRyPENTU1ZhbHVlPiB2YWw7CiAgICAgICAgIEFuaW1hdGlvblBhcnNlQ29udGV4dCBj
b250ZXh0OwogICAgICAgICBpZiAocGFyc2VBbmltYXRpb25Qcm9wZXJ0eShwcm9wSWQsIHZhbCwg
Y29udGV4dCkpIHsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsLnJlbGVhc2Uo
KSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5V2l0aFByZWZpeGluZ1Zhcmlh
bnQocHJvcElkLCB2YWwucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjgxMSw4ICsyODI2
LDkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQogICAgICAgICByZXR1cm4gcGFyc2VTaG9ydGhhbmQocHJvcElkLCB3ZWJr
aXRUZXh0U3Ryb2tlU2hvcnRoYW5kKCksIGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEFuaW1hdGlvbjoKICAgICAgICAgcmV0dXJuIHBhcnNlQW5pbWF0aW9uU2hvcnRoYW5k
KGltcG9ydGFudCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb246CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb246Ci0gICAgICAgIHJldHVybiBwYXJzZVRyYW5zaXRp
b25TaG9ydGhhbmQoaW1wb3J0YW50KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlVHJhbnNpdGlvblNo
b3J0aGFuZChwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUludmFsaWQ6
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZToKQEAgLTMz
MjksMTIgKzMzNDUsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uU2hvcnRoYW5k
KGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENTU1BhcnNlcjo6
cGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQorYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVHJhbnNpdGlvblNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCiB7CiAgICAgY29uc3QgdW5zaWduZWQgbnVtUHJvcGVydGllcyA9IDQ7Ci0gICAgQVNT
RVJUKG51bVByb3BlcnRpZXMgPT0gd2Via2l0VHJhbnNpdGlvblNob3J0aGFuZCgpLmxlbmd0aCgp
KTsKKyAgICBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmQgPSBzaG9ydGhh
bmRGb3JQcm9wZXJ0eShwcm9wSWQpOworICAgIEFTU0VSVChudW1Qcm9wZXJ0aWVzID09IHNob3J0
aGFuZC5sZW5ndGgoKSk7CiAKLSAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zaXRpb24pOworICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIHBy
b3BJZCk7CiAKICAgICBib29sIHBhcnNlZFByb3BlcnR5W251bVByb3BlcnRpZXNdID0geyBmYWxz
ZSB9OwogICAgIEFuaW1hdGlvblBhcnNlQ29udGV4dCBjb250ZXh0OwpAQCAtMzM2MCw3ICszMzc3
LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVHJhbnNpdGlvblNob3J0aGFuZChib29sIGltcG9y
dGFudCkKICAgICAgICAgZm9yIChpID0gMDsgIWZvdW5kICYmIGkgPCBudW1Qcm9wZXJ0aWVzOyAr
K2kpIHsKICAgICAgICAgICAgIGlmICghcGFyc2VkUHJvcGVydHlbaV0pIHsKICAgICAgICAgICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbDsKLSAgICAgICAgICAgICAgICBpZiAocGFyc2VBbmlt
YXRpb25Qcm9wZXJ0eSh3ZWJraXRUcmFuc2l0aW9uU2hvcnRoYW5kKCkucHJvcGVydGllcygpW2ld
LCB2YWwsIGNvbnRleHQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlQW5pbWF0aW9uUHJv
cGVydHkoc2hvcnRoYW5kLnByb3BlcnRpZXMoKVtpXSwgdmFsLCBjb250ZXh0KSkgewogICAgICAg
ICAgICAgICAgICAgICBwYXJzZWRQcm9wZXJ0eVtpXSA9IGZvdW5kID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgYWRkQW5pbWF0aW9uVmFsdWUodmFsdWVzW2ldLCB2YWwucmVsZWFzZSgpKTsK
ICAgICAgICAgICAgICAgICB9CkBAIC0zMzg1LDcgKzM0MDIsNyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiAgICAgLy8gTm93IGFk
ZCBhbGwgb2YgdGhlIHByb3BlcnRpZXMgd2UgZm91bmQuCiAgICAgZm9yIChpID0gMDsgaSA8IG51
bVByb3BlcnRpZXM7IGkrKykKLSAgICAgICAgYWRkUHJvcGVydHkod2Via2l0VHJhbnNpdGlvblNo
b3J0aGFuZCgpLnByb3BlcnRpZXMoKVtpXSwgdmFsdWVzW2ldLnJlbGVhc2UoKSwgaW1wb3J0YW50
KTsKKyAgICAgICAgYWRkUHJvcGVydHlXaXRoUHJlZml4aW5nVmFyaWFudChzaG9ydGhhbmQucHJv
cGVydGllcygpW2ldLCB2YWx1ZXNbaV0ucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC00NTY0LDYgKzQ1ODEsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VB
bmltYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUmVmUHRyPENTU1ZhbHVlPiYg
cgogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHN3aXRjaCAocHJvcElkKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvbkRlbGF5OgorICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRGVsYXk6CiAgICAgICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EZWxheToKICAgICAgICAgICAgICAgICAg
ICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRpb25EZWxheSgpOwogICAgICAgICAgICAgICAgICAg
ICBpZiAoY3VyclZhbHVlKQpAQCAtNDU3NSw2ICs0NTkzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlQW5pbWF0aW9uUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1
ZT4mIHIKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRBbmltYXRpb25EdXJhdGlvbjoKKyAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
VHJhbnNpdGlvbkR1cmF0aW9uOgogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRUcmFuc2l0aW9uRHVyYXRpb246CiAgICAgICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IHBh
cnNlQW5pbWF0aW9uRHVyYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1
ZSkKQEAgLTQ2MDAsNiArNDYxOSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblBy
b3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiByCiAgICAgICAg
ICAgICAgICAgICAgIGlmIChjdXJyVmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Zh
bHVlTGlzdC0+bmV4dCgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvblByb3BlcnR5OgogICAgICAgICAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHk6CiAgICAgICAgICAgICAg
ICAgICAgIGN1cnJWYWx1ZSA9IHBhcnNlQW5pbWF0aW9uUHJvcGVydHkoY29udGV4dCk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiAhY29udGV4dC5hbmltYXRpb25Qcm9wZXJ0eUtl
eXdvcmRBbGxvd2VkKCkpCkBAIC00NjA4LDYgKzQ2MjgsNyBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VBbmltYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUmVmUHRyPENTU1ZhbHVl
PiYgcgogICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246CiAgICAgICAgICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAgICAgICAgICAgICAg
ICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRpb25UaW1pbmdGdW5jdGlvbigpOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoY3VyclZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGRjYmEw
MzM3NzMyZTI1NjY0M2I0MTM5NTQ2OWYxNjlhYTEwMzRkZTIuLjk5YzFiMGVmZTk2OWZjNzFkN2Zk
MGJiOTczOWFjMGZiZWQ3ZmFmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTk0LDYgKzk0
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBh
cnNlSW5saW5lU3R5bGVEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmLCBFbGVtZW50Kik7CiAgICAg
UGFzc093blB0cjxNZWRpYVF1ZXJ5PiBwYXJzZU1lZGlhUXVlcnkoY29uc3QgU3RyaW5nJik7CiAK
KyAgICB2b2lkIGFkZFByb3BlcnR5V2l0aFByZWZpeGluZ1ZhcmlhbnQoQ1NTUHJvcGVydHlJRCwg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFs
c2UpOwogICAgIHZvaWQgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4sIGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFsc2UpOwogICAgIHZvaWQg
cm9sbGJhY2tMYXN0UHJvcGVydGllcyhpbnQgbnVtKTsKICAgICBib29sIGhhc1Byb3BlcnRpZXMo
KSBjb25zdCB7IHJldHVybiAhbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKTsgfQpAQCAtMTUx
LDcgKzE1Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVHJhbnNmb3JtT3JpZ2luU2hvcnRo
YW5kKFJlZlB0cjxDU1NWYWx1ZT4mLCBSZWZQdHI8Q1NTVmFsdWU+JiwgUmVmUHRyPENTU1ZhbHVl
PiYpOwogICAgIGJvb2wgcGFyc2VDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uVmFsdWUoQ1NTUGFy
c2VyVmFsdWVMaXN0KiYgYXJncywgZG91YmxlJiByZXN1bHQpOwogICAgIGJvb2wgcGFyc2VBbmlt
YXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBSZWZQdHI8Q1NTVmFsdWU+JiwgQW5pbWF0aW9u
UGFyc2VDb250ZXh0Jik7Ci0gICAgYm9vbCBwYXJzZVRyYW5zaXRpb25TaG9ydGhhbmQoYm9vbCBp
bXBvcnRhbnQpOworICAgIGJvb2wgcGFyc2VUcmFuc2l0aW9uU2hvcnRoYW5kKENTU1Byb3BlcnR5
SUQsIGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlQW5pbWF0aW9uU2hvcnRoYW5kKGJv
b2wgaW1wb3J0YW50KTsKIAogICAgIGJvb2wgY3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmluZGV4IDNhNDAyY2ZmNzVkZmUzNWNlMjViZDUw
Yzg3MTdhNWUxZTQ2NWQwNmEuLmEyYzBlNmNkYjEyYjRkMTM3MGFiNzQ5NjlkOTEwNzQyYjEzMjYy
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtNDg5LDYgKzQ4OSwxMSBAQCBi
b29sIENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCkKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFVuZGVybGluZVN0eWxlOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lV2lkdGg6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRvcDoK
KyAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5VHJh
bnNpdGlvbkRlbGF5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRHVyYXRpb246Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaToKICAgICBjYXNlIENTU1Byb3BlcnR5VW5pY29kZVJhbmdlOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlWZXJ0aWNhbEFsaWduOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAppbmRleCA1MjJjOWRm
MWI5NmFlYjdlNDZiZjZhMGY1Y2VlYmYwZGU5NDI5MWQ0Li5mYTNiMmJmZGI4ZWQ4ZWU1ZDEzNzNj
YWJhNjRmYjQ0MWYwMTU4Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaApAQCAtOTIsNiAr
OTIsNDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fdmFsdWU7CiB9OwogCitp
bmxpbmUgQ1NTUHJvcGVydHlJRCBwcmVmaXhpbmdWYXJpYW50Rm9yUHJvcGVydHlJZChDU1NQcm9w
ZXJ0eUlEIHByb3BJZCkKK3sKKyAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQgPSBDU1NQcm9w
ZXJ0eUludmFsaWQ7CisgICAgc3dpdGNoIChwcm9wSWQpIHsKKyAgICBjYXNlIENTU1Byb3BlcnR5
VHJhbnNpdGlvbkRlbGF5OgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVydHlXZWJraXRU
cmFuc2l0aW9uRGVsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFu
c2l0aW9uRHVyYXRpb246CisgICAgICAgIHByb3BlcnR5SWQgPSBDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zaXRpb25EdXJhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRy
YW5zaXRpb25Qcm9wZXJ0eToKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5V2Via2l0
VHJhbnNpdGlvblByb3BlcnR5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5
VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVy
dHlXZWJraXRUcmFuc2l0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VHJhbnNpdGlvbkRlbGF5OgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NTUHJvcGVydHlU
cmFuc2l0aW9uRGVsYXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRUcmFuc2l0aW9uRHVyYXRpb246CisgICAgICAgIHByb3BlcnR5SWQgPSBDU1NQcm9wZXJ0eVRy
YW5zaXRpb25EdXJhdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICAgICAgcHJvcGVydHlJZCA9IENTU1Byb3BlcnR5
VHJhbnNpdGlvblByb3BlcnR5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NT
UHJvcGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOgorICAgICAgICBwcm9wZXJ0eUlkID0gQ1NT
UHJvcGVydHlUcmFuc2l0aW9uOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBwcm9wZXJ0eUlkID0gcHJvcElkOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJU
KHByb3BlcnR5SWQgIT0gQ1NTUHJvcGVydHlJbnZhbGlkKTsKKyAgICByZXR1cm4gcHJvcGVydHlJ
ZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggYWMzZmRlNTYxNWI1YjEzOWM4ZmFk
MTQ0OTk4OTZkNGFkN2I2NjZkYS4uOTZkNjc1NmQ2NWFjZTY5ZDhiMWVkNDliNzk4MjI2ZDMwMjhj
YzQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTE4MiwxMSAr
MTgyLDExIEBAIHRleHQtdW5kZXJsaW5lLW1vZGUKIHRleHQtdW5kZXJsaW5lLXN0eWxlCiB0ZXh0
LXVuZGVybGluZS13aWR0aAogdG9wCi10cmFuc2l0aW9uID0gLXdlYmtpdC10cmFuc2l0aW9uCi10
cmFuc2l0aW9uLWRlbGF5ID0gLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5Ci10cmFuc2l0aW9uLWR1
cmF0aW9uID0gLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uCi10cmFuc2l0aW9uLXByb3BlcnR5
ID0gLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Ci10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv
biA9IC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24KK3RyYW5zaXRpb24KK3RyYW5z
aXRpb24tZGVsYXkKK3RyYW5zaXRpb24tZHVyYXRpb24KK3RyYW5zaXRpb24tcHJvcGVydHkKK3Ry
YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uCiAKIHVuaWNvZGUtYmlkaQogdW5pY29kZS1yYW5nZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IGZhN2U1OTVkMTA5YmYz
YTg4YzJiOGJkMjc3YzIwZGNjNzVmMmFlZWMuLjJiZTJmMTExYmQ1MTJkYmJiNDYxMTM5MDQwZDg2
NjU0NGZkMjk2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAg
LTE3Niw2ICsxNzYsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0eVNldDo6Z2V0UHJvcGVydHlWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXRDb21t
b25WYWx1ZShvdmVyZmxvd1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGlu
ZzoKICAgICAgICAgcmV0dXJuIGdldDRWYWx1ZXMocGFkZGluZ1Nob3J0aGFuZCgpKTsKKyAgICBj
YXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbjoKKyAgICAgICAgcmV0dXJuIGdldExheWVyZWRTaG9y
dGhhbmRWYWx1ZSh0cmFuc2l0aW9uU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlM
aXN0U3R5bGU6CiAgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShsaXN0U3R5bGVTaG9y
dGhhbmQoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWU6CkBAIC01ODQsNyAr
NTg2LDE1IEBAIGJvb2wgU3R5bGVQcm9wZXJ0eVNldDo6cmVtb3ZlU2hvcnRoYW5kUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQgc2hv
cnRoYW5kID0gc2hvcnRoYW5kRm9yUHJvcGVydHkocHJvcGVydHlJRCk7CiAgICAgaWYgKCFzaG9y
dGhhbmQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gcmVtb3Zl
UHJvcGVydGllc0luU2V0KHNob3J0aGFuZC5wcm9wZXJ0aWVzKCksIHNob3J0aGFuZC5sZW5ndGgo
KSk7CisKKyAgICBib29sIHJldCA9IHJlbW92ZVByb3BlcnRpZXNJblNldChzaG9ydGhhbmQucHJv
cGVydGllcygpLCBzaG9ydGhhbmQubGVuZ3RoKCkpOworCisgICAgQ1NTUHJvcGVydHlJRCBwcmVm
aXhpbmdWYXJpYW50ID0gcHJlZml4aW5nVmFyaWFudEZvclByb3BlcnR5SWQocHJvcGVydHlJRCk7
CisgICAgaWYgKHByZWZpeGluZ1ZhcmlhbnQgPT0gcHJvcGVydHlJRCkKKyAgICAgICAgcmV0dXJu
IHJldDsKKworICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmQgc2hvcnRoYW5kUHJlZml4aW5nVmFy
aWFudCA9IHNob3J0aGFuZEZvclByb3BlcnR5KHByZWZpeGluZ1ZhcmlhbnQpOworICAgIHJldHVy
biByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoc2hvcnRoYW5kUHJlZml4aW5nVmFyaWFudC5wcm9wZXJ0
aWVzKCksIHNob3J0aGFuZFByZWZpeGluZ1ZhcmlhbnQubGVuZ3RoKCkpOwogfQogCiBib29sIFN0
eWxlUHJvcGVydHlTZXQ6OnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwg
U3RyaW5nKiByZXR1cm5UZXh0KQpAQCAtNjEwLDEwICs2MjAsMjAgQEAgYm9vbCBTdHlsZVByb3Bl
cnR5U2V0OjpyZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZyog
cmV0dXJuVGUKICAgICAvLyBBIG1vcmUgZWZmaWNpZW50IHJlbW92YWwgc3RyYXRlZ3kgd291bGQg
aW52b2x2ZSBtYXJraW5nIGVudHJpZXMgYXMgZW1wdHkKICAgICAvLyBhbmQgc3dlZXBpbmcgdGhl
bSB3aGVuIHRoZSB2ZWN0b3IgZ3Jvd3MgdG9vIGJpZy4KICAgICBtdXRhYmxlUHJvcGVydHlWZWN0
b3IoKS5yZW1vdmUoZm91bmRQcm9wZXJ0eUluZGV4KTsKLSAgICAKKworICAgIHJlbW92ZVByZWZp
eGVkT3JVbnByZWZpeGVkUHJvcGVydHkocHJvcGVydHlJRCk7CisKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAordm9pZCBTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVQcmVmaXhlZE9yVW5wcmVmaXhlZFBy
b3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKK3sKKyAgICBpbnQgZm91bmRQcm9wZXJ0
eUluZGV4ID0gZmluZFByb3BlcnR5SW5kZXgocHJlZml4aW5nVmFyaWFudEZvclByb3BlcnR5SWQo
cHJvcGVydHlJRCkpOworICAgIGlmIChmb3VuZFByb3BlcnR5SW5kZXggPT0gLTEpCisgICAgICAg
IHJldHVybjsKKyAgICBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5yZW1vdmUoZm91bmRQcm9wZXJ0
eUluZGV4KTsKK30KKwogYm9vbCBTdHlsZVByb3BlcnR5U2V0Ojpwcm9wZXJ0eUlzSW1wb3J0YW50
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKICAgICBpbnQgZm91bmRQcm9wZXJ0
eUluZGV4ID0gZmluZFByb3BlcnR5SW5kZXgocHJvcGVydHlJRCk7CkBAIC02ODUsMTAgKzcwNSwy
OCBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnNldFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5
JiBwcm9wZXJ0eSwgQ1NTUHJvcGVydHkqIHNsbwogICAgICAgICBDU1NQcm9wZXJ0eSogdG9SZXBs
YWNlID0gc2xvdCA/IHNsb3QgOiBmaW5kTXV0YWJsZUNTU1Byb3BlcnR5V2l0aElEKHByb3BlcnR5
LmlkKCkpOwogICAgICAgICBpZiAodG9SZXBsYWNlKSB7CiAgICAgICAgICAgICAqdG9SZXBsYWNl
ID0gcHJvcGVydHk7CisgICAgICAgICAgICBzZXRQcmVmaXhpbmdWYXJpYW50UHJvcGVydHkocHJv
cGVydHkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorICAgIGFwcGVu
ZFByZWZpeGluZ1ZhcmlhbnRQcm9wZXJ0eShwcm9wZXJ0eSk7Cit9CisKK3ZvaWQgU3R5bGVQcm9w
ZXJ0eVNldDo6YXBwZW5kUHJlZml4aW5nVmFyaWFudFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5
JiBwcm9wZXJ0eSkKK3sKICAgICBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5hcHBlbmQocHJvcGVy
dHkpOworICAgIENTU1Byb3BlcnR5SUQgcHJlZml4aW5nVmFyaWFudCA9IHByZWZpeGluZ1Zhcmlh
bnRGb3JQcm9wZXJ0eUlkKHByb3BlcnR5LmlkKCkpOworICAgIGlmIChwcmVmaXhpbmdWYXJpYW50
ID09IHByb3BlcnR5LmlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtdXRhYmxlUHJvcGVydHlW
ZWN0b3IoKS5hcHBlbmQoQ1NTUHJvcGVydHkocHJlZml4aW5nVmFyaWFudCwgcHJvcGVydHkudmFs
dWUoKSwgcHJvcGVydHkuaXNJbXBvcnRhbnQoKSwgcHJvcGVydHkuc2hvcnRoYW5kSUQoKSwgcHJv
cGVydHkubWV0YWRhdGEoKS5tX2ltcGxpY2l0KSk7Cit9CisKK3ZvaWQgU3R5bGVQcm9wZXJ0eVNl
dDo6c2V0UHJlZml4aW5nVmFyaWFudFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0
eSkKK3sKKyAgICBDU1NQcm9wZXJ0eUlEIHByZWZpeGluZ1ZhcmlhbnQgPSBwcmVmaXhpbmdWYXJp
YW50Rm9yUHJvcGVydHlJZChwcm9wZXJ0eS5pZCgpKTsKKyAgICBDU1NQcm9wZXJ0eSogdG9SZXBs
YWNlID0gZmluZE11dGFibGVDU1NQcm9wZXJ0eVdpdGhJRChwcmVmaXhpbmdWYXJpYW50KTsKKyAg
ICBpZiAodG9SZXBsYWNlKQorICAgICAgICAqdG9SZXBsYWNlID0gQ1NTUHJvcGVydHkocHJlZml4
aW5nVmFyaWFudCwgcHJvcGVydHkudmFsdWUoKSwgcHJvcGVydHkuaXNJbXBvcnRhbnQoKSwgcHJv
cGVydHkuc2hvcnRoYW5kSUQoKSwgcHJvcGVydHkubWV0YWRhdGEoKS5tX2ltcGxpY2l0KTsKIH0K
IAogYm9vbCBTdHlsZVByb3BlcnR5U2V0OjpzZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SUQsIGludCBpZGVudGlmaWVyLCBib29sIGltcG9ydGFudCkKQEAgLTgzOSw2ICs4NzcsMTIg
QEAgU3RyaW5nIFN0eWxlUHJvcGVydHlTZXQ6OmFzVGV4dCgpIGNvbnN0CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlQYWRkaW5nTGVmdDoKICAgICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQg
PSBDU1NQcm9wZXJ0eVBhZGRpbmc7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRy
YW5zaXRpb25EdXJhdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25UaW1p
bmdGdW5jdGlvbjoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheToKKyAg
ICAgICAgICAgIHNob3J0aGFuZFByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eVRyYW5zaXRpb247Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
bk5hbWU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25EdXJhdGlvbjoK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgpA
QCAtOTk3LDcgKzEwNDEsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6Om1lcmdlQW5kT3ZlcnJp
ZGVPbkNvbmZsaWN0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIG90aGVyKQogICAgICAgICBpZiAo
b2xkKQogICAgICAgICAgICAgc2V0UHJvcGVydHkodG9NZXJnZS50b0NTU1Byb3BlcnR5KCksIG9s
ZCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLmFw
cGVuZCh0b01lcmdlLnRvQ1NTUHJvcGVydHkoKSk7CisgICAgICAgICAgICBhcHBlbmRQcmVmaXhp
bmdWYXJpYW50UHJvcGVydHkodG9NZXJnZS50b0NTU1Byb3BlcnR5KCkpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKaW5kZXggMDJlMDA4M2FhN2JmNmE3NzQ0
MDQzYWRlODBiYTI1NDEwZTc5OWI1ZC4uODAyYzMxZGQzZGM3ZWY4YTMzM2VlYWVmYjdiMTI2YjRl
ODkzNWEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCkBAIC0xMTQsOSAr
MTE0LDEyIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIGRvIG5vdC4gRklYTUU6IFRoaXMgaXMg
dG9vIG1lc3N5LCB3ZSBjYW4gZG8gYmV0dGVyLgogICAgIGJvb2wgc2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlJRCwgaW50IGlkZW50aWZpZXIsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpOworICAgIHZv
aWQgYXBwZW5kUHJlZml4aW5nVmFyaWFudFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5Jik7Cisg
ICAgdm9pZCBzZXRQcmVmaXhpbmdWYXJpYW50UHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmKTsK
ICAgICB2b2lkIHNldFByb3BlcnR5KGNvbnN0IENTU1Byb3BlcnR5JiwgQ1NTUHJvcGVydHkqIHNs
b3QgPSAwKTsKICAgICAKICAgICBib29sIHJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5SUQsIFN0
cmluZyogcmV0dXJuVGV4dCA9IDApOworICAgIHZvaWQgcmVtb3ZlUHJlZml4ZWRPclVucHJlZml4
ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIAogICAgIHZvaWQgcGFyc2VEZWNsYXJhdGlvbihj
b25zdCBTdHJpbmcmIHN0eWxlRGVjbGFyYXRpb24sIFN0eWxlU2hlZXRDb250ZW50cyogY29udGV4
dFN0eWxlU2hlZXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5jcHAKaW5kZXggYjUxOGU5ODdjMmFkMjBmYjgyZmMyNzVjYTYxNjgyYzMzYWEwZDA5MC4u
YzMyZjZkMDQ1ZWVhNWQ5ZWY3MjU0NjI2MjY1NTQ0Zjk4NGY0OWU5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNwcApAQCAtMjQ2LDYgKzI0NiwxOCBA
QCBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBwYWRkaW5nU2hvcnRoYW5kKCkKICAgICBy
ZXR1cm4gcGFkZGluZ0xvbmdoYW5kczsKIH0KIAorY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZCYgdHJhbnNpdGlvblNob3J0aGFuZCgpCit7CisgICAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5
SUQgdHJhbnNpdGlvblByb3BlcnRpZXNbXSA9IHsKKyAgICAgICAgQ1NTUHJvcGVydHlUcmFuc2l0
aW9uUHJvcGVydHksCisgICAgICAgIENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1cmF0aW9uLAorICAg
ICAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiwKKyAgICAgICAgQ1NTUHJv
cGVydHlUcmFuc2l0aW9uRGVsYXkKKyAgICB9OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3R5
bGVQcm9wZXJ0eVNob3J0aGFuZCwgdHJhbnNpdGlvbkxvbmdoYW5kcywgKHRyYW5zaXRpb25Qcm9w
ZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RIKHRyYW5zaXRpb25Qcm9wZXJ0aWVzKSkpOworICAgIHJl
dHVybiB0cmFuc2l0aW9uTG9uZ2hhbmRzOworfQorCiBjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRo
YW5kJiB3ZWJraXRBbmltYXRpb25TaG9ydGhhbmQoKQogewogICAgIHN0YXRpYyBjb25zdCBDU1NQ
cm9wZXJ0eUlEIGFuaW1hdGlvblByb3BlcnRpZXNbXSA9IHsKQEAgLTQ5Myw2ICs1MDUsOCBAQCBj
b25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBvdmVyZmxvd1Nob3J0aGFuZCgpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nOgogICAgICAgICByZXR1cm4gcGFkZGluZ1Nob3J0
aGFuZCgpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uOgorICAgICAgICByZXR1cm4g
dHJhbnNpdGlvblNob3J0aGFuZCgpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b246CiAgICAgICAgIHJldHVybiB3ZWJraXRBbmltYXRpb25TaG9ydGhhbmQoKTsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyQWZ0ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydHlTaG9ydGhhbmQuaAppbmRleCA1ZWFkOGFiOWFlNzMxMjQxYWExNjdlMGRiMWYxYjIy
ZDdkODFiOWJmLi40MDk4YjVjZTE2MWEzYzEwMGY1YTU2MTE5MGJjNDFjZmE0MmE3MTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmgKQEAgLTgwLDYgKzgw
LDcgQEAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgbWFyZ2luU2hvcnRoYW5kKCk7CiBj
b25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBvdXRsaW5lU2hvcnRoYW5kKCk7CiBjb25zdCBT
dHlsZVByb3BlcnR5U2hvcnRoYW5kJiBvdmVyZmxvd1Nob3J0aGFuZCgpOwogY29uc3QgU3R5bGVQ
cm9wZXJ0eVNob3J0aGFuZCYgcGFkZGluZ1Nob3J0aGFuZCgpOworY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYgdHJhbnNpdGlvblNob3J0aGFuZCgpOwogY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYgd2Via2l0QW5pbWF0aW9uU2hvcnRoYW5kKCk7CiBjb25zdCBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kJiB3ZWJraXRBbmltYXRpb25TaG9ydGhhbmRGb3JQYXJzaW5nKCk7CiBjb25zdCBT
dHlsZVByb3BlcnR5U2hvcnRoYW5kJiB3ZWJraXRCb3JkZXJBZnRlclNob3J0aGFuZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDZlNzM5YTM4NTk4OWY0N2NhZmFmYTg4
ODM3Njc3NjRmZjdjOWJkMmUuLjU2ZTEwOTk1NDY0MDAzNDBlZWIzMmZhMGY1YTdkY2NhNzE3MTFj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTM1ODAsNiArMzU4MCwx
MiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwg
Q1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRHcmlkSXRlbVJvdyhy
b3cpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJl
IGFsaWFzZWQgYW5kIFN0eWxlQnVpbGRlciBhbHJlYWR5IGFwcGxpZWQgdGhlIHByb3BlcnR5IG9u
IHRoZSBwcmVmaXhlZCB2ZXJzaW9uLgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0aW9uRGVs
YXk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EdXJhdGlvbjoKKyAgICBjYXNlIENT
U1Byb3BlcnR5VHJhbnNpdGlvblByb3BlcnR5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlUcmFuc2l0
aW9uVGltaW5nRnVuY3Rpb246CisgICAgICAgIHJldHVybjsKICAgICAvLyBUaGVzZSBwcm9wZXJ0
aWVzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgU3R5bGVCdWlsZGVyIGxvb2t1cCB0YWJsZS4KICAg
ICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZEF0dGFjaG1lbnQ6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUJhY2tncm91bmRDbGlwOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4ZDIxOTUzZmEwY2I4ZWVkYzQwY2I1YzdlMDFj
MjE4OTg4YTNmODguLjg3YjI4NmFkYWU0NDcyNDIxZmQ1ZDFiYjdiYWU5OGUwMzA2MjVkNGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMi0yOCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpc0B3
ZWJraXQub3JnPgorCisgICAgICAgIHRyYW5zaXRpb24gcHJvcGVydGllcyBjYW4ndCBiZSBmb3Vu
ZCBpbiBDU1NTdHlsZURlY2xhcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGVkIGxheW91dCB0ZXN0IHRvIGNvdmVyIHRoZSBidWcuCisK
KyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWw6CisKIDIwMTMt
MDMtMDEgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogTmF2aWdhdG9yIHNob3VsZCBzaG93IHRyZWUgZWxlbWVudCBmb3IgZWFj
aCBmb2xkZXIgaW4gdGhlIHNvdXJjZSBwYXRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRleCBkNjhhZTdj
NGYxNDZjMzliMzU4NmFjMTc2YWM2MTAxOTgzNGQ2M2VkLi5mNzMyMDFkYTcyODZjMmUwOGU0OWVh
ZTEwZjk1NjNlNDQ0MDJjOWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDggQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFZhbGlkIHRyYW5zaXRpb24tcHJvcGVydHkgdmFsdWVzLgog
UEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwogUEFTUyBjb21w
dXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJworUEFTUyBPYmplY3Qu
a2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblByb3BlcnR5JykgaXMgbm90IC0xCitQQVNT
IE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVydHknKSBp
cyBub3QgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvblByb3BlcnR5IGlzICdub25lJwogUEFTUyBj
b21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnbm9uZScKIFBBU1Mgc3R5bGUud2Vi
a2l0VHJhbnNpdGlvblByb3BlcnR5IGlzICdub25lJwpAQCAtOTgsNiArMTAwLDggQEAgUEFTUyBj
b21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwogVmFsaWQgdHJh
bnNpdGlvbi1kdXJhdGlvbiB2YWx1ZXMuCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1
cmF0aW9uIGlzICcwcycKIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRp
b24gaXMgJzBzJworUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkR1
cmF0aW9uJykgaXMgbm90IC0xCitQQVNTIE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJr
aXRUcmFuc2l0aW9uRHVyYXRpb24nKSBpcyBub3QgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvbkR1
cmF0aW9uIGlzICcwcycKIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gaXMg
JzBzJwogUEFTUyBzdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24gaXMgJzBzJwpAQCAtMTQ2
LDYgKzE1MCw4IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24g
aXMgJzBzJwogVmFsaWQgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gdmFsdWVzLgogUEFTUyBj
b21wdXRlZFN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiBpcyAnZWFzZScKIFBBU1MgY29t
cHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gaXMgJ2Vhc2UnCitQQVNT
IE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nKSBp
cyBub3QgLTEKK1BBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRp
b25UaW1pbmdGdW5jdGlvbicpIGlzIG5vdCAtMQogUEFTUyBzdHlsZS50cmFuc2l0aW9uVGltaW5n
RnVuY3Rpb24gaXMgJ2xpbmVhcicKIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5n
RnVuY3Rpb24gaXMgJ2xpbmVhcicKIFBBU1Mgc3R5bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1
bmN0aW9uIGlzICdsaW5lYXInCkBAIC0yOTAsNiArMjk2LDggQEAgUEFTUyBjb21wdXRlZFN0eWxl
LndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiBpcyAnZWFzZScKIFZhbGlkIHRyYW5zaXRp
b24tZGVsYXkgdmFsdWVzLgogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSBpcyAn
MHMnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IGlzICcwcycKK1BB
U1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EZWxheScpIGlzIG5vdCAt
MQorUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkRlbGF5
JykgaXMgbm90IC0xCiBQQVNTIHN0eWxlLnRyYW5zaXRpb25EZWxheSBpcyAnMHMnCiBQQVNTIGNv
bXB1dGVkU3R5bGUudHJhbnNpdGlvbkRlbGF5IGlzICcwcycKIFBBU1Mgc3R5bGUud2Via2l0VHJh
bnNpdGlvbkRlbGF5IGlzICcwcycKQEAgLTMzOCw2ICszNDYsOCBAQCBQQVNTIGNvbXB1dGVkU3R5
bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IGlzICcwcycKIFZhbGlkIHRyYW5zaXRpb24gc2hvcnRo
YW5kIHZhbHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIGlzICdhbGwgMHMgZWFz
ZSAwcycKIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uIGlzICdhbGwgMHMgZWFz
ZSAwcycKK1BBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSBpcyBu
b3QgLTEKK1BBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb24n
KSBpcyBub3QgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvbiBpcyAnbm9uZScKIFBBU1MgY29tcHV0
ZWRTdHlsZS50cmFuc2l0aW9uIGlzICdub25lIDBzIGVhc2UgMHMnCiBQQVNTIHN0eWxlLndlYmtp
dFRyYW5zaXRpb24gaXMgJ25vbmUnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9ucy1wYXJzaW5nLmh0bWwKaW5kZXggN2RjYzlmNGY4MTc5YjliZDlkNTQ0M2ViNWI2YWRm
OGI4Y2Q3MTdhMy4uYmUyZGVmMTExNDdjNGZiZDZmMWY2YzM2YzRiYmM0YWUxMmQ0Mjk3ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbApA
QCAtMzAsNiArMzAsOCBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uUHJvcGVy
dHkiLCAiJ2FsbCciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25Q
cm9wZXJ0eSIsICInYWxsJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgPSAibm9uZSI7
CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25Qcm9w
ZXJ0eScpIiwgIi0xIik7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2Yo
J3dlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eScpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJh
bnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJh
bnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5z
aXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsKQEAgLTE3Miw2ICsxNzQsOCBAQCBzaG91bGRCZSgi
Y29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogc2hvdWxkQmUoImNv
bXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIAogc3R5bGUu
dHJhbnNpdGlvbkR1cmF0aW9uID0gIjBzIjsKK3Nob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHls
ZSkuaW5kZXhPZigndHJhbnNpdGlvbkR1cmF0aW9uJykiLCAiLTEiKTsKK3Nob3VsZE5vdEJlKCJP
YmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uJykiLCAi
LTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogc2hv
dWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIHNob3Vs
ZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwpAQCAtMjUwLDYg
KzI1NCw4IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlv
biIsICInZWFzZSciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25U
aW1pbmdGdW5jdGlvbiIsICInZWFzZSciKTsKIAogc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0
aW9uID0gImxpbmVhciI7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2Yo
J3RyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7CitzaG91bGROb3RCZSgiT2JqZWN0
LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwg
Ii0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5l
YXInIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24i
LCAiJ2xpbmVhciciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVu
Y3Rpb24iLCAiJ2xpbmVhciciKTsKQEAgLTQ3MSw2ICs0NzcsOCBAQCBzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkiLCAiJzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5
bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsKIAogc3R5bGUudHJhbnNpdGlvbkRl
bGF5ID0gIjBzIjsKK3Nob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJh
bnNpdGlvbkRlbGF5JykiLCAiLTEiKTsKK3Nob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSku
aW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkRlbGF5JykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHls
ZS50cmFuc2l0aW9uRGVsYXkiLCAiJzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJh
bnNpdGlvbkRlbGF5IiwgIicwcyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9u
RGVsYXkiLCAiJzBzJyIpOwpAQCAtNTQ5LDYgKzU1Nyw4IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0
eWxlLnRyYW5zaXRpb24iLCAiJ2FsbCAwcyBlYXNlIDBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVk
U3R5bGUud2Via2l0VHJhbnNpdGlvbiIsICInYWxsIDBzIGVhc2UgMHMnIik7CiAKIHN0eWxlLnRy
YW5zaXRpb24gPSAibm9uZSI7CitzaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4
T2YoJ3RyYW5zaXRpb24nKSIsICItMSIpOworc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxl
KS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50
cmFuc2l0aW9uIiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlv
biIsICInbm9uZSAwcyBlYXNlIDBzJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRp
b24iLCAiJ25vbmUnIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>