<?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>95474</bug_id>
          
          <creation_ts>2012-08-30 10:20:30 -0700</creation_ts>
          <short_desc>Introduce new CSS property for clip-path</short_desc>
          <delta_ts>2012-09-02 09:01:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#the-clip-path</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95639</dependson>
    
    <dependson>95653</dependson>
          <blocked>95389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>ossy</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>708784</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 10:20:30 -0700</bug_when>
    <thetext>This bug aims to introduce a new, prefixed property &apos;clip-path&apos;. Even if we have &apos;clip-path&apos; already, this property is experimental and will apply to HTML content as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708980</commentid>
    <comment_count>1</comment_count>
      <attachid>161545</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 13:38:50 -0700</bug_when>
    <thetext>Created attachment 161545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709124</commentid>
    <comment_count>2</comment_count>
      <attachid>161545</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-08-30 16:10:53 -0700</bug_when>
    <thetext>Comment on attachment 161545
Patch

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

Looks nice. Just small comments.

&gt; Source/WebCore/css/CSSParser.cpp:2744
&gt; +            if (RefPtr&lt;CSSBasicShape&gt; wrapShape = parseBasicShape()) {

I would rather pass the value to the parseBasicShape instead of relying on reading it from the m_valueList. That&apos;s mostly because it is not incrementing the m_valueList anymore.

&gt; Source/WebCore/css/CSSParser.cpp:2749
&gt; +            return false;

I suppose there&apos;s no need to return false. The parsing will fail anyway.

&gt; Source/WebCore/css/CSSParser.cpp:4749
&gt;      CSSParserValueList* args = value-&gt;function-&gt;args.get();

I know this is old code, but I think we might need to assert that the value is a function.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1469
&gt; +        if (rareNonInheritedData-&gt;m_clipPath != shape)

Should clip-path overwrite the clip-rect property?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709152</commentid>
    <comment_count>3</comment_count>
      <attachid>161545</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 16:44:34 -0700</bug_when>
    <thetext>Comment on attachment 161545
Patch

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

Thank you for the review Alex!

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2744
&gt;&gt; +            if (RefPtr&lt;CSSBasicShape&gt; wrapShape = parseBasicShape()) {
&gt; 
&gt; I would rather pass the value to the parseBasicShape instead of relying on reading it from the m_valueList. That&apos;s mostly because it is not incrementing the m_valueList anymore.

Actually it is more common on the Parser code to let the helper function return a value. parseBasicShape was an exclusion so far. And the old code incremented as well, if the value is a CSSBasicShape. No difference to the old code beside the shapeInside that I can&apos;t pass for clip-path. It seemed more logical to follow the general pattern so.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2749
&gt;&gt; +            return false;
&gt; 
&gt; I suppose there&apos;s no need to return false. The parsing will fail anyway.

I am following the pattern of  CSSWebkitFilter and text-shadow, box-shadow and others. As long as we can be sure that validPrimitive and parsedValue is false, you are right.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:4749
&gt;&gt;      CSSParserValueList* args = value-&gt;function-&gt;args.get();
&gt; 
&gt; I know this is old code, but I think we might need to assert that the value is a function.

Even if we just call the function if value is a function, it seems a good idea to make it safe against possible changes in the future. I&apos;ll add an assert.

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:1469
&gt;&gt; +        if (rareNonInheritedData-&gt;m_clipPath != shape)
&gt; 
&gt; Should clip-path overwrite the clip-rect property?

No, it is different to &apos;clip&apos;, which just applies to absolute positioned elements. However, it is undecided if &apos;clip&apos; shadows &apos;clip-path&apos; in the future. I will refactor the code more to support FuncIRI later anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709161</commentid>
    <comment_count>4</comment_count>
      <attachid>161588</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 16:48:33 -0700</bug_when>
    <thetext>Created attachment 161588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709974</commentid>
    <comment_count>5</comment_count>
      <attachid>161773</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-31 14:13:19 -0700</bug_when>
    <thetext>Created attachment 161773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709975</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-31 14:14:41 -0700</bug_when>
    <thetext>Worked together with Alex to clean up the code more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710024</commentid>
    <comment_count>7</comment_count>
      <attachid>161773</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-08-31 15:08:06 -0700</bug_when>
    <thetext>Comment on attachment 161773
Patch

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

Is there another bug about parsing the &lt;clip-source&gt; part too?

It might be nice to have comments among the file list in the changelog (and to filter the ugly meaningless lines like &quot;(WebCore):&quot;).

&gt; Source/WebCore/ChangeLog:9
&gt; +        CSS Masking specification. In a first step the property just excepts

s/excepts/accepts/, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710031</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-31 15:29:28 -0700</bug_when>
    <thetext>Committed r127327: &lt;http://trac.webkit.org/changeset/127327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710154</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-08-31 22:19:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r127327: &lt;http://trac.webkit.org/changeset/127327&gt;
It broke the Qt minimal build. Could you fix it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710171</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-01 00:25:44 -0700</bug_when>
    <thetext>/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp: In static member function &apos;static void WebCore::ApplyPropertyClipPath&lt;getterFunction, setterFunction, initialFunction&gt;::applyValue(WebCore::StyleResolver*, WebCore::CSSValue*)&apos;:
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp:1718: error: there are no arguments to &apos;basicShapeForValue&apos; that depend on a template parameter, so a declaration of &apos;basicShapeForValue&apos; must be available
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp:1718: note: (if you use &apos;-fpermissive&apos;, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp: In static member function &apos;static void WebCore::ApplyPropertyClipPath&lt;getterFunction, setterFunction, initialFunction&gt;::applyValue(WebCore::StyleResolver*, WebCore::CSSValue*) [with WebCore::BasicShape* (WebCore::RenderStyle::* getterFunction)()const = &amp;WebCore::RenderStyle::clipPath, void (WebCore::RenderStyle::* setterFunction)(WTF::PassRefPtr&lt;WebCore::BasicShape&gt;) = &amp;WebCore::RenderStyle::setClipPath, WebCore::BasicShape* (* initialFunction)() = WebCore::RenderStyle::initialClipPath]&apos;:
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp:1726:   instantiated from &apos;static WebCore::PropertyHandler WebCore::ApplyPropertyClipPath&lt;getterFunction, setterFunction, initialFunction&gt;::createHandler() [with WebCore::BasicShape* (WebCore::RenderStyle::* getterFunction)()const = &amp;WebCore::RenderStyle::clipPath, void (WebCore::RenderStyle::* setterFunction)(WTF::PassRefPtr&lt;WebCore::BasicShape&gt;) = &amp;WebCore::RenderStyle::setClipPath, WebCore::BasicShape* (* initialFunction)() = WebCore::RenderStyle::initialClipPath]&apos;
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp:2074:   instantiated from here
/ramdisk/qt-linux-release-minimal/build/Source/WebCore/css/StyleBuilder.cpp:1718: error: &apos;basicShapeForValue&apos; was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710182</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-09-01 00:43:58 -0700</bug_when>
    <thetext>I filed a new bug report for fixing the build - https://bugs.webkit.org/show_bug.cgi?id=95639

(Because reopening bugs is forbidden, and a closed 
bug is absolutely useless to track valid failures.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710333</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-02 08:59:17 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 95653</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710335</commentid>
    <comment_count>13</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-02 09:01:02 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Re-opened since this is blocked by 95653

Sorry, didn&apos;t mean to reopen the bug, just wanted to track the build fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161545</attachid>
            <date>2012-08-30 13:38:50 -0700</date>
            <delta_ts>2012-08-30 16:48:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95474-20120830133838.patch</filename>
            <type>text/plain</type>
            <size>28717</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYxZmQyOTU1ZmE4ZmU2
ZmY2YzdhN2U2ZDZmN2Y2Nzc0MmVkYmExYi4uMzY4MjExNWRlNjJmZTIzNzNhMzk3ZDlhM2JmYTli
YTgyYmRlZDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDEyLTA4LTMwICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKKyAgICAgICAgSW50cm9kdWNlIG5ldyBDU1Mg
cHJvcGVydHkgZm9yIGNsaXAtcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGggaW50cm9kdWNlcyB0aGUgbmV3LCBwcmVmaXhlZCBDU1Mg
cHJvcGVydHkgJ2NsaXAtcGF0aCcgZnJvbSB0aGUKKyAgICAgICAgQ1NTIE1hc2tpbmcgc3BlY2lm
aWNhdGlvbi4gSW4gYSBmaXJzdCBzdGVwIHRoZSBwcm9wZXJ0eSBqdXN0IGV4Y2VwdHMKKyAgICAg
ICAgJ25vbmUnIGFuZCB0aGUgdGhlIGJhc2ljIHNoYXBlcyBmcm9tIENTUyBFeGNsdXNpb24uIExh
dGVyIGl0IHdpbGwgYWxzbyBiZQorICAgICAgICBwb3NzaWJsZSB0byByZWZlcmVuY2UgU1ZHICdj
bGlwUGF0aCcgZWxlbWVudHMgLSBsaWtlIEZpcmVmb3ggYWxyZWFkeSBkb2VzLgorICAgICAgICBU
byBlbmFibGUgdGhlIHBhcnNpbmcgb2YgdGhlIHNoYXBlcywgdGhlIGV4Y2x1c2lvbiBjb21waWxl
ciBmbGFncworICAgICAgICBhcm91bmQgdGhlIHNoYXBlIHBhcnNlciB3ZXJlIHJlbW92ZWQuCisK
KyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL21hc2tpbmcv
aW5kZXguaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0
aC1zaGFwZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZSk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlDbGlwUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OnNldFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDbGlwUGF0aDo6YXBwbHlWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YSk6CisKKzIwMTItMDgtMzAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKwogICAg
ICAgICBSZWZhY3RvciBXcmFwU2hhcGUgY2xhc3NlcyB0byBCYXNpY1NoYXBlCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTQ2MQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGZk
MDZlNGYwMWFmNTE0MGRlZTIwN2M3MmY0ZjgzYzA1ZmVmNTRjYmIuLjRjMTlhYmJkYmY5Y2JiYmUy
OGE2NDk5ZmFkMmE4YTljNDQwOTQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNSw3ICsyNSwxMCBAQAogI2luY2x1
ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkJhc2ljU2hhcGVGdW5jdGlvbnMuaCIKKyNpbmNsdWRl
ICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCiAjaW5j
bHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgpA
QCAtNjAsMTIgKzYzLDYgQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCi0jaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIkJhc2lj
U2hhcGVzLmgiCi0jaW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5o
IgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgpAQCAtMjM1LDYgKzIzMiw3IEBA
IHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAg
IENTU1Byb3BlcnR5V2Via2l0Qm94UGFjaywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJveFJlZmxl
Y3QsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3hTaGFkb3csCisgICAgQ1NTUHJvcGVydHlXZWJr
aXRDbGlwUGF0aCwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdENvbG9yQ29ycmVjdGlvbiwKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrQWZ0ZXIsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRD
b2x1bW5CcmVha0JlZm9yZSwKQEAgLTI0MDksNiArMjQwNywxMCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydAogICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgp
LCBwcm9wZXJ0eUlEKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJSZXNldDoKICAg
ICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShzdHlsZS5nZXQoKSwgcHJvcGVydHlJ
RCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKKyAgICAgICAgICAg
IGlmICghc3R5bGUtPmNsaXBQYXRoKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAg
cmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+Y2xpcFBhdGgoKSk7CiAjaWYgRU5BQkxF
KENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG86CiAg
ICAgICAgICAgICBpZiAoc3R5bGUtPmZsb3dUaHJlYWQoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKaW5kZXggZmIzOGE3ODFmZWM2ZGE3NWUxMzAyMGE0YzI3NTdmY2IzZjQ1ZDk5
OS4uM2Q1OWFhMDlkNWNhZGZhOGY1ZjkyNTUwMmY0NTU4ZjYxMjczYmIzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKQEAgLTI3MjEsNiArMjcyMSwxOCBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUZvbnRWYXJpYW50TGlnYXR1cmVzKGltcG9ydGFu
dCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoK
KyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFs
dWU6OkZ1bmN0aW9uKSB7CisgICAgICAgICAgICBpZiAoUmVmUHRyPENTU0Jhc2ljU2hhcGU+IGNs
aXBQYXRoU2hhcGUgPSBwYXJzZUJhc2ljU2hhcGUoKSkgeworICAgICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHByb3BJZCwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoY2xpcFBhdGhTaGFwZS5y
ZWxlYXNlKCkpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgpAQCAtMjcyOCw4ICsyNzQw
LDE0IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQot
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZSgocHJvcElkID09IENTU1Byb3BlcnR5
V2Via2l0U2hhcGVJbnNpZGUpLCBpbXBvcnRhbnQpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pIHsKKyAgICAgICAgICAgIGlmIChSZWZQ
dHI8Q1NTQmFzaWNTaGFwZT4gd3JhcFNoYXBlID0gcGFyc2VCYXNpY1NoYXBlKCkpIHsKKyAgICAg
ICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHdyYXBTaGFwZS5yZWxlYXNlKCkpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAgICAgIG1fdmFs
dWVMaXN0LT5uZXh0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBNYXJnaW46CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFdyYXBQYWRkaW5nOgpAQCAtNDUxNSw4ICs0NTMzLDYgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlQ2xpcFNoYXBlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KIFBh
c3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVSZWN0YW5n
bGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQogewogICAgIEFTU0VSVChhcmdzKTsKQEAgLTQ3
MjcsMzYgKzQ3NDMsMjYgQEAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBh
cnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NTUGFyc2VyVmFsdWVMaXN0KgogICAgIHJldHVybiBzaGFw
ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShib29sIHNoYXBlSW5zaWRl
LCBib29sIGltcG9ydGFudCkKK1Bhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpw
YXJzZUJhc2ljU2hhcGUoKQogewogICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5jdXJyZW50KCk7CiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gdmFsdWUtPmZ1
bmN0aW9uLT5hcmdzLmdldCgpOwogCiAgICAgaWYgKCFhcmdzKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gc2hhcGU7CisgICAgICAgIHJldHVybiAw
OwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInJl
Y3RhbmdsZSgiKSkKLSAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hhcGVSZWN0YW5nbGUoYXJn
cyk7CisgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGVSZWN0YW5nbGUoYXJncyk7CiAgICAg
ZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCAiY2lyY2xl
KCIpKQotICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUNpcmNsZShhcmdzKTsKKyAgICAg
ICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZUNpcmNsZShhcmdzKTsKICAgICBlbHNlIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUsICJlbGxpcHNlKCIpKQotICAgICAg
ICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2UoYXJncyk7CisgICAgICAgIHJldHVybiBw
YXJzZUJhc2ljU2hhcGVFbGxpcHNlKGFyZ3MpOwogICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInBvbHlnb24oIikpCi0gICAgICAgIHNoYXBlID0g
cGFyc2VCYXNpY1NoYXBlUG9seWdvbihhcmdzKTsKLQotICAgIGlmIChzaGFwZSkgewotICAgICAg
ICBhZGRQcm9wZXJ0eShzaGFwZUluc2lkZSA/IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUg
OiBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlT3V0c2lkZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFs
dWUoc2hhcGUucmVsZWFzZSgpKSwgaW1wb3J0YW50KTsKLSAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorICAgICAgICByZXR1cm4gcGFyc2VC
YXNpY1NoYXBlUG9seWdvbihhcmdzKTsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
MDsKIH0KIAotI2VuZGlmCi0KIC8vIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlhbnQnIHx8
ICdmb250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8gJ2ZvbnQt
ZmFtaWx5JwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAppbmRleCBlN2VkNTc5NzlmZDIxZWRjNDU1YjNmNjJlODI2Yjc0OWM3
OTJkNjk2Li45OGJiZGI5ZGRhOTRkYzNkM2ZkZDc5YzY5YzU3ODJlYTkxNDY3NmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBw
YXJzZUNsaXBTaGFwZShDU1NQcm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKLSAgICBib29s
IHBhcnNlQmFzaWNTaGFwZShib29sIHNoYXBlSW5zaWRlLCBib29sIGltcG9ydGFudCk7CisgICAg
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGUoKTsKICAgICBQYXNzUmVm
UHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVJlY3RhbmdsZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIGFyZ3MpOwogICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1No
YXBlQ2lyY2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgUGFzc1JlZlB0cjxDU1NC
YXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlzdCogYXJn
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRleCBlYWI5ODdiMjBiOGFlNjE2OTg2
ZmE1OWVmM2Q1YzY0ZWIxNjBiMmY0Li41MzE4ZGZjNjE1OGIzZmFmOGU0ODhkMDI0YmRlYWMxNGQ2
YTQ3ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU2MSw2ICs1NjEsNyBA
QCBib29sIENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJv
cGVydHlJRCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94UGFjazoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0Qm94UmVmbGVjdDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94
U2hhZG93OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0Q29sdW1uQXhpczoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29s
dW1uQnJlYWtBZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtCZWZv
cmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDY4NWYzNTBhZDg1
NmZiZTk0ZWM2ZjA5NjQ3ZDE0Y2NkZDZlYTBlOGQuLjJiMmFmNzIyOTYzOTQyNTIyMjE4ZmRlMTUw
YWYxZmNkYzRmZDExMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBA
IC05NSw2ICs5NSw3IEBAIGNhcHRpb24tc2lkZQogLWVwdWItY2FwdGlvbi1zaWRlID0gY2FwdGlv
bi1zaWRlCiBjbGVhcgogY2xpcAorLXdlYmtpdC1jbGlwLXBhdGgKIGNvbnRlbnQKIGNvdW50ZXIt
aW5jcmVtZW50CiBjb3VudGVyLXJlc2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmlu
ZGV4IDViNjA3OTBhNGU3ZTQzMzFhN2Q0ZmI4ODk5ODIzYTBiYzA1MWQ2ZTEuLjUxMDg2MDQ5ZWNm
YTU5MTZhNzcxMWUwMzFjMGM4YjY2YTM2YWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXIuY3BwCkBAIC0xNzA0LDYgKzE3MDQsMjkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK3RlbXBs
YXRlIDxCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwg
dm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxCYXNpY1NoYXBl
PiksIEJhc2ljU2hhcGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgorY2xhc3MgQXBwbHlQcm9wZXJ0
eUNsaXBQYXRoIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJTdHls
ZSogc3R5bGUsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gdmFsdWUpIHsgKHN0eWxlLT4qc2V0dGVy
RnVuY3Rpb24pKHZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoU3R5bGVSZXNv
bHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYg
KHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlTm9uZSkKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LCAwKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsK
KyAgICAgICAgICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gY2xpcFBhdGhTaGFwZSA9IGJhc2lj
U2hhcGVGb3JWYWx1ZShzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBj
bGlwUGF0aFNoYXBlLnJlbGVhc2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAg
ICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEJh
c2ljU2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiwgc2V0dGVy
RnVuY3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7
CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24o
KSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307CisK
ICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiB0ZW1wbGF0ZSA8QmFzaWNTaGFwZSogKFJlbmRl
clN0eWxlOjoqZ2V0dGVyRnVuY3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0
dGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4pLCBCYXNpY1NoYXBlKiAoKmluaXRp
YWxGdW5jdGlvbikoKT4KIGNsYXNzIEFwcGx5UHJvcGVydHlXcmFwU2hhcGUgewpAQCAtMjA0Nyw2
ICsyMDcwLDggQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBBcHBseVByb3BlcnR5RGVmYXVsdDxF
VXNlckRyYWcsICZSZW5kZXJTdHlsZTo6dXNlckRyYWcsIEVVc2VyRHJhZywgJlJlbmRlclN0eWxl
OjpzZXRVc2VyRHJhZywgRVVzZXJEcmFnLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VyRHJhZz46
OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Vi
a2l0VXNlck1vZGlmeSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RVVzZXJNb2RpZnksICZSZW5kZXJT
dHlsZTo6dXNlck1vZGlmeSwgRVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6c2V0VXNlck1vZGlm
eSwgRVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJNb2RpZnk+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFVzZXJT
ZWxlY3QsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5bGU6OnVz
ZXJTZWxlY3QsIEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5bGU6OnNldFVzZXJTZWxlY3QsIEVVc2Vy
U2VsZWN0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VyU2VsZWN0Pjo6Y3JlYXRlSGFuZGxlcigp
KTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCwgQXBw
bHlQcm9wZXJ0eUNsaXBQYXRoPCZSZW5kZXJTdHlsZTo6Y2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6
c2V0Q2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbENsaXBQYXRoPjo6Y3JlYXRlSGFuZGxl
cigpKTsKKwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBzZXRQcm9wZXJ0eUhhbmRs
ZXIoQ1NTUHJvcGVydHlXZWJraXRXcmFwLCBBcHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNz
VmFsdWUsIENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3csIENTU1Byb3BlcnR5V2Via2l0V3JhcE1h
cmdpbiwgQ1NTUHJvcGVydHlXZWJraXRXcmFwUGFkZGluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3csIEFwcGx5UHJv
cGVydHlEZWZhdWx0PFdyYXBGbG93LCAmUmVuZGVyU3R5bGU6OndyYXBGbG93LCBXcmFwRmxvdywg
JlJlbmRlclN0eWxlOjpzZXRXcmFwRmxvdywgV3JhcEZsb3csICZSZW5kZXJTdHlsZTo6aW5pdGlh
bFdyYXBGbG93Pjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDYyMzQzY2E1Zjc5MTY4YjFlYzEwYTg5NWYw
NTEzOGM4MDU4MDk2YzIuLjdmMDMwMmExN2E5NTcyNjM5ZTVlYjc0NjQ1OWJkYmFiMTQ5NGVkYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtNjgxLDYgKzY4MSwxMCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29u
c3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICBpZiAo
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlT3V0c2lkZSAhPSBvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlT3V0c2lkZSkKICAgICAgICAgICAgIHJldHVybiBT
dHlsZURpZmZlcmVuY2VSZXBhaW50OwogCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9jbGlwUGF0aCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY2xpcFBhdGgp
CisgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKKworCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5n
ZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgaWYg
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNzQ0YWQ3OTE0Yjc3NzM0NjM4ZDQwZTA4
M2FiYzU2N2YxM2Y1YWE1YS4uZTRjODYwNjcyN2NhZWQxMmI1NTUxMzEzYjU1YTQyOWM2MGY1ZjIx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAg
LTE0NjQsNiArMTQ2NCwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRp
YWxXcmFwU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIEJhc2ljU2hhcGUq
IGluaXRpYWxXcmFwU2hhcGVPdXRzaWRlKCkgeyByZXR1cm4gMDsgfQogCisgICAgdm9pZCBzZXRD
bGlwUGF0aChQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQorICAgIHsKKyAgICAgICAgaWYg
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2NsaXBQYXRoICE9IHNoYXBlKQorICAgICAgICAgICAg
cmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fY2xpcFBhdGggPSBzaGFwZTsKKyAgICB9
CisgICAgQmFzaWNTaGFwZSogY2xpcFBhdGgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9jbGlwUGF0aC5nZXQoKTsgfQorCisgICAgc3RhdGljIEJhc2ljU2hhcGUqIGlu
aXRpYWxDbGlwUGF0aCgpIHsgcmV0dXJuIDA7IH0KKwogICAgIExlbmd0aCB3cmFwUGFkZGluZygp
IGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3dyYXBQYWRkaW5nOyB9CiAg
ICAgdm9pZCBzZXRXcmFwUGFkZGluZyhMZW5ndGggd3JhcFBhZGRpbmcpIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YSwgbV93cmFwUGFkZGluZywgd3JhcFBhZGRpbmcpOyB9CiAgICAgc3Rh
dGljIExlbmd0aCBpbml0aWFsV3JhcFBhZGRpbmcoKSB7IHJldHVybiBMZW5ndGgoMCwgRml4ZWQp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggNWI4MDBkMGFjYmFhNjQ5NmU1NjQyMGY5
MGRiMjgwNDNjODJjNTFlYy4uZTM4ZDc5NTc4YWJkMWFkZTg3MzZlMGMzNzVjNzFiOGRmMWM1Yzhi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNDgsNiArNDgsNyBAQCBTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIG1fd3Jh
cFNoYXBlT3V0c2lkZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdyYXBTaGFwZU91dHNpZGUoKSkKICAg
ICAsIG1fd3JhcE1hcmdpbihSZW5kZXJTdHlsZTo6aW5pdGlhbFdyYXBNYXJnaW4oKSkKICAgICAs
IG1fd3JhcFBhZGRpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxXcmFwUGFkZGluZygpKQorICAgICwg
bV9jbGlwUGF0aChSZW5kZXJTdHlsZTo6aW5pdGlhbENsaXBQYXRoKCkpCiAgICAgLCBtX3Zpc2l0
ZWRMaW5rQmFja2dyb3VuZENvbG9yKFJlbmRlclN0eWxlOjppbml0aWFsQmFja2dyb3VuZENvbG9y
KCkpCiAgICAgLCBtX29yZGVyKFJlbmRlclN0eWxlOjppbml0aWFsT3JkZXIoKSkKICAgICAsIG1f
Zmxvd1RocmVhZChSZW5kZXJTdHlsZTo6aW5pdGlhbEZsb3dUaHJlYWQoKSkKQEAgLTExOCw2ICsx
MTksNyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICwgbV93cmFwU2hhcGVPdXRzaWRl
KG8ubV93cmFwU2hhcGVPdXRzaWRlKQogICAgICwgbV93cmFwTWFyZ2luKG8ubV93cmFwTWFyZ2lu
KQogICAgICwgbV93cmFwUGFkZGluZyhvLm1fd3JhcFBhZGRpbmcpCisgICAgLCBtX2NsaXBQYXRo
KG8ubV9jbGlwUGF0aCkKICAgICAsIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3Ioby5tX3Zp
c2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yKQogICAgICwgbV92aXNpdGVkTGlua091dGxpbmVDb2xv
cihvLm1fdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IpCiAgICAgLCBtX3Zpc2l0ZWRMaW5rQm9yZGVy
TGVmdENvbG9yKG8ubV92aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvcikKQEAgLTE5OSw2ICsyMDEs
NyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBtX3dyYXBTaGFwZU91dHNp
ZGUgPT0gby5tX3dyYXBTaGFwZU91dHNpZGUKICAgICAgICAgJiYgbV93cmFwTWFyZ2luID09IG8u
bV93cmFwTWFyZ2luCiAgICAgICAgICYmIG1fd3JhcFBhZGRpbmcgPT0gby5tX3dyYXBQYWRkaW5n
CisgICAgICAgICYmIG1fY2xpcFBhdGggPT0gby5tX2NsaXBQYXRoCiAgICAgICAgICYmIG1fdmlz
aXRlZExpbmtCYWNrZ3JvdW5kQ29sb3IgPT0gby5tX3Zpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9y
CiAgICAgICAgICYmIG1fdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IgPT0gby5tX3Zpc2l0ZWRMaW5r
T3V0bGluZUNvbG9yCiAgICAgICAgICYmIG1fdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IgPT0g
by5tX3Zpc2l0ZWRMaW5rQm9yZGVyTGVmdENvbG9yCkBAIC0zMjMsNiArMzI2LDcgQEAgdm9pZCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRpb25zKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3dyYXBTaGFwZUluc2lkZSk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV93cmFwU2hhcGVPdXRzaWRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBQYXRoKTsKICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2Zsb3dUaHJlYWQpOwogICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVnaW9uVGhyZWFkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDZmY2UzMGRiNjg3ZDUwYjgxOTkzOGU2YTU4YWJmMTllMThiMGM3ZTguLjI1MWZmYTMx
OTlhMDY1YzA2NmIyZGVjNmYwZTA1MjdjNTk2MzQ3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApA
QCAtMTM4LDcgKzEzOCw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV93cmFw
U2hhcGVPdXRzaWRlOwogICAgIExlbmd0aCBtX3dyYXBNYXJnaW47CiAgICAgTGVuZ3RoIG1fd3Jh
cFBhZGRpbmc7Ci0gICAgCisKKyAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV9jbGlwUGF0aDsKKwog
ICAgIENvbG9yIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV92aXNp
dGVkTGlua091dGxpbmVDb2xvcjsKICAgICBDb2xvciBtX3Zpc2l0ZWRMaW5rQm9yZGVyTGVmdENv
bG9yOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDQ5MzIyOTMxMGZkZDE2OTYzYmU1MzMzY2IzODFiMjIwMzEyZmU5ZmUuLmVk
OTBjZTk1NjUyNTk3Njg2ZmIwZjNkOWE0MzU4YWY3ZTU0MGRhMjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wOC0zMCAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAg
ICAgIEludHJvZHVjZSBuZXcgQ1NTIHByb3BlcnR5IGZvciBjbGlwLXBhdGgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBwYXJzaW5nIGJlaGF2aW9y
IG9mIGJhc2ljIHNoYXBlcyBvbiBuZXcgaW50cm9kdWNlZCAnLXdlYmtpdC1jbGlwLXBhdGgnIENT
UyBwcm9wZXJ0eS4KKworICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1z
aGFwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5n
LWNsaXAtcGF0aC1zaGFwZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0zMCAgQWFyb24gQ29sd2Vs
bCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggYSBjcmFzaCBpbiBTb3Vy
Y2VCdWZmZXJMaXN0LnJlbW92ZSgpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNr
aW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFwZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGY2ZGEzYmI1OTkzZWRiZWMwY2NmMDhhMzk0MzBiMDIzYTc1MTM4MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFwZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorVGVzdCB0aGF0IGNsaXAtcGF0aCBzaGFwZXMg
YWNjZXB0IGRpZmZlcmVudCBsZW5ndGggdW5pdHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDAsIDAs
IDApIikgaXMgImNpcmNsZSgwcHgsIDBweCwgMHB4KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xcHgsICsxcHgsIDFweCkiKSBpcyAiY2lyY2xlKC0xcHgs
IDFweCwgMXB4KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xl
KC0xLjVweCwgKzEuNXB4LCAxLjVweCkiKSBpcyAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4
KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0uNXB4LCAr
LjVweCwgLjVweCkiKSBpcyAiY2lyY2xlKC0wLjVweCwgMC41cHgsIDAuNXB4KSIKK1BBU1MgaW5u
ZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFw
eCwgMXB0LCAxcGMpIikgaXMgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBj
KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xZW0sICsx
ZW0sIDFlbSkiKSBpcyAiY2lyY2xlKC0xZW0sIDFlbSwgMWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xLjVlbSwgKzEuNWVtLCAxLjVlbSkiKSBpcyAi
Y2lyY2xlKC0xLjVlbSwgMS41ZW0sIDEuNWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKC0uNWVtLCArLjVlbSwgLjVlbSkiKSBpcyAiY2lyY2xlKC0wLjVl
bSwgMC41ZW0sIDAuNWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAi
Y2lyY2xlKDFleCwgMWV4LCAxZXgpIikgaXMgImNpcmNsZSgxZXgsIDFleCwgMWV4KSIKK1BBU1Mg
aW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFyZW0sIDFyZW0sIDFyZW0p
IikgaXMgImNpcmNsZSgxcmVtLCAxcmVtLCAxcmVtKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41ZW0sIDFlbSwgMS41ZW0pIikgaXMgImNpcmNsZSg0
cHgsIDhweCwgMTJweCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwg
ImNpcmNsZSguNXJlbSwgMXJlbSwgMS41cmVtKSIpIGlzICJjaXJjbGUoOHB4LCAxNnB4LCAyNHB4
KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2dywgMXZ3
LCAxdncpIikgaXMgImNpcmNsZSgxdncsIDF2dywgMXZ3KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2aCwgMXZoLCAxdmgpIikgaXMgImNpcmNsZSgxdmgs
IDF2aCwgMXZoKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xl
KDF2bWluLCAxdm1pbiwgMXZtaW4pIikgaXMgImNpcmNsZSgxdm1pbiwgMXZtaW4sIDF2bWluKSIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dncsIDF2
dywgMS41dncpIikgaXMgImNpcmNsZSgwLjV2dywgMXZ3LCAxLjV2dykiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSguNXZoLCAxdmgsIDEuNXZoKSIpIGlz
ICJjaXJjbGUoMC41dmgsIDF2aCwgMS41dmgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0
LWNsaXAtcGF0aCIsICJjaXJjbGUoLjV2bWluLCAxdm1pbiwgMS41dm1pbikiKSBpcyAiY2lyY2xl
KDAuNXZtaW4sIDF2bWluLCAxLjV2bWluKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImNpcmNsZSgxMDAlLCAxMDAl
LCAxMDAlKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xl
KDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIikgaXMgInJlY3RhbmdsZSg0NSUsIDQ1JSwg
OTAlLCA2MCUsIDI1JSwgMTAlKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJlbGxpcHNlKDEwMCUsIDEw
MCUsIDEwMCUsIDEwMCUpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJw
b2x5Z29uKDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIikgaXMgInBvbHlnb24obm9uemVybywg
MTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQt
Y2xpcC1wYXRoIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIikgaXMgImNpcmNsZSg1MCUsIDEw
MCUsIDE1MCUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0
YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xlKDQ1JSwg
NDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNs
aXAtcGF0aCIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVsbGlwc2Uo
MTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xp
cC1wYXRoIiwgInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBpcyAicG9seWdv
bihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKK1BBU1MgaW5uZXJTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIpIGlzIG51bGwKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIp
IGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUo
MXB4LCAxcHgsIHB4KSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBweCkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHls
ZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxcCkiKSBpcyBudWxsCitQ
QVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgxcHgsIDFweCwg
MXApIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNp
cmNsZSgxcHgsIDFweCwgY2FsYygpKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBjYWxjKCkpIikgaXMgIm5vbmUiCitQ
QVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgtMS41cHgsICsxLjVw
eCwgLTEuNXB4KSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBh
dGgiLCAiY2lyY2xlKC0xLjVweCwgKzEuNXB4LCAtMS41cHgpIikgaXMgIm5vbmUiCitQQVNTIGlu
bmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAx
cHgsIC0xcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xp
cC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyAi
bm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFj
bSwgMW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0
LCAtMXBjKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIs
ICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0
eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikg
aXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2Uo
MWVtLCAxZW0sIDFlbSwgLTFlbSkiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJr
aXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMWVtLCAxZW0sIDFlbSwgLTFlbSkiKSBpcyAibm9uZSIK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1t
LCAtMWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBj
KSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0
YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBjb21w
dXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwg
LTFweCwgMXB0LCAxcGMpIikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNr
aW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tp
bmcvcGFyc2luZy1jbGlwLXBhdGgtc2hhcGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjYyOTUwOGJmNzRl
Y2Q4MmI4ZjEzZjYyNzE0ZWFmNDI1ZGY0YWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLmh0bWwKQEAgLTAsMCArMSwx
MDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisqIHsgZm9udC1zaXplOiAx
NnB4OyB9CitkaXYgeyBmb250LXNpemU6IDhweDsgfQorPC9zdHlsZT4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBjbGlwLXBhdGggc2hhcGVzIGFjY2VwdCBkaWZmZXJl
bnQgbGVuZ3RoIHVuaXRzJyk7CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0
aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZGl2KTsKKyAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2
YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVl
KHByb3BlcnR5KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0
dXJuIGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZh
bHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
IGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYu
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21w
dXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScs
IGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIHNob3VsZEJlTnVs
bCgnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknKTsKKyAg
ICBlbHNlCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHBy
b3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9u
IG5lZ2F0aXZlVGVzdChwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB0ZXN0SW5uZXIocHJvcGVydHks
IHZhbHVlLCBudWxsKTsKKyAgICB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCAnbm9uZScp
OworfQorCisvLyBhYnNvbHV0ZSBsZW5ndGhzIC0gbnVtYmVyIHNlcmlhbGl6YXRpb24sIHVuaXRz
Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgwLCAwLCAwKSIsICJjaXJj
bGUoMHB4LCAwcHgsIDBweCkiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2ly
Y2xlKC0xcHgsICsxcHgsIDFweCkiLCAiY2lyY2xlKC0xcHgsIDFweCwgMXB4KSIpOwordGVzdElu
bmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIDEuNXB4KSIs
ICJjaXJjbGUoLTEuNXB4LCAxLjVweCwgMS41cHgpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xp
cC1wYXRoIiwgImNpcmNsZSgtLjVweCwgKy41cHgsIC41cHgpIiwgImNpcmNsZSgtMC41cHgsIDAu
NXB4LCAwLjVweCkiKTsKKwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAx
aW4sIDFweCwgMXB0LCAxcGMpIik7CisKKy8vIGZvbnQtcmVsYXRpdmUgbGVuZ3RocyAtIG51bWJl
ciBzZXJpYWxpemF0aW9uLCB1bml0cywgcmVzb2x1dGlvbgordGVzdElubmVyKCItd2Via2l0LWNs
aXAtcGF0aCIsICJjaXJjbGUoLTFlbSwgKzFlbSwgMWVtKSIsICJjaXJjbGUoLTFlbSwgMWVtLCAx
ZW0pIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgtMS41ZW0sICsx
LjVlbSwgMS41ZW0pIiwgImNpcmNsZSgtMS41ZW0sIDEuNWVtLCAxLjVlbSkiKTsKK3Rlc3RJbm5l
cigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0uNWVtLCArLjVlbSwgLjVlbSkiLCAiY2ly
Y2xlKC0wLjVlbSwgMC41ZW0sIDAuNWVtKSIpOworCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1w
YXRoIiwgImNpcmNsZSgxZXgsIDFleCwgMWV4KSIsICJjaXJjbGUoMWV4LCAxZXgsIDFleCkiKTsK
Ky8vIEZJWE1FOiBBZGQgY2ggdGVzdCB3aGVuIGl0IGlzIHN1cHBvcnRlZAordGVzdElubmVyKCIt
d2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXJlbSwgMXJlbSwgMXJlbSkiLCAiY2lyY2xlKDFy
ZW0sIDFyZW0sIDFyZW0pIik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAi
Y2lyY2xlKC41ZW0sIDFlbSwgMS41ZW0pIiwgImNpcmNsZSg0cHgsIDhweCwgMTJweCkiKTsKK3Rl
c3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41cmVtLCAxcmVtLCAxLjVy
ZW0pIiwgImNpcmNsZSg4cHgsIDE2cHgsIDI0cHgpIik7CisKKy8vIHZpZXdwb3J0LXBlcmNlbnRh
Z2UgbGVuZ3RocyAtIHVuaXRzLCByZXNvbHV0aW9uCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1w
YXRoIiwgImNpcmNsZSgxdncsIDF2dywgMXZ3KSIsICJjaXJjbGUoMXZ3LCAxdncsIDF2dykiKTsK
K3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2aCwgMXZoLCAxdmgpIiwg
ImNpcmNsZSgxdmgsIDF2aCwgMXZoKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIs
ICJjaXJjbGUoMXZtaW4sIDF2bWluLCAxdm1pbikiLCAiY2lyY2xlKDF2bWluLCAxdm1pbiwgMXZt
aW4pIik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dncs
IDF2dywgMS41dncpIiwgImNpcmNsZSgwLjV2dywgMXZ3LCAxLjV2dykiKTsKK3Rlc3RDb21wdXRl
ZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dmgsIDF2aCwgMS41dmgpIiwgImNpcmNs
ZSgwLjV2aCwgMXZoLCAxLjV2aCkiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAiY2lyY2xlKC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIiwgImNpcmNsZSgwLjV2bWluLCAxdm1p
biwgMS41dm1pbikiKTsKKworLy8gcGVyY2VudGFnZSBsZW5ndGhzIC0gdW5pdHMKK3Rlc3RJbm5l
cigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIiwgImNpcmNs
ZSgxMDAlLCAxMDAlLCAxMDAlKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJy
ZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiLCAicmVjdGFuZ2xlKDQ1JSwg
NDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiLCAiZWxsaXBzZSgxMDAlLCAxMDAl
LCAxMDAlLCAxMDAlKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29u
KDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIwJSwg
MzAlIDQwJSwgNDAlIDUwJSkiKTsKKwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIs
ICJjaXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIsICJjaXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIpOwor
dGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkw
JSwgNjAlLCAyNSUsIDEwJSkiLCAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAx
MCUpIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMTAwJSwg
MTAwJSwgMTAwJSwgMTAwJSkiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpOwor
dGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKDEwJSAyMCUsIDMwJSA0
MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUw
JSkiKTsKKworLy8gcmVqZWN0IG5vbi1sZW5ndGhzCituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xp
cC1wYXRoIiwgImNpcmNsZSgxcHgsIDFweCwgMSkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBweCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxcCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBjYWxjKCkpIik7CisKKy8vIHJlamVj
dCBuZWdhdGl2ZSByYWRpdXNlcworbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJj
aXJjbGUoLTEuNXB4LCArMS41cHgsIC0xLjVweCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpOwor
bmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAxcHQsIC0xcGMpIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1wYXRoIiwg
ImVsbGlwc2UoMWVtLCAxZW0sIC0xZW0sIDFlbSkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiZWxsaXBzZSgxZW0sIDFlbSwgMWVtLCAtMWVtKSIpOworCisvLyByZWplY3Qg
bmVnYXRpdmUgaGVpZ2h0IGFuZCB3aWR0aAorbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0
aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7CituZWdhdGl2
ZVRlc3QoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAtMXB4
LCAxcHQsIDFwYykiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161588</attachid>
            <date>2012-08-30 16:48:33 -0700</date>
            <delta_ts>2012-08-31 14:13:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95474-20120830164821.patch</filename>
            <type>text/plain</type>
            <size>28771</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYxZmQyOTU1ZmE4ZmU2
ZmY2YzdhN2U2ZDZmN2Y2Nzc0MmVkYmExYi4uMzY4MjExNWRlNjJmZTIzNzNhMzk3ZDlhM2JmYTli
YTgyYmRlZDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDEyLTA4LTMwICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKKyAgICAgICAgSW50cm9kdWNlIG5ldyBDU1Mg
cHJvcGVydHkgZm9yIGNsaXAtcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGggaW50cm9kdWNlcyB0aGUgbmV3LCBwcmVmaXhlZCBDU1Mg
cHJvcGVydHkgJ2NsaXAtcGF0aCcgZnJvbSB0aGUKKyAgICAgICAgQ1NTIE1hc2tpbmcgc3BlY2lm
aWNhdGlvbi4gSW4gYSBmaXJzdCBzdGVwIHRoZSBwcm9wZXJ0eSBqdXN0IGV4Y2VwdHMKKyAgICAg
ICAgJ25vbmUnIGFuZCB0aGUgdGhlIGJhc2ljIHNoYXBlcyBmcm9tIENTUyBFeGNsdXNpb24uIExh
dGVyIGl0IHdpbGwgYWxzbyBiZQorICAgICAgICBwb3NzaWJsZSB0byByZWZlcmVuY2UgU1ZHICdj
bGlwUGF0aCcgZWxlbWVudHMgLSBsaWtlIEZpcmVmb3ggYWxyZWFkeSBkb2VzLgorICAgICAgICBU
byBlbmFibGUgdGhlIHBhcnNpbmcgb2YgdGhlIHNoYXBlcywgdGhlIGV4Y2x1c2lvbiBjb21waWxl
ciBmbGFncworICAgICAgICBhcm91bmQgdGhlIHNoYXBlIHBhcnNlciB3ZXJlIHJlbW92ZWQuCisK
KyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL21hc2tpbmcv
aW5kZXguaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0
aC1zaGFwZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZSk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlDbGlwUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OnNldFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDbGlwUGF0aDo6YXBwbHlWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YSk6CisKKzIwMTItMDgtMzAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKwogICAg
ICAgICBSZWZhY3RvciBXcmFwU2hhcGUgY2xhc3NlcyB0byBCYXNpY1NoYXBlCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTQ2MQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGZk
MDZlNGYwMWFmNTE0MGRlZTIwN2M3MmY0ZjgzYzA1ZmVmNTRjYmIuLjRjMTlhYmJkYmY5Y2JiYmUy
OGE2NDk5ZmFkMmE4YTljNDQwOTQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNSw3ICsyNSwxMCBAQAogI2luY2x1
ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkJhc2ljU2hhcGVGdW5jdGlvbnMuaCIKKyNpbmNsdWRl
ICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCiAjaW5j
bHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgpA
QCAtNjAsMTIgKzYzLDYgQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCi0jaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIkJhc2lj
U2hhcGVzLmgiCi0jaW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5o
IgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgpAQCAtMjM1LDYgKzIzMiw3IEBA
IHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAg
IENTU1Byb3BlcnR5V2Via2l0Qm94UGFjaywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJveFJlZmxl
Y3QsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3hTaGFkb3csCisgICAgQ1NTUHJvcGVydHlXZWJr
aXRDbGlwUGF0aCwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdENvbG9yQ29ycmVjdGlvbiwKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrQWZ0ZXIsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRD
b2x1bW5CcmVha0JlZm9yZSwKQEAgLTI0MDksNiArMjQwNywxMCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydAogICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgp
LCBwcm9wZXJ0eUlEKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJSZXNldDoKICAg
ICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShzdHlsZS5nZXQoKSwgcHJvcGVydHlJ
RCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKKyAgICAgICAgICAg
IGlmICghc3R5bGUtPmNsaXBQYXRoKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAg
cmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+Y2xpcFBhdGgoKSk7CiAjaWYgRU5BQkxF
KENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG86CiAg
ICAgICAgICAgICBpZiAoc3R5bGUtPmZsb3dUaHJlYWQoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKaW5kZXggZmIzOGE3ODFmZWM2ZGE3NWUxMzAyMGE0YzI3NTdmY2IzZjQ1ZDk5
OS4uODI3YmY2YmU4ZGVkYWU4OTY5M2U3OGZhYmFmOTBhNWJkZGY5YWEyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKQEAgLTI3MjEsNiArMjcyMSwxOCBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUZvbnRWYXJpYW50TGlnYXR1cmVzKGltcG9ydGFu
dCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoK
KyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFs
dWU6OkZ1bmN0aW9uKSB7CisgICAgICAgICAgICBpZiAoUmVmUHRyPENTU0Jhc2ljU2hhcGU+IGNs
aXBQYXRoU2hhcGUgPSBwYXJzZUJhc2ljU2hhcGUoKSkgeworICAgICAgICAgICAgICAgIGFkZFBy
b3BlcnR5KHByb3BJZCwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoY2xpcFBhdGhTaGFwZS5y
ZWxlYXNlKCkpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgpAQCAtMjcyOCw4ICsyNzQw
LDE0IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQot
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZSgocHJvcElkID09IENTU1Byb3BlcnR5
V2Via2l0U2hhcGVJbnNpZGUpLCBpbXBvcnRhbnQpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+
dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pIHsKKyAgICAgICAgICAgIGlmIChSZWZQ
dHI8Q1NTQmFzaWNTaGFwZT4gd3JhcFNoYXBlID0gcGFyc2VCYXNpY1NoYXBlKCkpIHsKKyAgICAg
ICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHdyYXBTaGFwZS5yZWxlYXNlKCkpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAgICAgIG1fdmFs
dWVMaXN0LT5uZXh0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBNYXJnaW46CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFdyYXBQYWRkaW5nOgpAQCAtNDUxNSw4ICs0NTMzLDYgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlQ2xpcFNoYXBlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KIFBh
c3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVSZWN0YW5n
bGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQogewogICAgIEFTU0VSVChhcmdzKTsKQEAgLTQ3
MjcsMzYgKzQ3NDMsMjcgQEAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBh
cnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NTUGFyc2VyVmFsdWVMaXN0KgogICAgIHJldHVybiBzaGFw
ZTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZShib29sIHNoYXBlSW5zaWRl
LCBib29sIGltcG9ydGFudCkKK1Bhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpw
YXJzZUJhc2ljU2hhcGUoKQogewogICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVM
aXN0LT5jdXJyZW50KCk7CisgICAgQVNTRVJUKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVl
OjpGdW5jdGlvbik7CiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gdmFsdWUtPmZ1bmN0
aW9uLT5hcmdzLmdldCgpOwogCiAgICAgaWYgKCFhcmdzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gc2hhcGU7CisgICAgICAgIHJldHVybiAwOwog
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInJlY3Rh
bmdsZSgiKSkKLSAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hhcGVSZWN0YW5nbGUoYXJncyk7
CisgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGVSZWN0YW5nbGUoYXJncyk7CiAgICAgZWxz
ZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCAiY2lyY2xlKCIp
KQotICAgICAgICBzaGFwZSA9IHBhcnNlQmFzaWNTaGFwZUNpcmNsZShhcmdzKTsKKyAgICAgICAg
cmV0dXJuIHBhcnNlQmFzaWNTaGFwZUNpcmNsZShhcmdzKTsKICAgICBlbHNlIGlmIChlcXVhbEln
bm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUsICJlbGxpcHNlKCIpKQotICAgICAgICBz
aGFwZSA9IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2UoYXJncyk7CisgICAgICAgIHJldHVybiBwYXJz
ZUJhc2ljU2hhcGVFbGxpcHNlKGFyZ3MpOwogICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInBvbHlnb24oIikpCi0gICAgICAgIHNoYXBlID0gcGFy
c2VCYXNpY1NoYXBlUG9seWdvbihhcmdzKTsKLQotICAgIGlmIChzaGFwZSkgewotICAgICAgICBh
ZGRQcm9wZXJ0eShzaGFwZUluc2lkZSA/IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUgOiBD
U1NQcm9wZXJ0eVdlYmtpdFNoYXBlT3V0c2lkZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUo
c2hhcGUucmVsZWFzZSgpKSwgaW1wb3J0YW50KTsKLSAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQo
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorICAgICAgICByZXR1cm4gcGFyc2VCYXNp
Y1NoYXBlUG9seWdvbihhcmdzKTsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gMDsK
IH0KIAotI2VuZGlmCi0KIC8vIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlhbnQnIHx8ICdm
b250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8gJ2ZvbnQtZmFt
aWx5JwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaAppbmRleCBlN2VkNTc5NzlmZDIxZWRjNDU1YjNmNjJlODI2Yjc0OWM3OTJk
Njk2Li45OGJiZGI5ZGRhOTRkYzNkM2ZkZDc5YzY5YzU3ODJlYTkxNDY3NmI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBwYXJz
ZUNsaXBTaGFwZShDU1NQcm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKLSAgICBib29sIHBh
cnNlQmFzaWNTaGFwZShib29sIHNoYXBlSW5zaWRlLCBib29sIGltcG9ydGFudCk7CisgICAgUGFz
c1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGUoKTsKICAgICBQYXNzUmVmUHRy
PENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVJlY3RhbmdsZShDU1NQYXJzZXJWYWx1ZUxp
c3QqIGFyZ3MpOwogICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1NoYXBl
Q2lyY2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNp
Y1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRleCBlYWI5ODdiMjBiOGFlNjE2OTg2ZmE1
OWVmM2Q1YzY0ZWIxNjBiMmY0Li41MzE4ZGZjNjE1OGIzZmFmOGU0ODhkMDI0YmRlYWMxNGQ2YTQ3
ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU2MSw2ICs1NjEsNyBAQCBi
b29sIENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94UGFjazoKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0Qm94UmVmbGVjdDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94U2hh
ZG93OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0Q29sdW1uQXhpczoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1u
QnJlYWtBZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtCZWZvcmU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDY4NWYzNTBhZDg1NmZi
ZTk0ZWM2ZjA5NjQ3ZDE0Y2NkZDZlYTBlOGQuLjJiMmFmNzIyOTYzOTQyNTIyMjE4ZmRlMTUwYWYx
ZmNkYzRmZDExMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC05
NSw2ICs5NSw3IEBAIGNhcHRpb24tc2lkZQogLWVwdWItY2FwdGlvbi1zaWRlID0gY2FwdGlvbi1z
aWRlCiBjbGVhcgogY2xpcAorLXdlYmtpdC1jbGlwLXBhdGgKIGNvbnRlbnQKIGNvdW50ZXItaW5j
cmVtZW50CiBjb3VudGVyLXJlc2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4
IDViNjA3OTBhNGU3ZTQzMzFhN2Q0ZmI4ODk5ODIzYTBiYzA1MWQ2ZTEuLjUxMDg2MDQ5ZWNmYTU5
MTZhNzcxMWUwMzFjMGM4YjY2YTM2YWM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIu
Y3BwCkBAIC0xNzA0LDYgKzE3MDQsMjkgQEAgcHVibGljOgogICAgIH0KIH07CiAKK3RlbXBsYXRl
IDxCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9p
ZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiks
IEJhc2ljU2hhcGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgorY2xhc3MgQXBwbHlQcm9wZXJ0eUNs
aXBQYXRoIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSog
c3R5bGUsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gdmFsdWUpIHsgKHN0eWxlLT4qc2V0dGVyRnVu
Y3Rpb24pKHZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoU3R5bGVSZXNvbHZl
ciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZh
bHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
OworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZSkKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCAw
KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsKKyAg
ICAgICAgICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gY2xpcFBhdGhTaGFwZSA9IGJhc2ljU2hh
cGVGb3JWYWx1ZShzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBjbGlw
UGF0aFNoYXBlLnJlbGVhc2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAg
IFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEJhc2lj
U2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiwgc2V0dGVyRnVu
Y3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7Cisg
ICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwg
aGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307CisKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiB0ZW1wbGF0ZSA8QmFzaWNTaGFwZSogKFJlbmRlclN0
eWxlOjoqZ2V0dGVyRnVuY3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVy
RnVuY3Rpb24pKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4pLCBCYXNpY1NoYXBlKiAoKmluaXRpYWxG
dW5jdGlvbikoKT4KIGNsYXNzIEFwcGx5UHJvcGVydHlXcmFwU2hhcGUgewpAQCAtMjA0Nyw2ICsy
MDcwLDggQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVXNl
ckRyYWcsICZSZW5kZXJTdHlsZTo6dXNlckRyYWcsIEVVc2VyRHJhZywgJlJlbmRlclN0eWxlOjpz
ZXRVc2VyRHJhZywgRVVzZXJEcmFnLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VyRHJhZz46OmNy
ZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
VXNlck1vZGlmeSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RVVzZXJNb2RpZnksICZSZW5kZXJTdHls
ZTo6dXNlck1vZGlmeSwgRVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6c2V0VXNlck1vZGlmeSwg
RVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJNb2RpZnk+OjpjcmVhdGVIYW5k
bGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxl
Y3QsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5bGU6OnVzZXJT
ZWxlY3QsIEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5bGU6OnNldFVzZXJTZWxlY3QsIEVVc2VyU2Vs
ZWN0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VyU2VsZWN0Pjo6Y3JlYXRlSGFuZGxlcigpKTsK
KyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCwgQXBwbHlQ
cm9wZXJ0eUNsaXBQYXRoPCZSZW5kZXJTdHlsZTo6Y2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6c2V0
Q2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbENsaXBQYXRoPjo6Y3JlYXRlSGFuZGxlcigp
KTsKKwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRXcmFwLCBBcHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNzVmFs
dWUsIENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3csIENTU1Byb3BlcnR5V2Via2l0V3JhcE1hcmdp
biwgQ1NTUHJvcGVydHlXZWJraXRXcmFwUGFkZGluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3csIEFwcGx5UHJvcGVy
dHlEZWZhdWx0PFdyYXBGbG93LCAmUmVuZGVyU3R5bGU6OndyYXBGbG93LCBXcmFwRmxvdywgJlJl
bmRlclN0eWxlOjpzZXRXcmFwRmxvdywgV3JhcEZsb3csICZSZW5kZXJTdHlsZTo6aW5pdGlhbFdy
YXBGbG93Pjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDYyMzQzY2E1Zjc5MTY4YjFlYzEwYTg5NWYwNTEz
OGM4MDU4MDk2YzIuLjdmMDMwMmExN2E5NTcyNjM5ZTVlYjc0NjQ1OWJkYmFiMTQ5NGVkYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAt
NjgxLDYgKzY4MSwxMCBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3Qg
UmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICBpZiAocmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlT3V0c2lkZSAhPSBvdGhlci0+cmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlT3V0c2lkZSkKICAgICAgICAgICAgIHJldHVybiBTdHls
ZURpZmZlcmVuY2VSZXBhaW50OwogCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9jbGlwUGF0aCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY2xpcFBhdGgpCisg
ICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKKworCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQo
KSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgaWYgKHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNzQ0YWQ3OTE0Yjc3NzM0NjM4ZDQwZTA4M2Fi
YzU2N2YxM2Y1YWE1YS4uZTRjODYwNjcyN2NhZWQxMmI1NTUxMzEzYjU1YTQyOWM2MGY1ZjIxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE0
NjQsNiArMTQ2NCwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRpYWxX
cmFwU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIEJhc2ljU2hhcGUqIGlu
aXRpYWxXcmFwU2hhcGVPdXRzaWRlKCkgeyByZXR1cm4gMDsgfQogCisgICAgdm9pZCBzZXRDbGlw
UGF0aChQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQorICAgIHsKKyAgICAgICAgaWYgKHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2NsaXBQYXRoICE9IHNoYXBlKQorICAgICAgICAgICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fY2xpcFBhdGggPSBzaGFwZTsKKyAgICB9Cisg
ICAgQmFzaWNTaGFwZSogY2xpcFBhdGgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9jbGlwUGF0aC5nZXQoKTsgfQorCisgICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRp
YWxDbGlwUGF0aCgpIHsgcmV0dXJuIDA7IH0KKwogICAgIExlbmd0aCB3cmFwUGFkZGluZygpIGNv
bnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3dyYXBQYWRkaW5nOyB9CiAgICAg
dm9pZCBzZXRXcmFwUGFkZGluZyhMZW5ndGggd3JhcFBhZGRpbmcpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YSwgbV93cmFwUGFkZGluZywgd3JhcFBhZGRpbmcpOyB9CiAgICAgc3RhdGlj
IExlbmd0aCBpbml0aWFsV3JhcFBhZGRpbmcoKSB7IHJldHVybiBMZW5ndGgoMCwgRml4ZWQpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggNWI4MDBkMGFjYmFhNjQ5NmU1NjQyMGY5MGRi
MjgwNDNjODJjNTFlYy4uZTM4ZDc5NTc4YWJkMWFkZTg3MzZlMGMzNzVjNzFiOGRmMWM1YzhiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNDgsNiArNDgsNyBAQCBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIG1fd3JhcFNo
YXBlT3V0c2lkZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdyYXBTaGFwZU91dHNpZGUoKSkKICAgICAs
IG1fd3JhcE1hcmdpbihSZW5kZXJTdHlsZTo6aW5pdGlhbFdyYXBNYXJnaW4oKSkKICAgICAsIG1f
d3JhcFBhZGRpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxXcmFwUGFkZGluZygpKQorICAgICwgbV9j
bGlwUGF0aChSZW5kZXJTdHlsZTo6aW5pdGlhbENsaXBQYXRoKCkpCiAgICAgLCBtX3Zpc2l0ZWRM
aW5rQmFja2dyb3VuZENvbG9yKFJlbmRlclN0eWxlOjppbml0aWFsQmFja2dyb3VuZENvbG9yKCkp
CiAgICAgLCBtX29yZGVyKFJlbmRlclN0eWxlOjppbml0aWFsT3JkZXIoKSkKICAgICAsIG1fZmxv
d1RocmVhZChSZW5kZXJTdHlsZTo6aW5pdGlhbEZsb3dUaHJlYWQoKSkKQEAgLTExOCw2ICsxMTks
NyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICwgbV93cmFwU2hhcGVPdXRzaWRlKG8u
bV93cmFwU2hhcGVPdXRzaWRlKQogICAgICwgbV93cmFwTWFyZ2luKG8ubV93cmFwTWFyZ2luKQog
ICAgICwgbV93cmFwUGFkZGluZyhvLm1fd3JhcFBhZGRpbmcpCisgICAgLCBtX2NsaXBQYXRoKG8u
bV9jbGlwUGF0aCkKICAgICAsIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3Ioby5tX3Zpc2l0
ZWRMaW5rQmFja2dyb3VuZENvbG9yKQogICAgICwgbV92aXNpdGVkTGlua091dGxpbmVDb2xvcihv
Lm1fdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IpCiAgICAgLCBtX3Zpc2l0ZWRMaW5rQm9yZGVyTGVm
dENvbG9yKG8ubV92aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvcikKQEAgLTE5OSw2ICsyMDEsNyBA
QCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBtX3dyYXBTaGFwZU91dHNpZGUg
PT0gby5tX3dyYXBTaGFwZU91dHNpZGUKICAgICAgICAgJiYgbV93cmFwTWFyZ2luID09IG8ubV93
cmFwTWFyZ2luCiAgICAgICAgICYmIG1fd3JhcFBhZGRpbmcgPT0gby5tX3dyYXBQYWRkaW5nCisg
ICAgICAgICYmIG1fY2xpcFBhdGggPT0gby5tX2NsaXBQYXRoCiAgICAgICAgICYmIG1fdmlzaXRl
ZExpbmtCYWNrZ3JvdW5kQ29sb3IgPT0gby5tX3Zpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yCiAg
ICAgICAgICYmIG1fdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IgPT0gby5tX3Zpc2l0ZWRMaW5rT3V0
bGluZUNvbG9yCiAgICAgICAgICYmIG1fdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IgPT0gby5t
X3Zpc2l0ZWRMaW5rQm9yZGVyTGVmdENvbG9yCkBAIC0zMjMsNiArMzI2LDcgQEAgdm9pZCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRpb25zKTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX3dyYXBTaGFwZUluc2lkZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV93
cmFwU2hhcGVPdXRzaWRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaXBQYXRoKTsKICAgICBp
bmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2Zsb3dUaHJlYWQpOwogICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkTWVtYmVyKG1fcmVnaW9uVGhyZWFkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmlu
ZGV4IDZmY2UzMGRiNjg3ZDUwYjgxOTkzOGU2YTU4YWJmMTllMThiMGM3ZTguLjI1MWZmYTMxOTlh
MDY1YzA2NmIyZGVjNmYwZTA1MjdjNTk2MzQ3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAt
MTM4LDcgKzEzOCw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV93cmFwU2hh
cGVPdXRzaWRlOwogICAgIExlbmd0aCBtX3dyYXBNYXJnaW47CiAgICAgTGVuZ3RoIG1fd3JhcFBh
ZGRpbmc7Ci0gICAgCisKKyAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV9jbGlwUGF0aDsKKwogICAg
IENvbG9yIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV92aXNpdGVk
TGlua091dGxpbmVDb2xvcjsKICAgICBDb2xvciBtX3Zpc2l0ZWRMaW5rQm9yZGVyTGVmdENvbG9y
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQ5MzIyOTMxMGZkZDE2OTYzYmU1MzMzY2IzODFiMjIwMzEyZmU5ZmUuLmVkOTBj
ZTk1NjUyNTk3Njg2ZmIwZjNkOWE0MzU4YWY3ZTU0MGRhMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMi0wOC0zMCAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAgICAg
IEludHJvZHVjZSBuZXcgQ1NTIHByb3BlcnR5IGZvciBjbGlwLXBhdGgKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBwYXJzaW5nIGJlaGF2aW9yIG9m
IGJhc2ljIHNoYXBlcyBvbiBuZXcgaW50cm9kdWNlZCAnLXdlYmtpdC1jbGlwLXBhdGgnIENTUyBw
cm9wZXJ0eS4KKworICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFw
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNs
aXAtcGF0aC1zaGFwZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0zMCAgQWFyb24gQ29sd2VsbCAg
PGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggYSBjcmFzaCBpbiBTb3VyY2VC
dWZmZXJMaXN0LnJlbW92ZSgpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5n
L3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFwZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGY2ZGEzYmI1OTkzZWRiZWMwY2NmMDhhMzk0MzBiMDIzYTc1MTM4MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFwZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorVGVzdCB0aGF0IGNsaXAtcGF0aCBzaGFwZXMgYWNj
ZXB0IGRpZmZlcmVudCBsZW5ndGggdW5pdHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDAsIDAsIDAp
IikgaXMgImNpcmNsZSgwcHgsIDBweCwgMHB4KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKC0xcHgsICsxcHgsIDFweCkiKSBpcyAiY2lyY2xlKC0xcHgsIDFw
eCwgMXB4KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0x
LjVweCwgKzEuNXB4LCAxLjVweCkiKSBpcyAiY2lyY2xlKC0xLjVweCwgMS41cHgsIDEuNXB4KSIK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0uNXB4LCArLjVw
eCwgLjVweCkiKSBpcyAiY2lyY2xlKC0wLjVweCwgMC41cHgsIDAuNXB4KSIKK1BBU1MgaW5uZXJT
dHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwg
MXB0LCAxcGMpIikgaXMgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xZW0sICsxZW0s
IDFlbSkiKSBpcyAiY2lyY2xlKC0xZW0sIDFlbSwgMWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xLjVlbSwgKzEuNWVtLCAxLjVlbSkiKSBpcyAiY2ly
Y2xlKC0xLjVlbSwgMS41ZW0sIDEuNWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKC0uNWVtLCArLjVlbSwgLjVlbSkiKSBpcyAiY2lyY2xlKC0wLjVlbSwg
MC41ZW0sIDAuNWVtKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2ly
Y2xlKDFleCwgMWV4LCAxZXgpIikgaXMgImNpcmNsZSgxZXgsIDFleCwgMWV4KSIKK1BBU1MgaW5u
ZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFyZW0sIDFyZW0sIDFyZW0pIikg
aXMgImNpcmNsZSgxcmVtLCAxcmVtLCAxcmVtKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41ZW0sIDFlbSwgMS41ZW0pIikgaXMgImNpcmNsZSg0cHgs
IDhweCwgMTJweCkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNp
cmNsZSguNXJlbSwgMXJlbSwgMS41cmVtKSIpIGlzICJjaXJjbGUoOHB4LCAxNnB4LCAyNHB4KSIK
K1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2dywgMXZ3LCAx
dncpIikgaXMgImNpcmNsZSgxdncsIDF2dywgMXZ3KSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2aCwgMXZoLCAxdmgpIikgaXMgImNpcmNsZSgxdmgsIDF2
aCwgMXZoKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2
bWluLCAxdm1pbiwgMXZtaW4pIikgaXMgImNpcmNsZSgxdm1pbiwgMXZtaW4sIDF2bWluKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dncsIDF2dywg
MS41dncpIikgaXMgImNpcmNsZSgwLjV2dywgMXZ3LCAxLjV2dykiCitQQVNTIGNvbXB1dGVkU3R5
bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSguNXZoLCAxdmgsIDEuNXZoKSIpIGlzICJj
aXJjbGUoMC41dmgsIDF2aCwgMS41dmgpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNs
aXAtcGF0aCIsICJjaXJjbGUoLjV2bWluLCAxdm1pbiwgMS41dm1pbikiKSBpcyAiY2lyY2xlKDAu
NXZtaW4sIDF2bWluLCAxLjV2bWluKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBh
dGgiLCAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImNpcmNsZSgxMDAlLCAxMDAlLCAx
MDAlKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDQ1
JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIikgaXMgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAl
LCA2MCUsIDI1JSwgMTAlKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAi
ZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpIGlzICJlbGxpcHNlKDEwMCUsIDEwMCUs
IDEwMCUsIDEwMCUpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5
Z29uKDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIikgaXMgInBvbHlnb24obm9uemVybywgMTAl
IDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xp
cC1wYXRoIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIikgaXMgImNpcmNsZSg1MCUsIDEwMCUs
IDE1MCUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5n
bGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xlKDQ1JSwgNDUl
LCA5MCUsIDYwJSwgMjUlLCAxMCUpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAt
cGF0aCIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVsbGlwc2UoMTAw
JSwgMTAwJSwgMTAwJSwgMTAwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBpcyAicG9seWdvbihu
b256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdl
YmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIpIGlzIG51bGwKK1BBU1MgY29t
cHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIpIGlz
ICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4
LCAxcHgsIHB4KSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBh
dGgiLCAiY2lyY2xlKDFweCwgMXB4LCBweCkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxcCkiKSBpcyBudWxsCitQQVNT
IGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgxcHgsIDFweCwgMXAp
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNs
ZSgxcHgsIDFweCwgY2FsYygpKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBjYWxjKCkpIikgaXMgIm5vbmUiCitQQVNT
IGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgtMS41cHgsICsxLjVweCwg
LTEuNXB4KSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAiY2lyY2xlKC0xLjVweCwgKzEuNXB4LCAtMS41cHgpIikgaXMgIm5vbmUiCitQQVNTIGlubmVy
U3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgs
IC0xcHQsIDFwYykiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIC0xcHQsIDFwYykiKSBpcyAibm9u
ZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIDFweCwgMXB0LCAtMXBjKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgMXB0LCAt
MXBjKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJl
bGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxl
KCItd2Via2l0LWNsaXAtcGF0aCIsICJlbGxpcHNlKDFlbSwgMWVtLCAtMWVtLCAxZW0pIikgaXMg
Im5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMWVt
LCAxZW0sIDFlbSwgLTFlbSkiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQt
Y2xpcC1wYXRoIiwgImVsbGlwc2UoMWVtLCAxZW0sIDFlbSwgLTFlbSkiKSBpcyAibm9uZSIKK1BB
U1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAt
MWluLCAxcHgsIDFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAtMWluLCAxcHgsIDFwdCwgMXBjKSIp
IGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIDFpbiwgLTFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBjb21wdXRl
ZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgLTFw
eCwgMXB0LCAxcGMpIikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5n
L3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcv
cGFyc2luZy1jbGlwLXBhdGgtc2hhcGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjYyOTUwOGJmNzRlY2Q4
MmI4ZjEzZjYyNzE0ZWFmNDI1ZGY0YWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLmh0bWwKQEAgLTAsMCArMSwxMDYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisqIHsgZm9udC1zaXplOiAxNnB4
OyB9CitkaXYgeyBmb250LXNpemU6IDhweDsgfQorPC9zdHlsZT4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBjbGlwLXBhdGggc2hhcGVzIGFjY2VwdCBkaWZmZXJlbnQg
bGVuZ3RoIHVuaXRzJyk7CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0aW9u
IGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2
KTsKKyAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIg
Y29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHBy
b3BlcnR5KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJu
IGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVl
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRp
di5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRl
ZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4
cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIHNob3VsZEJlTnVsbCgn
aW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknKTsKKyAgICBl
bHNlCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3Bl
cnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIG5l
Z2F0aXZlVGVzdChwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB0ZXN0SW5uZXIocHJvcGVydHksIHZh
bHVlLCBudWxsKTsKKyAgICB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCAnbm9uZScpOwor
fQorCisvLyBhYnNvbHV0ZSBsZW5ndGhzIC0gbnVtYmVyIHNlcmlhbGl6YXRpb24sIHVuaXRzCit0
ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgwLCAwLCAwKSIsICJjaXJjbGUo
MHB4LCAwcHgsIDBweCkiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xl
KC0xcHgsICsxcHgsIDFweCkiLCAiY2lyY2xlKC0xcHgsIDFweCwgMXB4KSIpOwordGVzdElubmVy
KCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIDEuNXB4KSIsICJj
aXJjbGUoLTEuNXB4LCAxLjVweCwgMS41cHgpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1w
YXRoIiwgImNpcmNsZSgtLjVweCwgKy41cHgsIC41cHgpIiwgImNpcmNsZSgtMC41cHgsIDAuNXB4
LCAwLjVweCkiKTsKKwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUo
MWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4s
IDFweCwgMXB0LCAxcGMpIik7CisKKy8vIGZvbnQtcmVsYXRpdmUgbGVuZ3RocyAtIG51bWJlciBz
ZXJpYWxpemF0aW9uLCB1bml0cywgcmVzb2x1dGlvbgordGVzdElubmVyKCItd2Via2l0LWNsaXAt
cGF0aCIsICJjaXJjbGUoLTFlbSwgKzFlbSwgMWVtKSIsICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0p
Iik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgtMS41ZW0sICsxLjVl
bSwgMS41ZW0pIiwgImNpcmNsZSgtMS41ZW0sIDEuNWVtLCAxLjVlbSkiKTsKK3Rlc3RJbm5lcigi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0uNWVtLCArLjVlbSwgLjVlbSkiLCAiY2lyY2xl
KC0wLjVlbSwgMC41ZW0sIDAuNWVtKSIpOworCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImNpcmNsZSgxZXgsIDFleCwgMWV4KSIsICJjaXJjbGUoMWV4LCAxZXgsIDFleCkiKTsKKy8v
IEZJWE1FOiBBZGQgY2ggdGVzdCB3aGVuIGl0IGlzIHN1cHBvcnRlZAordGVzdElubmVyKCItd2Vi
a2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXJlbSwgMXJlbSwgMXJlbSkiLCAiY2lyY2xlKDFyZW0s
IDFyZW0sIDFyZW0pIik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2ly
Y2xlKC41ZW0sIDFlbSwgMS41ZW0pIiwgImNpcmNsZSg0cHgsIDhweCwgMTJweCkiKTsKK3Rlc3RD
b21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41cmVtLCAxcmVtLCAxLjVyZW0p
IiwgImNpcmNsZSg4cHgsIDE2cHgsIDI0cHgpIik7CisKKy8vIHZpZXdwb3J0LXBlcmNlbnRhZ2Ug
bGVuZ3RocyAtIHVuaXRzLCByZXNvbHV0aW9uCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImNpcmNsZSgxdncsIDF2dywgMXZ3KSIsICJjaXJjbGUoMXZ3LCAxdncsIDF2dykiKTsKK3Rl
c3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDF2aCwgMXZoLCAxdmgpIiwgImNp
cmNsZSgxdmgsIDF2aCwgMXZoKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJj
aXJjbGUoMXZtaW4sIDF2bWluLCAxdm1pbikiLCAiY2lyY2xlKDF2bWluLCAxdm1pbiwgMXZtaW4p
Iik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dncsIDF2
dywgMS41dncpIiwgImNpcmNsZSgwLjV2dywgMXZ3LCAxLjV2dykiKTsKK3Rlc3RDb21wdXRlZCgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dmgsIDF2aCwgMS41dmgpIiwgImNpcmNsZSgw
LjV2aCwgMXZoLCAxLjV2aCkiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAi
Y2lyY2xlKC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIiwgImNpcmNsZSgwLjV2bWluLCAxdm1pbiwg
MS41dm1pbikiKTsKKworLy8gcGVyY2VudGFnZSBsZW5ndGhzIC0gdW5pdHMKK3Rlc3RJbm5lcigi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDEwMCUsIDEwMCUsIDEwMCUpIiwgImNpcmNsZSgx
MDAlLCAxMDAlLCAxMDAlKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0
YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiLCAicmVjdGFuZ2xlKDQ1JSwgNDUl
LCA5MCUsIDYwJSwgMjUlLCAxMCUpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwg
ImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAx
MDAlLCAxMDAlKSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKDEw
JSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIwJSwgMzAl
IDQwJSwgNDAlIDUwJSkiKTsKKwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJj
aXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIsICJjaXJjbGUoNTAlLCAxMDAlLCAxNTAlKSIpOwordGVz
dENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwg
NjAlLCAyNSUsIDEwJSkiLCAicmVjdGFuZ2xlKDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUp
Iik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMTAwJSwgMTAw
JSwgMTAwJSwgMTAwJSkiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIpOwordGVz
dENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKDEwJSAyMCUsIDMwJSA0MCUs
IDQwJSA1MCUpIiwgInBvbHlnb24obm9uemVybywgMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSki
KTsKKworLy8gcmVqZWN0IG5vbi1sZW5ndGhzCituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1w
YXRoIiwgImNpcmNsZSgxcHgsIDFweCwgMSkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBweCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxcCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtp
dC1jbGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBjYWxjKCkpIik7CisKKy8vIHJlamVjdCBu
ZWdhdGl2ZSByYWRpdXNlcworbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJj
bGUoLTEuNXB4LCArMS41cHgsIC0xLjVweCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpOworbmVn
YXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwg
MXB4LCAxcHQsIC0xcGMpIik7CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVs
bGlwc2UoMWVtLCAxZW0sIC0xZW0sIDFlbSkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiZWxsaXBzZSgxZW0sIDFlbSwgMWVtLCAtMWVtKSIpOworCisvLyByZWplY3QgbmVn
YXRpdmUgaGVpZ2h0IGFuZCB3aWR0aAorbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIs
ICJyZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIik7CituZWdhdGl2ZVRl
c3QoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAx
cHQsIDFwYykiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161773</attachid>
            <date>2012-08-31 14:13:19 -0700</date>
            <delta_ts>2012-08-31 15:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95474-20120831141306.patch</filename>
            <type>text/plain</type>
            <size>29672</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYxZmQyOTU1ZmE4ZmU2
ZmY2YzdhN2U2ZDZmN2Y2Nzc0MmVkYmExYi4uMzY4MjExNWRlNjJmZTIzNzNhMzk3ZDlhM2JmYTli
YTgyYmRlZDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDEyLTA4LTMwICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKKyAgICAgICAgSW50cm9kdWNlIG5ldyBDU1Mg
cHJvcGVydHkgZm9yIGNsaXAtcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGggaW50cm9kdWNlcyB0aGUgbmV3LCBwcmVmaXhlZCBDU1Mg
cHJvcGVydHkgJ2NsaXAtcGF0aCcgZnJvbSB0aGUKKyAgICAgICAgQ1NTIE1hc2tpbmcgc3BlY2lm
aWNhdGlvbi4gSW4gYSBmaXJzdCBzdGVwIHRoZSBwcm9wZXJ0eSBqdXN0IGV4Y2VwdHMKKyAgICAg
ICAgJ25vbmUnIGFuZCB0aGUgdGhlIGJhc2ljIHNoYXBlcyBmcm9tIENTUyBFeGNsdXNpb24uIExh
dGVyIGl0IHdpbGwgYWxzbyBiZQorICAgICAgICBwb3NzaWJsZSB0byByZWZlcmVuY2UgU1ZHICdj
bGlwUGF0aCcgZWxlbWVudHMgLSBsaWtlIEZpcmVmb3ggYWxyZWFkeSBkb2VzLgorICAgICAgICBU
byBlbmFibGUgdGhlIHBhcnNpbmcgb2YgdGhlIHNoYXBlcywgdGhlIGV4Y2x1c2lvbiBjb21waWxl
ciBmbGFncworICAgICAgICBhcm91bmQgdGhlIHNoYXBlIHBhcnNlciB3ZXJlIHJlbW92ZWQuCisK
KyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL21hc2tpbmcv
aW5kZXguaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0
aC1zaGFwZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZSk6CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlDbGlwUGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OnNldFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDbGlwUGF0aDo6YXBwbHlWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YSk6CisKKzIwMTItMDgtMzAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKwogICAg
ICAgICBSZWZhY3RvciBXcmFwU2hhcGUgY2xhc3NlcyB0byBCYXNpY1NoYXBlCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTQ2MQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGZk
MDZlNGYwMWFmNTE0MGRlZTIwN2M3MmY0ZjgzYzA1ZmVmNTRjYmIuLjRjMTlhYmJkYmY5Y2JiYmUy
OGE2NDk5ZmFkMmE4YTljNDQwOTQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNSw3ICsyNSwxMCBAQAogI2luY2x1
ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkJhc2ljU2hhcGVGdW5jdGlvbnMuaCIKKyNpbmNsdWRl
ICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCiAjaW5j
bHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgpA
QCAtNjAsMTIgKzYzLDYgQEAKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCi0jaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIkJhc2lj
U2hhcGVzLmgiCi0jaW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKENTU19TSEFERVJTKQogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5o
IgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgpAQCAtMjM1LDYgKzIzMiw3IEBA
IHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogICAg
IENTU1Byb3BlcnR5V2Via2l0Qm94UGFjaywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJveFJlZmxl
Y3QsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3hTaGFkb3csCisgICAgQ1NTUHJvcGVydHlXZWJr
aXRDbGlwUGF0aCwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdENvbG9yQ29ycmVjdGlvbiwKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrQWZ0ZXIsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRD
b2x1bW5CcmVha0JlZm9yZSwKQEAgLTI0MDksNiArMjQwNywxMCBAQCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydAogICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgp
LCBwcm9wZXJ0eUlEKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJSZXNldDoKICAg
ICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShzdHlsZS5nZXQoKSwgcHJvcGVydHlJ
RCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKKyAgICAgICAgICAg
IGlmICghc3R5bGUtPmNsaXBQYXRoKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAg
cmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+Y2xpcFBhdGgoKSk7CiAjaWYgRU5BQkxF
KENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG86CiAg
ICAgICAgICAgICBpZiAoc3R5bGUtPmZsb3dUaHJlYWQoKS5pc051bGwoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKaW5kZXggZmIzOGE3ODFmZWM2ZGE3NWUxMzAyMGE0YzI3NTdmY2IzZjQ1ZDk5
OS4uZTNmY2I4NTkzZWI1ZDQ3YWQ0YzYwOTY2NGMyYzU0Y2YxZDJjYTE0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKQEAgLTI3MjEsNiArMjcyMSwxMiBAQCBib29sIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJldHVybiBwYXJzZUZvbnRWYXJpYW50TGlnYXR1cmVzKGltcG9ydGFu
dCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoK
KyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIHZhbGlkUHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFs
dWU6OkZ1bmN0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZShwcm9wSWQs
IGltcG9ydGFudCk7CisgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGU6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFNoYXBlT3V0c2lkZToKQEAgLTI3MjksNyArMjczNSw3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
OkZ1bmN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZSgocHJvcElkID09
IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAg
cmV0dXJuIHBhcnNlQmFzaWNTaGFwZShwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwTWFyZ2luOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRXcmFwUGFkZGluZzoKQEAgLTQ1MTUsOCArNDUyMSw2IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUNsaXBTaGFwZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotCiBQ
YXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFu
Z2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncykKIHsKICAgICBBU1NFUlQoYXJncyk7CkBAIC00
NzI3LDE2ICs0NzMxLDE2IEBAIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpw
YXJzZUJhc2ljU2hhcGVQb2x5Z29uKENTU1BhcnNlclZhbHVlTGlzdCoKICAgICByZXR1cm4gc2hh
cGU7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGUoYm9vbCBzaGFwZUluc2lk
ZSwgYm9vbCBpbXBvcnRhbnQpCitib29sIENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKENTU1By
b3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIEFTU0VSVCh2YWx1ZS0+dW5pdCA9
PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pOwogICAgIENTU1BhcnNlclZhbHVlTGlzdCogYXJn
cyA9IHZhbHVlLT5mdW5jdGlvbi0+YXJncy5nZXQoKTsKIAogICAgIGlmICghYXJncykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHNoYXBlOwotCiAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInJlY3Rhbmds
ZSgiKSkKICAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hhcGVSZWN0YW5nbGUoYXJncyk7CiAg
ICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCAiY2ly
Y2xlKCIpKQpAQCAtNDc0NiwxNyArNDc1MCwxNCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VCYXNp
Y1NoYXBlKGJvb2wgc2hhcGVJbnNpZGUsIGJvb2wgaW1wb3J0YW50KQogICAgIGVsc2UgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInBvbHlnb24oIikpCiAgICAg
ICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlUG9seWdvbihhcmdzKTsKIAotICAgIGlmIChzaGFw
ZSkgewotICAgICAgICBhZGRQcm9wZXJ0eShzaGFwZUluc2lkZSA/IENTU1Byb3BlcnR5V2Via2l0
U2hhcGVJbnNpZGUgOiBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlT3V0c2lkZSwgY3NzVmFsdWVQb29s
KCkuY3JlYXRlVmFsdWUoc2hhcGUucmVsZWFzZSgpKSwgaW1wb3J0YW50KTsKLSAgICAgICAgbV92
YWx1ZUxpc3QtPm5leHQoKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorICAgIGlmICgh
c2hhcGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICBh
ZGRQcm9wZXJ0eShwcm9wSWQsIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHNoYXBlLnJlbGVh
c2UoKSksIGltcG9ydGFudCk7CisgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotI2VuZGlmCi0KIC8vIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlhbnQn
IHx8ICdmb250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8gJ2Zv
bnQtZmFtaWx5JwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBlN2VkNTc5NzlmZDIxZWRjNDU1YjNmNjJlODI2Yjc0
OWM3OTJkNjk2Li42OWM1NmMzYTliNGVlMjJiNDQ2ZGE5NGYzMTRiODAxMzA0ZjgwYjRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBwYXJzZUNsaXBTaGFwZShDU1NQcm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKLSAgICBi
b29sIHBhcnNlQmFzaWNTaGFwZShib29sIHNoYXBlSW5zaWRlLCBib29sIGltcG9ydGFudCk7Cisg
ICAgYm9vbCBwYXJzZUJhc2ljU2hhcGUoQ1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwog
ICAgIFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENT
U1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBw
YXJzZUJhc2ljU2hhcGVDaXJjbGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICBQYXNz
UmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFs
dWVMaXN0KiBhcmdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmluZGV4IGVhYjk4N2Iy
MGI4YWU2MTY5ODZmYTU5ZWYzZDVjNjRlYjE2MGIyZjQuLjUzMThkZmM2MTU4YjNmYWY4ZTQ4OGQw
MjRiZGVhYzE0ZDZhNDc4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtNTYx
LDYgKzU2MSw3IEBAIGJvb2wgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hQYWNrOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hSZWZsZWN0OgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRCb3hTaGFkb3c6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5BeGlzOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRDb2x1bW5CcmVha0FmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1
bW5CcmVha0JlZm9yZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXgg
Njg1ZjM1MGFkODU2ZmJlOTRlYzZmMDk2NDdkMTRjY2RkNmVhMGU4ZC4uMmIyYWY3MjI5NjM5NDI1
MjIyMThmZGUxNTBhZjFmY2RjNGZkMTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
TmFtZXMuaW4KQEAgLTk1LDYgKzk1LDcgQEAgY2FwdGlvbi1zaWRlCiAtZXB1Yi1jYXB0aW9uLXNp
ZGUgPSBjYXB0aW9uLXNpZGUKIGNsZWFyCiBjbGlwCistd2Via2l0LWNsaXAtcGF0aAogY29udGVu
dAogY291bnRlci1pbmNyZW1lbnQKIGNvdW50ZXItcmVzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlci5jcHAKaW5kZXggNWI2MDc5MGE0ZTdlNDMzMWE3ZDRmYjg4OTk4MjNhMGJjMDUxZDZlMS4u
NTEwODYwNDllY2ZhNTkxNmE3NzExZTAzMWMwYzhiNjZhMzZhYzkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlci5jcHAKQEAgLTE3MDQsNiArMTcwNCwyOSBAQCBwdWJsaWM6CiAgICAgfQog
fTsKIAordGVtcGxhdGUgPEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0aW9u
KSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlckZ1bmN0aW9uKShQYXNzUmVmUHRy
PEJhc2ljU2hhcGU+KSwgQmFzaWNTaGFwZSogKCppbml0aWFsRnVuY3Rpb24pKCk+CitjbGFzcyBB
cHBseVByb3BlcnR5Q2xpcFBhdGggeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHNldFZhbHVl
KFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiB2YWx1ZSkgeyAoc3R5
bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1
ZShTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCisgICAgewor
ICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgeworICAgICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCksIDApOworICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlz
U2hhcGUoKSkgeworICAgICAgICAgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBjbGlwUGF0aFNo
YXBlID0gYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxlUmVzb2x2ZXIsIHByaW1pdGl2ZVZhbHVlLT5n
ZXRTaGFwZVZhbHVlKCkpOworICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCksIGNsaXBQYXRoU2hhcGUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQor
ICAgIHsKKyAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhhbmRsZXIgPSBBcHBseVByb3BlcnR5RGVm
YXVsdEJhc2U8QmFzaWNTaGFwZSosIGdldHRlckZ1bmN0aW9uLCBQYXNzUmVmUHRyPEJhc2ljU2hh
cGU+LCBzZXR0ZXJGdW5jdGlvbiwgQmFzaWNTaGFwZSosIGluaXRpYWxGdW5jdGlvbj46OmNyZWF0
ZUhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcihoYW5kbGVyLmluaGVy
aXRGdW5jdGlvbigpLCBoYW5kbGVyLmluaXRpYWxGdW5jdGlvbigpLCAmYXBwbHlWYWx1ZSk7Cisg
ICAgfQorfTsKKwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIHRlbXBsYXRlIDxCYXNpY1No
YXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVy
U3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiksIEJhc2ljU2hh
cGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgogY2xhc3MgQXBwbHlQcm9wZXJ0eVdyYXBTaGFwZSB7
CkBAIC0yMDQ3LDYgKzIwNzAsOCBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcigpCiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWcsIEFwcGx5UHJvcGVy
dHlEZWZhdWx0PEVVc2VyRHJhZywgJlJlbmRlclN0eWxlOjp1c2VyRHJhZywgRVVzZXJEcmFnLCAm
UmVuZGVyU3R5bGU6OnNldFVzZXJEcmFnLCBFVXNlckRyYWcsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZXJEcmFnPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVXNlck1vZGlm
eSwgJlJlbmRlclN0eWxlOjp1c2VyTW9kaWZ5LCBFVXNlck1vZGlmeSwgJlJlbmRlclN0eWxlOjpz
ZXRVc2VyTW9kaWZ5LCBFVXNlck1vZGlmeSwgJlJlbmRlclN0eWxlOjppbml0aWFsVXNlck1vZGlm
eT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
V2Via2l0VXNlclNlbGVjdCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RVVzZXJTZWxlY3QsICZSZW5k
ZXJTdHlsZTo6dXNlclNlbGVjdCwgRVVzZXJTZWxlY3QsICZSZW5kZXJTdHlsZTo6c2V0VXNlclNl
bGVjdCwgRVVzZXJTZWxlY3QsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJTZWxlY3Q+OjpjcmVh
dGVIYW5kbGVyKCkpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdENs
aXBQYXRoLCBBcHBseVByb3BlcnR5Q2xpcFBhdGg8JlJlbmRlclN0eWxlOjpjbGlwUGF0aCwgJlJl
bmRlclN0eWxlOjpzZXRDbGlwUGF0aCwgJlJlbmRlclN0eWxlOjppbml0aWFsQ2xpcFBhdGg+Ojpj
cmVhdGVIYW5kbGVyKCkpOworCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFdyYXAsIEFwcGx5UHJvcGVydHlFeHBhbmRp
bmc8U3VwcHJlc3NWYWx1ZSwgQ1NTUHJvcGVydHlXZWJraXRXcmFwRmxvdywgQ1NTUHJvcGVydHlX
ZWJraXRXcmFwTWFyZ2luLCBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBQYWRkaW5nPjo6Y3JlYXRlSGFu
ZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRXcmFwRmxv
dywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8V3JhcEZsb3csICZSZW5kZXJTdHlsZTo6d3JhcEZsb3cs
IFdyYXBGbG93LCAmUmVuZGVyU3R5bGU6OnNldFdyYXBGbG93LCBXcmFwRmxvdywgJlJlbmRlclN0
eWxlOjppbml0aWFsV3JhcEZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNjIzNDNjYTVmNzkxNjhi
MWVjMTBhODk1ZjA1MTM4YzgwNTgwOTZjMi4uN2YwMzAyYTE3YTk1NzI2MzllNWViNzQ2NDU5YmRi
YWIxNDk0ZWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCkBAIC02ODEsNiArNjgxLDEwIEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHls
ZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAg
ICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFwU2hhcGVPdXRzaWRlICE9IG90
aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFwU2hhcGVPdXRzaWRlKQogICAgICAgICAg
ICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQ7CiAKKyAgICAgICAgaWYgKHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX2NsaXBQYXRoICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9jbGlwUGF0aCkKKyAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBhaW50Owor
CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHJhcmVOb25Jbmhl
cml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSkgewog
ICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtU3R5bGUzRCAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtU3R5bGUzRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA3NDRhZDc5MTRiNzc3
MzQ2MzhkNDBlMDgzYWJjNTY3ZjEzZjVhYTVhLi5lNGM4NjA2NzI3Y2FlZDEyYjU1NTEzMTNiNTVh
NDI5YzYwZjVmMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtMTQ2NCw2ICsxNDY0LDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQmFzaWNT
aGFwZSogaW5pdGlhbFdyYXBTaGFwZUluc2lkZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMg
QmFzaWNTaGFwZSogaW5pdGlhbFdyYXBTaGFwZU91dHNpZGUoKSB7IHJldHVybiAwOyB9CiAKKyAg
ICB2b2lkIHNldENsaXBQYXRoKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpCisgICAgewor
ICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fY2xpcFBhdGggIT0gc2hhcGUpCisg
ICAgICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9jbGlwUGF0aCA9IHNo
YXBlOworICAgIH0KKyAgICBCYXNpY1NoYXBlKiBjbGlwUGF0aCgpIGNvbnN0IHsgcmV0dXJuIHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2NsaXBQYXRoLmdldCgpOyB9CisKKyAgICBzdGF0aWMgQmFz
aWNTaGFwZSogaW5pdGlhbENsaXBQYXRoKCkgeyByZXR1cm4gMDsgfQorCiAgICAgTGVuZ3RoIHdy
YXBQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFBh
ZGRpbmc7IH0KICAgICB2b2lkIHNldFdyYXBQYWRkaW5nKExlbmd0aCB3cmFwUGFkZGluZykgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3dyYXBQYWRkaW5nLCB3cmFwUGFkZGluZyk7
IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxXcmFwUGFkZGluZygpIHsgcmV0dXJuIExlbmd0
aCgwLCBGaXhlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA1YjgwMGQwYWNiYWE2
NDk2ZTU2NDIwZjkwZGIyODA0M2M4MmM1MWVjLi5lMzhkNzk1NzhhYmQxYWRlODczNmUwYzM3NWM3
MWI4ZGYxYzVjOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC00OCw2ICs0OCw3IEBA
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQog
ICAgICwgbV93cmFwU2hhcGVPdXRzaWRlKFJlbmRlclN0eWxlOjppbml0aWFsV3JhcFNoYXBlT3V0
c2lkZSgpKQogICAgICwgbV93cmFwTWFyZ2luKFJlbmRlclN0eWxlOjppbml0aWFsV3JhcE1hcmdp
bigpKQogICAgICwgbV93cmFwUGFkZGluZyhSZW5kZXJTdHlsZTo6aW5pdGlhbFdyYXBQYWRkaW5n
KCkpCisgICAgLCBtX2NsaXBQYXRoKFJlbmRlclN0eWxlOjppbml0aWFsQ2xpcFBhdGgoKSkKICAg
ICAsIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3IoUmVuZGVyU3R5bGU6OmluaXRpYWxCYWNr
Z3JvdW5kQ29sb3IoKSkKICAgICAsIG1fb3JkZXIoUmVuZGVyU3R5bGU6OmluaXRpYWxPcmRlcigp
KQogICAgICwgbV9mbG93VGhyZWFkKFJlbmRlclN0eWxlOjppbml0aWFsRmxvd1RocmVhZCgpKQpA
QCAtMTE4LDYgKzExOSw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAgICAgLCBtX3dyYXBT
aGFwZU91dHNpZGUoby5tX3dyYXBTaGFwZU91dHNpZGUpCiAgICAgLCBtX3dyYXBNYXJnaW4oby5t
X3dyYXBNYXJnaW4pCiAgICAgLCBtX3dyYXBQYWRkaW5nKG8ubV93cmFwUGFkZGluZykKKyAgICAs
IG1fY2xpcFBhdGgoby5tX2NsaXBQYXRoKQogICAgICwgbV92aXNpdGVkTGlua0JhY2tncm91bmRD
b2xvcihvLm1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3IpCiAgICAgLCBtX3Zpc2l0ZWRMaW5r
T3V0bGluZUNvbG9yKG8ubV92aXNpdGVkTGlua091dGxpbmVDb2xvcikKICAgICAsIG1fdmlzaXRl
ZExpbmtCb3JkZXJMZWZ0Q29sb3Ioby5tX3Zpc2l0ZWRMaW5rQm9yZGVyTGVmdENvbG9yKQpAQCAt
MTk5LDYgKzIwMSw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1fd3Jh
cFNoYXBlT3V0c2lkZSA9PSBvLm1fd3JhcFNoYXBlT3V0c2lkZQogICAgICAgICAmJiBtX3dyYXBN
YXJnaW4gPT0gby5tX3dyYXBNYXJnaW4KICAgICAgICAgJiYgbV93cmFwUGFkZGluZyA9PSBvLm1f
d3JhcFBhZGRpbmcKKyAgICAgICAgJiYgbV9jbGlwUGF0aCA9PSBvLm1fY2xpcFBhdGgKICAgICAg
ICAgJiYgbV92aXNpdGVkTGlua0JhY2tncm91bmRDb2xvciA9PSBvLm1fdmlzaXRlZExpbmtCYWNr
Z3JvdW5kQ29sb3IKICAgICAgICAgJiYgbV92aXNpdGVkTGlua091dGxpbmVDb2xvciA9PSBvLm1f
dmlzaXRlZExpbmtPdXRsaW5lQ29sb3IKICAgICAgICAgJiYgbV92aXNpdGVkTGlua0JvcmRlckxl
ZnRDb2xvciA9PSBvLm1fdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IKQEAgLTMyMyw2ICszMjYs
NyBAQCB2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNp
dGlvbnMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNoYXBlSW5zaWRlKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX3dyYXBTaGFwZU91dHNpZGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xp
cFBhdGgpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZmxvd1RocmVhZCk7CiAg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9yZWdpb25UaHJlYWQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmgKaW5kZXggNmZjZTMwZGI2ODdkNTBiODE5OTM4ZTZhNThhYmYxOWUxOGIwYzdl
OC4uMjUxZmZhMzE5OWEwNjVjMDY2YjJkZWM2ZjBlMDUyN2M1OTYzNDcxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oCkBAIC0xMzgsNyArMTM4LDkgQEAgcHVibGljOgogICAgIFJlZlB0cjxCYXNpY1No
YXBlPiBtX3dyYXBTaGFwZU91dHNpZGU7CiAgICAgTGVuZ3RoIG1fd3JhcE1hcmdpbjsKICAgICBM
ZW5ndGggbV93cmFwUGFkZGluZzsKLSAgICAKKworICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX2Ns
aXBQYXRoOworCiAgICAgQ29sb3IgbV92aXNpdGVkTGlua0JhY2tncm91bmRDb2xvcjsKICAgICBD
b2xvciBtX3Zpc2l0ZWRMaW5rT3V0bGluZUNvbG9yOwogICAgIENvbG9yIG1fdmlzaXRlZExpbmtC
b3JkZXJMZWZ0Q29sb3I7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDkzMjI5MzEwZmRkMTY5NjNiZTUzMzNjYjM4MWIyMjAz
MTJmZTlmZS4uZWQ5MGNlOTU2NTI1OTc2ODZmYjBmM2Q5YTQzNThhZjdlNTQwZGEyNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTA4LTMwICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5v
cmc+CisKKyAgICAgICAgSW50cm9kdWNlIG5ldyBDU1MgcHJvcGVydHkgZm9yIGNsaXAtcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0NzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHBhcnNp
bmcgYmVoYXZpb3Igb2YgYmFzaWMgc2hhcGVzIG9uIG5ldyBpbnRyb2R1Y2VkICctd2Via2l0LWNs
aXAtcGF0aCcgQ1NTIHByb3BlcnR5LgorCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmct
Y2xpcC1wYXRoLXNoYXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tYXNr
aW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTMwICBB
YXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBhIGNy
YXNoIGluIFNvdXJjZUJ1ZmZlckxpc3QucmVtb3ZlKCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtc2hhcGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLXNoYXBlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMTVmYWJkNWRjZjgyYjQ0ZWVmYWJjNGQyZWQ0YmNlNTI5YjRlZDgzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1w
YXRoLXNoYXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc1IEBACitUZXN0IHRoYXQgY2xpcC1w
YXRoIHNoYXBlcyBhY2NlcHQgZGlmZmVyZW50IGxlbmd0aCB1bml0cworCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJj
aXJjbGUoMCwgMCwgMCkiKSBpcyAiY2lyY2xlKDBweCwgMHB4LCAwcHgpIgorUEFTUyBpbm5lclN0
eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLTFweCwgKzFweCwgMXB4KSIpIGlzICJj
aXJjbGUoLTFweCwgMXB4LCAxcHgpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0
aCIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIDEuNXB4KSIpIGlzICJjaXJjbGUoLTEuNXB4LCAx
LjVweCwgMS41cHgpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJj
bGUoLS41cHgsICsuNXB4LCAuNXB4KSIpIGlzICJjaXJjbGUoLTAuNXB4LCAwLjVweCwgMC41cHgp
IgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAx
bW0sIDFpbiwgMXB4LCAxcHQsIDFwYykiKSBpcyAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFw
eCwgMXB0LCAxcGMpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJj
bGUoLTFlbSwgKzFlbSwgMWVtKSIpIGlzICJjaXJjbGUoLTFlbSwgMWVtLCAxZW0pIgorUEFTUyBp
bm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLTEuNWVtLCArMS41ZW0sIDEu
NWVtKSIpIGlzICJjaXJjbGUoLTEuNWVtLCAxLjVlbSwgMS41ZW0pIgorUEFTUyBpbm5lclN0eWxl
KCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLS41ZW0sICsuNWVtLCAuNWVtKSIpIGlzICJj
aXJjbGUoLTAuNWVtLCAwLjVlbSwgMC41ZW0pIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNs
aXAtcGF0aCIsICJjaXJjbGUoMWV4LCAxZXgsIDFleCkiKSBpcyAiY2lyY2xlKDFleCwgMWV4LCAx
ZXgpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXJlbSwg
MXJlbSwgMXJlbSkiKSBpcyAiY2lyY2xlKDFyZW0sIDFyZW0sIDFyZW0pIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLjVlbSwgMWVtLCAxLjVlbSkiKSBp
cyAiY2lyY2xlKDRweCwgOHB4LCAxMnB4KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKC41cmVtLCAxcmVtLCAxLjVyZW0pIikgaXMgImNpcmNsZSg4cHgs
IDE2cHgsIDI0cHgpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJj
bGUoMXZ3LCAxdncsIDF2dykiKSBpcyAiY2lyY2xlKDF2dywgMXZ3LCAxdncpIgorUEFTUyBpbm5l
clN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXZoLCAxdmgsIDF2aCkiKSBpcyAi
Y2lyY2xlKDF2aCwgMXZoLCAxdmgpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0
aCIsICJjaXJjbGUoMXZtaW4sIDF2bWluLCAxdm1pbikiKSBpcyAiY2lyY2xlKDF2bWluLCAxdm1p
biwgMXZtaW4pIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJj
bGUoLjV2dywgMXZ3LCAxLjV2dykiKSBpcyAiY2lyY2xlKDAuNXZ3LCAxdncsIDEuNXZ3KSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC41dmgsIDF2aCwg
MS41dmgpIikgaXMgImNpcmNsZSgwLjV2aCwgMXZoLCAxLjV2aCkiCitQQVNTIGNvbXB1dGVkU3R5
bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSguNXZtaW4sIDF2bWluLCAxLjV2bWluKSIp
IGlzICJjaXJjbGUoMC41dm1pbiwgMXZtaW4sIDEuNXZtaW4pIgorUEFTUyBpbm5lclN0eWxlKCIt
d2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiKSBpcyAiY2lyY2xl
KDEwMCUsIDEwMCUsIDEwMCUpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIs
ICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKSBpcyAicmVjdGFuZ2xl
KDQ1JSwgNDUlLCA5MCUsIDYwJSwgMjUlLCAxMCUpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0
LWNsaXAtcGF0aCIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIikgaXMgImVsbGlw
c2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xp
cC1wYXRoIiwgInBvbHlnb24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiKSBpcyAicG9seWdv
bihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDUwJSwgMTAwJSwgMTUwJSkiKSBpcyAiY2ly
Y2xlKDUwJSwgMTAwJSwgMTUwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIpIGlzICJyZWN0
YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
Ii13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMTAwJSwgMTAwJSwgMTAwJSwgMTAwJSkiKSBp
cyAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAicG9seWdvbigxMCUgMjAlLCAzMCUgNDAlLCA0MCUgNTAlKSIp
IGlzICJwb2x5Z29uKG5vbnplcm8sIDEwJSAyMCUsIDMwJSA0MCUsIDQwJSA1MCUpIgorUEFTUyBp
bm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIDEpIikgaXMg
bnVsbAorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4
LCAxcHgsIDEpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImNpcmNsZSgxcHgsIDFweCwgcHgpIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxlKCIt
d2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIHB4KSIpIGlzICJub25lIgorUEFT
UyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIDFwKSIp
IGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xl
KDFweCwgMXB4LCAxcCkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCBjYWxjKCkpIikgaXMgbnVsbAorUEFTUyBjb21wdXRl
ZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIGNhbGMoKSkiKSBp
cyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0x
LjVweCwgKzEuNXB4LCAtMS41cHgpIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Vi
a2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLTEuNXB4LCArMS41cHgsIC0xLjVweCkiKSBpcyAibm9u
ZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwg
MW1tLCAxaW4sIDFweCwgLTFwdCwgMXBjKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIDFweCwgLTFwdCwg
MXBjKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJy
ZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAxcHQsIC0xcGMpIikgaXMgbnVsbAorUEFTUyBj
b21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFp
biwgMXB4LCAxcHQsIC0xcGMpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQt
Y2xpcC1wYXRoIiwgImVsbGlwc2UoMWVtLCAxZW0sIC0xZW0sIDFlbSkiKSBpcyBudWxsCitQQVNT
IGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImVsbGlwc2UoMWVtLCAxZW0sIC0x
ZW0sIDFlbSkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAiZWxsaXBzZSgxZW0sIDFlbSwgMWVtLCAtMWVtKSIpIGlzIG51bGwKK1BBU1MgY29tcHV0ZWRT
dHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiZWxsaXBzZSgxZW0sIDFlbSwgMWVtLCAtMWVtKSIp
IGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5n
bGUoMWNtLCAxbW0sIC0xaW4sIDFweCwgMXB0LCAxcGMpIikgaXMgbnVsbAorUEFTUyBjb21wdXRl
ZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIC0xaW4sIDFw
eCwgMXB0LCAxcGMpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYykiKSBpcyBudWxs
CitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20s
IDFtbSwgMWluLCAtMXB4LCAxcHQsIDFwYykiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgi
LXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDAsIDApIikgaXMgbnVsbAorUEFTUyBjb21wdXRl
ZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMCwgMCkiKSBpcyAibm9uZSIKK1BB
U1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDApIikgaXMgbnVsbAor
UEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMCkiKSBpcyAi
bm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKCkiKSBp
cyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgp
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInBvbHln
b24oMCwgMCkiKSBpcyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRo
IiwgInBvbHlnb24oMCwgMCkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAicG9seWdvbigwIDAsIDApIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxl
KCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKDAgMCwgMCkiKSBpcyAibm9uZSIKK1BBU1Mg
aW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicG9seWdvbigwKSIpIGlzIG51bGwKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicG9seWdvbigwKSIpIGlzICJu
b25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKCkiKSBp
cyBudWxsCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInBvbHlnb24o
KSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5
Z29uKGV2ZW5vZGQpIikgaXMgbnVsbAorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAt
cGF0aCIsICJwb2x5Z29uKGV2ZW5vZGQpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIi13
ZWJraXQtY2xpcC1wYXRoIiwgInBvbHlnb24obm9uemVybykiKSBpcyBudWxsCitQQVNTIGNvbXB1
dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInBvbHlnb24obm9uemVybykiKSBpcyAibm9u
ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtc2hh
cGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1zaGFw
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBiMDE0MjFiNDY3ZjY4YjhiMDAxZmUwMTVjNjczMzE0ZWUwYWI3
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1j
bGlwLXBhdGgtc2hhcGUuaHRtbApAQCAtMCwwICsxLDExNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2cHg7IH0KK2RpdiB7IGZvbnQtc2l6ZTog
OHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB0aGF0
IGNsaXAtcGF0aCBzaGFwZXMgYWNjZXB0IGRpZmZlcmVudCBsZW5ndGggdW5pdHMnKTsKKworZnVu
Y3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChkaXYpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAg
IHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFs
dWUocHJvcGVydHkpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICBy
ZXR1cm4gY29tcHV0ZWRWYWx1ZTsKK30KKworZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwg
dmFsdWUpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRp
di5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKK30KKworZnVuY3Rpb24gdGVzdENv
bXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIp
JywgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBl
eHBlY3RlZCkgeworICAgIGlmIChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgc2hvdWxkQmVO
dWxsKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScpOwor
ICAgIGVsc2UKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsg
cHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rp
b24gbmVnYXRpdmVUZXN0KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHRlc3RJbm5lcihwcm9wZXJ0
eSwgdmFsdWUsIG51bGwpOworICAgIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsICdub25l
Jyk7Cit9CisKKy8vIGFic29sdXRlIGxlbmd0aHMgLSBudW1iZXIgc2VyaWFsaXphdGlvbiwgdW5p
dHMKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKDAsIDAsIDApIiwgImNp
cmNsZSgwcHgsIDBweCwgMHB4KSIpOwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJj
aXJjbGUoLTFweCwgKzFweCwgMXB4KSIsICJjaXJjbGUoLTFweCwgMXB4LCAxcHgpIik7Cit0ZXN0
SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgtMS41cHgsICsxLjVweCwgMS41cHgp
IiwgImNpcmNsZSgtMS41cHgsIDEuNXB4LCAxLjVweCkiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKC0uNXB4LCArLjVweCwgLjVweCkiLCAiY2lyY2xlKC0wLjVweCwg
MC41cHgsIDAuNXB4KSIpOworCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3Rh
bmdsZSgxY20sIDFtbSwgMWluLCAxcHgsIDFwdCwgMXBjKSIsICJyZWN0YW5nbGUoMWNtLCAxbW0s
IDFpbiwgMXB4LCAxcHQsIDFwYykiKTsKKworLy8gZm9udC1yZWxhdGl2ZSBsZW5ndGhzIC0gbnVt
YmVyIHNlcmlhbGl6YXRpb24sIHVuaXRzLCByZXNvbHV0aW9uCit0ZXN0SW5uZXIoIi13ZWJraXQt
Y2xpcC1wYXRoIiwgImNpcmNsZSgtMWVtLCArMWVtLCAxZW0pIiwgImNpcmNsZSgtMWVtLCAxZW0s
IDFlbSkiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBhdGgiLCAiY2lyY2xlKC0xLjVlbSwg
KzEuNWVtLCAxLjVlbSkiLCAiY2lyY2xlKC0xLjVlbSwgMS41ZW0sIDEuNWVtKSIpOwordGVzdElu
bmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLS41ZW0sICsuNWVtLCAuNWVtKSIsICJj
aXJjbGUoLTAuNWVtLCAwLjVlbSwgMC41ZW0pIik7CisKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDFleCwgMWV4LCAxZXgpIiwgImNpcmNsZSgxZXgsIDFleCwgMWV4KSIp
OworLy8gRklYTUU6IEFkZCBjaCB0ZXN0IHdoZW4gaXQgaXMgc3VwcG9ydGVkCit0ZXN0SW5uZXIo
Ii13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgxcmVtLCAxcmVtLCAxcmVtKSIsICJjaXJjbGUo
MXJlbSwgMXJlbSwgMXJlbSkiKTsKKwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIs
ICJjaXJjbGUoLjVlbSwgMWVtLCAxLjVlbSkiLCAiY2lyY2xlKDRweCwgOHB4LCAxMnB4KSIpOwor
dGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLjVyZW0sIDFyZW0sIDEu
NXJlbSkiLCAiY2lyY2xlKDhweCwgMTZweCwgMjRweCkiKTsKKworLy8gdmlld3BvcnQtcGVyY2Vu
dGFnZSBsZW5ndGhzIC0gdW5pdHMsIHJlc29sdXRpb24KK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlw
LXBhdGgiLCAiY2lyY2xlKDF2dywgMXZ3LCAxdncpIiwgImNpcmNsZSgxdncsIDF2dywgMXZ3KSIp
OwordGVzdElubmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXZoLCAxdmgsIDF2aCki
LCAiY2lyY2xlKDF2aCwgMXZoLCAxdmgpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImNpcmNsZSgxdm1pbiwgMXZtaW4sIDF2bWluKSIsICJjaXJjbGUoMXZtaW4sIDF2bWluLCAx
dm1pbikiKTsKKwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLjV2
dywgMXZ3LCAxLjV2dykiLCAiY2lyY2xlKDAuNXZ3LCAxdncsIDEuNXZ3KSIpOwordGVzdENvbXB1
dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoLjV2aCwgMXZoLCAxLjV2aCkiLCAiY2ly
Y2xlKDAuNXZoLCAxdmgsIDEuNXZoKSIpOwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0
aCIsICJjaXJjbGUoLjV2bWluLCAxdm1pbiwgMS41dm1pbikiLCAiY2lyY2xlKDAuNXZtaW4sIDF2
bWluLCAxLjV2bWluKSIpOworCisvLyBwZXJjZW50YWdlIGxlbmd0aHMgLSB1bml0cwordGVzdElu
bmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMTAwJSwgMTAwJSwgMTAwJSkiLCAiY2ly
Y2xlKDEwMCUsIDEwMCUsIDEwMCUpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwg
InJlY3RhbmdsZSg0NSUsIDQ1JSwgOTAlLCA2MCUsIDI1JSwgMTAlKSIsICJyZWN0YW5nbGUoNDUl
LCA0NSUsIDkwJSwgNjAlLCAyNSUsIDEwJSkiKTsKK3Rlc3RJbm5lcigiLXdlYmtpdC1jbGlwLXBh
dGgiLCAiZWxsaXBzZSgxMDAlLCAxMDAlLCAxMDAlLCAxMDAlKSIsICJlbGxpcHNlKDEwMCUsIDEw
MCUsIDEwMCUsIDEwMCUpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1wYXRoIiwgInBvbHln
b24oMTAlIDIwJSwgMzAlIDQwJSwgNDAlIDUwJSkiLCAicG9seWdvbihub256ZXJvLCAxMCUgMjAl
LCAzMCUgNDAlLCA0MCUgNTAlKSIpOworCit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRo
IiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIiwgImNpcmNsZSg1MCUsIDEwMCUsIDE1MCUpIik7
Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSg0NSUsIDQ1JSwg
OTAlLCA2MCUsIDI1JSwgMTAlKSIsICJyZWN0YW5nbGUoNDUlLCA0NSUsIDkwJSwgNjAlLCAyNSUs
IDEwJSkiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAiZWxsaXBzZSgxMDAl
LCAxMDAlLCAxMDAlLCAxMDAlKSIsICJlbGxpcHNlKDEwMCUsIDEwMCUsIDEwMCUsIDEwMCUpIik7
Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgInBvbHlnb24oMTAlIDIwJSwgMzAl
IDQwJSwgNDAlIDUwJSkiLCAicG9seWdvbihub256ZXJvLCAxMCUgMjAlLCAzMCUgNDAlLCA0MCUg
NTAlKSIpOworCisvLyByZWplY3Qgbm9uLWxlbmd0aHMKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKDFweCwgMXB4LCAxKSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0
LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIHB4KSIpOworbmVnYXRpdmVUZXN0KCItd2Vi
a2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIDFwKSIpOworbmVnYXRpdmVUZXN0KCIt
d2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMXB4LCAxcHgsIGNhbGMoKSkiKTsKKworLy8gcmVq
ZWN0IG5lZ2F0aXZlIHJhZGl1c2VzCituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1wYXRoIiwg
ImNpcmNsZSgtMS41cHgsICsxLjVweCwgLTEuNXB4KSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0
LWNsaXAtcGF0aCIsICJyZWN0YW5nbGUoMWNtLCAxbW0sIDFpbiwgMXB4LCAtMXB0LCAxcGMpIik7
CituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1wYXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwg
MWluLCAxcHgsIDFwdCwgLTFwYykiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAiZWxsaXBzZSgxZW0sIDFlbSwgLTFlbSwgMWVtKSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0
LWNsaXAtcGF0aCIsICJlbGxpcHNlKDFlbSwgMWVtLCAxZW0sIC0xZW0pIik7CisKKy8vIHJlamVj
dCBuZWdhdGl2ZSBoZWlnaHQgYW5kIHdpZHRoCituZWdhdGl2ZVRlc3QoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInJlY3RhbmdsZSgxY20sIDFtbSwgLTFpbiwgMXB4LCAxcHQsIDFwYykiKTsKK25lZ2F0
aXZlVGVzdCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicmVjdGFuZ2xlKDFjbSwgMW1tLCAxaW4sIC0x
cHgsIDFwdCwgMXBjKSIpOworCisvLyBnZW5lcmFsIG5lZ2F0aXZlIHRlc3RzCituZWdhdGl2ZVRl
c3QoIi13ZWJraXQtY2xpcC1wYXRoIiwgImNpcmNsZSgwLCAwKSIpOworbmVnYXRpdmVUZXN0KCIt
d2Via2l0LWNsaXAtcGF0aCIsICJjaXJjbGUoMCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1j
bGlwLXBhdGgiLCAiY2lyY2xlKCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlwLXBhdGgi
LCAicG9seWdvbigwLCAwKSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJw
b2x5Z29uKDAgMCwgMCkiKTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicG9s
eWdvbigwKSIpOworbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKCki
KTsKK25lZ2F0aXZlVGVzdCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAicG9seWdvbihldmVub2RkKSIp
OworbmVnYXRpdmVUZXN0KCItd2Via2l0LWNsaXAtcGF0aCIsICJwb2x5Z29uKG5vbnplcm8pIik7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="172676"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>