<?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>124368</bug_id>
          
          <creation_ts>2013-11-14 09:33:57 -0800</creation_ts>
          <short_desc>[CSS Shapes] Add BoxShape and FloatRoundingRect classes</short_desc>
          <delta_ts>2013-11-20 14:19:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>124416</dependson>
          <blocked>124173</blocked>
    
    <blocked>124605</blocked>
    
    <blocked>124606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950720</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-14 09:33:57 -0800</bug_when>
    <thetext>Currently the internal FloatRoundedRect class (see RectangleShape.h) supports two corner radii, which was sufficient for earlier version of the CSS Shapes spec. The current spec (http://dev.w3.org/csswg/css-shapes/) requires elliptical corners, two radii per corner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952235</commentid>
    <comment_count>1</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-19 14:23:06 -0800</bug_when>
    <thetext>A BoxShape class would represent margin-box, border-box, padding-box, and content-box values, see http://dev.w3.org/csswg/css-shapes/#typedef-box.  

A float analog of RoundedRect is needed to represent a BoxShape&apos;s shape-margin and shape-padding bounds. A FloatRoundedRect is a rounded rectangle with four elliptical corners, each with its own pair of radii.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952268</commentid>
    <comment_count>2</comment_count>
      <attachid>217342</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-19 15:24:58 -0800</bug_when>
    <thetext>Created attachment 217342
Path

Added the BoxShape class. It&apos;s now used to represent shape-outside box values: [margin/border/padding/content]-box. BoxShape depends on a new FloatRoundedRect class, which is a float analog of the existing (int) RoundedRect class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952272</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-19 15:26:54 -0800</bug_when>
    <thetext>Attachment 217342 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/graphics/FloatRoundedRect.cpp&apos;, u&apos;Source/WebCore/platform/graphics/FloatRoundedRect.h&apos;, u&apos;Source/WebCore/rendering/shapes/BoxShape.cpp&apos;, u&apos;Source/WebCore/rendering/shapes/BoxShape.h&apos;, u&apos;Source/WebCore/rendering/shapes/Shape.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/graphics/FloatRoundedRect.h:42:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952286</commentid>
    <comment_count>4</comment_count>
      <attachid>217348</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-19 15:51:25 -0800</bug_when>
    <thetext>Created attachment 217348
Patch

Fixed a styleO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952314</commentid>
    <comment_count>5</comment_count>
      <attachid>217358</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-19 16:31:13 -0800</bug_when>
    <thetext>Created attachment 217358
Patch

Resync&apos;d.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952320</commentid>
    <comment_count>6</comment_count>
      <attachid>217360</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-19 16:52:13 -0800</bug_when>
    <thetext>Created attachment 217360
Patch

Remove diff for the leading mystery characters in the header for /Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952645</commentid>
    <comment_count>7</comment_count>
      <attachid>217451</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-20 09:59:08 -0800</bug_when>
    <thetext>Created attachment 217451
Patch

Updated the ChangeLog entry:

Added the BoxShape class. It&apos;s now used to represent shape-outside box values: [margin/border/padding/content]-box. BoxShape depends on a new FloatRoundedRect class, which is a float analog of the existing (int) RoundedRect class. The FloatRoundedRect class contains the same basic methods and accessors as BorderRect and adds a set of four methods, for example topLeftCorner(), that return a FloatRect that represents the bounds of one elliptical corner. I also added a method, xInterceptsAtY() that returns two X coordinates of the intersection between a horizontal line and the rounded rectangle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952735</commentid>
    <comment_count>8</comment_count>
      <attachid>217451</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-20 12:45:09 -0800</bug_when>
    <thetext>Comment on attachment 217451
Patch

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

&gt; Source/WebCore/platform/graphics/FloatRoundedRect.cpp:4
&gt; +/*
&gt; + * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved.
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + * Copyright (C) 2013 Xidorn Quan (quanxunzhen@gmail.com)

This doesn&apos;t match the .h

&gt; Source/WebCore/platform/graphics/FloatRoundedRect.cpp:106
&gt; +    if (y &lt; rect().y()  || y &gt;=  rect().maxY())

Double space before ||

&gt; Source/WebCore/platform/graphics/FloatRoundedRect.h:2
&gt; +/*
&gt; + * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.

2013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952759</commentid>
    <comment_count>9</comment_count>
      <attachid>217473</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-11-20 13:27:55 -0800</bug_when>
    <thetext>Created attachment 217473
Patch

Made the requested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952776</commentid>
    <comment_count>10</comment_count>
      <attachid>217473</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 14:19:32 -0800</bug_when>
    <thetext>Comment on attachment 217473
Patch

Clearing flags on attachment: 217473

Committed r159583: &lt;http://trac.webkit.org/changeset/159583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952777</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 14:19:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217342</attachid>
            <date>2013-11-19 15:24:58 -0800</date>
            <delta_ts>2013-11-19 15:51:25 -0800</delta_ts>
            <desc>Path</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37783</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDcwZGYyNC4uYTQ2ZjA4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzIzMzlm
Li5lMzNlZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjggQEAKIDIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CiAKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgQWRkZWQgdGhl
IEJveFNoYXBlIGNsYXNzLiBJdCdzIG5vdyB1c2VkIHRvIHJlcHJlc2VudCBzaGFwZS1vdXRzaWRl
IGJveAorICAgICAgICB2YWx1ZXM6IFttYXJnaW4vYm9yZGVyL3BhZGRpbmcvY29udGVudF0tYm94
LiBCb3hTaGFwZSBkZXBlbmRzIG9uIGEgbmV3CisgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY2xh
c3MsIHdoaWNoIGlzIGEgZmxvYXQgYW5hbG9nIG9mIHRoZSBleGlzdGluZyAoaW50KQorICAgICAg
ICBSb3VuZGVkUmVjdCBjbGFzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhbiBpbnRlcm5hbCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybyk6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
b3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb3JuZXJSZWN0
SW50ZXJjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnhJbnRlcmNl
cHRzQXRZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OlJhZGlp
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BSaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90dG9t
TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90
dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRv
cExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRvcFJp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21M
ZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21S
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6ZXhwYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzaHJpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpyYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0Ojppc1JvdW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpzZXRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnNldFJhZGlpKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0OjpleHBhbmRSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpzaHJpbmtSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojp0b3BM
ZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnRvcFJpZ2h0
Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmJvdHRvbUxlZnRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6Ym90dG9tUmlnaHRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hh
cGU6OkJveFNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpnZXRFeGNsdWRlZElu
dGVydmFscyk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDogQWRkZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlU2hhcGUp
OgorCisyMDEzLTExLTE5ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCiAgICAg
ICAgIFtDU1MgU2hhcGVzXSBSZWZhY3RvciBSZWN0YW5nbGVTaGFwZQogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDE2CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDIzODgyYTYuLjcxZTkwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDUzNyw2ICs0NTM3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zl
ci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwIFwKQEAgLTU3NTYsNiArNTc1OCw4IEBAIHBsYXRm
b3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UXVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRCYXNlbGluZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDg3ZmY2ZGQuLjE5MjM5MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzYx
NSw2ICs3NjE1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEZsb2F0UG9seWdvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSZWN0LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3QuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRTaXplLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnQuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udENh
Y2hlLmNwcCIgLz4KQEAgLTExMDY0LDYgKzExMDY1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xUZXh0UGFpbnRTdHlsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lQnJlYWtlci5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5mby5jcHAiIC8+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBlLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUG9seWdvblNoYXBlLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmFzdGVy
U2hhcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xSZWN0YW5nbGVTaGFwZS5jcHAiIC8+CkBAIC0xOTE3OSw2ICsxOTE4MSw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvbHlnb24uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UXVhZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRS
ZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xG
bG9hdFJvdW5kZWRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGbG9hdFNpemUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEZvbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5oIiAvPgpAQCAtMTk4OTEsNiArMTk4OTQsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGxpbmVcTGluZUluZm8uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmxpbmVIZWFk
ZXJzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5l
TGF5b3V0U3RhdGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
aGFwZXNcQm94U2hhcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xzaGFwZXNcUG9seWdvblNoYXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJlY3RhbmdsZVNoYXBlLmgiIC8+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggYTI4ZjQyNC4uZDk5ZGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMSw0ICsxLDQgQEAKLe+7vzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/PgogPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgogICA8
SXRlbUdyb3VwPgogICAgIDxGaWx0ZXIgSW5jbHVkZT0iRGVyaXZlZFNvdXJjZXMiPgpAQCAtNTAx
Niw2ICs1MDE2LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEZsb2F0UmVjdC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcRmxvYXRSb3VuZGVkUmVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9y
bVxncmFwaGljczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRTaXplLmNwcCI+CiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02ODkyLDYg
KzY4OTUsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xT
aGFwZU91dHNpZGVJbmZvLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzaGFwZXNcQm94U2hhcGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBl
czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXHNoYXBlc1xQb2x5Z29uU2hhcGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nXHNoYXBlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI3OTksNiArMTI4MDUs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRS
ZWN0LmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
RmxvYXRSb3VuZGVkUmVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhp
Y3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE0Njc1LDYgKzE0Njg0LDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcU2hhcGVJbnRlcnZhbC5o
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFw
ZS5oIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xSYXN0
ZXJTaGFwZS5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDM4ZmYzMjIuLjI0ZThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNDUsNiArMjA0NSw4
IEBACiAJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcCAqLzsgfTsKIAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJzZXRT
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM3
MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZFMEU1NjlCMTgzQkZGRTYw
MEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJv
dW5kZWRSZWN0LmNwcCAqLzsgfTsKKwkJNkUwRTU2OUMxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0
Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkUyMUM2QzAxMTI2
MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBH
cmFwaGljc0NvbnRleHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEyNjMzOTkwMEE3QkUwMiAv
KiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRENHLmNwcCAqLzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuY3BwICovOyB9OwpAQCAtMjA4NCw2ICsyMDg2LDggQEAKIAkJNkVDNDgw
QTIxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9seWdvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZs
b2F0UG9seWdvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTZFRDg3OEM0MTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEODc4QzIx
NDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi87IH07CiAJCTZFRDg3
OEM1MTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5
NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uaCAqLzsgfTsKKwkJNkVEOEMzNzkxODNCRkY4QzAwOUU1
M0JEIC8qIEJveFNoYXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFRDhDMzc3MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi87IH07
CisJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JE
IC8qIEJveFNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkVFOEE3NzIxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAq
LzsgfTsKIAkJNkVFOEE3NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVF
OEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyB9
OwogCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlFMDRBMjdCRUQy
RjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLzsgfTsKQEAgLTg3ODIsNiAr
ODc4Niw4IEBACiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0
Um91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxv
YXRSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMEU1NjlB
MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNE
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODgyNSw2ICs4ODMxLDggQEAKIAkJNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0
UG9seWdvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFBvbHlnb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzIxNDc0OTNGNDAwNEMzNTk3
IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJUYWJsZUNhcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RUQ4QzM3NzE4M0JGRjhDMDA5RTUzQkQgLyogQm94
U2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQm94U2hhcGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RUQ4QzM3ODE4M0JGRjhDMDA5RTUz
QkQgLyogQm94U2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94U2hh
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVFOEE3NzAxMEY4MDNGMzAwNUE0
QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MTEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTE3
NDQ1NjE0QkMzNEUyMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1RleHRNZXRyaWNzQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTE0NCw2ICsxOTE1Miw4IEBACiAJCUIy
QTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZs
b2F0Um91bmRlZFJlY3QuY3BwICovLAorCQkJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBG
bG9hdFJvdW5kZWRSZWN0LmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1l
ZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNENjQxRUIyMTgxOEY1RUQwMEVFNEM0MSAvKiBT
b3VyY2VCdWZmZXJQcml2YXRlLmggKi8sCiAJCQkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8q
IGF2Zm91bmRhdGlvbiAqLywKQEAgLTIxNjAzLDYgKzIxNjEzLDggQEAKIAkJRkQwOEE4NzkxNzVE
MzkyNjAwMkNEMzYwIC8qIHNoYXBlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNkVEOEMzNzcxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAq
LywKKwkJCQk2RUQ4QzM3ODE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCAqLywKIAkJCQlG
RDA4QTg3QTE3NUQzOTI2MDAyQ0QzNjAgLyogUG9seWdvblNoYXBlLmNwcCAqLywKIAkJCQlGRDA4
QTg3QjE3NUQzOTI2MDAyQ0QzNjAgLyogUG9seWdvblNoYXBlLmggKi8sCiAJCQkJNkU4NEU5REUx
NzY2OEJBRDAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCAqLywKQEAgLTIxOTQ3LDYgKzIxOTU5
LDggQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNC
RCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkUwRTU2OUMxODNCRkZFNjAwRTBF
OEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBMTE0MjA0MTgz
MkQxMzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzJB
RDcwNjE3RUZBMkM0MDAzOEY4RkYgLyogTWFpbkZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RURCRkYxNjE4MkI3QThEMDAxN0ZBNjQgLyogQnJlYWtwb2ludElELmggaW4gSGVhZGVycyAqLywK
QEAgLTI2MjA3LDYgKzI2MjIxLDcgQEAKIAkJCQkyNkMxN0EzRjE0OTFEMkQ0MDBEMTJCQTIgLyog
RmlsZVN5c3RlbUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEM0E0OTU0MTdBOUNDOTAwMDI3
NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0QjNGNzYw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk2
RUQ4QzM3OTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE2MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzZENkM4RDEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRocmVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjY5RTBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgwODQsNiArMjgwOTksNyBAQAogCQkJCTQ5RTkxMUMz
MEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OTRCQzQwRDEyQUVERDlFMDA3NDNCRDIgLyogVHJhbnNmb3JtYXRpb25NYXRyaXhD
QS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU1ODBCMDUzODE0MDAyQ0U2NEYgLyogVHJh
bnNmb3JtYXRpb25NYXRyaXhDRy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2RTBFNTY5QjE4M0JG
RkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
QjQ4NEY0QzE3MUY4MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ5RTkxMUNGMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRp
b25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVEQjFCQzZCMTA3MTVBNjQwMEVGQUE0OSAvKiBU
cmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzkwYWY2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgWGlkb3Ju
IFF1YW4gKHF1YW54dW56aGVuQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0Zsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3Qo
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKKyAgICA6IG1fcmVj
dCh4LCB5LCB3aWR0aCwgaGVpZ2h0KQoreworfQorCitGbG9hdFJvdW5kZWRSZWN0OjpGbG9hdFJv
dW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgUmFkaWkmIHJhZGlpKQorICAg
IDogbV9yZWN0KHJlY3QpCisgICAgLCBtX3JhZGlpKHJhZGlpKQoreworfQorCitGbG9hdFJvdW5k
ZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxv
YXRTaXplJiB0b3BMZWZ0LCBjb25zdCBGbG9hdFNpemUmIHRvcFJpZ2h0LCBjb25zdCBGbG9hdFNp
emUmIGJvdHRvbUxlZnQsIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tUmlnaHQpCisgICAgOiBtX3Jl
Y3QocmVjdCkKKyAgICAsIG1fcmFkaWkodG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJv
dHRvbVJpZ2h0KQoreworfQorCitib29sIEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjppc1plcm8o
KSBjb25zdAoreworICAgIHJldHVybiBtX3RvcExlZnQuaXNaZXJvKCkgJiYgbV90b3BSaWdodC5p
c1plcm8oKSAmJiBtX2JvdHRvbUxlZnQuaXNaZXJvKCkgJiYgbV9ib3R0b21SaWdodC5pc1plcm8o
KTsKK30KKwordm9pZCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUoZmxvYXQgZmFjdG9y
KQoreworICAgIGlmIChmYWN0b3IgPT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYg
ZWl0aGVyIHJhZGl1cyBvbiBhIGNvcm5lciBiZWNvbWVzIHplcm8sIHJlc2V0IGJvdGggcmFkaWkg
b24gdGhhdCBjb3JuZXIuCisgICAgbV90b3BMZWZ0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFt
X3RvcExlZnQud2lkdGgoKSB8fCAhbV90b3BMZWZ0LmhlaWdodCgpKQorICAgICAgICBtX3RvcExl
ZnQgPSBGbG9hdFNpemUoKTsKKyAgICBtX3RvcFJpZ2h0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYg
KCFtX3RvcFJpZ2h0LndpZHRoKCkgfHwgIW1fdG9wUmlnaHQuaGVpZ2h0KCkpCisgICAgICAgIG1f
dG9wUmlnaHQgPSBGbG9hdFNpemUoKTsKKyAgICBtX2JvdHRvbUxlZnQuc2NhbGUoZmFjdG9yKTsK
KyAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgpIHx8ICFtX2JvdHRvbUxlZnQuaGVpZ2h0KCkp
CisgICAgICAgIG1fYm90dG9tTGVmdCA9IEZsb2F0U2l6ZSgpOworICAgIG1fYm90dG9tUmlnaHQu
c2NhbGUoZmFjdG9yKTsKKyAgICBpZiAoIW1fYm90dG9tUmlnaHQud2lkdGgoKSB8fCAhbV9ib3R0
b21SaWdodC5oZWlnaHQoKSkKKyAgICAgICAgbV9ib3R0b21SaWdodCA9IEZsb2F0U2l6ZSgpOwor
Cit9CisKK3ZvaWQgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZChmbG9hdCB0b3BXaWR0
aCwgZmxvYXQgYm90dG9tV2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCkK
K3sKKyAgICBpZiAobV90b3BMZWZ0LndpZHRoKCkgPiAwICYmIG1fdG9wTGVmdC5oZWlnaHQoKSA+
IDApIHsKKyAgICAgICAgbV90b3BMZWZ0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0PigwLCBtX3Rv
cExlZnQud2lkdGgoKSArIGxlZnRXaWR0aCkpOworICAgICAgICBtX3RvcExlZnQuc2V0SGVpZ2h0
KHN0ZDo6bWF4PGZsb2F0PigwLCBtX3RvcExlZnQuaGVpZ2h0KCkgKyB0b3BXaWR0aCkpOworICAg
IH0KKyAgICBpZiAobV90b3BSaWdodC53aWR0aCgpID4gMCAmJiBtX3RvcFJpZ2h0LmhlaWdodCgp
ID4gMCkgeworICAgICAgICBtX3RvcFJpZ2h0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0PigwLCBt
X3RvcFJpZ2h0LndpZHRoKCkgKyByaWdodFdpZHRoKSk7CisgICAgICAgIG1fdG9wUmlnaHQuc2V0
SGVpZ2h0KHN0ZDo6bWF4PGZsb2F0PigwLCBtX3RvcFJpZ2h0LmhlaWdodCgpICsgdG9wV2lkdGgp
KTsKKyAgICB9CisgICAgaWYgKG1fYm90dG9tTGVmdC53aWR0aCgpID4gMCAmJiBtX2JvdHRvbUxl
ZnQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fYm90dG9tTGVmdC5zZXRXaWR0aChzdGQ6Om1h
eDxmbG9hdD4oMCwgbV9ib3R0b21MZWZ0LndpZHRoKCkgKyBsZWZ0V2lkdGgpKTsKKyAgICAgICAg
bV9ib3R0b21MZWZ0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV9ib3R0b21MZWZ0Lmhl
aWdodCgpICsgYm90dG9tV2lkdGgpKTsKKyAgICB9CisgICAgaWYgKG1fYm90dG9tUmlnaHQud2lk
dGgoKSA+IDAgJiYgbV9ib3R0b21SaWdodC5oZWlnaHQoKSA+IDApIHsKKyAgICAgICAgbV9ib3R0
b21SaWdodC5zZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV9ib3R0b21SaWdodC53aWR0aCgp
ICsgcmlnaHRXaWR0aCkpOworICAgICAgICBtX2JvdHRvbVJpZ2h0LnNldEhlaWdodChzdGQ6Om1h
eDxmbG9hdD4oMCwgbV9ib3R0b21SaWdodC5oZWlnaHQoKSArIGJvdHRvbVdpZHRoKSk7CisgICAg
fQorfQorCitzdGF0aWMgaW5saW5lIGZsb2F0IGNvcm5lclJlY3RJbnRlcmNlcHQoZmxvYXQgeSwg
Y29uc3QgRmxvYXRSZWN0JiBjb3JuZXJSZWN0KQoreworICAgIEFTU0VSVChjb3JuZXJSZWN0Lmhl
aWdodCgpID4gMCk7CisgICAgcmV0dXJuIGNvcm5lclJlY3Qud2lkdGgoKSAqIHNxcnQoMSAtICh5
ICogeSkgLyAoY29ybmVyUmVjdC5oZWlnaHQoKSAqIGNvcm5lclJlY3QuaGVpZ2h0KCkpKTsKK30K
KworYm9vbCBGbG9hdFJvdW5kZWRSZWN0Ojp4SW50ZXJjZXB0c0F0WShmbG9hdCB5LCBmbG9hdCYg
bWluWEludGVyY2VwdCwgZmxvYXQmIG1heFhJbnRlcmNlcHQpIGNvbnN0Cit7CisgICAgaWYgKHkg
PCByZWN0KCkueSgpICB8fCB5ID49ICByZWN0KCkubWF4WSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvcExlZnRSZWN0ID0gdG9wTGVmdENvcm5lcigp
OworICAgIGNvbnN0IEZsb2F0UmVjdCYgYm90dG9tTGVmdFJlY3QgPSBib3R0b21MZWZ0Q29ybmVy
KCk7CisKKyAgICBpZiAoeSA+PSB0b3BMZWZ0UmVjdC55KCkgJiYgeSA8IHRvcExlZnRSZWN0Lm1h
eFkoKSkKKyAgICAgICAgbWluWEludGVyY2VwdCA9IHRvcExlZnRSZWN0Lm1heFgoKSAtIGNvcm5l
clJlY3RJbnRlcmNlcHQodG9wTGVmdFJlY3QubWF4WSgpIC0geSwgdG9wTGVmdFJlY3QpOworICAg
IGVsc2UgaWYgKHkgPj0gYm90dG9tTGVmdFJlY3QueSgpICYmIHkgPCBib3R0b21MZWZ0UmVjdC5t
YXhZKCkpCisgICAgICAgIG1pblhJbnRlcmNlcHQgPSAgYm90dG9tTGVmdFJlY3QubWF4WCgpIC0g
Y29ybmVyUmVjdEludGVyY2VwdCh5IC0gYm90dG9tTGVmdFJlY3QueSgpLCBib3R0b21MZWZ0UmVj
dCk7CisgICAgZWxzZQorICAgICAgICBtaW5YSW50ZXJjZXB0ID0gbV9yZWN0LngoKTsKKworICAg
IGNvbnN0IEZsb2F0UmVjdCYgdG9wUmlnaHRSZWN0ID0gdG9wUmlnaHRDb3JuZXIoKTsKKyAgICBj
b25zdCBGbG9hdFJlY3QmIGJvdHRvbVJpZ2h0UmVjdCA9IGJvdHRvbVJpZ2h0Q29ybmVyKCk7CisK
KyAgICBpZiAoeSA+PSB0b3BSaWdodFJlY3QueSgpICYmIHkgPCB0b3BSaWdodFJlY3QubWF4WSgp
KQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gdG9wUmlnaHRSZWN0LngoKSArIGNvcm5lclJlY3RJ
bnRlcmNlcHQodG9wUmlnaHRSZWN0Lm1heFkoKSAtIHksIHRvcFJpZ2h0UmVjdCk7CisgICAgZWxz
ZSBpZiAoeSA+PSBib3R0b21SaWdodFJlY3QueSgpICYmIHkgPCBib3R0b21SaWdodFJlY3QubWF4
WSgpKQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gYm90dG9tUmlnaHRSZWN0LngoKSArIGNvcm5l
clJlY3RJbnRlcmNlcHQoeSAtIGJvdHRvbVJpZ2h0UmVjdC55KCksIGJvdHRvbVJpZ2h0UmVjdCk7
CisgICAgZWxzZQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gbV9yZWN0Lm1heFgoKTsKKworICAg
IHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjcxMDAyYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaApAQCAtMCww
ICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQor
ICogQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULAorICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmxvYXRSb3VuZGVkUmVjdF9oCisjZGVmaW5lIEZs
b2F0Um91bmRlZFJlY3RfaAorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRmxv
YXRTaXplLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxvYXRSb3VuZGVkUmVj
dCB7CitwdWJsaWM6CisgICAgY2xhc3MgUmFkaWkgeworICAgIHB1YmxpYzoKKyAgICAgICAgUmFk
aWkoKSB7fQorICAgICAgICBSYWRpaShjb25zdCBGbG9hdFNpemUmIHRvcExlZnQsIGNvbnN0IEZs
b2F0U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgRmxv
YXRTaXplJiBib3R0b21SaWdodCkKKyAgICAgICAgICAgIDogbV90b3BMZWZ0KHRvcExlZnQpCisg
ICAgICAgICAgICAsIG1fdG9wUmlnaHQodG9wUmlnaHQpCisgICAgICAgICAgICAsIG1fYm90dG9t
TGVmdChib3R0b21MZWZ0KQorICAgICAgICAgICAgLCBtX2JvdHRvbVJpZ2h0KGJvdHRvbVJpZ2h0
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHNldFRvcExlZnQoY29uc3Qg
RmxvYXRTaXplJiBzaXplKSB7IG1fdG9wTGVmdCA9IHNpemU7IH0KKyAgICAgICAgdm9pZCBzZXRU
b3BSaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV90b3BSaWdodCA9IHNpemU7IH0KKyAg
ICAgICAgdm9pZCBzZXRCb3R0b21MZWZ0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX2JvdHRv
bUxlZnQgPSBzaXplOyB9CisgICAgICAgIHZvaWQgc2V0Qm90dG9tUmlnaHQoY29uc3QgRmxvYXRT
aXplJiBzaXplKSB7IG1fYm90dG9tUmlnaHQgPSBzaXplOyB9CisgICAgICAgIGNvbnN0IEZsb2F0
U2l6ZSYgdG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGVmdDsgfQorICAgICAgICBjb25z
dCBGbG9hdFNpemUmIHRvcFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV90b3BSaWdodDsgfQorICAg
ICAgICBjb25zdCBGbG9hdFNpemUmIGJvdHRvbUxlZnQoKSBjb25zdCB7IHJldHVybiBtX2JvdHRv
bUxlZnQ7IH0KKyAgICAgICAgY29uc3QgRmxvYXRTaXplJiBib3R0b21SaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fYm90dG9tUmlnaHQ7IH0KKworICAgICAgICBib29sIGlzWmVybygpIGNvbnN0Owor
CisgICAgICAgIHZvaWQgc2NhbGUoZmxvYXQgZmFjdG9yKTsKKyAgICAgICAgdm9pZCBleHBhbmQo
ZmxvYXQgdG9wV2lkdGgsIGZsb2F0IGJvdHRvbVdpZHRoLCBmbG9hdCBsZWZ0V2lkdGgsIGZsb2F0
IHJpZ2h0V2lkdGgpOworICAgICAgICB2b2lkIGV4cGFuZChmbG9hdCBzaXplKSB7IGV4cGFuZChz
aXplLCBzaXplLCBzaXplLCBzaXplKTsgfQorICAgICAgICB2b2lkIHNocmluayhmbG9hdCB0b3BX
aWR0aCwgZmxvYXQgYm90dG9tV2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0
aCkgeyBleHBhbmQoLXRvcFdpZHRoLCAtYm90dG9tV2lkdGgsIC1sZWZ0V2lkdGgsIC1yaWdodFdp
ZHRoKTsgfQorICAgICAgICB2b2lkIHNocmluayhmbG9hdCBzaXplKSB7IHNocmluayhzaXplLCBz
aXplLCBzaXplLCBzaXplKTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgRmxvYXRTaXplIG1f
dG9wTGVmdDsKKyAgICAgICAgRmxvYXRTaXplIG1fdG9wUmlnaHQ7CisgICAgICAgIEZsb2F0U2l6
ZSBtX2JvdHRvbUxlZnQ7CisgICAgICAgIEZsb2F0U2l6ZSBtX2JvdHRvbVJpZ2h0OworICAgIH07
CisKKyAgICBleHBsaWNpdCBGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IFJhZGlpJiA9IFJhZGlpKCkpOworICAgIEZsb2F0Um91bmRlZFJlY3QoZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgICAgRmxvYXRSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmIHRvcExlZnQsIGNvbnN0IEZsb2F0U2l6ZSYg
dG9wUmlnaHQsIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgRmxvYXRTaXplJiBi
b3R0b21SaWdodCk7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVy
biBtX3JlY3Q7IH0KKyAgICBjb25zdCBSYWRpaSYgcmFkaWkoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGlpOyB9CisgICAgYm9vbCBpc1JvdW5kZWQoKSBjb25zdCB7IHJldHVybiAhbV9yYWRpaS5pc1pl
cm8oKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5pc0VtcHR5
KCk7IH0KKworICAgIHZvaWQgc2V0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgbV9yZWN0
ID0gcmVjdDsgfQorICAgIHZvaWQgc2V0UmFkaWkoY29uc3QgUmFkaWkmIHJhZGlpKSB7IG1fcmFk
aWkgPSByYWRpaTsgfQorCisgICAgdm9pZCBtb3ZlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBt
X3JlY3QubW92ZShzaXplKTsgfQorICAgIHZvaWQgaW5mbGF0ZShmbG9hdCBzaXplKSB7IG1fcmVj
dC5pbmZsYXRlKHNpemUpOyAgfQorICAgIHZvaWQgZXhwYW5kUmFkaWkoZmxvYXQgc2l6ZSkgeyBt
X3JhZGlpLmV4cGFuZChzaXplKTsgfQorICAgIHZvaWQgc2hyaW5rUmFkaWkoZmxvYXQgc2l6ZSkg
eyBtX3JhZGlpLnNocmluayhzaXplKTsgfQorCisgICAgRmxvYXRSZWN0IHRvcExlZnRDb3JuZXIo
KSBjb25zdAorICAgIHsgCisgICAgICAgIHJldHVybiBGbG9hdFJlY3QobV9yZWN0LngoKSwgbV9y
ZWN0LnkoKSwgbV9yYWRpaS50b3BMZWZ0KCkud2lkdGgoKSwgbV9yYWRpaS50b3BMZWZ0KCkuaGVp
Z2h0KCkpOyAKKyAgICB9CisgICAgRmxvYXRSZWN0IHRvcFJpZ2h0Q29ybmVyKCkgY29uc3QKKyAg
ICB7IAorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1fcmVjdC5tYXhYKCkgLSBtX3JhZGlpLnRv
cFJpZ2h0KCkud2lkdGgoKSwgbV9yZWN0LnkoKSwgbV9yYWRpaS50b3BSaWdodCgpLndpZHRoKCks
IG1fcmFkaWkudG9wUmlnaHQoKS5oZWlnaHQoKSk7CisgICAgfQorICAgIEZsb2F0UmVjdCBib3R0
b21MZWZ0Q29ybmVyKCkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1f
cmVjdC5tYXhYKCkgLSBtX3JhZGlpLnRvcFJpZ2h0KCkud2lkdGgoKSwgbV9yZWN0LnkoKSwgbV9y
YWRpaS50b3BSaWdodCgpLndpZHRoKCksIG1fcmFkaWkudG9wUmlnaHQoKS5oZWlnaHQoKSk7Cisg
ICAgfQorICAgIEZsb2F0UmVjdCBib3R0b21SaWdodENvcm5lcigpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gRmxvYXRSZWN0KG1fcmVjdC5tYXhYKCkgLSBtX3JhZGlpLmJvdHRvbVJpZ2h0
KCkud2lkdGgoKSwgbV9yZWN0Lm1heFkoKSAtIG1fcmFkaWkuYm90dG9tUmlnaHQoKS5oZWlnaHQo
KSwgbV9yYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCksIG1fcmFkaWkuYm90dG9tUmlnaHQoKS5o
ZWlnaHQoKSk7CisgICAgfQorCisgICAgYm9vbCB4SW50ZXJjZXB0c0F0WShmbG9hdCB5LCBmbG9h
dCYgbWluWEludGVyY2VwdCwgZmxvYXQmIG1heFhJbnRlcmNlcHQpIGNvbnN0OworCitwcml2YXRl
OgorICAgIEZsb2F0UmVjdCBtX3JlY3Q7CisgICAgUmFkaWkgbV9yYWRpaTsKK307CisKK2lubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkmIGEsIGNvbnN0
IEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpJiBiKQoreworICAgIHJldHVybiBhLnRvcExlZnQoKSA9
PSBiLnRvcExlZnQoKSAmJiBhLnRvcFJpZ2h0KCkgPT0gYi50b3BSaWdodCgpICYmIGEuYm90dG9t
TGVmdCgpID09IGIuYm90dG9tTGVmdCgpICYmIGEuYm90dG9tUmlnaHQoKSA9PSBiLmJvdHRvbVJp
Z2h0KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRSb3VuZGVkUmVj
dCYgYSwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYikKK3sKKyAgICByZXR1cm4gYS5yZWN0KCkg
PT0gYi5yZWN0KCkgJiYgYS5yYWRpaSgpID09IGIucmFkaWkoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRmxvYXRSb3VuZGVkUmVjdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAyMjJlNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAq
ICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIEhPTERFUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAorICogU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCb3hTaGFwZS5oIgorCisjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitCb3hTaGFwZTo6Qm94U2hh
cGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKQorICAgIDogU2hhcGUoKQorICAgICwg
bV9ib3VuZHMoYm91bmRzKQorICAgICwgbV9tYXJnaW5Cb3VuZHMoYm91bmRzKQorICAgICwgbV9w
YWRkaW5nQm91bmRzKGJvdW5kcykKK3sKKyAgICBpZiAoc2hhcGVNYXJnaW4oKSA+IDApIHsKKyAg
ICAgICAgbV9tYXJnaW5Cb3VuZHMuaW5mbGF0ZShzaGFwZU1hcmdpbigpKTsKKyAgICAgICAgbV9t
YXJnaW5Cb3VuZHMuZXhwYW5kUmFkaWkoc2hhcGVNYXJnaW4oKSk7CisgICAgfQorICAgIGlmIChz
aGFwZVBhZGRpbmcoKSA+IDApIHsKKyAgICAgICAgbV9wYWRkaW5nQm91bmRzLmluZmxhdGUoLXNo
YXBlUGFkZGluZygpKTsKKyAgICAgICAgbV9wYWRkaW5nQm91bmRzLmV4cGFuZFJhZGlpKC1zaGFw
ZVBhZGRpbmcoKSk7CisgICAgfQorfQorCit2b2lkIEJveFNoYXBlOjpnZXRFeGNsdWRlZEludGVy
dmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2Vn
bWVudExpc3QmIHJlc3VsdCkgY29uc3QKK3sKKyAgICBpZiAobV9tYXJnaW5Cb3VuZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9hdCB5MSA9IGxvZ2ljYWxUb3A7CisgICAg
ZmxvYXQgeTIgPSBsb2dpY2FsVG9wICsgbG9naWNhbEhlaWdodDsKKyAgICBjb25zdCBGbG9hdFJl
Y3QmIHJlY3QgPSBtX21hcmdpbkJvdW5kcy5yZWN0KCk7CisKKyAgICBpZiAoeTIgPD0gcmVjdC55
KCkgfHwgeTEgPj0gcmVjdC5tYXhZKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9t
YXJnaW5Cb3VuZHMuaXNSb3VuZGVkKCkpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChMaW5lU2Vn
bWVudChtX21hcmdpbkJvdW5kcy5yZWN0KCkueCgpLCBtX21hcmdpbkJvdW5kcy5yZWN0KCkubWF4
WCgpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmbG9hdCB4MSA9IHJlY3QubWF4
WCgpOworICAgIGZsb2F0IHgyID0gcmVjdC54KCk7CisgICAgZmxvYXQgbWluWEludGVyY2VwdDsK
KyAgICBmbG9hdCBtYXhYSW50ZXJjZXB0OworCisgICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRl
cmNlcHRzQXRZKHkxLCBtaW5YSW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgICAgICB4
MSA9IHN0ZDo6bWluPGZsb2F0Pih4MSwgbWluWEludGVyY2VwdCk7CisgICAgICAgIHgyID0gc3Rk
OjptYXg8ZmxvYXQ+KHgyLCBtYXhYSW50ZXJjZXB0KTsKKyAgICB9CisKKyAgICBpZiAobV9tYXJn
aW5Cb3VuZHMueEludGVyY2VwdHNBdFkoeTEsIG1pblhJbnRlcmNlcHQsIG1heFhJbnRlcmNlcHQp
KSB7CisgICAgICAgIHgxID0gc3RkOjptaW48ZmxvYXQ+KHgxLCBtaW5YSW50ZXJjZXB0KTsKKyAg
ICAgICAgeDIgPSBzdGQ6Om1heDxmbG9hdD4oeDIsIG1heFhJbnRlcmNlcHQpOworICAgIH0KKwor
ICAgIEFTU0VSVCh4MiA+PSB4MSk7CisgICAgcmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudCh4MSwg
eDIpKTsKK30KKwordm9pZCBCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1
bHQpIGNvbnN0Cit7CisgICAgaWYgKG1fcGFkZGluZ0JvdW5kcy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCA9IG1fcGFkZGluZ0JvdW5kcy5y
ZWN0KCk7CisgICAgaWYgKGxvZ2ljYWxUb3AgPCByZWN0LnkoKSB8fCBsb2dpY2FsVG9wICsgbG9n
aWNhbEhlaWdodCA+IHJlY3QubWF4WSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhN
RTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjQ2MDUuCisKKyAgICByZXN1bHQuYXBwZW5kKExpbmVTZWdtZW50KHJl
Y3QueCgpLCByZWN0Lm1heFgoKSkpOworfQorCitib29sIEJveFNoYXBlOjpmaXJzdEluY2x1ZGVk
SW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25z
dCBMYXlvdXRTaXplJiwgTGF5b3V0VW5pdCYgcmVzdWx0KSBjb25zdAoreworICAgIC8vIEZJWE1F
OiB0aGlzIG1ldGhvZCBpcyBvbmx5IGEgc3R1YiwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyNDYwNi4KKworICAgIHJlc3VsdCA9IG1pbkxvZ2ljYWxJbnRlcnZhbFRv
cDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmM0MjEzZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAq
ICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIEhPTERFUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAorICogU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQm94U2hhcGVfaAorI2RlZmluZSBCb3hTaGFwZV9oCisKKyNpbmNsdWRlICJGbG9hdFJv
dW5kZWRSZWN0LmgiCisjaW5jbHVkZSAiU2hhcGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBCb3hTaGFwZSA6IHB1YmxpYyBTaGFwZSB7CitwdWJsaWM6CisgICAgQm94U2hhcGUo
Y29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKTsKKworICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBzaGFwZU1hcmdpbkxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHN0YXRpY19jYXN0PExheW91dFJlY3Q+KG1fbWFyZ2luQm91bmRzLnJlY3QoKSk7IH0KKyAgICB2
aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0UmVjdD4obV9wYWRkaW5nQm91bmRz
LnJlY3QoKSk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fYm91bmRzLmlzRW1wdHkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRl
ZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5j
bHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZp
cnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2
YWxUb3AsIGNvbnN0IExheW91dFNpemUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVu
aXQmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFNoYXBlVHlwZSB0eXBlKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gU2hhcGU6OlJvdW5kZWRSZWN0YW5nbGVUeXBlOyB9CisKK3ByaXZh
dGU6CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtX2JvdW5kczsKKyAgICBGbG9hdFJvdW5kZWRSZWN0
IG1fbWFyZ2luQm91bmRzOworICAgIEZsb2F0Um91bmRlZFJlY3QgbV9wYWRkaW5nQm91bmRzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQm94U2hhcGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCA2MTg5ZjAxLi5lZDI4
YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIlNoYXBlLmgiCiAKICNpbmNsdWRlICJCYXNpY1NoYXBlRnVu
Y3Rpb25zLmgiCisjaW5jbHVkZSAiQm94U2hhcGUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCkBAIC00
NSw2ICs0NiwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBQYXNzT3duUHRy
PFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMpCit7
CisgICAgQVNTRVJUKGJvdW5kcy5yZWN0KCkud2lkdGgoKSA+PSAwICYmIGJvdW5kcy5yZWN0KCku
aGVpZ2h0KCkgPj0gMCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCb3hTaGFwZShib3VuZHMp
KTsKK30KKwogc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVJlY3RhbmdsZVNoYXBlKGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBGbG9hdFNpemUmIHJhZGlpKQogewogICAgIEFT
U0VSVChib3VuZHMud2lkdGgoKSA+PSAwICYmIGJvdW5kcy5oZWlnaHQoKSA+PSAwICYmIHJhZGlp
LndpZHRoKCkgPj0gMCAmJiByYWRpaS5oZWlnaHQoKSA+PSAwKTsKQEAgLTI0OCwxMCArMjU1LDEx
IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBTdHlsZUltYWdl
KiBzdHlsZUltYWdlLCBmbG9hdCB0aHJlc2hvCiAKIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpj
cmVhdGVTaGFwZShjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsU2l6ZSwgY29uc3QgTGF5b3V0U2l6
ZSYgbG9naWNhbFJhZGlpLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwg
TGVuZ3RoIHBhZGRpbmcpCiB7Ci0gICAgRmxvYXRSZWN0IGJvdW5kcygwLCAwLCBsb2dpY2FsU2l6
ZS53aWR0aCgpLCBsb2dpY2FsU2l6ZS5oZWlnaHQoKSk7CisgICAgRmxvYXRSZWN0IHJlY3QoMCwg
MCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkpOwogICAgIEZsb2F0
U2l6ZSByYWRpaShsb2dpY2FsUmFkaWkud2lkdGgoKSwgbG9naWNhbFJhZGlpLmhlaWdodCgpKTsK
KyAgICBGbG9hdFJvdW5kZWRSZWN0IGJvdW5kcyhyZWN0LCByYWRpaSwgcmFkaWksIHJhZGlpLCBy
YWRpaSk7CiAKLSAgICBPd25QdHI8U2hhcGU+IHNoYXBlID0gY3JlYXRlUmVjdGFuZ2xlU2hhcGUo
Ym91bmRzLCByYWRpaSk7CisgICAgT3duUHRyPFNoYXBlPiBzaGFwZSA9IGNyZWF0ZUJveFNoYXBl
KGJvdW5kcyk7CiAgICAgc2hhcGUtPm1fd3JpdGluZ01vZGUgPSB3cml0aW5nTW9kZTsKICAgICBz
aGFwZS0+bV9tYXJnaW4gPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1hcmdpbiwgMCk7CiAgICAgc2hh
cGUtPm1fcGFkZGluZyA9IGZsb2F0VmFsdWVGb3JMZW5ndGgocGFkZGluZywgMCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217348</attachid>
            <date>2013-11-19 15:51:25 -0800</date>
            <delta_ts>2013-11-19 16:31:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37784</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDcwZGYyNC4uYTQ2ZjA4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMzIzMzlm
Li5lMzNlZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjggQEAKIDIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CiAKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgQWRkZWQgdGhl
IEJveFNoYXBlIGNsYXNzLiBJdCdzIG5vdyB1c2VkIHRvIHJlcHJlc2VudCBzaGFwZS1vdXRzaWRl
IGJveAorICAgICAgICB2YWx1ZXM6IFttYXJnaW4vYm9yZGVyL3BhZGRpbmcvY29udGVudF0tYm94
LiBCb3hTaGFwZSBkZXBlbmRzIG9uIGEgbmV3CisgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY2xh
c3MsIHdoaWNoIGlzIGEgZmxvYXQgYW5hbG9nIG9mIHRoZSBleGlzdGluZyAoaW50KQorICAgICAg
ICBSb3VuZGVkUmVjdCBjbGFzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhbiBpbnRlcm5hbCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybyk6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
b3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb3JuZXJSZWN0
SW50ZXJjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnhJbnRlcmNl
cHRzQXRZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OlJhZGlp
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BSaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90dG9t
TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90
dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRv
cExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRvcFJp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21M
ZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21S
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6ZXhwYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzaHJpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpyYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0Ojppc1JvdW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpzZXRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnNldFJhZGlpKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0OjpleHBhbmRSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpzaHJpbmtSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojp0b3BM
ZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnRvcFJpZ2h0
Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmJvdHRvbUxlZnRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6Ym90dG9tUmlnaHRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hh
cGU6OkJveFNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpnZXRFeGNsdWRlZElu
dGVydmFscyk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDogQWRkZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlU2hhcGUp
OgorCisyMDEzLTExLTE5ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCiAgICAg
ICAgIFtDU1MgU2hhcGVzXSBSZWZhY3RvciBSZWN0YW5nbGVTaGFwZQogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NDE2CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDIzODgyYTYuLjcxZTkwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtNDUzNyw2ICs0NTM3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNjcmlwdHMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zl
ci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwIFwKQEAgLTU3NTYsNiArNTc1OCw4IEBAIHBsYXRm
b3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UXVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRCYXNlbGluZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDg3ZmY2ZGQuLjE5MjM5MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzYx
NSw2ICs3NjE1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEZsb2F0UG9seWdvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSZWN0LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3QuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRTaXplLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnQuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRm9udENh
Y2hlLmNwcCIgLz4KQEAgLTExMDY0LDYgKzExMDY1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xUZXh0UGFpbnRTdHlsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lQnJlYWtlci5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5mby5jcHAiIC8+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBlLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUG9seWdvblNoYXBlLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmFzdGVy
U2hhcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xSZWN0YW5nbGVTaGFwZS5jcHAiIC8+CkBAIC0xOTE3OSw2ICsxOTE4MSw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvbHlnb24uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UXVhZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRS
ZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xG
bG9hdFJvdW5kZWRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGbG9hdFNpemUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEZvbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5oIiAvPgpAQCAtMTk4OTEsNiArMTk4OTQsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGxpbmVcTGluZUluZm8uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmxpbmVIZWFk
ZXJzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5l
TGF5b3V0U3RhdGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
aGFwZXNcQm94U2hhcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xzaGFwZXNcUG9seWdvblNoYXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJlY3RhbmdsZVNoYXBlLmgiIC8+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggYTI4ZjQyNC4uZDk5ZGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMSw0ICsxLDQgQEAKLe+7vzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/PgogPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgogICA8
SXRlbUdyb3VwPgogICAgIDxGaWx0ZXIgSW5jbHVkZT0iRGVyaXZlZFNvdXJjZXMiPgpAQCAtNTAx
Niw2ICs1MDE2LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXEZsb2F0UmVjdC5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcRmxvYXRSb3VuZGVkUmVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9y
bVxncmFwaGljczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRTaXplLmNwcCI+CiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02ODkyLDYg
KzY4OTUsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xT
aGFwZU91dHNpZGVJbmZvLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzaGFwZXNcQm94U2hhcGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBl
czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXHNoYXBlc1xQb2x5Z29uU2hhcGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nXHNoYXBlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTI3OTksNiArMTI4MDUs
OSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRS
ZWN0LmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
RmxvYXRSb3VuZGVkUmVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhp
Y3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE0Njc1LDYgKzE0Njg0LDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcU2hhcGVJbnRlcnZhbC5o
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFw
ZS5oIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xSYXN0
ZXJTaGFwZS5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDM4ZmYzMjIuLjI0ZThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwNDUsNiArMjA0NSw4
IEBACiAJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcCAqLzsgfTsKIAkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJzZXRT
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM3
MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTZFMEU1NjlCMTgzQkZGRTYw
MEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJv
dW5kZWRSZWN0LmNwcCAqLzsgfTsKKwkJNkUwRTU2OUMxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0
Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkUyMUM2QzAxMTI2
MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBH
cmFwaGljc0NvbnRleHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEyNjMzOTkwMEE3QkUwMiAv
KiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRENHLmNwcCAqLzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuY3BwICovOyB9OwpAQCAtMjA4NCw2ICsyMDg2LDggQEAKIAkJNkVDNDgw
QTIxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0UG9seWdvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZs
b2F0UG9seWdvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTZFRDg3OEM0MTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEODc4QzIx
NDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi87IH07CiAJCTZFRDg3
OEM1MTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5
NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uaCAqLzsgfTsKKwkJNkVEOEMzNzkxODNCRkY4QzAwOUU1
M0JEIC8qIEJveFNoYXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZFRDhDMzc3MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi87IH07
CisJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JE
IC8qIEJveFNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkVFOEE3NzIxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAq
LzsgfTsKIAkJNkVFOEE3NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVF
OEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyB9
OwogCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlFMDRBMjdCRUQy
RjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLzsgfTsKQEAgLTg3ODIsNiAr
ODc4Niw4IEBACiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0
Um91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxv
YXRSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMEU1NjlB
MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNE
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODgyNSw2ICs4ODMxLDggQEAKIAkJNkVDNDgwQTAxNkVBNjM4QTAwQTQ4RENCIC8qIEZsb2F0
UG9seWdvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFBvbHlnb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzIxNDc0OTNGNDAwNEMzNTk3
IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJUYWJsZUNhcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RUQ4QzM3NzE4M0JGRjhDMDA5RTUzQkQgLyogQm94
U2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQm94U2hhcGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RUQ4QzM3ODE4M0JGRjhDMDA5RTUz
QkQgLyogQm94U2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm94U2hh
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVFOEE3NzAxMEY4MDNGMzAwNUE0
QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MTEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTE3
NDQ1NjE0QkMzNEUyMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1RleHRNZXRyaWNzQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTE0NCw2ICsxOTE1Miw4IEBACiAJCUIy
QTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZs
b2F0Um91bmRlZFJlY3QuY3BwICovLAorCQkJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBG
bG9hdFJvdW5kZWRSZWN0LmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1l
ZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNENjQxRUIyMTgxOEY1RUQwMEVFNEM0MSAvKiBT
b3VyY2VCdWZmZXJQcml2YXRlLmggKi8sCiAJCQkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8q
IGF2Zm91bmRhdGlvbiAqLywKQEAgLTIxNjAzLDYgKzIxNjEzLDggQEAKIAkJRkQwOEE4NzkxNzVE
MzkyNjAwMkNEMzYwIC8qIHNoYXBlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNkVEOEMzNzcxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAq
LywKKwkJCQk2RUQ4QzM3ODE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCAqLywKIAkJCQlG
RDA4QTg3QTE3NUQzOTI2MDAyQ0QzNjAgLyogUG9seWdvblNoYXBlLmNwcCAqLywKIAkJCQlGRDA4
QTg3QjE3NUQzOTI2MDAyQ0QzNjAgLyogUG9seWdvblNoYXBlLmggKi8sCiAJCQkJNkU4NEU5REUx
NzY2OEJBRDAwODE1QjY4IC8qIFJhc3RlclNoYXBlLmNwcCAqLywKQEAgLTIxOTQ3LDYgKzIxOTU5
LDggQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNC
RCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkUwRTU2OUMxODNCRkZFNjAwRTBF
OEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBMTE0MjA0MTgz
MkQxMzUwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzJB
RDcwNjE3RUZBMkM0MDAzOEY4RkYgLyogTWFpbkZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RURCRkYxNjE4MkI3QThEMDAxN0ZBNjQgLyogQnJlYWtwb2ludElELmggaW4gSGVhZGVycyAqLywK
QEAgLTI2MjA3LDYgKzI2MjIxLDcgQEAKIAkJCQkyNkMxN0EzRjE0OTFEMkQ0MDBEMTJCQTIgLyog
RmlsZVN5c3RlbUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEM0E0OTU0MTdBOUNDOTAwMDI3
NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0QjNGNzYw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk2
RUQ4QzM3OTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE2MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzZENkM4RDEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRocmVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjY5RTBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgwODQsNiArMjgwOTksNyBAQAogCQkJCTQ5RTkxMUMz
MEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OTRCQzQwRDEyQUVERDlFMDA3NDNCRDIgLyogVHJhbnNmb3JtYXRpb25NYXRyaXhD
QS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU1ODBCMDUzODE0MDAyQ0U2NEYgLyogVHJh
bnNmb3JtYXRpb25NYXRyaXhDRy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2RTBFNTY5QjE4M0JG
RkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
QjQ4NEY0QzE3MUY4MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ5RTkxMUNGMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRp
b25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVEQjFCQzZCMTA3MTVBNjQwMEVGQUE0OSAvKiBU
cmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzkwYWY2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAKQEAg
LTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgWGlkb3Ju
IFF1YW4gKHF1YW54dW56aGVuQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0Zsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3Qo
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKKyAgICA6IG1fcmVj
dCh4LCB5LCB3aWR0aCwgaGVpZ2h0KQoreworfQorCitGbG9hdFJvdW5kZWRSZWN0OjpGbG9hdFJv
dW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgUmFkaWkmIHJhZGlpKQorICAg
IDogbV9yZWN0KHJlY3QpCisgICAgLCBtX3JhZGlpKHJhZGlpKQoreworfQorCitGbG9hdFJvdW5k
ZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxv
YXRTaXplJiB0b3BMZWZ0LCBjb25zdCBGbG9hdFNpemUmIHRvcFJpZ2h0LCBjb25zdCBGbG9hdFNp
emUmIGJvdHRvbUxlZnQsIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tUmlnaHQpCisgICAgOiBtX3Jl
Y3QocmVjdCkKKyAgICAsIG1fcmFkaWkodG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJv
dHRvbVJpZ2h0KQoreworfQorCitib29sIEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjppc1plcm8o
KSBjb25zdAoreworICAgIHJldHVybiBtX3RvcExlZnQuaXNaZXJvKCkgJiYgbV90b3BSaWdodC5p
c1plcm8oKSAmJiBtX2JvdHRvbUxlZnQuaXNaZXJvKCkgJiYgbV9ib3R0b21SaWdodC5pc1plcm8o
KTsKK30KKwordm9pZCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUoZmxvYXQgZmFjdG9y
KQoreworICAgIGlmIChmYWN0b3IgPT0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYg
ZWl0aGVyIHJhZGl1cyBvbiBhIGNvcm5lciBiZWNvbWVzIHplcm8sIHJlc2V0IGJvdGggcmFkaWkg
b24gdGhhdCBjb3JuZXIuCisgICAgbV90b3BMZWZ0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFt
X3RvcExlZnQud2lkdGgoKSB8fCAhbV90b3BMZWZ0LmhlaWdodCgpKQorICAgICAgICBtX3RvcExl
ZnQgPSBGbG9hdFNpemUoKTsKKyAgICBtX3RvcFJpZ2h0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYg
KCFtX3RvcFJpZ2h0LndpZHRoKCkgfHwgIW1fdG9wUmlnaHQuaGVpZ2h0KCkpCisgICAgICAgIG1f
dG9wUmlnaHQgPSBGbG9hdFNpemUoKTsKKyAgICBtX2JvdHRvbUxlZnQuc2NhbGUoZmFjdG9yKTsK
KyAgICBpZiAoIW1fYm90dG9tTGVmdC53aWR0aCgpIHx8ICFtX2JvdHRvbUxlZnQuaGVpZ2h0KCkp
CisgICAgICAgIG1fYm90dG9tTGVmdCA9IEZsb2F0U2l6ZSgpOworICAgIG1fYm90dG9tUmlnaHQu
c2NhbGUoZmFjdG9yKTsKKyAgICBpZiAoIW1fYm90dG9tUmlnaHQud2lkdGgoKSB8fCAhbV9ib3R0
b21SaWdodC5oZWlnaHQoKSkKKyAgICAgICAgbV9ib3R0b21SaWdodCA9IEZsb2F0U2l6ZSgpOwor
Cit9CisKK3ZvaWQgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZChmbG9hdCB0b3BXaWR0
aCwgZmxvYXQgYm90dG9tV2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCkK
K3sKKyAgICBpZiAobV90b3BMZWZ0LndpZHRoKCkgPiAwICYmIG1fdG9wTGVmdC5oZWlnaHQoKSA+
IDApIHsKKyAgICAgICAgbV90b3BMZWZ0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0PigwLCBtX3Rv
cExlZnQud2lkdGgoKSArIGxlZnRXaWR0aCkpOworICAgICAgICBtX3RvcExlZnQuc2V0SGVpZ2h0
KHN0ZDo6bWF4PGZsb2F0PigwLCBtX3RvcExlZnQuaGVpZ2h0KCkgKyB0b3BXaWR0aCkpOworICAg
IH0KKyAgICBpZiAobV90b3BSaWdodC53aWR0aCgpID4gMCAmJiBtX3RvcFJpZ2h0LmhlaWdodCgp
ID4gMCkgeworICAgICAgICBtX3RvcFJpZ2h0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0PigwLCBt
X3RvcFJpZ2h0LndpZHRoKCkgKyByaWdodFdpZHRoKSk7CisgICAgICAgIG1fdG9wUmlnaHQuc2V0
SGVpZ2h0KHN0ZDo6bWF4PGZsb2F0PigwLCBtX3RvcFJpZ2h0LmhlaWdodCgpICsgdG9wV2lkdGgp
KTsKKyAgICB9CisgICAgaWYgKG1fYm90dG9tTGVmdC53aWR0aCgpID4gMCAmJiBtX2JvdHRvbUxl
ZnQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fYm90dG9tTGVmdC5zZXRXaWR0aChzdGQ6Om1h
eDxmbG9hdD4oMCwgbV9ib3R0b21MZWZ0LndpZHRoKCkgKyBsZWZ0V2lkdGgpKTsKKyAgICAgICAg
bV9ib3R0b21MZWZ0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV9ib3R0b21MZWZ0Lmhl
aWdodCgpICsgYm90dG9tV2lkdGgpKTsKKyAgICB9CisgICAgaWYgKG1fYm90dG9tUmlnaHQud2lk
dGgoKSA+IDAgJiYgbV9ib3R0b21SaWdodC5oZWlnaHQoKSA+IDApIHsKKyAgICAgICAgbV9ib3R0
b21SaWdodC5zZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV9ib3R0b21SaWdodC53aWR0aCgp
ICsgcmlnaHRXaWR0aCkpOworICAgICAgICBtX2JvdHRvbVJpZ2h0LnNldEhlaWdodChzdGQ6Om1h
eDxmbG9hdD4oMCwgbV9ib3R0b21SaWdodC5oZWlnaHQoKSArIGJvdHRvbVdpZHRoKSk7CisgICAg
fQorfQorCitzdGF0aWMgaW5saW5lIGZsb2F0IGNvcm5lclJlY3RJbnRlcmNlcHQoZmxvYXQgeSwg
Y29uc3QgRmxvYXRSZWN0JiBjb3JuZXJSZWN0KQoreworICAgIEFTU0VSVChjb3JuZXJSZWN0Lmhl
aWdodCgpID4gMCk7CisgICAgcmV0dXJuIGNvcm5lclJlY3Qud2lkdGgoKSAqIHNxcnQoMSAtICh5
ICogeSkgLyAoY29ybmVyUmVjdC5oZWlnaHQoKSAqIGNvcm5lclJlY3QuaGVpZ2h0KCkpKTsKK30K
KworYm9vbCBGbG9hdFJvdW5kZWRSZWN0Ojp4SW50ZXJjZXB0c0F0WShmbG9hdCB5LCBmbG9hdCYg
bWluWEludGVyY2VwdCwgZmxvYXQmIG1heFhJbnRlcmNlcHQpIGNvbnN0Cit7CisgICAgaWYgKHkg
PCByZWN0KCkueSgpICB8fCB5ID49ICByZWN0KCkubWF4WSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvcExlZnRSZWN0ID0gdG9wTGVmdENvcm5lcigp
OworICAgIGNvbnN0IEZsb2F0UmVjdCYgYm90dG9tTGVmdFJlY3QgPSBib3R0b21MZWZ0Q29ybmVy
KCk7CisKKyAgICBpZiAoeSA+PSB0b3BMZWZ0UmVjdC55KCkgJiYgeSA8IHRvcExlZnRSZWN0Lm1h
eFkoKSkKKyAgICAgICAgbWluWEludGVyY2VwdCA9IHRvcExlZnRSZWN0Lm1heFgoKSAtIGNvcm5l
clJlY3RJbnRlcmNlcHQodG9wTGVmdFJlY3QubWF4WSgpIC0geSwgdG9wTGVmdFJlY3QpOworICAg
IGVsc2UgaWYgKHkgPj0gYm90dG9tTGVmdFJlY3QueSgpICYmIHkgPCBib3R0b21MZWZ0UmVjdC5t
YXhZKCkpCisgICAgICAgIG1pblhJbnRlcmNlcHQgPSAgYm90dG9tTGVmdFJlY3QubWF4WCgpIC0g
Y29ybmVyUmVjdEludGVyY2VwdCh5IC0gYm90dG9tTGVmdFJlY3QueSgpLCBib3R0b21MZWZ0UmVj
dCk7CisgICAgZWxzZQorICAgICAgICBtaW5YSW50ZXJjZXB0ID0gbV9yZWN0LngoKTsKKworICAg
IGNvbnN0IEZsb2F0UmVjdCYgdG9wUmlnaHRSZWN0ID0gdG9wUmlnaHRDb3JuZXIoKTsKKyAgICBj
b25zdCBGbG9hdFJlY3QmIGJvdHRvbVJpZ2h0UmVjdCA9IGJvdHRvbVJpZ2h0Q29ybmVyKCk7CisK
KyAgICBpZiAoeSA+PSB0b3BSaWdodFJlY3QueSgpICYmIHkgPCB0b3BSaWdodFJlY3QubWF4WSgp
KQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gdG9wUmlnaHRSZWN0LngoKSArIGNvcm5lclJlY3RJ
bnRlcmNlcHQodG9wUmlnaHRSZWN0Lm1heFkoKSAtIHksIHRvcFJpZ2h0UmVjdCk7CisgICAgZWxz
ZSBpZiAoeSA+PSBib3R0b21SaWdodFJlY3QueSgpICYmIHkgPCBib3R0b21SaWdodFJlY3QubWF4
WSgpKQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gYm90dG9tUmlnaHRSZWN0LngoKSArIGNvcm5l
clJlY3RJbnRlcmNlcHQoeSAtIGJvdHRvbVJpZ2h0UmVjdC55KCksIGJvdHRvbVJpZ2h0UmVjdCk7
CisgICAgZWxzZQorICAgICAgICBtYXhYSW50ZXJjZXB0ID0gbV9yZWN0Lm1heFgoKTsKKworICAg
IHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY2NjNjNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaApAQCAtMCww
ICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQor
ICogQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULAorICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmxvYXRSb3VuZGVkUmVjdF9oCisjZGVmaW5lIEZs
b2F0Um91bmRlZFJlY3RfaAorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRmxv
YXRTaXplLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxvYXRSb3VuZGVkUmVj
dCB7CitwdWJsaWM6CisgICAgY2xhc3MgUmFkaWkgeworICAgIHB1YmxpYzoKKyAgICAgICAgUmFk
aWkoKSB7IH0KKyAgICAgICAgUmFkaWkoY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0LCBjb25zdCBG
bG9hdFNpemUmIHRvcFJpZ2h0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEZs
b2F0U2l6ZSYgYm90dG9tUmlnaHQpCisgICAgICAgICAgICA6IG1fdG9wTGVmdCh0b3BMZWZ0KQor
ICAgICAgICAgICAgLCBtX3RvcFJpZ2h0KHRvcFJpZ2h0KQorICAgICAgICAgICAgLCBtX2JvdHRv
bUxlZnQoYm90dG9tTGVmdCkKKyAgICAgICAgICAgICwgbV9ib3R0b21SaWdodChib3R0b21SaWdo
dCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX3RvcExlZnQgPSBzaXplOyB9CisgICAgICAgIHZvaWQgc2V0
VG9wUmlnaHQoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fdG9wUmlnaHQgPSBzaXplOyB9Cisg
ICAgICAgIHZvaWQgc2V0Qm90dG9tTGVmdChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9ib3R0
b21MZWZ0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldEJvdHRvbVJpZ2h0KGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSkgeyBtX2JvdHRvbVJpZ2h0ID0gc2l6ZTsgfQorICAgICAgICBjb25zdCBGbG9h
dFNpemUmIHRvcExlZnQoKSBjb25zdCB7IHJldHVybiBtX3RvcExlZnQ7IH0KKyAgICAgICAgY29u
c3QgRmxvYXRTaXplJiB0b3BSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wUmlnaHQ7IH0KKyAg
ICAgICAgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9ib3R0
b21MZWZ0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tUmlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2JvdHRvbVJpZ2h0OyB9CisKKyAgICAgICAgYm9vbCBpc1plcm8oKSBjb25zdDsK
KworICAgICAgICB2b2lkIHNjYWxlKGZsb2F0IGZhY3Rvcik7CisgICAgICAgIHZvaWQgZXhwYW5k
KGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBib3R0b21XaWR0aCwgZmxvYXQgbGVmdFdpZHRoLCBmbG9h
dCByaWdodFdpZHRoKTsKKyAgICAgICAgdm9pZCBleHBhbmQoZmxvYXQgc2l6ZSkgeyBleHBhbmQo
c2l6ZSwgc2l6ZSwgc2l6ZSwgc2l6ZSk7IH0KKyAgICAgICAgdm9pZCBzaHJpbmsoZmxvYXQgdG9w
V2lkdGgsIGZsb2F0IGJvdHRvbVdpZHRoLCBmbG9hdCBsZWZ0V2lkdGgsIGZsb2F0IHJpZ2h0V2lk
dGgpIHsgZXhwYW5kKC10b3BXaWR0aCwgLWJvdHRvbVdpZHRoLCAtbGVmdFdpZHRoLCAtcmlnaHRX
aWR0aCk7IH0KKyAgICAgICAgdm9pZCBzaHJpbmsoZmxvYXQgc2l6ZSkgeyBzaHJpbmsoc2l6ZSwg
c2l6ZSwgc2l6ZSwgc2l6ZSk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEZsb2F0U2l6ZSBt
X3RvcExlZnQ7CisgICAgICAgIEZsb2F0U2l6ZSBtX3RvcFJpZ2h0OworICAgICAgICBGbG9hdFNp
emUgbV9ib3R0b21MZWZ0OworICAgICAgICBGbG9hdFNpemUgbV9ib3R0b21SaWdodDsKKyAgICB9
OworCisgICAgZXhwbGljaXQgRmxvYXRSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBSYWRpaSYgPSBSYWRpaSgpKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworICAgIEZsb2F0Um91bmRlZFJlY3QoY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0LCBjb25zdCBGbG9hdFNpemUm
IHRvcFJpZ2h0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEZsb2F0U2l6ZSYg
Ym90dG9tUmlnaHQpOworCisgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9yZWN0OyB9CisgICAgY29uc3QgUmFkaWkmIHJhZGlpKCkgY29uc3QgeyByZXR1cm4gbV9y
YWRpaTsgfQorICAgIGJvb2wgaXNSb3VuZGVkKCkgY29uc3QgeyByZXR1cm4gIW1fcmFkaWkuaXNa
ZXJvKCk7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaXNFbXB0
eSgpOyB9CisKKyAgICB2b2lkIHNldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSB7IG1fcmVj
dCA9IHJlY3Q7IH0KKyAgICB2b2lkIHNldFJhZGlpKGNvbnN0IFJhZGlpJiByYWRpaSkgeyBtX3Jh
ZGlpID0gcmFkaWk7IH0KKworICAgIHZvaWQgbW92ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIHsg
bV9yZWN0Lm1vdmUoc2l6ZSk7IH0KKyAgICB2b2lkIGluZmxhdGUoZmxvYXQgc2l6ZSkgeyBtX3Jl
Y3QuaW5mbGF0ZShzaXplKTsgIH0KKyAgICB2b2lkIGV4cGFuZFJhZGlpKGZsb2F0IHNpemUpIHsg
bV9yYWRpaS5leHBhbmQoc2l6ZSk7IH0KKyAgICB2b2lkIHNocmlua1JhZGlpKGZsb2F0IHNpemUp
IHsgbV9yYWRpaS5zaHJpbmsoc2l6ZSk7IH0KKworICAgIEZsb2F0UmVjdCB0b3BMZWZ0Q29ybmVy
KCkgY29uc3QKKyAgICB7IAorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1fcmVjdC54KCksIG1f
cmVjdC55KCksIG1fcmFkaWkudG9wTGVmdCgpLndpZHRoKCksIG1fcmFkaWkudG9wTGVmdCgpLmhl
aWdodCgpKTsgCisgICAgfQorICAgIEZsb2F0UmVjdCB0b3BSaWdodENvcm5lcigpIGNvbnN0Cisg
ICAgeyAKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS50
b3BSaWdodCgpLndpZHRoKCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgp
LCBtX3JhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKyAgICBGbG9hdFJlY3QgYm90
dG9tTGVmdENvcm5lcigpIGNvbnN0CisgICAgeyAKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCht
X3JlY3QubWF4WCgpIC0gbV9yYWRpaS50b3BSaWdodCgpLndpZHRoKCksIG1fcmVjdC55KCksIG1f
cmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkpOwor
ICAgIH0KKyAgICBGbG9hdFJlY3QgYm90dG9tUmlnaHRDb3JuZXIoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS5ib3R0b21SaWdo
dCgpLndpZHRoKCksIG1fcmVjdC5tYXhZKCkgLSBtX3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0
KCksIG1fcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpLCBtX3JhZGlpLmJvdHRvbVJpZ2h0KCku
aGVpZ2h0KCkpOworICAgIH0KKworICAgIGJvb2wgeEludGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxv
YXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50ZXJjZXB0KSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBGbG9hdFJlY3QgbV9yZWN0OworICAgIFJhZGlpIG1fcmFkaWk7Cit9OworCitpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpJiBhLCBjb25z
dCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSYgYikKK3sKKyAgICByZXR1cm4gYS50b3BMZWZ0KCkg
PT0gYi50b3BMZWZ0KCkgJiYgYS50b3BSaWdodCgpID09IGIudG9wUmlnaHQoKSAmJiBhLmJvdHRv
bUxlZnQoKSA9PSBiLmJvdHRvbUxlZnQoKSAmJiBhLmJvdHRvbVJpZ2h0KCkgPT0gYi5ib3R0b21S
aWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmIGEsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGIpCit7CisgICAgcmV0dXJuIGEucmVjdCgp
ID09IGIucmVjdCgpICYmIGEucmFkaWkoKSA9PSBiLnJhZGlpKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZsb2F0Um91bmRlZFJlY3RfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wMjIyZTc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisg
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQm94U2hhcGUuaCIKKworI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQm94U2hhcGU6OkJveFNo
YXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcykKKyAgICA6IFNoYXBlKCkKKyAgICAs
IG1fYm91bmRzKGJvdW5kcykKKyAgICAsIG1fbWFyZ2luQm91bmRzKGJvdW5kcykKKyAgICAsIG1f
cGFkZGluZ0JvdW5kcyhib3VuZHMpCit7CisgICAgaWYgKHNoYXBlTWFyZ2luKCkgPiAwKSB7Cisg
ICAgICAgIG1fbWFyZ2luQm91bmRzLmluZmxhdGUoc2hhcGVNYXJnaW4oKSk7CisgICAgICAgIG1f
bWFyZ2luQm91bmRzLmV4cGFuZFJhZGlpKHNoYXBlTWFyZ2luKCkpOworICAgIH0KKyAgICBpZiAo
c2hhcGVQYWRkaW5nKCkgPiAwKSB7CisgICAgICAgIG1fcGFkZGluZ0JvdW5kcy5pbmZsYXRlKC1z
aGFwZVBhZGRpbmcoKSk7CisgICAgICAgIG1fcGFkZGluZ0JvdW5kcy5leHBhbmRSYWRpaSgtc2hh
cGVQYWRkaW5nKCkpOworICAgIH0KK30KKwordm9pZCBCb3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRl
cnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNl
Z21lbnRMaXN0JiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKG1fbWFyZ2luQm91bmRzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAg
IGZsb2F0IHkyID0gbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQ7CisgICAgY29uc3QgRmxvYXRS
ZWN0JiByZWN0ID0gbV9tYXJnaW5Cb3VuZHMucmVjdCgpOworCisgICAgaWYgKHkyIDw9IHJlY3Qu
eSgpIHx8IHkxID49IHJlY3QubWF4WSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1f
bWFyZ2luQm91bmRzLmlzUm91bmRlZCgpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoTGluZVNl
Z21lbnQobV9tYXJnaW5Cb3VuZHMucmVjdCgpLngoKSwgbV9tYXJnaW5Cb3VuZHMucmVjdCgpLm1h
eFgoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZmxvYXQgeDEgPSByZWN0Lm1h
eFgoKTsKKyAgICBmbG9hdCB4MiA9IHJlY3QueCgpOworICAgIGZsb2F0IG1pblhJbnRlcmNlcHQ7
CisgICAgZmxvYXQgbWF4WEludGVyY2VwdDsKKworICAgIGlmIChtX21hcmdpbkJvdW5kcy54SW50
ZXJjZXB0c0F0WSh5MSwgbWluWEludGVyY2VwdCwgbWF4WEludGVyY2VwdCkpIHsKKyAgICAgICAg
eDEgPSBzdGQ6Om1pbjxmbG9hdD4oeDEsIG1pblhJbnRlcmNlcHQpOworICAgICAgICB4MiA9IHN0
ZDo6bWF4PGZsb2F0Pih4MiwgbWF4WEludGVyY2VwdCk7CisgICAgfQorCisgICAgaWYgKG1fbWFy
Z2luQm91bmRzLnhJbnRlcmNlcHRzQXRZKHkxLCBtaW5YSW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0
KSkgeworICAgICAgICB4MSA9IHN0ZDo6bWluPGZsb2F0Pih4MSwgbWluWEludGVyY2VwdCk7Cisg
ICAgICAgIHgyID0gc3RkOjptYXg8ZmxvYXQ+KHgyLCBtYXhYSW50ZXJjZXB0KTsKKyAgICB9CisK
KyAgICBBU1NFUlQoeDIgPj0geDEpOworICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEs
IHgyKSk7Cit9CisKK3ZvaWQgQm94U2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVu
aXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVz
dWx0KSBjb25zdAoreworICAgIGlmIChtX3BhZGRpbmdCb3VuZHMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QgPSBtX3BhZGRpbmdCb3VuZHMu
cmVjdCgpOworICAgIGlmIChsb2dpY2FsVG9wIDwgcmVjdC55KCkgfHwgbG9naWNhbFRvcCArIGxv
Z2ljYWxIZWlnaHQgPiByZWN0Lm1heFkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklY
TUU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgYSBzdHViLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI0NjA1LgorCisgICAgcmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudChy
ZWN0LngoKSwgcmVjdC5tYXhYKCkpKTsKK30KKworYm9vbCBCb3hTaGFwZTo6Zmlyc3RJbmNsdWRl
ZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29u
c3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjQ2MDYuCisKKyAgICByZXN1bHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxU
b3A7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jNDIxM2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisg
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEJveFNoYXBlX2gKKyNkZWZpbmUgQm94U2hhcGVfaAorCisjaW5jbHVkZSAiRmxvYXRS
b3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIlNoYXBlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQm94U2hhcGUgOiBwdWJsaWMgU2hhcGUgeworcHVibGljOgorICAgIEJveFNoYXBl
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyk7CisKKyAgICB2aXJ0dWFsIExheW91dFJl
Y3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihtX21hcmdpbkJvdW5kcy5yZWN0KCkpOyB9CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFJlY3Q+KG1fcGFkZGluZ0JvdW5k
cy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVk
ZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldElu
Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBm
aXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVy
dmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRV
bml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVkUmVjdGFuZ2xlVHlwZTsgfQorCitwcml2
YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3VuZHM7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCBtX21hcmdpbkJvdW5kczsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IG1fcGFkZGluZ0JvdW5kczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJveFNoYXBlX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggNjE4OWYwMS4uZWQy
OGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1
bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJveFNoYXBlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgpAQCAt
NDUsNiArNDYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgUGFzc093blB0
cjxTaGFwZT4gY3JlYXRlQm94U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKQor
eworICAgIEFTU0VSVChib3VuZHMucmVjdCgpLndpZHRoKCkgPj0gMCAmJiBib3VuZHMucmVjdCgp
LmhlaWdodCgpID49IDApOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRz
KSk7Cit9CisKIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVSZWN0YW5nbGVTaGFwZShj
b25zdCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKIHsKICAgICBB
U1NFUlQoYm91bmRzLndpZHRoKCkgPj0gMCAmJiBib3VuZHMuaGVpZ2h0KCkgPj0gMCAmJiByYWRp
aS53aWR0aCgpID49IDAgJiYgcmFkaWkuaGVpZ2h0KCkgPj0gMCk7CkBAIC0yNDgsMTAgKzI1NSwx
MSBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgU3R5bGVJbWFn
ZSogc3R5bGVJbWFnZSwgZmxvYXQgdGhyZXNobwogCiBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6
Y3JlYXRlU2hhcGUoY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IExheW91dFNp
emUmIGxvZ2ljYWxSYWRpaSwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4s
IExlbmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVjdCBib3VuZHMoMCwgMCwgbG9naWNhbFNp
emUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkpOworICAgIEZsb2F0UmVjdCByZWN0KDAs
IDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpKTsKICAgICBGbG9h
dFNpemUgcmFkaWkobG9naWNhbFJhZGlpLndpZHRoKCksIGxvZ2ljYWxSYWRpaS5oZWlnaHQoKSk7
CisgICAgRmxvYXRSb3VuZGVkUmVjdCBib3VuZHMocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwg
cmFkaWkpOwogCi0gICAgT3duUHRyPFNoYXBlPiBzaGFwZSA9IGNyZWF0ZVJlY3RhbmdsZVNoYXBl
KGJvdW5kcywgcmFkaWkpOworICAgIE93blB0cjxTaGFwZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFw
ZShib3VuZHMpOwogICAgIHNoYXBlLT5tX3dyaXRpbmdNb2RlID0gd3JpdGluZ01vZGU7CiAgICAg
c2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtYXJnaW4sIDApOwogICAgIHNo
YXBlLT5tX3BhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217358</attachid>
            <date>2013-11-19 16:31:13 -0800</date>
            <delta_ts>2013-11-19 16:52:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37766</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDcwZGYyNC4uYTQ2ZjA4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZDQ3MmM4
Li5iYzRhY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgQWRkZWQgdGhl
IEJveFNoYXBlIGNsYXNzLiBJdCdzIG5vdyB1c2VkIHRvIHJlcHJlc2VudCBzaGFwZS1vdXRzaWRl
IGJveAorICAgICAgICB2YWx1ZXM6IFttYXJnaW4vYm9yZGVyL3BhZGRpbmcvY29udGVudF0tYm94
LiBCb3hTaGFwZSBkZXBlbmRzIG9uIGEgbmV3CisgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY2xh
c3MsIHdoaWNoIGlzIGEgZmxvYXQgYW5hbG9nIG9mIHRoZSBleGlzdGluZyAoaW50KQorICAgICAg
ICBSb3VuZGVkUmVjdCBjbGFzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhbiBpbnRlcm5hbCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybyk6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
b3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb3JuZXJSZWN0
SW50ZXJjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnhJbnRlcmNl
cHRzQXRZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OlJhZGlp
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BSaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90dG9t
TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90
dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRv
cExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRvcFJp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21M
ZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21S
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6ZXhwYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzaHJpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpyYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0Ojppc1JvdW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpzZXRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnNldFJhZGlpKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0OjpleHBhbmRSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpzaHJpbmtSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojp0b3BM
ZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnRvcFJpZ2h0
Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmJvdHRvbUxlZnRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6Ym90dG9tUmlnaHRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hh
cGU6OkJveFNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpnZXRFeGNsdWRlZElu
dGVydmFscyk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDogQWRkZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlU2hhcGUp
OgorCiAyMDEzLTExLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVuYW1lIFdhdGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRlKCkgc2hvdWxkIGJlIHJlbmFtZWQg
dG8gV2F0Y2hwb2ludFNldDo6ZmlyZUFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAxMWEwZmM1Li44NWI1NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQ1MzksNiArNDUzOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1BvbHlnb25TaGFwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jh
c3RlclNoYXBlLmNwcCBcCkBAIC01NzU4LDYgKzU3NjAsOCBAQCBwbGF0Zm9ybV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0U2l6ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250QmFzZWxpbmUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCA4N2ZmNmRkLi4xOTIzOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTc2MTUsNiArNzYxNSw3IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvbHln
b24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
RmxvYXRRdWFkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEZsb2F0UmVjdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xGbG9hdFJvdW5kZWRSZWN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250LmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5jcHAiIC8+CkBA
IC0xMTA2NCw2ICsxMTA2NSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcVGV4dFBhaW50U3R5bGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXGxpbmVcTGluZUJyZWFrZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXGxpbmVcTGluZUluZm8uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFwZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHlnb25TaGFwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmVjdGFuZ2xlU2hh
cGUuY3BwIiAvPgpAQCAtMTkxNzksNiArMTkxODEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRQb2x5Z29uLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSb3VuZGVkUmVj
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxv
YXRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250Q2FjaGUuaCIgLz4KQEAgLTE5ODkxLDYgKzE5ODk0LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5saW5lSGVhZGVycy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGxpbmVcTGluZUxheW91dFN0YXRlLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHln
b25TaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xSYXN0ZXJTaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHNoYXBlc1xSZWN0YW5nbGVTaGFwZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGEyOGY0MjQuLmQ5
OWRjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KIDxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMu
bWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICAgPEl0ZW1Hcm91cD4KICAg
ICA8RmlsdGVyIEluY2x1ZGU9IkRlcml2ZWRTb3VyY2VzIj4KQEAgLTUwMTYsNiArNTAxNiw5IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJlY3Qu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZs
b2F0Um91bmRlZFJlY3QuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0Zp
bHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFw
aGljczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjg5Miw2ICs2ODk1LDkgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcU2hhcGVPdXRzaWRlSW5m
by5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJv
eFNoYXBlLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFw
ZXNcUG9seWdvblNoYXBlLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEyNzk5LDYgKzEyODA1LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIj4KICAgICAg
IDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJl
Y3QuaCI+CisgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CisgICAgPC9D
bEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xG
bG9hdFNpemUuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xNDY3NSw2ICsxNDY4NCw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFNoYXBlSW50ZXJ2YWwuaCI+CiAgICAgICA8Rmls
dGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcQm94U2hhcGUuaCI+CisgICAgICA8
RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmFzdGVyU2hhcGUuaCI+CiAg
ICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwZDJkNDczLi43ODczY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDQyLDYgKzIwNDIsOCBAQAogCQk2QzYzODg5
NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkND
RUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1
MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJ
CTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkw
MDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2RTBFNTY5QjE4M0JGRkU2MDBFMEU4RDUgLyogRmxv
YXRSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RTBFNTY5OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAg
Ki87IH07CisJCTZFMEU1NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTBFNTY5QTE4
M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFMjFDNkMwMTEyNjMzODUwMEE3QkUwMiAv
KiBHcmFwaGljc0NvbnRleHQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0
M0QuY3BwICovOyB9OwogCQk2RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi87
IH07CiAJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
LmNwcCAqLzsgfTsKQEAgLTIwODEsNiArMjA4Myw4IEBACiAJCTZFQzQ4MEEyMTZFQTYzOEEwMEE0
OERDQiAvKiBGbG9hdFBvbHlnb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFQzQ4MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RUQ4NzhD
NDE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5
NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFi
bGVDYXB0aW9uLmggKi87IH07CisJCTZFRDhDMzc5MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4
QzM3NzE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuY3BwICovOyB9OworCQk2RUQ4QzM3QTE4
M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDhDMzc4MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFRThB
NzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFOEE3NzAxMEY4MDNG
MzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi87IH07CiAJCTZFRThB
NzczMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcxMTBGODAzRjMw
MDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsgfTsKIAkJNkZBNDQ1NEU4
OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RTA0QTI3QkVEMkY4MUY5OEU5MDIyQiAv
KiBKU0JlZm9yZVVubG9hZEV2ZW50LmggKi87IH07CkBAIC04Nzc4LDYgKzg3ODIsOCBAQAogCQk2
QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5
NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNzBBODE0MTc3
MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4
RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGbG9hdFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFD
NkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGlj
c0NvbnRleHQzRENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNG
QUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MjEsNiArODgy
Nyw4IEBACiAJCTZFQzQ4MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRQb2x5Z29uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJs
ZUNhcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
VGFibGVDYXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzMx
NDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJUYWJsZUNhcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNkVEOEMzNzcxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJveFNoYXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJveFNoYXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExNzQ0NTYxNEJDMzRFMjAw
RUU1RkM4IC8qIFNWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTkxNDEsNiArMTkxNDksOCBAQAogCQlCMkEwMTU5MTBBRjZDRDUz
MDA2QkNFMEUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0
LmNwcCAqLywKKwkJCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVj
dC5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZh
dGUuaCAqLywKIAkJCQlDRDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJp
dmF0ZS5oICovLAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMyNkFBNCAvKiBhdmZvdW5kYXRpb24g
Ki8sCkBAIC0yMTYwMCw2ICsyMTYxMCw4IEBACiAJCUZEMDhBODc5MTc1RDM5MjYwMDJDRDM2MCAv
KiBzaGFwZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTZFRDhDMzc3MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi8sCisJCQkJNkVEOEMz
NzgxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggKi8sCiAJCQkJRkQwOEE4N0ExNzVEMzky
NjAwMkNEMzYwIC8qIFBvbHlnb25TaGFwZS5jcHAgKi8sCiAJCQkJRkQwOEE4N0IxNzVEMzkyNjAw
MkNEMzYwIC8qIFBvbHlnb25TaGFwZS5oICovLAogCQkJCTZFODRFOURFMTc2NjhCQUQwMDgxNUI2
OCAvKiBSYXN0ZXJTaGFwZS5jcHAgKi8sCkBAIC0yMTk0NCw2ICsyMTk1Niw4IEBACiAJCQlpc2Eg
PSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CiAJCQlmaWxlcyA9ICgKKwkJCQk2RUQ4QzM3QTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTZFMEU1NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJv
dW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QTExNDIwNDE4MzJEMTM1MDAwQkI4QUQg
LyogVmFsdWVUb1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyQUQ3MDYxN0VGQTJDNDAw
MzhGOEZGIC8qIE1haW5GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkZGMTYxODJCN0E4
RDAwMTdGQTY0IC8qIEJyZWFrcG9pbnRJRC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIwMyw2ICsy
NjIxNyw3IEBACiAJCQkJMjZDMTdBM0YxNDkxRDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDNBNDk1NDE3QTlDQzkwMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNEIzRjc2MEM3MjIwNTUwMDA1MzBE
RiAvKiBGaWxlU3lzdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNkVEOEMzNzkxODNCRkY4
QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNjAzMDBCMEND
NDI1MTIwMEM4QUMyNSAvKiBGaWxlU3lzdGVtUE9TSVguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc2RDZDOEQxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM1RUI2OUUwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MDgwLDYgKzI4MDk1LDcgQEAKIAkJCQk0OUU5MTFDMzBFRjg2RDQ3MDA5RDBD
QUYgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkM0
MEQxMkFFREQ5RTAwNzQzQkQyIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0EuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjI3NTM1NTgwQjA1MzgxNDAwMkNFNjRGIC8qIFRyYW5zZm9ybWF0aW9uTWF0
cml4Q0cuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkUwRTU2OUIxODNCRkZFNjAwRTBFOEQ1IC8q
IEZsb2F0Um91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkI0ODRGNEMxNzFGODIx
RTAwMDQwNzU1IC8qIFRyYW5zZm9ybUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUU5MTFDRjBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1REIxQkM2QjEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNl
TGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNGM5MGFmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwCkBAIC0wLDAgKzEsMTMyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFhpZG9ybiBRdWFuIChxdWFueHVu
emhlbkBnbWFpbC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsb2F0
Um91bmRlZFJlY3QuaCIKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitGbG9hdFJvdW5kZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCisgICAgOiBtX3JlY3QoeCwgeSwgd2lkdGgs
IGhlaWdodCkKK3sKK30KKworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IFJhZGlpJiByYWRpaSkKKyAgICA6IG1fcmVjdChyZWN0
KQorICAgICwgbV9yYWRpaShyYWRpaSkKK3sKK30KKworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRS
b3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVm
dCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0
LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KQorICAgIDogbV9yZWN0KHJlY3QpCisgICAg
LCBtX3JhZGlpKHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCkKK3sK
K30KKworYm9vbCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6aXNaZXJvKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV90b3BMZWZ0LmlzWmVybygpICYmIG1fdG9wUmlnaHQuaXNaZXJvKCkgJiYgbV9i
b3R0b21MZWZ0LmlzWmVybygpICYmIG1fYm90dG9tUmlnaHQuaXNaZXJvKCk7Cit9CisKK3ZvaWQg
RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnNjYWxlKGZsb2F0IGZhY3RvcikKK3sKKyAgICBpZiAo
ZmFjdG9yID09IDEpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIGVpdGhlciByYWRpdXMg
b24gYSBjb3JuZXIgYmVjb21lcyB6ZXJvLCByZXNldCBib3RoIHJhZGlpIG9uIHRoYXQgY29ybmVy
LgorICAgIG1fdG9wTGVmdC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BMZWZ0LndpZHRo
KCkgfHwgIW1fdG9wTGVmdC5oZWlnaHQoKSkKKyAgICAgICAgbV90b3BMZWZ0ID0gRmxvYXRTaXpl
KCk7CisgICAgbV90b3BSaWdodC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BSaWdodC53
aWR0aCgpIHx8ICFtX3RvcFJpZ2h0LmhlaWdodCgpKQorICAgICAgICBtX3RvcFJpZ2h0ID0gRmxv
YXRTaXplKCk7CisgICAgbV9ib3R0b21MZWZ0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFtX2Jv
dHRvbUxlZnQud2lkdGgoKSB8fCAhbV9ib3R0b21MZWZ0LmhlaWdodCgpKQorICAgICAgICBtX2Jv
dHRvbUxlZnQgPSBGbG9hdFNpemUoKTsKKyAgICBtX2JvdHRvbVJpZ2h0LnNjYWxlKGZhY3Rvcik7
CisgICAgaWYgKCFtX2JvdHRvbVJpZ2h0LndpZHRoKCkgfHwgIW1fYm90dG9tUmlnaHQuaGVpZ2h0
KCkpCisgICAgICAgIG1fYm90dG9tUmlnaHQgPSBGbG9hdFNpemUoKTsKKworfQorCit2b2lkIEZs
b2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpleHBhbmQoZmxvYXQgdG9wV2lkdGgsIGZsb2F0IGJvdHRv
bVdpZHRoLCBmbG9hdCBsZWZ0V2lkdGgsIGZsb2F0IHJpZ2h0V2lkdGgpCit7CisgICAgaWYgKG1f
dG9wTGVmdC53aWR0aCgpID4gMCAmJiBtX3RvcExlZnQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAg
IG1fdG9wTGVmdC5zZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BMZWZ0LndpZHRoKCkg
KyBsZWZ0V2lkdGgpKTsKKyAgICAgICAgbV90b3BMZWZ0LnNldEhlaWdodChzdGQ6Om1heDxmbG9h
dD4oMCwgbV90b3BMZWZ0LmhlaWdodCgpICsgdG9wV2lkdGgpKTsKKyAgICB9CisgICAgaWYgKG1f
dG9wUmlnaHQud2lkdGgoKSA+IDAgJiYgbV90b3BSaWdodC5oZWlnaHQoKSA+IDApIHsKKyAgICAg
ICAgbV90b3BSaWdodC5zZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BSaWdodC53aWR0
aCgpICsgcmlnaHRXaWR0aCkpOworICAgICAgICBtX3RvcFJpZ2h0LnNldEhlaWdodChzdGQ6Om1h
eDxmbG9hdD4oMCwgbV90b3BSaWdodC5oZWlnaHQoKSArIHRvcFdpZHRoKSk7CisgICAgfQorICAg
IGlmIChtX2JvdHRvbUxlZnQud2lkdGgoKSA+IDAgJiYgbV9ib3R0b21MZWZ0LmhlaWdodCgpID4g
MCkgeworICAgICAgICBtX2JvdHRvbUxlZnQuc2V0V2lkdGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1f
Ym90dG9tTGVmdC53aWR0aCgpICsgbGVmdFdpZHRoKSk7CisgICAgICAgIG1fYm90dG9tTGVmdC5z
ZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tTGVmdC5oZWlnaHQoKSArIGJvdHRv
bVdpZHRoKSk7CisgICAgfQorICAgIGlmIChtX2JvdHRvbVJpZ2h0LndpZHRoKCkgPiAwICYmIG1f
Ym90dG9tUmlnaHQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fYm90dG9tUmlnaHQuc2V0V2lk
dGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tUmlnaHQud2lkdGgoKSArIHJpZ2h0V2lkdGgp
KTsKKyAgICAgICAgbV9ib3R0b21SaWdodC5zZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1f
Ym90dG9tUmlnaHQuaGVpZ2h0KCkgKyBib3R0b21XaWR0aCkpOworICAgIH0KK30KKworc3RhdGlj
IGlubGluZSBmbG9hdCBjb3JuZXJSZWN0SW50ZXJjZXB0KGZsb2F0IHksIGNvbnN0IEZsb2F0UmVj
dCYgY29ybmVyUmVjdCkKK3sKKyAgICBBU1NFUlQoY29ybmVyUmVjdC5oZWlnaHQoKSA+IDApOwor
ICAgIHJldHVybiBjb3JuZXJSZWN0LndpZHRoKCkgKiBzcXJ0KDEgLSAoeSAqIHkpIC8gKGNvcm5l
clJlY3QuaGVpZ2h0KCkgKiBjb3JuZXJSZWN0LmhlaWdodCgpKSk7Cit9CisKK2Jvb2wgRmxvYXRS
b3VuZGVkUmVjdDo6eEludGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQs
IGZsb2F0JiBtYXhYSW50ZXJjZXB0KSBjb25zdAoreworICAgIGlmICh5IDwgcmVjdCgpLnkoKSAg
fHwgeSA+PSAgcmVjdCgpLm1heFkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29u
c3QgRmxvYXRSZWN0JiB0b3BMZWZ0UmVjdCA9IHRvcExlZnRDb3JuZXIoKTsKKyAgICBjb25zdCBG
bG9hdFJlY3QmIGJvdHRvbUxlZnRSZWN0ID0gYm90dG9tTGVmdENvcm5lcigpOworCisgICAgaWYg
KHkgPj0gdG9wTGVmdFJlY3QueSgpICYmIHkgPCB0b3BMZWZ0UmVjdC5tYXhZKCkpCisgICAgICAg
IG1pblhJbnRlcmNlcHQgPSB0b3BMZWZ0UmVjdC5tYXhYKCkgLSBjb3JuZXJSZWN0SW50ZXJjZXB0
KHRvcExlZnRSZWN0Lm1heFkoKSAtIHksIHRvcExlZnRSZWN0KTsKKyAgICBlbHNlIGlmICh5ID49
IGJvdHRvbUxlZnRSZWN0LnkoKSAmJiB5IDwgYm90dG9tTGVmdFJlY3QubWF4WSgpKQorICAgICAg
ICBtaW5YSW50ZXJjZXB0ID0gIGJvdHRvbUxlZnRSZWN0Lm1heFgoKSAtIGNvcm5lclJlY3RJbnRl
cmNlcHQoeSAtIGJvdHRvbUxlZnRSZWN0LnkoKSwgYm90dG9tTGVmdFJlY3QpOworICAgIGVsc2UK
KyAgICAgICAgbWluWEludGVyY2VwdCA9IG1fcmVjdC54KCk7CisKKyAgICBjb25zdCBGbG9hdFJl
Y3QmIHRvcFJpZ2h0UmVjdCA9IHRvcFJpZ2h0Q29ybmVyKCk7CisgICAgY29uc3QgRmxvYXRSZWN0
JiBib3R0b21SaWdodFJlY3QgPSBib3R0b21SaWdodENvcm5lcigpOworCisgICAgaWYgKHkgPj0g
dG9wUmlnaHRSZWN0LnkoKSAmJiB5IDwgdG9wUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4
WEludGVyY2VwdCA9IHRvcFJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcFJp
Z2h0UmVjdC5tYXhZKCkgLSB5LCB0b3BSaWdodFJlY3QpOworICAgIGVsc2UgaWYgKHkgPj0gYm90
dG9tUmlnaHRSZWN0LnkoKSAmJiB5IDwgYm90dG9tUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAg
bWF4WEludGVyY2VwdCA9IGJvdHRvbVJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0
KHkgLSBib3R0b21SaWdodFJlY3QueSgpLCBib3R0b21SaWdodFJlY3QpOworICAgIGVsc2UKKyAg
ICAgICAgbWF4WEludGVyY2VwdCA9IG1fcmVjdC5tYXhYKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjA3OWYwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKQEAgLTAsMCArMSwxMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwor
ICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBI
T0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEZsb2F0Um91bmRlZFJlY3RfaAorI2RlZmluZSBGbG9hdFJvdW5kZWRSZWN0
X2gKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZsb2F0Um91bmRlZFJlY3QgeworcHVibGljOgor
ICAgIGNsYXNzIFJhZGlpIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJhZGlpKCkgeyB9CisgICAg
ICAgIFJhZGlpKGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BS
aWdodCwgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRv
bVJpZ2h0KQorICAgICAgICAgICAgOiBtX3RvcExlZnQodG9wTGVmdCkKKyAgICAgICAgICAgICwg
bV90b3BSaWdodCh0b3BSaWdodCkKKyAgICAgICAgICAgICwgbV9ib3R0b21MZWZ0KGJvdHRvbUxl
ZnQpCisgICAgICAgICAgICAsIG1fYm90dG9tUmlnaHQoYm90dG9tUmlnaHQpCisgICAgICAgIHsK
KyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBGbG9hdFNpemUmIHNp
emUpIHsgbV90b3BMZWZ0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldFRvcFJpZ2h0KGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX3RvcFJpZ2h0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNl
dEJvdHRvbUxlZnQoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fYm90dG9tTGVmdCA9IHNpemU7
IH0KKyAgICAgICAgdm9pZCBzZXRCb3R0b21SaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsg
bV9ib3R0b21SaWdodCA9IHNpemU7IH0KKyAgICAgICAgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0
KCkgY29uc3QgeyByZXR1cm4gbV90b3BMZWZ0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYg
dG9wUmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3RvcFJpZ2h0OyB9CisgICAgICAgIGNvbnN0IEZs
b2F0U2l6ZSYgYm90dG9tTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tTGVmdDsgfQorICAg
ICAgICBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9ib3R0
b21SaWdodDsgfQorCisgICAgICAgIGJvb2wgaXNaZXJvKCkgY29uc3Q7CisKKyAgICAgICAgdm9p
ZCBzY2FsZShmbG9hdCBmYWN0b3IpOworICAgICAgICB2b2lkIGV4cGFuZChmbG9hdCB0b3BXaWR0
aCwgZmxvYXQgYm90dG9tV2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCk7
CisgICAgICAgIHZvaWQgZXhwYW5kKGZsb2F0IHNpemUpIHsgZXhwYW5kKHNpemUsIHNpemUsIHNp
emUsIHNpemUpOyB9CisgICAgICAgIHZvaWQgc2hyaW5rKGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBi
b3R0b21XaWR0aCwgZmxvYXQgbGVmdFdpZHRoLCBmbG9hdCByaWdodFdpZHRoKSB7IGV4cGFuZCgt
dG9wV2lkdGgsIC1ib3R0b21XaWR0aCwgLWxlZnRXaWR0aCwgLXJpZ2h0V2lkdGgpOyB9CisgICAg
ICAgIHZvaWQgc2hyaW5rKGZsb2F0IHNpemUpIHsgc2hyaW5rKHNpemUsIHNpemUsIHNpemUsIHNp
emUpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBGbG9hdFNpemUgbV90b3BMZWZ0OworICAg
ICAgICBGbG9hdFNpemUgbV90b3BSaWdodDsKKyAgICAgICAgRmxvYXRTaXplIG1fYm90dG9tTGVm
dDsKKyAgICAgICAgRmxvYXRTaXplIG1fYm90dG9tUmlnaHQ7CisgICAgfTsKKworICAgIGV4cGxp
Y2l0IEZsb2F0Um91bmRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmFkaWkmID0gUmFk
aWkoKSk7CisgICAgRmxvYXRSb3VuZGVkUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaGVpZ2h0KTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29u
c3QgRmxvYXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KTsK
KworICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQor
ICAgIGNvbnN0IFJhZGlpJiByYWRpaSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaWk7IH0KKyAgICBi
b29sIGlzUm91bmRlZCgpIGNvbnN0IHsgcmV0dXJuICFtX3JhZGlpLmlzWmVybygpOyB9CisgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmlzRW1wdHkoKTsgfQorCisgICAg
dm9pZCBzZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgeyBtX3JlY3QgPSByZWN0OyB9Cisg
ICAgdm9pZCBzZXRSYWRpaShjb25zdCBSYWRpaSYgcmFkaWkpIHsgbV9yYWRpaSA9IHJhZGlpOyB9
CisKKyAgICB2b2lkIG1vdmUoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fcmVjdC5tb3ZlKHNp
emUpOyB9CisgICAgdm9pZCBpbmZsYXRlKGZsb2F0IHNpemUpIHsgbV9yZWN0LmluZmxhdGUoc2l6
ZSk7ICB9CisgICAgdm9pZCBleHBhbmRSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuZXhwYW5k
KHNpemUpOyB9CisgICAgdm9pZCBzaHJpbmtSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuc2hy
aW5rKHNpemUpOyB9CisKKyAgICBGbG9hdFJlY3QgdG9wTGVmdENvcm5lcigpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1fcmVjdC54KCksIG1fcmVjdC55KCksIG1fcmFk
aWkudG9wTGVmdCgpLndpZHRoKCksIG1fcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpKTsKKyAgICB9
CisgICAgRmxvYXRSZWN0IHRvcFJpZ2h0Q29ybmVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QobV9yZWN0Lm1heFgoKSAtIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgp
LCBtX3JlY3QueSgpLCBtX3JhZGlpLnRvcFJpZ2h0KCkud2lkdGgoKSwgbV9yYWRpaS50b3BSaWdo
dCgpLmhlaWdodCgpKTsKKyAgICB9CisgICAgRmxvYXRSZWN0IGJvdHRvbUxlZnRDb3JuZXIoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9y
YWRpaS50b3BSaWdodCgpLndpZHRoKCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wUmlnaHQoKS53
aWR0aCgpLCBtX3JhZGlpLnRvcFJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKyAgICBGbG9hdFJl
Y3QgYm90dG9tUmlnaHRDb3JuZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0
UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCksIG1fcmVj
dC5tYXhZKCkgLSBtX3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCksIG1fcmFkaWkuYm90dG9t
UmlnaHQoKS53aWR0aCgpLCBtX3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0K
KworICAgIGJvb2wgeEludGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQs
IGZsb2F0JiBtYXhYSW50ZXJjZXB0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9hdFJlY3Qg
bV9yZWN0OworICAgIFJhZGlpIG1fcmFkaWk7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpJiBhLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0
OjpSYWRpaSYgYikKK3sKKyAgICByZXR1cm4gYS50b3BMZWZ0KCkgPT0gYi50b3BMZWZ0KCkgJiYg
YS50b3BSaWdodCgpID09IGIudG9wUmlnaHQoKSAmJiBhLmJvdHRvbUxlZnQoKSA9PSBiLmJvdHRv
bUxlZnQoKSAmJiBhLmJvdHRvbVJpZ2h0KCkgPT0gYi5ib3R0b21SaWdodCgpOworfQorCitpbmxp
bmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGEsIGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmIGIpCit7CisgICAgcmV0dXJuIGEucmVjdCgpID09IGIucmVjdCgpICYmIGEu
cmFkaWkoKSA9PSBiLnJhZGlpKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEZsb2F0Um91bmRlZFJlY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL0JveFNoYXBlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjIy
ZTc5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQm94U2hhcGUuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworQm94U2hhcGU6OkJveFNoYXBlKGNvbnN0IEZsb2F0Um91
bmRlZFJlY3QmIGJvdW5kcykKKyAgICA6IFNoYXBlKCkKKyAgICAsIG1fYm91bmRzKGJvdW5kcykK
KyAgICAsIG1fbWFyZ2luQm91bmRzKGJvdW5kcykKKyAgICAsIG1fcGFkZGluZ0JvdW5kcyhib3Vu
ZHMpCit7CisgICAgaWYgKHNoYXBlTWFyZ2luKCkgPiAwKSB7CisgICAgICAgIG1fbWFyZ2luQm91
bmRzLmluZmxhdGUoc2hhcGVNYXJnaW4oKSk7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmV4cGFu
ZFJhZGlpKHNoYXBlTWFyZ2luKCkpOworICAgIH0KKyAgICBpZiAoc2hhcGVQYWRkaW5nKCkgPiAw
KSB7CisgICAgICAgIG1fcGFkZGluZ0JvdW5kcy5pbmZsYXRlKC1zaGFwZVBhZGRpbmcoKSk7Cisg
ICAgICAgIG1fcGFkZGluZ0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKCkpOworICAg
IH0KK30KKwordm9pZCBCb3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBs
b2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQp
IGNvbnN0Cit7CisgICAgaWYgKG1fbWFyZ2luQm91bmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0gbG9naWNh
bFRvcCArIGxvZ2ljYWxIZWlnaHQ7CisgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0gbV9tYXJn
aW5Cb3VuZHMucmVjdCgpOworCisgICAgaWYgKHkyIDw9IHJlY3QueSgpIHx8IHkxID49IHJlY3Qu
bWF4WSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fbWFyZ2luQm91bmRzLmlzUm91
bmRlZCgpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQobV9tYXJnaW5Cb3Vu
ZHMucmVjdCgpLngoKSwgbV9tYXJnaW5Cb3VuZHMucmVjdCgpLm1heFgoKSkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgZmxvYXQgeDEgPSByZWN0Lm1heFgoKTsKKyAgICBmbG9hdCB4
MiA9IHJlY3QueCgpOworICAgIGZsb2F0IG1pblhJbnRlcmNlcHQ7CisgICAgZmxvYXQgbWF4WElu
dGVyY2VwdDsKKworICAgIGlmIChtX21hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5MSwgbWlu
WEludGVyY2VwdCwgbWF4WEludGVyY2VwdCkpIHsKKyAgICAgICAgeDEgPSBzdGQ6Om1pbjxmbG9h
dD4oeDEsIG1pblhJbnRlcmNlcHQpOworICAgICAgICB4MiA9IHN0ZDo6bWF4PGZsb2F0Pih4Miwg
bWF4WEludGVyY2VwdCk7CisgICAgfQorCisgICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRlcmNl
cHRzQXRZKHkxLCBtaW5YSW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgICAgICB4MSA9
IHN0ZDo6bWluPGZsb2F0Pih4MSwgbWluWEludGVyY2VwdCk7CisgICAgICAgIHgyID0gc3RkOjpt
YXg8ZmxvYXQ+KHgyLCBtYXhYSW50ZXJjZXB0KTsKKyAgICB9CisKKyAgICBBU1NFUlQoeDIgPj0g
eDEpOworICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7Cit9CisKK3ZvaWQg
Qm94U2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAoreworICAg
IGlmIChtX3BhZGRpbmdCb3VuZHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBj
b25zdCBGbG9hdFJlY3QmIHJlY3QgPSBtX3BhZGRpbmdCb3VuZHMucmVjdCgpOworICAgIGlmIChs
b2dpY2FsVG9wIDwgcmVjdC55KCkgfHwgbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQgPiByZWN0
Lm1heFkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IHRoaXMgbWV0aG9kIGlz
IG9ubHkgYSBzdHViLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0
NjA1LgorCisgICAgcmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudChyZWN0LngoKSwgcmVjdC5tYXhY
KCkpKTsKK30KKworYm9vbCBCb3hTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRv
cChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYsIExh
eW91dFVuaXQmIHJlc3VsdCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMg
b25seSBhIHN0dWIsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2
MDYuCisKKyAgICByZXN1bHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvQm94U2hhcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
NDIxM2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9Cb3hTaGFwZS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJveFNoYXBlX2gK
KyNkZWZpbmUgQm94U2hhcGVfaAorCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2lu
Y2x1ZGUgIlNoYXBlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQm94U2hhcGUg
OiBwdWJsaWMgU2hhcGUgeworcHVibGljOgorICAgIEJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmIGJvdW5kcyk7CisKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dp
Y2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlv
dXRSZWN0PihtX21hcmdpbkJvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IHNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHN0YXRpY19jYXN0PExheW91dFJlY3Q+KG1fcGFkZGluZ0JvdW5kcy5yZWN0KCkpOyB9CisgICAg
dmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5p
c0VtcHR5KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0Jikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlz
dCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2
YWxMb2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlv
dXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IFNoYXBlOjpSb3VuZGVkUmVjdGFuZ2xlVHlwZTsgfQorCitwcml2YXRlOgorICAgIEZsb2F0Um91
bmRlZFJlY3QgbV9ib3VuZHM7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtX21hcmdpbkJvdW5kczsK
KyAgICBGbG9hdFJvdW5kZWRSZWN0IG1fcGFkZGluZ0JvdW5kczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJveFNoYXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggNjE4OWYwMS4uZWQyOGMxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJTaGFwZS5oIgogCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1
ZGUgIkJveFNoYXBlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJGbG9h
dFNpemUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgpAQCAtNDUsNiArNDYsMTIgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlQm94
U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKQoreworICAgIEFTU0VSVChib3Vu
ZHMucmVjdCgpLndpZHRoKCkgPj0gMCAmJiBib3VuZHMucmVjdCgpLmhlaWdodCgpID49IDApOwor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7Cit9CisKIHN0YXRpYyBQ
YXNzT3duUHRyPFNoYXBlPiBjcmVhdGVSZWN0YW5nbGVTaGFwZShjb25zdCBGbG9hdFJlY3QmIGJv
dW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKIHsKICAgICBBU1NFUlQoYm91bmRzLndpZHRo
KCkgPj0gMCAmJiBib3VuZHMuaGVpZ2h0KCkgPj0gMCAmJiByYWRpaS53aWR0aCgpID49IDAgJiYg
cmFkaWkuaGVpZ2h0KCkgPj0gMCk7CkBAIC0yNDgsMTAgKzI1NSwxMSBAQCBQYXNzT3duUHRyPFNo
YXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgZmxv
YXQgdGhyZXNobwogCiBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3Qg
TGF5b3V0U2l6ZSYgbG9naWNhbFNpemUsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxSYWRpaSwg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQog
ewotICAgIEZsb2F0UmVjdCBib3VuZHMoMCwgMCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNh
bFNpemUuaGVpZ2h0KCkpOworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndp
ZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpKTsKICAgICBGbG9hdFNpemUgcmFkaWkobG9naWNh
bFJhZGlpLndpZHRoKCksIGxvZ2ljYWxSYWRpaS5oZWlnaHQoKSk7CisgICAgRmxvYXRSb3VuZGVk
UmVjdCBib3VuZHMocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWkpOwogCi0gICAgT3du
UHRyPFNoYXBlPiBzaGFwZSA9IGNyZWF0ZVJlY3RhbmdsZVNoYXBlKGJvdW5kcywgcmFkaWkpOwor
ICAgIE93blB0cjxTaGFwZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMpOwogICAgIHNo
YXBlLT5tX3dyaXRpbmdNb2RlID0gd3JpdGluZ01vZGU7CiAgICAgc2hhcGUtPm1fbWFyZ2luID0g
ZmxvYXRWYWx1ZUZvckxlbmd0aChtYXJnaW4sIDApOwogICAgIHNoYXBlLT5tX3BhZGRpbmcgPSBm
bG9hdFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217360</attachid>
            <date>2013-11-19 16:52:13 -0800</date>
            <delta_ts>2013-11-20 09:59:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37523</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDcwZGYyNC4uYTQ2ZjA4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZDQ3MmM4
Li5iYzRhY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgQWRkZWQgdGhl
IEJveFNoYXBlIGNsYXNzLiBJdCdzIG5vdyB1c2VkIHRvIHJlcHJlc2VudCBzaGFwZS1vdXRzaWRl
IGJveAorICAgICAgICB2YWx1ZXM6IFttYXJnaW4vYm9yZGVyL3BhZGRpbmcvY29udGVudF0tYm94
LiBCb3hTaGFwZSBkZXBlbmRzIG9uIGEgbmV3CisgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY2xh
c3MsIHdoaWNoIGlzIGEgZmxvYXQgYW5hbG9nIG9mIHRoZSBleGlzdGluZyAoaW50KQorICAgICAg
ICBSb3VuZGVkUmVjdCBjbGFzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhbiBpbnRlcm5hbCByZWZh
Y3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybyk6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRS
b3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb3JuZXJSZWN0
SW50ZXJjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnhJbnRlcmNl
cHRzQXRZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OlJhZGlp
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BMZWZ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzZXRUb3BSaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90dG9t
TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2V0Qm90
dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRv
cExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnRvcFJp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21M
ZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpib3R0b21S
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6ZXhwYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpzaHJpbmspOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpyYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0Ojppc1JvdW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpzZXRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnNldFJhZGlpKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0OjpleHBhbmRSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpzaHJpbmtSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojp0b3BM
ZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnRvcFJpZ2h0
Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmJvdHRvbUxlZnRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6Ym90dG9tUmlnaHRD
b3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hh
cGU6OkJveFNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpnZXRFeGNsdWRlZElu
dGVydmFscyk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDogQWRkZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlU2hhcGUp
OgorCiAyMDEzLTExLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVuYW1lIFdhdGNocG9pbnRTZXQ6Om5vdGlmeVdyaXRlKCkgc2hvdWxkIGJlIHJlbmFtZWQg
dG8gV2F0Y2hwb2ludFNldDo6ZmlyZUFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAxMWEwZmM1Li44NWI1NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQ1MzksNiArNDUzOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1BvbHlnb25TaGFwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jh
c3RlclNoYXBlLmNwcCBcCkBAIC01NzU4LDYgKzU3NjAsOCBAQCBwbGF0Zm9ybV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0U2l6ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250QmFzZWxpbmUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCA4N2ZmNmRkLi4xOTIzOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTc2MTUsNiArNzYxNSw3IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvbHln
b24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
RmxvYXRRdWFkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEZsb2F0UmVjdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xGbG9hdFJvdW5kZWRSZWN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250LmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5jcHAiIC8+CkBA
IC0xMTA2NCw2ICsxMTA2NSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcVGV4dFBhaW50U3R5bGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXGxpbmVcTGluZUJyZWFrZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXGxpbmVcTGluZUluZm8uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFwZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHlnb25TaGFwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmVjdGFuZ2xlU2hh
cGUuY3BwIiAvPgpAQCAtMTkxNzksNiArMTkxODEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRQb2x5Z29uLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSb3VuZGVkUmVj
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxv
YXRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250Q2FjaGUuaCIgLz4KQEAgLTE5ODkxLDYgKzE5ODk0LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5saW5lSGVhZGVycy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGxpbmVcTGluZUxheW91dFN0YXRlLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHln
b25TaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xSYXN0ZXJTaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHNoYXBlc1xSZWN0YW5nbGVTaGFwZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGEyOGY0MjQuLmQ5
OWRjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUwMTYsNiArNTAxNiw5IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJlY3QuY3BwIj4KICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3Qu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZs
b2F0U2l6ZS5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtNjg5Miw2ICs2ODk1LDkgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcU2hhcGVPdXRzaWRlSW5mby5jcHAiPgogICAgICAg
PEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBlLmNwcCI+Cisg
ICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUG9seWdvblNoYXBl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTEyNzk5LDYgKzEyODA1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3QuaCI+CisgICAgICA8
RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFNpemUuaCI+CiAg
ICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xNDY3NSw2ICsxNDY4NCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc2hhcGVzXFNoYXBlSW50ZXJ2YWwuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xz
aGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xzaGFwZXNcQm94U2hhcGUuaCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmlu
Z1xzaGFwZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmFzdGVyU2hhcGUuaCI+CiAgICAgICA8RmlsdGVyPnJl
bmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZDJkNDczLi43
ODczY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMDQyLDYgKzIwNDIsOCBAQAogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0
NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJC
MjIwMDE2RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdp
b25PdmVyc2V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk2RTBFNTY5QjE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTBFNTY5
OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgKi87IH07CisJCTZFMEU1
NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUg
LyogRmxvYXRSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZFMjFDNkMwMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovOyB9Owog
CQk2RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIxQzZDMTExMjYz
Mzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi87IH07CiAJCTZFM0ZBRDM4
MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3MzNG
NDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLzsgfTsKQEAg
LTIwODEsNiArMjA4Myw4IEBACiAJCTZFQzQ4MEEyMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBv
bHlnb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
QzQ4MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0QzM1
OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJs
ZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVy
VGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi87
IH07CisJCTZFRDhDMzc5MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4QzM3NzE4M0JGRjhDMDA5
RTUzQkQgLyogQm94U2hhcGUuY3BwICovOyB9OworCQk2RUQ4QzM3QTE4M0JGRjhDMDA5RTUzQkQg
LyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFRDhDMzc4MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFRThBNzcyMTBGODAzRjMwMDVB
NEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpT
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi87IH07CiAJCTZFRThBNzczMTBGODAzRjMwMDVB
NEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcxMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsgfTsKIAkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMx
IC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI5RTA0QTI3QkVEMkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9h
ZEV2ZW50LmggKi87IH07CkBAIC04Nzc4LDYgKzg3ODIsOCBAQAogCQk2QzYzODg5M0E5NkNDRUU1
MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMEU1
Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3Vu
ZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFJvdW5kZWRS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3
QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBF
NDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MjEsNiArODgyNyw4IEBACiAJCTZFQzQ4
MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmxvYXRQb2x5Z29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGFibGVDYXB0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzMxNDc0OTNGNDAwNEMzNTk3
IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJUYWJsZUNhcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVE
OEMzNzcxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJveFNoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJveFNoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVFOEE3NzEx
MEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExNzQ0NTYxNEJDMzRFMjAwRUU1RkM4IC8qIFNWR1Rl
eHRNZXRyaWNzQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTkxNDEsNiArMTkxNDksOCBAQAogCQlCMkEwMTU5MTBBRjZDRDUzMDA2QkNFMEUgLyogZ3Jh
cGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZF
MEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCAqLywKKwkJCQk2
RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5oICovLAogCQkJCUNE
NjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlD
RDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovLAogCQkJ
CTA3NkYwRDA4MTJCODE5MjcwMEMyNkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCkBAIC0yMTYwMCw2
ICsyMTYxMCw4IEBACiAJCUZEMDhBODc5MTc1RDM5MjYwMDJDRDM2MCAvKiBzaGFwZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZFRDhDMzc3MTgzQkZG
OEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi8sCisJCQkJNkVEOEMzNzgxODNCRkY4QzAwOUU1
M0JEIC8qIEJveFNoYXBlLmggKi8sCiAJCQkJRkQwOEE4N0ExNzVEMzkyNjAwMkNEMzYwIC8qIFBv
bHlnb25TaGFwZS5jcHAgKi8sCiAJCQkJRkQwOEE4N0IxNzVEMzkyNjAwMkNEMzYwIC8qIFBvbHln
b25TaGFwZS5oICovLAogCQkJCTZFODRFOURFMTc2NjhCQUQwMDgxNUI2OCAvKiBSYXN0ZXJTaGFw
ZS5jcHAgKi8sCkBAIC0yMTk0NCw2ICsyMTk1Niw4IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
KwkJCQk2RUQ4QzM3QTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTZFMEU1NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5QTExNDIwNDE4MzJEMTM1MDAwQkI4QUQgLyogVmFsdWVUb1N0cmlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyQUQ3MDYxN0VGQTJDNDAwMzhGOEZGIC8qIE1haW5G
cmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkZGMTYxODJCN0E4RDAwMTdGQTY0IC8qIEJy
ZWFrcG9pbnRJRC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIwMyw2ICsyNjIxNyw3IEBACiAJCQkJ
MjZDMTdBM0YxNDkxRDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1MubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRDNBNDk1NDE3QTlDQzkwMDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxNEIzRjc2MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVt
TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNkVEOEMzNzkxODNCRkY4QzAwOUU1M0JEIC8qIEJv
eFNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNjAzMDBCMENDNDI1MTIwMEM4QUMyNSAv
KiBGaWxlU3lzdGVtUE9TSVguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2RDZDOEQxMjJCOEEz
RDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI2OUUw
RTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MDgw
LDYgKzI4MDk1LDcgQEAKIAkJCQk0OUU5MTFDMzBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3Jt
YXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkM0MEQxMkFFREQ5RTAwNzQz
QkQyIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3
NTM1NTgwQjA1MzgxNDAwMkNFNjRGIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNkUwRTU2OUIxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkI0ODRGNEMxNzFGODIxRTAwMDQwNzU1IC8qIFRy
YW5zZm9ybUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUU5MTFDRjBFRjg2RDQ3
MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
REIxQkM2QjEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0Um91bmRlZFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSb3VuZGVkUmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGM5MGFmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFhpZG9ybiBRdWFuIChxdWFueHVuemhlbkBnbWFpbC5jb20p
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIK
KworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJv
dW5kZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpCisgICAgOiBtX3JlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkKK3sKK30K
KworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IFJhZGlpJiByYWRpaSkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9yYWRp
aShyYWRpaSkKK3sKK30KKworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRT
aXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNp
emUmIGJvdHRvbVJpZ2h0KQorICAgIDogbV9yZWN0KHJlY3QpCisgICAgLCBtX3JhZGlpKHRvcExl
ZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCkKK3sKK30KKworYm9vbCBGbG9h
dFJvdW5kZWRSZWN0OjpSYWRpaTo6aXNaZXJvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b3BM
ZWZ0LmlzWmVybygpICYmIG1fdG9wUmlnaHQuaXNaZXJvKCkgJiYgbV9ib3R0b21MZWZ0LmlzWmVy
bygpICYmIG1fYm90dG9tUmlnaHQuaXNaZXJvKCk7Cit9CisKK3ZvaWQgRmxvYXRSb3VuZGVkUmVj
dDo6UmFkaWk6OnNjYWxlKGZsb2F0IGZhY3RvcikKK3sKKyAgICBpZiAoZmFjdG9yID09IDEpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIElmIGVpdGhlciByYWRpdXMgb24gYSBjb3JuZXIgYmVj
b21lcyB6ZXJvLCByZXNldCBib3RoIHJhZGlpIG9uIHRoYXQgY29ybmVyLgorICAgIG1fdG9wTGVm
dC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkgfHwgIW1fdG9wTGVm
dC5oZWlnaHQoKSkKKyAgICAgICAgbV90b3BMZWZ0ID0gRmxvYXRTaXplKCk7CisgICAgbV90b3BS
aWdodC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpIHx8ICFtX3Rv
cFJpZ2h0LmhlaWdodCgpKQorICAgICAgICBtX3RvcFJpZ2h0ID0gRmxvYXRTaXplKCk7CisgICAg
bV9ib3R0b21MZWZ0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lkdGgo
KSB8fCAhbV9ib3R0b21MZWZ0LmhlaWdodCgpKQorICAgICAgICBtX2JvdHRvbUxlZnQgPSBGbG9h
dFNpemUoKTsKKyAgICBtX2JvdHRvbVJpZ2h0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkgfHwgIW1fYm90dG9tUmlnaHQuaGVpZ2h0KCkpCisgICAgICAgIG1f
Ym90dG9tUmlnaHQgPSBGbG9hdFNpemUoKTsKKworfQorCit2b2lkIEZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpleHBhbmQoZmxvYXQgdG9wV2lkdGgsIGZsb2F0IGJvdHRvbVdpZHRoLCBmbG9hdCBs
ZWZ0V2lkdGgsIGZsb2F0IHJpZ2h0V2lkdGgpCit7CisgICAgaWYgKG1fdG9wTGVmdC53aWR0aCgp
ID4gMCAmJiBtX3RvcExlZnQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fdG9wTGVmdC5zZXRX
aWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BMZWZ0LndpZHRoKCkgKyBsZWZ0V2lkdGgpKTsK
KyAgICAgICAgbV90b3BMZWZ0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BMZWZ0
LmhlaWdodCgpICsgdG9wV2lkdGgpKTsKKyAgICB9CisgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgo
KSA+IDAgJiYgbV90b3BSaWdodC5oZWlnaHQoKSA+IDApIHsKKyAgICAgICAgbV90b3BSaWdodC5z
ZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BSaWdodC53aWR0aCgpICsgcmlnaHRXaWR0
aCkpOworICAgICAgICBtX3RvcFJpZ2h0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV90
b3BSaWdodC5oZWlnaHQoKSArIHRvcFdpZHRoKSk7CisgICAgfQorICAgIGlmIChtX2JvdHRvbUxl
ZnQud2lkdGgoKSA+IDAgJiYgbV9ib3R0b21MZWZ0LmhlaWdodCgpID4gMCkgeworICAgICAgICBt
X2JvdHRvbUxlZnQuc2V0V2lkdGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tTGVmdC53aWR0
aCgpICsgbGVmdFdpZHRoKSk7CisgICAgICAgIG1fYm90dG9tTGVmdC5zZXRIZWlnaHQoc3RkOjpt
YXg8ZmxvYXQ+KDAsIG1fYm90dG9tTGVmdC5oZWlnaHQoKSArIGJvdHRvbVdpZHRoKSk7CisgICAg
fQorICAgIGlmIChtX2JvdHRvbVJpZ2h0LndpZHRoKCkgPiAwICYmIG1fYm90dG9tUmlnaHQuaGVp
Z2h0KCkgPiAwKSB7CisgICAgICAgIG1fYm90dG9tUmlnaHQuc2V0V2lkdGgoc3RkOjptYXg8Zmxv
YXQ+KDAsIG1fYm90dG9tUmlnaHQud2lkdGgoKSArIHJpZ2h0V2lkdGgpKTsKKyAgICAgICAgbV9i
b3R0b21SaWdodC5zZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tUmlnaHQuaGVp
Z2h0KCkgKyBib3R0b21XaWR0aCkpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSBmbG9hdCBj
b3JuZXJSZWN0SW50ZXJjZXB0KGZsb2F0IHksIGNvbnN0IEZsb2F0UmVjdCYgY29ybmVyUmVjdCkK
K3sKKyAgICBBU1NFUlQoY29ybmVyUmVjdC5oZWlnaHQoKSA+IDApOworICAgIHJldHVybiBjb3Ju
ZXJSZWN0LndpZHRoKCkgKiBzcXJ0KDEgLSAoeSAqIHkpIC8gKGNvcm5lclJlY3QuaGVpZ2h0KCkg
KiBjb3JuZXJSZWN0LmhlaWdodCgpKSk7Cit9CisKK2Jvb2wgRmxvYXRSb3VuZGVkUmVjdDo6eElu
dGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50
ZXJjZXB0KSBjb25zdAoreworICAgIGlmICh5IDwgcmVjdCgpLnkoKSAgfHwgeSA+PSAgcmVjdCgp
Lm1heFkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgRmxvYXRSZWN0JiB0
b3BMZWZ0UmVjdCA9IHRvcExlZnRDb3JuZXIoKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJvdHRv
bUxlZnRSZWN0ID0gYm90dG9tTGVmdENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wTGVmdFJl
Y3QueSgpICYmIHkgPCB0b3BMZWZ0UmVjdC5tYXhZKCkpCisgICAgICAgIG1pblhJbnRlcmNlcHQg
PSB0b3BMZWZ0UmVjdC5tYXhYKCkgLSBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcExlZnRSZWN0Lm1h
eFkoKSAtIHksIHRvcExlZnRSZWN0KTsKKyAgICBlbHNlIGlmICh5ID49IGJvdHRvbUxlZnRSZWN0
LnkoKSAmJiB5IDwgYm90dG9tTGVmdFJlY3QubWF4WSgpKQorICAgICAgICBtaW5YSW50ZXJjZXB0
ID0gIGJvdHRvbUxlZnRSZWN0Lm1heFgoKSAtIGNvcm5lclJlY3RJbnRlcmNlcHQoeSAtIGJvdHRv
bUxlZnRSZWN0LnkoKSwgYm90dG9tTGVmdFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWluWElu
dGVyY2VwdCA9IG1fcmVjdC54KCk7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvcFJpZ2h0UmVj
dCA9IHRvcFJpZ2h0Q29ybmVyKCk7CisgICAgY29uc3QgRmxvYXRSZWN0JiBib3R0b21SaWdodFJl
Y3QgPSBib3R0b21SaWdodENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wUmlnaHRSZWN0Lnko
KSAmJiB5IDwgdG9wUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9IHRv
cFJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcFJpZ2h0UmVjdC5tYXhZKCkg
LSB5LCB0b3BSaWdodFJlY3QpOworICAgIGVsc2UgaWYgKHkgPj0gYm90dG9tUmlnaHRSZWN0Lnko
KSAmJiB5IDwgYm90dG9tUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9
IGJvdHRvbVJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHkgLSBib3R0b21SaWdo
dFJlY3QueSgpLCBib3R0b21SaWdodFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWF4WEludGVy
Y2VwdCA9IG1fcmVjdC5tYXhYKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSb3VuZGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSb3VuZGVkUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3
OWYwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJvdW5kZWRSZWN0LmgKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICog
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQK
KyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZs
b2F0Um91bmRlZFJlY3RfaAorI2RlZmluZSBGbG9hdFJvdW5kZWRSZWN0X2gKKworI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZsb2F0Um91bmRlZFJlY3QgeworcHVibGljOgorICAgIGNsYXNzIFJhZGlp
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJhZGlpKCkgeyB9CisgICAgICAgIFJhZGlpKGNvbnN0
IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxv
YXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KQorICAgICAg
ICAgICAgOiBtX3RvcExlZnQodG9wTGVmdCkKKyAgICAgICAgICAgICwgbV90b3BSaWdodCh0b3BS
aWdodCkKKyAgICAgICAgICAgICwgbV9ib3R0b21MZWZ0KGJvdHRvbUxlZnQpCisgICAgICAgICAg
ICAsIG1fYm90dG9tUmlnaHQoYm90dG9tUmlnaHQpCisgICAgICAgIHsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV90b3BMZWZ0
ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldFRvcFJpZ2h0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkgeyBtX3RvcFJpZ2h0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldEJvdHRvbUxlZnQoY29u
c3QgRmxvYXRTaXplJiBzaXplKSB7IG1fYm90dG9tTGVmdCA9IHNpemU7IH0KKyAgICAgICAgdm9p
ZCBzZXRCb3R0b21SaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9ib3R0b21SaWdodCA9
IHNpemU7IH0KKyAgICAgICAgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0KCkgY29uc3QgeyByZXR1
cm4gbV90b3BMZWZ0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG9wUmlnaHQoKSBjb25z
dCB7IHJldHVybiBtX3RvcFJpZ2h0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9t
TGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tTGVmdDsgfQorICAgICAgICBjb25zdCBGbG9h
dFNpemUmIGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b21SaWdodDsgfQorCisg
ICAgICAgIGJvb2wgaXNaZXJvKCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBzY2FsZShmbG9hdCBm
YWN0b3IpOworICAgICAgICB2b2lkIGV4cGFuZChmbG9hdCB0b3BXaWR0aCwgZmxvYXQgYm90dG9t
V2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCk7CisgICAgICAgIHZvaWQg
ZXhwYW5kKGZsb2F0IHNpemUpIHsgZXhwYW5kKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9Cisg
ICAgICAgIHZvaWQgc2hyaW5rKGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBib3R0b21XaWR0aCwgZmxv
YXQgbGVmdFdpZHRoLCBmbG9hdCByaWdodFdpZHRoKSB7IGV4cGFuZCgtdG9wV2lkdGgsIC1ib3R0
b21XaWR0aCwgLWxlZnRXaWR0aCwgLXJpZ2h0V2lkdGgpOyB9CisgICAgICAgIHZvaWQgc2hyaW5r
KGZsb2F0IHNpemUpIHsgc2hyaW5rKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9CisKKyAgICBw
cml2YXRlOgorICAgICAgICBGbG9hdFNpemUgbV90b3BMZWZ0OworICAgICAgICBGbG9hdFNpemUg
bV90b3BSaWdodDsKKyAgICAgICAgRmxvYXRTaXplIG1fYm90dG9tTGVmdDsKKyAgICAgICAgRmxv
YXRTaXplIG1fYm90dG9tUmlnaHQ7CisgICAgfTsKKworICAgIGV4cGxpY2l0IEZsb2F0Um91bmRl
ZFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmFkaWkmID0gUmFkaWkoKSk7CisgICAgRmxv
YXRSb3VuZGVkUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
KTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6
ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBi
b3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KTsKKworICAgIGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0IFJhZGlp
JiByYWRpaSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaWk7IH0KKyAgICBib29sIGlzUm91bmRlZCgp
IGNvbnN0IHsgcmV0dXJuICFtX3JhZGlpLmlzWmVybygpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWN0LmlzRW1wdHkoKTsgfQorCisgICAgdm9pZCBzZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkgeyBtX3JlY3QgPSByZWN0OyB9CisgICAgdm9pZCBzZXRSYWRp
aShjb25zdCBSYWRpaSYgcmFkaWkpIHsgbV9yYWRpaSA9IHJhZGlpOyB9CisKKyAgICB2b2lkIG1v
dmUoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fcmVjdC5tb3ZlKHNpemUpOyB9CisgICAgdm9p
ZCBpbmZsYXRlKGZsb2F0IHNpemUpIHsgbV9yZWN0LmluZmxhdGUoc2l6ZSk7ICB9CisgICAgdm9p
ZCBleHBhbmRSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuZXhwYW5kKHNpemUpOyB9CisgICAg
dm9pZCBzaHJpbmtSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuc2hyaW5rKHNpemUpOyB9CisK
KyAgICBGbG9hdFJlY3QgdG9wTGVmdENvcm5lcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KG1fcmVjdC54KCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wTGVmdCgpLndp
ZHRoKCksIG1fcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpKTsKKyAgICB9CisgICAgRmxvYXRSZWN0
IHRvcFJpZ2h0Q29ybmVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBGbG9hdFJlY3Qo
bV9yZWN0Lm1heFgoKSAtIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JlY3QueSgpLCBt
X3JhZGlpLnRvcFJpZ2h0KCkud2lkdGgoKSwgbV9yYWRpaS50b3BSaWdodCgpLmhlaWdodCgpKTsK
KyAgICB9CisgICAgRmxvYXRSZWN0IGJvdHRvbUxlZnRDb3JuZXIoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS50b3BSaWdodCgp
LndpZHRoKCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JhZGlp
LnRvcFJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKyAgICBGbG9hdFJlY3QgYm90dG9tUmlnaHRD
b3JuZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4
WCgpIC0gbV9yYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCksIG1fcmVjdC5tYXhZKCkgLSBtX3Jh
ZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCksIG1fcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgp
LCBtX3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKworICAgIGJvb2wgeElu
dGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50
ZXJjZXB0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9hdFJlY3QgbV9yZWN0OworICAgIFJh
ZGlpIG1fcmFkaWk7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91
bmRlZFJlY3Q6OlJhZGlpJiBhLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSYgYikKK3sK
KyAgICByZXR1cm4gYS50b3BMZWZ0KCkgPT0gYi50b3BMZWZ0KCkgJiYgYS50b3BSaWdodCgpID09
IGIudG9wUmlnaHQoKSAmJiBhLmJvdHRvbUxlZnQoKSA9PSBiLmJvdHRvbUxlZnQoKSAmJiBhLmJv
dHRvbVJpZ2h0KCkgPT0gYi5ib3R0b21SaWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGEsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGIp
Cit7CisgICAgcmV0dXJuIGEucmVjdCgpID09IGIucmVjdCgpICYmIGEucmFkaWkoKSA9PSBiLnJh
ZGlpKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZsb2F0Um91
bmRlZFJlY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjIyZTc5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAg
LTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQm94
U2hhcGUuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworQm94U2hhcGU6OkJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5k
cykKKyAgICA6IFNoYXBlKCkKKyAgICAsIG1fYm91bmRzKGJvdW5kcykKKyAgICAsIG1fbWFyZ2lu
Qm91bmRzKGJvdW5kcykKKyAgICAsIG1fcGFkZGluZ0JvdW5kcyhib3VuZHMpCit7CisgICAgaWYg
KHNoYXBlTWFyZ2luKCkgPiAwKSB7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmluZmxhdGUoc2hh
cGVNYXJnaW4oKSk7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmV4cGFuZFJhZGlpKHNoYXBlTWFy
Z2luKCkpOworICAgIH0KKyAgICBpZiAoc2hhcGVQYWRkaW5nKCkgPiAwKSB7CisgICAgICAgIG1f
cGFkZGluZ0JvdW5kcy5pbmZsYXRlKC1zaGFwZVBhZGRpbmcoKSk7CisgICAgICAgIG1fcGFkZGlu
Z0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKCkpOworICAgIH0KK30KKwordm9pZCBC
b3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQpIGNvbnN0Cit7CisgICAg
aWYgKG1fbWFyZ2luQm91bmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxv
YXQgeTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0gbG9naWNhbFRvcCArIGxvZ2ljYWxI
ZWlnaHQ7CisgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0gbV9tYXJnaW5Cb3VuZHMucmVjdCgp
OworCisgICAgaWYgKHkyIDw9IHJlY3QueSgpIHx8IHkxID49IHJlY3QubWF4WSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fbWFyZ2luQm91bmRzLmlzUm91bmRlZCgpKSB7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQobV9tYXJnaW5Cb3VuZHMucmVjdCgpLngoKSwg
bV9tYXJnaW5Cb3VuZHMucmVjdCgpLm1heFgoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZmxvYXQgeDEgPSByZWN0Lm1heFgoKTsKKyAgICBmbG9hdCB4MiA9IHJlY3QueCgpOwor
ICAgIGZsb2F0IG1pblhJbnRlcmNlcHQ7CisgICAgZmxvYXQgbWF4WEludGVyY2VwdDsKKworICAg
IGlmIChtX21hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5MSwgbWluWEludGVyY2VwdCwgbWF4
WEludGVyY2VwdCkpIHsKKyAgICAgICAgeDEgPSBzdGQ6Om1pbjxmbG9hdD4oeDEsIG1pblhJbnRl
cmNlcHQpOworICAgICAgICB4MiA9IHN0ZDo6bWF4PGZsb2F0Pih4MiwgbWF4WEludGVyY2VwdCk7
CisgICAgfQorCisgICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRlcmNlcHRzQXRZKHkxLCBtaW5Y
SW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgICAgICB4MSA9IHN0ZDo6bWluPGZsb2F0
Pih4MSwgbWluWEludGVyY2VwdCk7CisgICAgICAgIHgyID0gc3RkOjptYXg8ZmxvYXQ+KHgyLCBt
YXhYSW50ZXJjZXB0KTsKKyAgICB9CisKKyAgICBBU1NFUlQoeDIgPj0geDEpOworICAgIHJlc3Vs
dC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7Cit9CisKK3ZvaWQgQm94U2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChtX3BhZGRpbmdC
b3VuZHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QgPSBtX3BhZGRpbmdCb3VuZHMucmVjdCgpOworICAgIGlmIChsb2dpY2FsVG9wIDwgcmVj
dC55KCkgfHwgbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQgPiByZWN0Lm1heFkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgYSBzdHViLCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NjA1LgorCisgICAgcmVz
dWx0LmFwcGVuZChMaW5lU2VnbWVudChyZWN0LngoKSwgcmVjdC5tYXhYKCkpKTsKK30KKworYm9v
bCBCb3hTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1p
bkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3Vs
dCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MDYuCisKKyAgICByZXN1
bHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hh
cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDIxM2VmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJveFNoYXBlX2gKKyNkZWZpbmUgQm94U2hh
cGVfaAorCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIlNoYXBlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQm94U2hhcGUgOiBwdWJsaWMgU2hhcGUg
eworcHVibGljOgorICAgIEJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyk7
CisKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3go
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihtX21hcmdp
bkJvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xv
Z2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExh
eW91dFJlY3Q+KG1fcGFkZGluZ0JvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBib29sIGlz
RW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9w
LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNh
bFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExh
eW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dp
Y2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVk
UmVjdGFuZ2xlVHlwZTsgfQorCitwcml2YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3Vu
ZHM7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtX21hcmdpbkJvdW5kczsKKyAgICBGbG9hdFJvdW5k
ZWRSZWN0IG1fcGFkZGluZ0JvdW5kczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEJveFNoYXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKaW5kZXggNjE4OWYwMS4uZWQyOGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5oIgog
CiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJveFNoYXBlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIgpAQCAtNDUsNiArNDYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlQm94U2hhcGUoY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYgYm91bmRzKQoreworICAgIEFTU0VSVChib3VuZHMucmVjdCgpLndpZHRo
KCkgPj0gMCAmJiBib3VuZHMucmVjdCgpLmhlaWdodCgpID49IDApOworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7Cit9CisKIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBl
PiBjcmVhdGVSZWN0YW5nbGVTaGFwZShjb25zdCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxv
YXRTaXplJiByYWRpaSkKIHsKICAgICBBU1NFUlQoYm91bmRzLndpZHRoKCkgPj0gMCAmJiBib3Vu
ZHMuaGVpZ2h0KCkgPj0gMCAmJiByYWRpaS53aWR0aCgpID49IDAgJiYgcmFkaWkuaGVpZ2h0KCkg
Pj0gMCk7CkBAIC0yNDgsMTAgKzI1NSwxMSBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3Jl
YXRlU2hhcGUoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgZmxvYXQgdGhyZXNobwogCiBQ
YXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgTGF5b3V0U2l6ZSYgbG9n
aWNhbFNpemUsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxSYWRpaSwgV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVj
dCBib3VuZHMoMCwgMCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkp
OworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxT
aXplLmhlaWdodCgpKTsKICAgICBGbG9hdFNpemUgcmFkaWkobG9naWNhbFJhZGlpLndpZHRoKCks
IGxvZ2ljYWxSYWRpaS5oZWlnaHQoKSk7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBib3VuZHMocmVj
dCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWkpOwogCi0gICAgT3duUHRyPFNoYXBlPiBzaGFw
ZSA9IGNyZWF0ZVJlY3RhbmdsZVNoYXBlKGJvdW5kcywgcmFkaWkpOworICAgIE93blB0cjxTaGFw
ZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMpOwogICAgIHNoYXBlLT5tX3dyaXRpbmdN
b2RlID0gd3JpdGluZ01vZGU7CiAgICAgc2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxl
bmd0aChtYXJnaW4sIDApOwogICAgIHNoYXBlLT5tX3BhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVu
Z3RoKHBhZGRpbmcsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217451</attachid>
            <date>2013-11-20 09:59:08 -0800</date>
            <delta_ts>2013-11-20 13:27:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37922</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2NmZGVjNy4uMjIyMjExYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYmY5YjQz
Li4wZjRmNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgQWRkZWQgdGhl
IEJveFNoYXBlIGNsYXNzLiBJdCdzIG5vdyB1c2VkIHRvIHJlcHJlc2VudCBzaGFwZS1vdXRzaWRl
IGJveAorICAgICAgICB2YWx1ZXM6IFttYXJnaW4vYm9yZGVyL3BhZGRpbmcvY29udGVudF0tYm94
LiBCb3hTaGFwZSBkZXBlbmRzIG9uIGEgbmV3CisgICAgICAgIEZsb2F0Um91bmRlZFJlY3QgY2xh
c3MsIHdoaWNoIGlzIGEgZmxvYXQgYW5hbG9nIG9mIHRoZSBleGlzdGluZyAoaW50KQorICAgICAg
ICBSb3VuZGVkUmVjdCBjbGFzcy4gVGhlIEZsb2F0Um91bmRlZFJlY3QgY2xhc3MgY29udGFpbnMg
dGhlIHNhbWUgYmFzaWMKKyAgICAgICAgbWV0aG9kcyBhbmQgYWNjZXNzb3JzIGFzIEJvcmRlclJl
Y3QgYW5kIGFkZHMgYSBzZXQgb2YgZm91ciBtZXRob2RzLAorICAgICAgICBmb3IgZXhhbXBsZSB0
b3BMZWZ0Q29ybmVyKCksIHRoYXQgcmV0dXJuIGEgRmxvYXRSZWN0IHRoYXQgcmVwcmVzZW50cyB0
aGUKKyAgICAgICAgYm91bmRzIG9mIG9uZSBlbGxpcHRpY2FsIGNvcm5lci4gSSBhbHNvIGFkZGVk
IGEgbWV0aG9kLCB4SW50ZXJjZXB0c0F0WSgpCisgICAgICAgIHRoYXQgcmV0dXJucyB0d28gWCBj
b29yZGluYXRlcyBvZiB0aGUgaW50ZXJzZWN0aW9uIGJldHdlZW4gYSBob3Jpem9udGFsCisgICAg
ICAgIGxpbmUgYW5kIHRoZSByb3VuZGVkIHJlY3RhbmdsZS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBh
biBpbnRlcm5hbCByZWZhY3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybyk6CisgICAg
ICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6c2NhbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb3JuZXJSZWN0SW50ZXJjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRl
ZFJlY3Q6OnhJbnRlcmNlcHRzQXRZKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFJvdW5kZWRSZWN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6UmFkaWk6OlJhZGlpKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJh
ZGlpOjpzZXRUb3BMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJh
ZGlpOjpzZXRUb3BSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpS
YWRpaTo6c2V0Qm90dG9tTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpSYWRpaTo6c2V0Qm90dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVk
UmVjdDo6UmFkaWk6OnRvcExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6UmFkaWk6OnRvcFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpib3R0b21MZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpib3R0b21SaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
OjpSYWRpaTo6ZXhwYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJh
ZGlpOjpzaHJpbmspOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpyYWRpaSk6CisgICAgICAgIChX
ZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojppc1JvdW5kZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSb3VuZGVkUmVjdDo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5k
ZWRSZWN0OjpzZXRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnNl
dFJhZGlpKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6Om1vdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpleHBhbmRSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFJvdW5kZWRSZWN0OjpzaHJpbmtSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0Ojp0b3BMZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRl
ZFJlY3Q6OnRvcFJpZ2h0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJl
Y3Q6OmJvdHRvbUxlZnRDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVj
dDo6Ym90dG9tUmlnaHRDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Qm94U2hhcGU6OkJveFNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBl
OjpnZXRFeGNsdWRlZEludGVydmFscyk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0
SW5jbHVkZWRJbnRlcnZhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmZpcnN0SW5j
bHVkZWRJbnRlcnZhbExvZ2ljYWxUb3ApOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94
U2hhcGUuaDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFw
ZTo6Y3JlYXRlU2hhcGUpOgorCiAyMDEzLTExLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBDbGVhbnVwIGdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRh
ZGF0YSBhbmQgc3R1YiBpdCBvdXQgaW4gV0syCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAxMWEwZmM1Li44NWI1NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQ1MzksNiArNDUzOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1BvbHlnb25TaGFwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jh
c3RlclNoYXBlLmNwcCBcCkBAIC01NzU4LDYgKzU3NjAsOCBAQCBwbGF0Zm9ybV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmggXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0U2l6ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250QmFzZWxpbmUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCA4N2ZmNmRkLi4xOTIzOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTc2MTUsNiArNzYxNSw3IEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFBvbHln
b24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
RmxvYXRRdWFkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEZsb2F0UmVjdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xGbG9hdFJvdW5kZWRSZWN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250LmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5jcHAiIC8+CkBA
IC0xMTA2NCw2ICsxMTA2NSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcVGV4dFBhaW50U3R5bGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXGxpbmVcTGluZUJyZWFrZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXGxpbmVcTGluZUluZm8uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFwZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHlnb25TaGFwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmVjdGFuZ2xlU2hh
cGUuY3BwIiAvPgpAQCAtMTkxNzksNiArMTkxODEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRQb2x5Z29uLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSb3VuZGVkUmVj
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxv
YXRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xGb250Q2FjaGUuaCIgLz4KQEAgLTE5ODkxLDYgKzE5ODk0LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmZvLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5saW5lSGVhZGVycy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGxpbmVcTGluZUxheW91dFN0YXRlLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHln
b25TaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xSYXN0ZXJTaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHNoYXBlc1xSZWN0YW5nbGVTaGFwZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGEyOGY0MjQuLmQ5
OWRjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUwMTYsNiArNTAxNiw5IEBACiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJlY3QuY3BwIj4KICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3Qu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZs
b2F0U2l6ZS5jcHAiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtNjg5Miw2ICs2ODk1LDkgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcU2hhcGVPdXRzaWRlSW5mby5jcHAiPgogICAgICAg
PEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBlLmNwcCI+Cisg
ICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUG9seWdvblNoYXBl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTEyNzk5LDYgKzEyODA1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0Um91bmRlZFJlY3QuaCI+CisgICAgICA8
RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFNpemUuaCI+CiAg
ICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xNDY3NSw2ICsxNDY4NCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc2hhcGVzXFNoYXBlSW50ZXJ2YWwuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xz
aGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xzaGFwZXNcQm94U2hhcGUuaCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmlu
Z1xzaGFwZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmFzdGVyU2hhcGUuaCI+CiAgICAgICA8RmlsdGVyPnJl
bmRlcmluZ1xzaGFwZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZDJkNDczLi43
ODczY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMDQyLDYgKzIwNDIsOCBAQAogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0
NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJC
MjIwMDE2RTA3MiAvKiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdp
b25PdmVyc2V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk2RTBFNTY5QjE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTBFNTY5
OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgKi87IH07CisJCTZFMEU1
NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUg
LyogRmxvYXRSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZFMjFDNkMwMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHQzRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovOyB9Owog
CQk2RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIxQzZDMTExMjYz
Mzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi87IH07CiAJCTZFM0ZBRDM4
MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3MzNG
NDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLzsgfTsKQEAg
LTIwODEsNiArMjA4Myw4IEBACiAJCTZFQzQ4MEEyMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBv
bHlnb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
QzQ4MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0QzM1
OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJs
ZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVy
VGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi87
IH07CisJCTZFRDhDMzc5MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4QzM3NzE4M0JGRjhDMDA5
RTUzQkQgLyogQm94U2hhcGUuY3BwICovOyB9OworCQk2RUQ4QzM3QTE4M0JGRjhDMDA5RTUzQkQg
LyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFRDhDMzc4MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZFRThBNzcyMTBGODAzRjMwMDVB
NEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpT
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi87IH07CiAJCTZFRThBNzczMTBGODAzRjMwMDVB
NEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcxMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsgfTsKIAkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMx
IC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI5RTA0QTI3QkVEMkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9h
ZEV2ZW50LmggKi87IH07CkBAIC04Nzc4LDYgKzg3ODIsOCBAQAogCQk2QzYzODg5M0E5NkNDRUU1
MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVnaW9uT3ZlcnNldFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMEU1
Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3Vu
ZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFJvdW5kZWRS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3
QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBF
NDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MjEsNiArODgyNyw4IEBACiAJCTZFQzQ4
MEEwMTZFQTYzOEEwMEE0OERDQiAvKiBGbG9hdFBvbHlnb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmxvYXRQb2x5Z29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGFibGVDYXB0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzMxNDc0OTNGNDAwNEMzNTk3
IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJUYWJsZUNhcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVE
OEMzNzcxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJveFNoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJveFNoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVFOEE3NzEx
MEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzExNzQ0NTYxNEJDMzRFMjAwRUU1RkM4IC8qIFNWR1Rl
eHRNZXRyaWNzQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTkxNDEsNiArMTkxNDksOCBAQAogCQlCMkEwMTU5MTBBRjZDRDUzMDA2QkNFMEUgLyogZ3Jh
cGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZF
MEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCAqLywKKwkJCQk2
RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5oICovLAogCQkJCUNE
NjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlD
RDY0MUVCMjE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovLAogCQkJ
CTA3NkYwRDA4MTJCODE5MjcwMEMyNkFBNCAvKiBhdmZvdW5kYXRpb24gKi8sCkBAIC0yMTYwMCw2
ICsyMTYxMCw4IEBACiAJCUZEMDhBODc5MTc1RDM5MjYwMDJDRDM2MCAvKiBzaGFwZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZFRDhDMzc3MTgzQkZG
OEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi8sCisJCQkJNkVEOEMzNzgxODNCRkY4QzAwOUU1
M0JEIC8qIEJveFNoYXBlLmggKi8sCiAJCQkJRkQwOEE4N0ExNzVEMzkyNjAwMkNEMzYwIC8qIFBv
bHlnb25TaGFwZS5jcHAgKi8sCiAJCQkJRkQwOEE4N0IxNzVEMzkyNjAwMkNEMzYwIC8qIFBvbHln
b25TaGFwZS5oICovLAogCQkJCTZFODRFOURFMTc2NjhCQUQwMDgxNUI2OCAvKiBSYXN0ZXJTaGFw
ZS5jcHAgKi8sCkBAIC0yMTk0NCw2ICsyMTk1Niw4IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
KwkJCQk2RUQ4QzM3QTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTZFMEU1NjlDMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5QTExNDIwNDE4MzJEMTM1MDAwQkI4QUQgLyogVmFsdWVUb1N0cmlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyQUQ3MDYxN0VGQTJDNDAwMzhGOEZGIC8qIE1haW5G
cmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkZGMTYxODJCN0E4RDAwMTdGQTY0IC8qIEJy
ZWFrcG9pbnRJRC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIwMyw2ICsyNjIxNyw3IEBACiAJCQkJ
MjZDMTdBM0YxNDkxRDJENDAwRDEyQkEyIC8qIEZpbGVTeXN0ZW1JT1MubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRDNBNDk1NDE3QTlDQzkwMDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxNEIzRjc2MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVt
TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNkVEOEMzNzkxODNCRkY4QzAwOUU1M0JEIC8qIEJv
eFNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNjAzMDBCMENDNDI1MTIwMEM4QUMyNSAv
KiBGaWxlU3lzdGVtUE9TSVguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2RDZDOEQxMjJCOEEz
RDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI2OUUw
RTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MDgw
LDYgKzI4MDk1LDcgQEAKIAkJCQk0OUU5MTFDMzBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3Jt
YXRpb25NYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkM0MEQxMkFFREQ5RTAwNzQz
QkQyIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3
NTM1NTgwQjA1MzgxNDAwMkNFNjRGIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNkUwRTU2OUIxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkI0ODRGNEMxNzFGODIxRTAwMDQwNzU1IC8qIFRy
YW5zZm9ybUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUU5MTFDRjBFRjg2RDQ3
MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
REIxQkM2QjEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0Um91bmRlZFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSb3VuZGVkUmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGM5MGFmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFhpZG9ybiBRdWFuIChxdWFueHVuemhlbkBnbWFpbC5jb20p
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIK
KworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJv
dW5kZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpCisgICAgOiBtX3JlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkKK3sKK30K
KworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IFJhZGlpJiByYWRpaSkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9yYWRp
aShyYWRpaSkKK3sKK30KKworRmxvYXRSb3VuZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRT
aXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNp
emUmIGJvdHRvbVJpZ2h0KQorICAgIDogbV9yZWN0KHJlY3QpCisgICAgLCBtX3JhZGlpKHRvcExl
ZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCkKK3sKK30KKworYm9vbCBGbG9h
dFJvdW5kZWRSZWN0OjpSYWRpaTo6aXNaZXJvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90b3BM
ZWZ0LmlzWmVybygpICYmIG1fdG9wUmlnaHQuaXNaZXJvKCkgJiYgbV9ib3R0b21MZWZ0LmlzWmVy
bygpICYmIG1fYm90dG9tUmlnaHQuaXNaZXJvKCk7Cit9CisKK3ZvaWQgRmxvYXRSb3VuZGVkUmVj
dDo6UmFkaWk6OnNjYWxlKGZsb2F0IGZhY3RvcikKK3sKKyAgICBpZiAoZmFjdG9yID09IDEpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIElmIGVpdGhlciByYWRpdXMgb24gYSBjb3JuZXIgYmVj
b21lcyB6ZXJvLCByZXNldCBib3RoIHJhZGlpIG9uIHRoYXQgY29ybmVyLgorICAgIG1fdG9wTGVm
dC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BMZWZ0LndpZHRoKCkgfHwgIW1fdG9wTGVm
dC5oZWlnaHQoKSkKKyAgICAgICAgbV90b3BMZWZ0ID0gRmxvYXRTaXplKCk7CisgICAgbV90b3BS
aWdodC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV90b3BSaWdodC53aWR0aCgpIHx8ICFtX3Rv
cFJpZ2h0LmhlaWdodCgpKQorICAgICAgICBtX3RvcFJpZ2h0ID0gRmxvYXRTaXplKCk7CisgICAg
bV9ib3R0b21MZWZ0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFtX2JvdHRvbUxlZnQud2lkdGgo
KSB8fCAhbV9ib3R0b21MZWZ0LmhlaWdodCgpKQorICAgICAgICBtX2JvdHRvbUxlZnQgPSBGbG9h
dFNpemUoKTsKKyAgICBtX2JvdHRvbVJpZ2h0LnNjYWxlKGZhY3Rvcik7CisgICAgaWYgKCFtX2Jv
dHRvbVJpZ2h0LndpZHRoKCkgfHwgIW1fYm90dG9tUmlnaHQuaGVpZ2h0KCkpCisgICAgICAgIG1f
Ym90dG9tUmlnaHQgPSBGbG9hdFNpemUoKTsKKworfQorCit2b2lkIEZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpleHBhbmQoZmxvYXQgdG9wV2lkdGgsIGZsb2F0IGJvdHRvbVdpZHRoLCBmbG9hdCBs
ZWZ0V2lkdGgsIGZsb2F0IHJpZ2h0V2lkdGgpCit7CisgICAgaWYgKG1fdG9wTGVmdC53aWR0aCgp
ID4gMCAmJiBtX3RvcExlZnQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fdG9wTGVmdC5zZXRX
aWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BMZWZ0LndpZHRoKCkgKyBsZWZ0V2lkdGgpKTsK
KyAgICAgICAgbV90b3BMZWZ0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BMZWZ0
LmhlaWdodCgpICsgdG9wV2lkdGgpKTsKKyAgICB9CisgICAgaWYgKG1fdG9wUmlnaHQud2lkdGgo
KSA+IDAgJiYgbV90b3BSaWdodC5oZWlnaHQoKSA+IDApIHsKKyAgICAgICAgbV90b3BSaWdodC5z
ZXRXaWR0aChzdGQ6Om1heDxmbG9hdD4oMCwgbV90b3BSaWdodC53aWR0aCgpICsgcmlnaHRXaWR0
aCkpOworICAgICAgICBtX3RvcFJpZ2h0LnNldEhlaWdodChzdGQ6Om1heDxmbG9hdD4oMCwgbV90
b3BSaWdodC5oZWlnaHQoKSArIHRvcFdpZHRoKSk7CisgICAgfQorICAgIGlmIChtX2JvdHRvbUxl
ZnQud2lkdGgoKSA+IDAgJiYgbV9ib3R0b21MZWZ0LmhlaWdodCgpID4gMCkgeworICAgICAgICBt
X2JvdHRvbUxlZnQuc2V0V2lkdGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tTGVmdC53aWR0
aCgpICsgbGVmdFdpZHRoKSk7CisgICAgICAgIG1fYm90dG9tTGVmdC5zZXRIZWlnaHQoc3RkOjpt
YXg8ZmxvYXQ+KDAsIG1fYm90dG9tTGVmdC5oZWlnaHQoKSArIGJvdHRvbVdpZHRoKSk7CisgICAg
fQorICAgIGlmIChtX2JvdHRvbVJpZ2h0LndpZHRoKCkgPiAwICYmIG1fYm90dG9tUmlnaHQuaGVp
Z2h0KCkgPiAwKSB7CisgICAgICAgIG1fYm90dG9tUmlnaHQuc2V0V2lkdGgoc3RkOjptYXg8Zmxv
YXQ+KDAsIG1fYm90dG9tUmlnaHQud2lkdGgoKSArIHJpZ2h0V2lkdGgpKTsKKyAgICAgICAgbV9i
b3R0b21SaWdodC5zZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fYm90dG9tUmlnaHQuaGVp
Z2h0KCkgKyBib3R0b21XaWR0aCkpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSBmbG9hdCBj
b3JuZXJSZWN0SW50ZXJjZXB0KGZsb2F0IHksIGNvbnN0IEZsb2F0UmVjdCYgY29ybmVyUmVjdCkK
K3sKKyAgICBBU1NFUlQoY29ybmVyUmVjdC5oZWlnaHQoKSA+IDApOworICAgIHJldHVybiBjb3Ju
ZXJSZWN0LndpZHRoKCkgKiBzcXJ0KDEgLSAoeSAqIHkpIC8gKGNvcm5lclJlY3QuaGVpZ2h0KCkg
KiBjb3JuZXJSZWN0LmhlaWdodCgpKSk7Cit9CisKK2Jvb2wgRmxvYXRSb3VuZGVkUmVjdDo6eElu
dGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50
ZXJjZXB0KSBjb25zdAoreworICAgIGlmICh5IDwgcmVjdCgpLnkoKSAgfHwgeSA+PSAgcmVjdCgp
Lm1heFkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgRmxvYXRSZWN0JiB0
b3BMZWZ0UmVjdCA9IHRvcExlZnRDb3JuZXIoKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJvdHRv
bUxlZnRSZWN0ID0gYm90dG9tTGVmdENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wTGVmdFJl
Y3QueSgpICYmIHkgPCB0b3BMZWZ0UmVjdC5tYXhZKCkpCisgICAgICAgIG1pblhJbnRlcmNlcHQg
PSB0b3BMZWZ0UmVjdC5tYXhYKCkgLSBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcExlZnRSZWN0Lm1h
eFkoKSAtIHksIHRvcExlZnRSZWN0KTsKKyAgICBlbHNlIGlmICh5ID49IGJvdHRvbUxlZnRSZWN0
LnkoKSAmJiB5IDwgYm90dG9tTGVmdFJlY3QubWF4WSgpKQorICAgICAgICBtaW5YSW50ZXJjZXB0
ID0gIGJvdHRvbUxlZnRSZWN0Lm1heFgoKSAtIGNvcm5lclJlY3RJbnRlcmNlcHQoeSAtIGJvdHRv
bUxlZnRSZWN0LnkoKSwgYm90dG9tTGVmdFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWluWElu
dGVyY2VwdCA9IG1fcmVjdC54KCk7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvcFJpZ2h0UmVj
dCA9IHRvcFJpZ2h0Q29ybmVyKCk7CisgICAgY29uc3QgRmxvYXRSZWN0JiBib3R0b21SaWdodFJl
Y3QgPSBib3R0b21SaWdodENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wUmlnaHRSZWN0Lnko
KSAmJiB5IDwgdG9wUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9IHRv
cFJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcFJpZ2h0UmVjdC5tYXhZKCkg
LSB5LCB0b3BSaWdodFJlY3QpOworICAgIGVsc2UgaWYgKHkgPj0gYm90dG9tUmlnaHRSZWN0Lnko
KSAmJiB5IDwgYm90dG9tUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9
IGJvdHRvbVJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHkgLSBib3R0b21SaWdo
dFJlY3QueSgpLCBib3R0b21SaWdodFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWF4WEludGVy
Y2VwdCA9IG1fcmVjdC5tYXhYKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSb3VuZGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSb3VuZGVkUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3
OWYwMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJvdW5kZWRSZWN0LmgKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICog
ICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1l
ciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQK
KyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZs
b2F0Um91bmRlZFJlY3RfaAorI2RlZmluZSBGbG9hdFJvdW5kZWRSZWN0X2gKKworI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEZsb2F0Um91bmRlZFJlY3QgeworcHVibGljOgorICAgIGNsYXNzIFJhZGlp
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJhZGlpKCkgeyB9CisgICAgICAgIFJhZGlpKGNvbnN0
IEZsb2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxv
YXRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KQorICAgICAg
ICAgICAgOiBtX3RvcExlZnQodG9wTGVmdCkKKyAgICAgICAgICAgICwgbV90b3BSaWdodCh0b3BS
aWdodCkKKyAgICAgICAgICAgICwgbV9ib3R0b21MZWZ0KGJvdHRvbUxlZnQpCisgICAgICAgICAg
ICAsIG1fYm90dG9tUmlnaHQoYm90dG9tUmlnaHQpCisgICAgICAgIHsKKyAgICAgICAgfQorCisg
ICAgICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV90b3BMZWZ0
ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldFRvcFJpZ2h0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkgeyBtX3RvcFJpZ2h0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldEJvdHRvbUxlZnQoY29u
c3QgRmxvYXRTaXplJiBzaXplKSB7IG1fYm90dG9tTGVmdCA9IHNpemU7IH0KKyAgICAgICAgdm9p
ZCBzZXRCb3R0b21SaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9ib3R0b21SaWdodCA9
IHNpemU7IH0KKyAgICAgICAgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0KCkgY29uc3QgeyByZXR1
cm4gbV90b3BMZWZ0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG9wUmlnaHQoKSBjb25z
dCB7IHJldHVybiBtX3RvcFJpZ2h0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9t
TGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tTGVmdDsgfQorICAgICAgICBjb25zdCBGbG9h
dFNpemUmIGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b21SaWdodDsgfQorCisg
ICAgICAgIGJvb2wgaXNaZXJvKCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBzY2FsZShmbG9hdCBm
YWN0b3IpOworICAgICAgICB2b2lkIGV4cGFuZChmbG9hdCB0b3BXaWR0aCwgZmxvYXQgYm90dG9t
V2lkdGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCk7CisgICAgICAgIHZvaWQg
ZXhwYW5kKGZsb2F0IHNpemUpIHsgZXhwYW5kKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9Cisg
ICAgICAgIHZvaWQgc2hyaW5rKGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBib3R0b21XaWR0aCwgZmxv
YXQgbGVmdFdpZHRoLCBmbG9hdCByaWdodFdpZHRoKSB7IGV4cGFuZCgtdG9wV2lkdGgsIC1ib3R0
b21XaWR0aCwgLWxlZnRXaWR0aCwgLXJpZ2h0V2lkdGgpOyB9CisgICAgICAgIHZvaWQgc2hyaW5r
KGZsb2F0IHNpemUpIHsgc2hyaW5rKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9CisKKyAgICBw
cml2YXRlOgorICAgICAgICBGbG9hdFNpemUgbV90b3BMZWZ0OworICAgICAgICBGbG9hdFNpemUg
bV90b3BSaWdodDsKKyAgICAgICAgRmxvYXRTaXplIG1fYm90dG9tTGVmdDsKKyAgICAgICAgRmxv
YXRTaXplIG1fYm90dG9tUmlnaHQ7CisgICAgfTsKKworICAgIGV4cGxpY2l0IEZsb2F0Um91bmRl
ZFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmFkaWkmID0gUmFkaWkoKSk7CisgICAgRmxv
YXRSb3VuZGVkUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
KTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6
ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBi
b3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KTsKKworICAgIGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0IFJhZGlp
JiByYWRpaSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaWk7IH0KKyAgICBib29sIGlzUm91bmRlZCgp
IGNvbnN0IHsgcmV0dXJuICFtX3JhZGlpLmlzWmVybygpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWN0LmlzRW1wdHkoKTsgfQorCisgICAgdm9pZCBzZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkgeyBtX3JlY3QgPSByZWN0OyB9CisgICAgdm9pZCBzZXRSYWRp
aShjb25zdCBSYWRpaSYgcmFkaWkpIHsgbV9yYWRpaSA9IHJhZGlpOyB9CisKKyAgICB2b2lkIG1v
dmUoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fcmVjdC5tb3ZlKHNpemUpOyB9CisgICAgdm9p
ZCBpbmZsYXRlKGZsb2F0IHNpemUpIHsgbV9yZWN0LmluZmxhdGUoc2l6ZSk7ICB9CisgICAgdm9p
ZCBleHBhbmRSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuZXhwYW5kKHNpemUpOyB9CisgICAg
dm9pZCBzaHJpbmtSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuc2hyaW5rKHNpemUpOyB9CisK
KyAgICBGbG9hdFJlY3QgdG9wTGVmdENvcm5lcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KG1fcmVjdC54KCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wTGVmdCgpLndp
ZHRoKCksIG1fcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpKTsKKyAgICB9CisgICAgRmxvYXRSZWN0
IHRvcFJpZ2h0Q29ybmVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBGbG9hdFJlY3Qo
bV9yZWN0Lm1heFgoKSAtIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JlY3QueSgpLCBt
X3JhZGlpLnRvcFJpZ2h0KCkud2lkdGgoKSwgbV9yYWRpaS50b3BSaWdodCgpLmhlaWdodCgpKTsK
KyAgICB9CisgICAgRmxvYXRSZWN0IGJvdHRvbUxlZnRDb3JuZXIoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS50b3BSaWdodCgp
LndpZHRoKCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JhZGlp
LnRvcFJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKyAgICBGbG9hdFJlY3QgYm90dG9tUmlnaHRD
b3JuZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4
WCgpIC0gbV9yYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCksIG1fcmVjdC5tYXhZKCkgLSBtX3Jh
ZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCksIG1fcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgp
LCBtX3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKworICAgIGJvb2wgeElu
dGVyY2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50
ZXJjZXB0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9hdFJlY3QgbV9yZWN0OworICAgIFJh
ZGlpIG1fcmFkaWk7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91
bmRlZFJlY3Q6OlJhZGlpJiBhLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSYgYikKK3sK
KyAgICByZXR1cm4gYS50b3BMZWZ0KCkgPT0gYi50b3BMZWZ0KCkgJiYgYS50b3BSaWdodCgpID09
IGIudG9wUmlnaHQoKSAmJiBhLmJvdHRvbUxlZnQoKSA9PSBiLmJvdHRvbUxlZnQoKSAmJiBhLmJv
dHRvbVJpZ2h0KCkgPT0gYi5ib3R0b21SaWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGEsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGIp
Cit7CisgICAgcmV0dXJuIGEucmVjdCgpID09IGIucmVjdCgpICYmIGEucmFkaWkoKSA9PSBiLnJh
ZGlpKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZsb2F0Um91
bmRlZFJlY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjIyZTc5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAg
LTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQm94
U2hhcGUuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworQm94U2hhcGU6OkJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5k
cykKKyAgICA6IFNoYXBlKCkKKyAgICAsIG1fYm91bmRzKGJvdW5kcykKKyAgICAsIG1fbWFyZ2lu
Qm91bmRzKGJvdW5kcykKKyAgICAsIG1fcGFkZGluZ0JvdW5kcyhib3VuZHMpCit7CisgICAgaWYg
KHNoYXBlTWFyZ2luKCkgPiAwKSB7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmluZmxhdGUoc2hh
cGVNYXJnaW4oKSk7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmV4cGFuZFJhZGlpKHNoYXBlTWFy
Z2luKCkpOworICAgIH0KKyAgICBpZiAoc2hhcGVQYWRkaW5nKCkgPiAwKSB7CisgICAgICAgIG1f
cGFkZGluZ0JvdW5kcy5pbmZsYXRlKC1zaGFwZVBhZGRpbmcoKSk7CisgICAgICAgIG1fcGFkZGlu
Z0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKCkpOworICAgIH0KK30KKwordm9pZCBC
b3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQpIGNvbnN0Cit7CisgICAg
aWYgKG1fbWFyZ2luQm91bmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxv
YXQgeTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0gbG9naWNhbFRvcCArIGxvZ2ljYWxI
ZWlnaHQ7CisgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0gbV9tYXJnaW5Cb3VuZHMucmVjdCgp
OworCisgICAgaWYgKHkyIDw9IHJlY3QueSgpIHx8IHkxID49IHJlY3QubWF4WSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fbWFyZ2luQm91bmRzLmlzUm91bmRlZCgpKSB7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQobV9tYXJnaW5Cb3VuZHMucmVjdCgpLngoKSwg
bV9tYXJnaW5Cb3VuZHMucmVjdCgpLm1heFgoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZmxvYXQgeDEgPSByZWN0Lm1heFgoKTsKKyAgICBmbG9hdCB4MiA9IHJlY3QueCgpOwor
ICAgIGZsb2F0IG1pblhJbnRlcmNlcHQ7CisgICAgZmxvYXQgbWF4WEludGVyY2VwdDsKKworICAg
IGlmIChtX21hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5MSwgbWluWEludGVyY2VwdCwgbWF4
WEludGVyY2VwdCkpIHsKKyAgICAgICAgeDEgPSBzdGQ6Om1pbjxmbG9hdD4oeDEsIG1pblhJbnRl
cmNlcHQpOworICAgICAgICB4MiA9IHN0ZDo6bWF4PGZsb2F0Pih4MiwgbWF4WEludGVyY2VwdCk7
CisgICAgfQorCisgICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRlcmNlcHRzQXRZKHkxLCBtaW5Y
SW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgICAgICB4MSA9IHN0ZDo6bWluPGZsb2F0
Pih4MSwgbWluWEludGVyY2VwdCk7CisgICAgICAgIHgyID0gc3RkOjptYXg8ZmxvYXQ+KHgyLCBt
YXhYSW50ZXJjZXB0KTsKKyAgICB9CisKKyAgICBBU1NFUlQoeDIgPj0geDEpOworICAgIHJlc3Vs
dC5hcHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7Cit9CisKK3ZvaWQgQm94U2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChtX3BhZGRpbmdC
b3VuZHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QgPSBtX3BhZGRpbmdCb3VuZHMucmVjdCgpOworICAgIGlmIChsb2dpY2FsVG9wIDwgcmVj
dC55KCkgfHwgbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQgPiByZWN0Lm1heFkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgYSBzdHViLCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NjA1LgorCisgICAgcmVz
dWx0LmFwcGVuZChMaW5lU2VnbWVudChyZWN0LngoKSwgcmVjdC5tYXhYKCkpKTsKK30KKworYm9v
bCBCb3hTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1p
bkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3Vs
dCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MDYuCisKKyAgICByZXN1
bHQgPSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hh
cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDIxM2VmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJveFNoYXBlX2gKKyNkZWZpbmUgQm94U2hh
cGVfaAorCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIlNoYXBlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQm94U2hhcGUgOiBwdWJsaWMgU2hhcGUg
eworcHVibGljOgorICAgIEJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyk7
CisKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3go
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihtX21hcmdp
bkJvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xv
Z2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExh
eW91dFJlY3Q+KG1fcGFkZGluZ0JvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBib29sIGlz
RW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9w
LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNh
bFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExh
eW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dp
Y2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBTaGFwZVR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVk
UmVjdGFuZ2xlVHlwZTsgfQorCitwcml2YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3Vu
ZHM7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtX21hcmdpbkJvdW5kczsKKyAgICBGbG9hdFJvdW5k
ZWRSZWN0IG1fcGFkZGluZ0JvdW5kczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEJveFNoYXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKaW5kZXggNjE4OWYwMS4uZWQyOGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5oIgog
CiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJveFNoYXBlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIgpAQCAtNDUsNiArNDYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlQm94U2hhcGUoY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYgYm91bmRzKQoreworICAgIEFTU0VSVChib3VuZHMucmVjdCgpLndpZHRo
KCkgPj0gMCAmJiBib3VuZHMucmVjdCgpLmhlaWdodCgpID49IDApOworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7Cit9CisKIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBl
PiBjcmVhdGVSZWN0YW5nbGVTaGFwZShjb25zdCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxv
YXRTaXplJiByYWRpaSkKIHsKICAgICBBU1NFUlQoYm91bmRzLndpZHRoKCkgPj0gMCAmJiBib3Vu
ZHMuaGVpZ2h0KCkgPj0gMCAmJiByYWRpaS53aWR0aCgpID49IDAgJiYgcmFkaWkuaGVpZ2h0KCkg
Pj0gMCk7CkBAIC0yNDgsMTAgKzI1NSwxMSBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3Jl
YXRlU2hhcGUoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgZmxvYXQgdGhyZXNobwogCiBQ
YXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgTGF5b3V0U2l6ZSYgbG9n
aWNhbFNpemUsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxSYWRpaSwgV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVj
dCBib3VuZHMoMCwgMCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkp
OworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxT
aXplLmhlaWdodCgpKTsKICAgICBGbG9hdFNpemUgcmFkaWkobG9naWNhbFJhZGlpLndpZHRoKCks
IGxvZ2ljYWxSYWRpaS5oZWlnaHQoKSk7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBib3VuZHMocmVj
dCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWkpOwogCi0gICAgT3duUHRyPFNoYXBlPiBzaGFw
ZSA9IGNyZWF0ZVJlY3RhbmdsZVNoYXBlKGJvdW5kcywgcmFkaWkpOworICAgIE93blB0cjxTaGFw
ZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMpOwogICAgIHNoYXBlLT5tX3dyaXRpbmdN
b2RlID0gd3JpdGluZ01vZGU7CiAgICAgc2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxl
bmd0aChtYXJnaW4sIDApOwogICAgIHNoYXBlLT5tX3BhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVu
Z3RoKHBhZGRpbmcsIDApOwo=
</data>
<flag name="review"
          id="240582"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217473</attachid>
            <date>2013-11-20 13:27:55 -0800</date>
            <delta_ts>2013-11-20 14:19:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>37862</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjRjOTdjNy4uNDIxOTI1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFBvbHlnb24uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTIyMjcsNiArMjIyOCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3Qu
Y3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuY3BwCiAKKyAg
ICByZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmNwcAogICAgIHJlbmRlcmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuY3BwCiAgICAg
cmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZTliY2Iy
Li4yNTg3MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTMtMTEtMTkgIEhhbnMg
TXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBC
b3hTaGFwZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MzY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEFkZGVkIHRoZSBCb3hTaGFwZSBjbGFzcy4gSXQn
cyBub3cgdXNlZCB0byByZXByZXNlbnQgc2hhcGUtb3V0c2lkZSBib3gKKyAgICAgICAgdmFsdWVz
OiBbbWFyZ2luL2JvcmRlci9wYWRkaW5nL2NvbnRlbnRdLWJveC4gQm94U2hhcGUgZGVwZW5kcyBv
biBhIG5ldworICAgICAgICBGbG9hdFJvdW5kZWRSZWN0IGNsYXNzLCB3aGljaCBpcyBhIGZsb2F0
IGFuYWxvZyBvZiB0aGUgZXhpc3RpbmcgKGludCkKKyAgICAgICAgUm91bmRlZFJlY3QgY2xhc3Mu
IFRoZSBGbG9hdFJvdW5kZWRSZWN0IGNsYXNzIGNvbnRhaW5zIHRoZSBzYW1lIGJhc2ljCisgICAg
ICAgIG1ldGhvZHMgYW5kIGFjY2Vzc29ycyBhcyBCb3JkZXJSZWN0IGFuZCBhZGRzIGEgc2V0IG9m
IGZvdXIgbWV0aG9kcywKKyAgICAgICAgZm9yIGV4YW1wbGUgdG9wTGVmdENvcm5lcigpLCB0aGF0
IHJldHVybiBhIEZsb2F0UmVjdCB0aGF0IHJlcHJlc2VudHMgdGhlCisgICAgICAgIGJvdW5kcyBv
ZiBvbmUgZWxsaXB0aWNhbCBjb3JuZXIuIEkgYWxzbyBhZGRlZCBhIG1ldGhvZCwgeEludGVyY2Vw
dHNBdFkoKQorICAgICAgICB0aGF0IHJldHVybnMgdHdvIFggY29vcmRpbmF0ZXMgb2YgdGhlIGlu
dGVyc2VjdGlvbiBiZXR3ZWVuIGEgaG9yaXpvbnRhbAorICAgICAgICBsaW5lIGFuZCB0aGUgcm91
bmRlZCByZWN0YW5nbGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgYW4g
aW50ZXJuYWwgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpGbG9hdFJvdW5kZWRSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjppc1plcm8pOgorICAgICAg
ICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OnNjYWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpleHBhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29ybmVyUmVjdEludGVyY2VwdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRS
ZWN0Ojp4SW50ZXJjZXB0c0F0WSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
b3VuZGVkUmVjdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpSYWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRp
aTo6c2V0VG9wTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRp
aTo6c2V0VG9wUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFk
aWk6OnNldEJvdHRvbUxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6
UmFkaWk6OnNldEJvdHRvbVJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJl
Y3Q6OlJhZGlpOjp0b3BMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjp0b3BSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpS
YWRpaTo6Ym90dG9tTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpS
YWRpaTo6Ym90dG9tUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6
UmFkaWk6OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRp
aTo6c2hyaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OnJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6cmFkaWkpOgorICAgICAgICAoV2Vi
Q29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6aXNSb3VuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0Um91bmRlZFJlY3Q6OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVk
UmVjdDo6c2V0UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpzZXRS
YWRpaSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0Ojptb3ZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OmluZmxhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmxvYXRSb3VuZGVkUmVjdDo6ZXhwYW5kUmFkaWkpOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
YXRSb3VuZGVkUmVjdDo6c2hyaW5rUmFkaWkpOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSb3Vu
ZGVkUmVjdDo6dG9wTGVmdENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRS
ZWN0Ojp0b3BSaWdodENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0
Ojpib3R0b21MZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6
OmJvdHRvbVJpZ2h0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkJveFNoYXBlOjpCb3hTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6
Z2V0RXhjbHVkZWRJbnRlcnZhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6OmdldElu
Y2x1ZGVkSW50ZXJ2YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpmaXJzdEluY2x1
ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL0JveFNo
YXBlLmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQm94U2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6
OmNyZWF0ZVNoYXBlKToKKwogMjAxMy0xMS0yMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTI3MTYzKTogUmVzcGVjdCBjbGVhcmFuY2Ug
c2V0IG9uIGFuY2VzdG9ycyB3aGVuIHBsYWNpbmcgZmxvYXRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCBlYWJiZmQwLi43MWRkZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTQ1MzksNiArNDUzOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaCBc
CisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1Jhc3RlclNoYXBlLmNwcCBcCkBAIC01NzU4LDYgKzU3NjAsOCBAQCBwbGF0Zm9ybV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250QmFzZWxpbmUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBmMDIxZThhLi42ZWFhNTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTc2MTUsNiAr
NzYxNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xG
bG9hdFBvbHlnb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcRmxvYXRRdWFkLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJvdW5kZWRSZWN0LmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0U2l6ZS5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGb250LmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZvbnRDYWNoZS5j
cHAiIC8+CkBAIC0xMTA2NCw2ICsxMTA2NSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcbGluZVxMaW5lQnJlYWtlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lSW5mby5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lV2lkdGguY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBvbHlnb25TaGFwZS5jcHAiIC8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzaGFwZXNcUmVj
dGFuZ2xlU2hhcGUuY3BwIiAvPgpAQCAtMTkxNzksNiArMTkxODEsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRQb2x5Z29uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFF1YWQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEZsb2F0UmVjdC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRS
b3VuZGVkUmVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcRmxvYXRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGb250LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xGb250Q2FjaGUuaCIgLz4KQEAgLTE5ODkxLDYgKzE5ODk0LDcgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExpbmVJbmxpbmVIZWFkZXJzLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcbGluZVxMaW5lTGF5b3V0
U3RhdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xsaW5lXExp
bmVXaWR0aC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBl
c1xCb3hTaGFwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNo
YXBlc1xQb2x5Z29uU2hhcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzaGFwZXNcUmFzdGVyU2hhcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzaGFwZXNcUmVjdGFuZ2xlU2hhcGUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBi
NTRmMjc2Li41MTAyOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01MDE2LDYgKzUwMTYsOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRSZWN0LmNwcCI+
CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJv
dW5kZWRSZWN0LmNwcCI+CisgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xGbG9hdFNpemUuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTY4OTIsNiArNjg5NSw5IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFNoYXBlT3V0c2lkZUluZm8uY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHNoYXBlczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xCb3hTaGFw
ZS5jcHAiPgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFBv
bHlnb25TaGFwZS5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMjc5OSw2ICsxMjgwNSw5IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJlY3QuaCI+CiAgICAgICA8Rmls
dGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xGbG9hdFJvdW5kZWRSZWN0Lmgi
PgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcRmxvYXRT
aXplLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTQ2NzgsNiArMTQ2ODcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHNoYXBlc1xTaGFwZUludGVydmFsLmgiPgogICAgICAgPEZpbHRlcj5y
ZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXEJveFNoYXBlLmgiPgorICAgICAgPEZpbHRl
cj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc2hhcGVzXFJhc3RlclNoYXBlLmgiPgogICAgICAg
PEZpbHRlcj5yZW5kZXJpbmdcc2hhcGVzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZjgyYjUzNS4uZDU1YjdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA0Miw2ICsyMDQyLDggQEAKIAkJNkM2Mzg4OTVBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NFRTUw
QzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2Mzg4OTZBOTZDQ0VFNTBD
OEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovOyB9OwogCQk2Q0RE
RThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkUwRTU2OUIxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91
bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuY3BwICovOyB9
OworCQk2RTBFNTY5QzE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUwRTU2OUExODNCRkZF
NjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3Jh
cGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNw
cCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNE
Q0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUy
MUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9Owog
CQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNG
QUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAg
Ki87IH07CkBAIC0yMDgxLDYgKzIwODMsOCBAQAogCQk2RUM0ODBBMjE2RUE2MzhBMDBBNDhEQ0Ig
LyogRmxvYXRQb2x5Z29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUM0ODBBMDE2RUE2MzhBMDBBNDhEQ0IgLyogRmxvYXRQb2x5Z29uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkVEODc4QzQxNDc0
OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyog
UmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLzsgfTsKIAkJNkVEODc4QzUxNDc0OTNGNDAwNEMzNTk3
IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkVEODc4QzMxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2Fw
dGlvbi5oICovOyB9OworCQk2RUQ4QzM3OTE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEOEMzNzcx
ODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmNwcCAqLzsgfTsKKwkJNkVEOEMzN0ExODNCRkY4
QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RUQ4QzM3ODE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RUU4QTc3MjEw
RjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcwMTBGODAzRjMwMDVB
NEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovOyB9OwogCQk2RUU4QTc3MzEw
RjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4QTc3MTEwRjgwM0YzMDA1QTRB
MjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87IH07CiAJCTZGQTQ0NTRFODk4RjJG
QzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUUwNEEyN0JFRDJGODFGOThFOTAyMkIgLyogSlNC
ZWZvcmVVbmxvYWRFdmVudC5oICovOyB9OwpAQCAtODc3OCw2ICs4NzgyLDggQEAKIAkJNkM2Mzg4
OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VF
NTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5
MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2RTBFNTY5OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG9hdFJvdW5kZWRSZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUwRTU2OUExODNCRkZFNjAwRTBFOEQ1IC8q
IEZsb2F0Um91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxv
YXRSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjEx
MjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYx
NDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04ODIxLDYgKzg4MjcsOCBA
QAogCQk2RUM0ODBBMDE2RUE2MzhBMDBBNDhEQ0IgLyogRmxvYXRQb2x5Z29uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0UG9seWdvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RUQ4NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRhYmxl
Q2FwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRDg3OEMzMTQ3NDkz
RjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyVGFibGVDYXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZFRDhDMzc3MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCb3hTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTZFRDhDMzc4MTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCb3hTaGFwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZFRThBNzcxMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMTc0NDU2MTRCQzM0RTIwMEVFNUZD
OCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MTQxLDYgKzE5MTQ5LDggQEAKIAkJQjJBMDE1OTEwQUY2Q0Q1MzAwNkJD
RTBFIC8qIGdyYXBoaWNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk2RTBFNTY5OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAg
Ki8sCisJCQkJNkUwRTU2OUExODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCAq
LywKIAkJCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmgg
Ki8sCiAJCQkJQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGUu
aCAqLywKIAkJCQkwNzZGMEQwODEyQjgxOTI3MDBDMjZBQTQgLyogYXZmb3VuZGF0aW9uICovLApA
QCAtMjE1OTgsNiArMjE2MDgsOCBAQAogCQlGRDA4QTg3OTE3NUQzOTI2MDAyQ0QzNjAgLyogc2hh
cGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk2RUQ4
QzM3NzE4M0JGRjhDMDA5RTUzQkQgLyogQm94U2hhcGUuY3BwICovLAorCQkJCTZFRDhDMzc4MTgz
QkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oICovLAogCQkJCUZEMDhBODdBMTc1RDM5MjYwMDJD
RDM2MCAvKiBQb2x5Z29uU2hhcGUuY3BwICovLAogCQkJCUZEMDhBODdCMTc1RDM5MjYwMDJDRDM2
MCAvKiBQb2x5Z29uU2hhcGUuaCAqLywKIAkJCQk2RTg0RTlERTE3NjY4QkFEMDA4MTVCNjggLyog
UmFzdGVyU2hhcGUuY3BwICovLApAQCAtMjE5NDQsNiArMjE5NTYsOCBAQAogCQkJaXNhID0gUEJY
SGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJNkVEOEMzN0ExODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk2RTBFNTY5QzE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVk
UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUExMTQyMDQxODMyRDEzNTAwMEJCOEFEIC8qIFZh
bHVlVG9TdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMkFENzA2MTdFRkEyQzQwMDM4RjhG
RiAvKiBNYWluRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFREJGRjE2MTgyQjdBOEQwMDE3
RkE2NCAvKiBCcmVha3BvaW50SUQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYyMDMsNiArMjYyMTcs
NyBAQAogCQkJCTI2QzE3QTNGMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0QzQTQ5NTQxN0E5Q0M5MDAwMjc0RTQyIC8qIE1lZGlhU291cmNl
QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRCM0Y3NjBDNzIyMDU1MDAwNTMwREYgLyog
RmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTZFRDhDMzc5MTgzQkZGOEMwMDlF
NTNCRCAvKiBCb3hTaGFwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzAwQjBDQzQyNTEy
MDBDOEFDMjUgLyogRmlsZVN5c3RlbVBPU0lYLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2
QzhEMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNUVCNjlFMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODA4MCw2ICsyODA5NSw3IEBACiAJCQkJNDlFOTExQzMwRUY4NkQ0NzAwOUQwQ0FGIC8q
IFRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5NEJDNDBEMTJB
RUREOUUwMDc0M0JEMiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeENBLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUIyNzUzNTU4MEIwNTM4MTQwMDJDRTY0RiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeENH
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZFMEU1NjlCMTgzQkZGRTYwMEUwRThENSAvKiBGbG9h
dFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCNDg0RjRDMTcxRjgyMUUwMDA0
MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTEx
Q0YwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9ybU9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJjZUxpYnhz
bHQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJkMmNiNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIEhP
TERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAorICogU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCisK
KyNpbmNsdWRlIDxhbGdvcml0aG0+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRmxvYXRSb3Vu
ZGVkUmVjdDo6RmxvYXRSb3VuZGVkUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0KQorICAgIDogbV9yZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpCit7Cit9CisK
K0Zsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBjb25zdCBSYWRpaSYgcmFkaWkpCisgICAgOiBtX3JlY3QocmVjdCkKKyAgICAsIG1fcmFkaWko
cmFkaWkpCit7Cit9CisKK0Zsb2F0Um91bmRlZFJlY3Q6OkZsb2F0Um91bmRlZFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFNpemUmIHRvcExlZnQsIGNvbnN0IEZsb2F0U2l6
ZSYgdG9wUmlnaHQsIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tTGVmdCwgY29uc3QgRmxvYXRTaXpl
JiBib3R0b21SaWdodCkKKyAgICA6IG1fcmVjdChyZWN0KQorICAgICwgbV9yYWRpaSh0b3BMZWZ0
LCB0b3BSaWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQpCit7Cit9CisKK2Jvb2wgRmxvYXRS
b3VuZGVkUmVjdDo6UmFkaWk6OmlzWmVybygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdG9wTGVm
dC5pc1plcm8oKSAmJiBtX3RvcFJpZ2h0LmlzWmVybygpICYmIG1fYm90dG9tTGVmdC5pc1plcm8o
KSAmJiBtX2JvdHRvbVJpZ2h0LmlzWmVybygpOworfQorCit2b2lkIEZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpOjpzY2FsZShmbG9hdCBmYWN0b3IpCit7CisgICAgaWYgKGZhY3RvciA9PSAxKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBJZiBlaXRoZXIgcmFkaXVzIG9uIGEgY29ybmVyIGJlY29t
ZXMgemVybywgcmVzZXQgYm90aCByYWRpaSBvbiB0aGF0IGNvcm5lci4KKyAgICBtX3RvcExlZnQu
c2NhbGUoZmFjdG9yKTsKKyAgICBpZiAoIW1fdG9wTGVmdC53aWR0aCgpIHx8ICFtX3RvcExlZnQu
aGVpZ2h0KCkpCisgICAgICAgIG1fdG9wTGVmdCA9IEZsb2F0U2l6ZSgpOworICAgIG1fdG9wUmln
aHQuc2NhbGUoZmFjdG9yKTsKKyAgICBpZiAoIW1fdG9wUmlnaHQud2lkdGgoKSB8fCAhbV90b3BS
aWdodC5oZWlnaHQoKSkKKyAgICAgICAgbV90b3BSaWdodCA9IEZsb2F0U2l6ZSgpOworICAgIG1f
Ym90dG9tTGVmdC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV9ib3R0b21MZWZ0LndpZHRoKCkg
fHwgIW1fYm90dG9tTGVmdC5oZWlnaHQoKSkKKyAgICAgICAgbV9ib3R0b21MZWZ0ID0gRmxvYXRT
aXplKCk7CisgICAgbV9ib3R0b21SaWdodC5zY2FsZShmYWN0b3IpOworICAgIGlmICghbV9ib3R0
b21SaWdodC53aWR0aCgpIHx8ICFtX2JvdHRvbVJpZ2h0LmhlaWdodCgpKQorICAgICAgICBtX2Jv
dHRvbVJpZ2h0ID0gRmxvYXRTaXplKCk7CisKK30KKwordm9pZCBGbG9hdFJvdW5kZWRSZWN0OjpS
YWRpaTo6ZXhwYW5kKGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBib3R0b21XaWR0aCwgZmxvYXQgbGVm
dFdpZHRoLCBmbG9hdCByaWdodFdpZHRoKQoreworICAgIGlmIChtX3RvcExlZnQud2lkdGgoKSA+
IDAgJiYgbV90b3BMZWZ0LmhlaWdodCgpID4gMCkgeworICAgICAgICBtX3RvcExlZnQuc2V0V2lk
dGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fdG9wTGVmdC53aWR0aCgpICsgbGVmdFdpZHRoKSk7Cisg
ICAgICAgIG1fdG9wTGVmdC5zZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fdG9wTGVmdC5o
ZWlnaHQoKSArIHRvcFdpZHRoKSk7CisgICAgfQorICAgIGlmIChtX3RvcFJpZ2h0LndpZHRoKCkg
PiAwICYmIG1fdG9wUmlnaHQuaGVpZ2h0KCkgPiAwKSB7CisgICAgICAgIG1fdG9wUmlnaHQuc2V0
V2lkdGgoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fdG9wUmlnaHQud2lkdGgoKSArIHJpZ2h0V2lkdGgp
KTsKKyAgICAgICAgbV90b3BSaWdodC5zZXRIZWlnaHQoc3RkOjptYXg8ZmxvYXQ+KDAsIG1fdG9w
UmlnaHQuaGVpZ2h0KCkgKyB0b3BXaWR0aCkpOworICAgIH0KKyAgICBpZiAobV9ib3R0b21MZWZ0
LndpZHRoKCkgPiAwICYmIG1fYm90dG9tTGVmdC5oZWlnaHQoKSA+IDApIHsKKyAgICAgICAgbV9i
b3R0b21MZWZ0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0PigwLCBtX2JvdHRvbUxlZnQud2lkdGgo
KSArIGxlZnRXaWR0aCkpOworICAgICAgICBtX2JvdHRvbUxlZnQuc2V0SGVpZ2h0KHN0ZDo6bWF4
PGZsb2F0PigwLCBtX2JvdHRvbUxlZnQuaGVpZ2h0KCkgKyBib3R0b21XaWR0aCkpOworICAgIH0K
KyAgICBpZiAobV9ib3R0b21SaWdodC53aWR0aCgpID4gMCAmJiBtX2JvdHRvbVJpZ2h0LmhlaWdo
dCgpID4gMCkgeworICAgICAgICBtX2JvdHRvbVJpZ2h0LnNldFdpZHRoKHN0ZDo6bWF4PGZsb2F0
PigwLCBtX2JvdHRvbVJpZ2h0LndpZHRoKCkgKyByaWdodFdpZHRoKSk7CisgICAgICAgIG1fYm90
dG9tUmlnaHQuc2V0SGVpZ2h0KHN0ZDo6bWF4PGZsb2F0PigwLCBtX2JvdHRvbVJpZ2h0LmhlaWdo
dCgpICsgYm90dG9tV2lkdGgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgZmxvYXQgY29y
bmVyUmVjdEludGVyY2VwdChmbG9hdCB5LCBjb25zdCBGbG9hdFJlY3QmIGNvcm5lclJlY3QpCit7
CisgICAgQVNTRVJUKGNvcm5lclJlY3QuaGVpZ2h0KCkgPiAwKTsKKyAgICByZXR1cm4gY29ybmVy
UmVjdC53aWR0aCgpICogc3FydCgxIC0gKHkgKiB5KSAvIChjb3JuZXJSZWN0LmhlaWdodCgpICog
Y29ybmVyUmVjdC5oZWlnaHQoKSkpOworfQorCitib29sIEZsb2F0Um91bmRlZFJlY3Q6OnhJbnRl
cmNlcHRzQXRZKGZsb2F0IHksIGZsb2F0JiBtaW5YSW50ZXJjZXB0LCBmbG9hdCYgbWF4WEludGVy
Y2VwdCkgY29uc3QKK3sKKyAgICBpZiAoeSA8IHJlY3QoKS55KCkgfHwgeSA+PSAgcmVjdCgpLm1h
eFkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgRmxvYXRSZWN0JiB0b3BM
ZWZ0UmVjdCA9IHRvcExlZnRDb3JuZXIoKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIGJvdHRvbUxl
ZnRSZWN0ID0gYm90dG9tTGVmdENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wTGVmdFJlY3Qu
eSgpICYmIHkgPCB0b3BMZWZ0UmVjdC5tYXhZKCkpCisgICAgICAgIG1pblhJbnRlcmNlcHQgPSB0
b3BMZWZ0UmVjdC5tYXhYKCkgLSBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcExlZnRSZWN0Lm1heFko
KSAtIHksIHRvcExlZnRSZWN0KTsKKyAgICBlbHNlIGlmICh5ID49IGJvdHRvbUxlZnRSZWN0Lnko
KSAmJiB5IDwgYm90dG9tTGVmdFJlY3QubWF4WSgpKQorICAgICAgICBtaW5YSW50ZXJjZXB0ID0g
IGJvdHRvbUxlZnRSZWN0Lm1heFgoKSAtIGNvcm5lclJlY3RJbnRlcmNlcHQoeSAtIGJvdHRvbUxl
ZnRSZWN0LnkoKSwgYm90dG9tTGVmdFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWluWEludGVy
Y2VwdCA9IG1fcmVjdC54KCk7CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHRvcFJpZ2h0UmVjdCA9
IHRvcFJpZ2h0Q29ybmVyKCk7CisgICAgY29uc3QgRmxvYXRSZWN0JiBib3R0b21SaWdodFJlY3Qg
PSBib3R0b21SaWdodENvcm5lcigpOworCisgICAgaWYgKHkgPj0gdG9wUmlnaHRSZWN0LnkoKSAm
JiB5IDwgdG9wUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9IHRvcFJp
Z2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHRvcFJpZ2h0UmVjdC5tYXhZKCkgLSB5
LCB0b3BSaWdodFJlY3QpOworICAgIGVsc2UgaWYgKHkgPj0gYm90dG9tUmlnaHRSZWN0LnkoKSAm
JiB5IDwgYm90dG9tUmlnaHRSZWN0Lm1heFkoKSkKKyAgICAgICAgbWF4WEludGVyY2VwdCA9IGJv
dHRvbVJpZ2h0UmVjdC54KCkgKyBjb3JuZXJSZWN0SW50ZXJjZXB0KHkgLSBib3R0b21SaWdodFJl
Y3QueSgpLCBib3R0b21SaWdodFJlY3QpOworICAgIGVsc2UKKyAgICAgICAgbWF4WEludGVyY2Vw
dCA9IG1fcmVjdC5tYXhYKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSb3VuZGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSb3VuZGVkUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMzc2
YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFJvdW5kZWRSZWN0LmgKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAq
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZsb2F0
Um91bmRlZFJlY3RfaAorI2RlZmluZSBGbG9hdFJvdW5kZWRSZWN0X2gKKworI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZsb2F0Um91bmRlZFJlY3QgeworcHVibGljOgorICAgIGNsYXNzIFJhZGlpIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFJhZGlpKCkgeyB9CisgICAgICAgIFJhZGlpKGNvbnN0IEZs
b2F0U2l6ZSYgdG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRT
aXplJiBib3R0b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KQorICAgICAgICAg
ICAgOiBtX3RvcExlZnQodG9wTGVmdCkKKyAgICAgICAgICAgICwgbV90b3BSaWdodCh0b3BSaWdo
dCkKKyAgICAgICAgICAgICwgbV9ib3R0b21MZWZ0KGJvdHRvbUxlZnQpCisgICAgICAgICAgICAs
IG1fYm90dG9tUmlnaHQoYm90dG9tUmlnaHQpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAg
ICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV90b3BMZWZ0ID0g
c2l6ZTsgfQorICAgICAgICB2b2lkIHNldFRvcFJpZ2h0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkg
eyBtX3RvcFJpZ2h0ID0gc2l6ZTsgfQorICAgICAgICB2b2lkIHNldEJvdHRvbUxlZnQoY29uc3Qg
RmxvYXRTaXplJiBzaXplKSB7IG1fYm90dG9tTGVmdCA9IHNpemU7IH0KKyAgICAgICAgdm9pZCBz
ZXRCb3R0b21SaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9ib3R0b21SaWdodCA9IHNp
emU7IH0KKyAgICAgICAgY29uc3QgRmxvYXRTaXplJiB0b3BMZWZ0KCkgY29uc3QgeyByZXR1cm4g
bV90b3BMZWZ0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgdG9wUmlnaHQoKSBjb25zdCB7
IHJldHVybiBtX3RvcFJpZ2h0OyB9CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSYgYm90dG9tTGVm
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tTGVmdDsgfQorICAgICAgICBjb25zdCBGbG9hdFNp
emUmIGJvdHRvbVJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b21SaWdodDsgfQorCisgICAg
ICAgIGJvb2wgaXNaZXJvKCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBzY2FsZShmbG9hdCBmYWN0
b3IpOworICAgICAgICB2b2lkIGV4cGFuZChmbG9hdCB0b3BXaWR0aCwgZmxvYXQgYm90dG9tV2lk
dGgsIGZsb2F0IGxlZnRXaWR0aCwgZmxvYXQgcmlnaHRXaWR0aCk7CisgICAgICAgIHZvaWQgZXhw
YW5kKGZsb2F0IHNpemUpIHsgZXhwYW5kKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9CisgICAg
ICAgIHZvaWQgc2hyaW5rKGZsb2F0IHRvcFdpZHRoLCBmbG9hdCBib3R0b21XaWR0aCwgZmxvYXQg
bGVmdFdpZHRoLCBmbG9hdCByaWdodFdpZHRoKSB7IGV4cGFuZCgtdG9wV2lkdGgsIC1ib3R0b21X
aWR0aCwgLWxlZnRXaWR0aCwgLXJpZ2h0V2lkdGgpOyB9CisgICAgICAgIHZvaWQgc2hyaW5rKGZs
b2F0IHNpemUpIHsgc2hyaW5rKHNpemUsIHNpemUsIHNpemUsIHNpemUpOyB9CisKKyAgICBwcml2
YXRlOgorICAgICAgICBGbG9hdFNpemUgbV90b3BMZWZ0OworICAgICAgICBGbG9hdFNpemUgbV90
b3BSaWdodDsKKyAgICAgICAgRmxvYXRTaXplIG1fYm90dG9tTGVmdDsKKyAgICAgICAgRmxvYXRT
aXplIG1fYm90dG9tUmlnaHQ7CisgICAgfTsKKworICAgIGV4cGxpY2l0IEZsb2F0Um91bmRlZFJl
Y3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgUmFkaWkmID0gUmFkaWkoKSk7CisgICAgRmxvYXRS
b3VuZGVkUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK
KyAgICBGbG9hdFJvdW5kZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYg
dG9wTGVmdCwgY29uc3QgRmxvYXRTaXplJiB0b3BSaWdodCwgY29uc3QgRmxvYXRTaXplJiBib3R0
b21MZWZ0LCBjb25zdCBGbG9hdFNpemUmIGJvdHRvbVJpZ2h0KTsKKworICAgIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0IFJhZGlpJiBy
YWRpaSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaWk7IH0KKyAgICBib29sIGlzUm91bmRlZCgpIGNv
bnN0IHsgcmV0dXJuICFtX3JhZGlpLmlzWmVybygpOyB9CisgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9yZWN0LmlzRW1wdHkoKTsgfQorCisgICAgdm9pZCBzZXRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkgeyBtX3JlY3QgPSByZWN0OyB9CisgICAgdm9pZCBzZXRSYWRpaShj
b25zdCBSYWRpaSYgcmFkaWkpIHsgbV9yYWRpaSA9IHJhZGlpOyB9CisKKyAgICB2b2lkIG1vdmUo
Y29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fcmVjdC5tb3ZlKHNpemUpOyB9CisgICAgdm9pZCBp
bmZsYXRlKGZsb2F0IHNpemUpIHsgbV9yZWN0LmluZmxhdGUoc2l6ZSk7ICB9CisgICAgdm9pZCBl
eHBhbmRSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuZXhwYW5kKHNpemUpOyB9CisgICAgdm9p
ZCBzaHJpbmtSYWRpaShmbG9hdCBzaXplKSB7IG1fcmFkaWkuc2hyaW5rKHNpemUpOyB9CisKKyAg
ICBGbG9hdFJlY3QgdG9wTGVmdENvcm5lcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
RmxvYXRSZWN0KG1fcmVjdC54KCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wTGVmdCgpLndpZHRo
KCksIG1fcmFkaWkudG9wTGVmdCgpLmhlaWdodCgpKTsKKyAgICB9CisgICAgRmxvYXRSZWN0IHRv
cFJpZ2h0Q29ybmVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBGbG9hdFJlY3QobV9y
ZWN0Lm1heFgoKSAtIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JlY3QueSgpLCBtX3Jh
ZGlpLnRvcFJpZ2h0KCkud2lkdGgoKSwgbV9yYWRpaS50b3BSaWdodCgpLmhlaWdodCgpKTsKKyAg
ICB9CisgICAgRmxvYXRSZWN0IGJvdHRvbUxlZnRDb3JuZXIoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgpIC0gbV9yYWRpaS50b3BSaWdodCgpLndp
ZHRoKCksIG1fcmVjdC55KCksIG1fcmFkaWkudG9wUmlnaHQoKS53aWR0aCgpLCBtX3JhZGlpLnRv
cFJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKyAgICBGbG9hdFJlY3QgYm90dG9tUmlnaHRDb3Ju
ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX3JlY3QubWF4WCgp
IC0gbV9yYWRpaS5ib3R0b21SaWdodCgpLndpZHRoKCksIG1fcmVjdC5tYXhZKCkgLSBtX3JhZGlp
LmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCksIG1fcmFkaWkuYm90dG9tUmlnaHQoKS53aWR0aCgpLCBt
X3JhZGlpLmJvdHRvbVJpZ2h0KCkuaGVpZ2h0KCkpOworICAgIH0KKworICAgIGJvb2wgeEludGVy
Y2VwdHNBdFkoZmxvYXQgeSwgZmxvYXQmIG1pblhJbnRlcmNlcHQsIGZsb2F0JiBtYXhYSW50ZXJj
ZXB0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGbG9hdFJlY3QgbV9yZWN0OworICAgIFJhZGlp
IG1fcmFkaWk7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3Q6OlJhZGlpJiBhLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSYgYikKK3sKKyAg
ICByZXR1cm4gYS50b3BMZWZ0KCkgPT0gYi50b3BMZWZ0KCkgJiYgYS50b3BSaWdodCgpID09IGIu
dG9wUmlnaHQoKSAmJiBhLmJvdHRvbUxlZnQoKSA9PSBiLmJvdHRvbUxlZnQoKSAmJiBhLmJvdHRv
bVJpZ2h0KCkgPT0gYi5ib3R0b21SaWdodCgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGEsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGIpCit7
CisgICAgcmV0dXJuIGEucmVjdCgpID09IGIucmVjdCgpICYmIGEucmFkaWkoKSA9PSBiLnJhZGlp
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZsb2F0Um91bmRl
ZFJlY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hT
aGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjIyZTc5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAgLTAs
MCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNv
cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK
KyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQm94U2hh
cGUuaCIKKworI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQm94U2hhcGU6OkJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcykK
KyAgICA6IFNoYXBlKCkKKyAgICAsIG1fYm91bmRzKGJvdW5kcykKKyAgICAsIG1fbWFyZ2luQm91
bmRzKGJvdW5kcykKKyAgICAsIG1fcGFkZGluZ0JvdW5kcyhib3VuZHMpCit7CisgICAgaWYgKHNo
YXBlTWFyZ2luKCkgPiAwKSB7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmluZmxhdGUoc2hhcGVN
YXJnaW4oKSk7CisgICAgICAgIG1fbWFyZ2luQm91bmRzLmV4cGFuZFJhZGlpKHNoYXBlTWFyZ2lu
KCkpOworICAgIH0KKyAgICBpZiAoc2hhcGVQYWRkaW5nKCkgPiAwKSB7CisgICAgICAgIG1fcGFk
ZGluZ0JvdW5kcy5pbmZsYXRlKC1zaGFwZVBhZGRpbmcoKSk7CisgICAgICAgIG1fcGFkZGluZ0Jv
dW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKCkpOworICAgIH0KK30KKwordm9pZCBCb3hT
aGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYg
KG1fbWFyZ2luQm91bmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQg
eTEgPSBsb2dpY2FsVG9wOworICAgIGZsb2F0IHkyID0gbG9naWNhbFRvcCArIGxvZ2ljYWxIZWln
aHQ7CisgICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0gbV9tYXJnaW5Cb3VuZHMucmVjdCgpOwor
CisgICAgaWYgKHkyIDw9IHJlY3QueSgpIHx8IHkxID49IHJlY3QubWF4WSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIW1fbWFyZ2luQm91bmRzLmlzUm91bmRlZCgpKSB7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoTGluZVNlZ21lbnQobV9tYXJnaW5Cb3VuZHMucmVjdCgpLngoKSwgbV9t
YXJnaW5Cb3VuZHMucmVjdCgpLm1heFgoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZmxvYXQgeDEgPSByZWN0Lm1heFgoKTsKKyAgICBmbG9hdCB4MiA9IHJlY3QueCgpOworICAg
IGZsb2F0IG1pblhJbnRlcmNlcHQ7CisgICAgZmxvYXQgbWF4WEludGVyY2VwdDsKKworICAgIGlm
IChtX21hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5MSwgbWluWEludGVyY2VwdCwgbWF4WElu
dGVyY2VwdCkpIHsKKyAgICAgICAgeDEgPSBzdGQ6Om1pbjxmbG9hdD4oeDEsIG1pblhJbnRlcmNl
cHQpOworICAgICAgICB4MiA9IHN0ZDo6bWF4PGZsb2F0Pih4MiwgbWF4WEludGVyY2VwdCk7Cisg
ICAgfQorCisgICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRlcmNlcHRzQXRZKHkxLCBtaW5YSW50
ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgICAgICB4MSA9IHN0ZDo6bWluPGZsb2F0Pih4
MSwgbWluWEludGVyY2VwdCk7CisgICAgICAgIHgyID0gc3RkOjptYXg8ZmxvYXQ+KHgyLCBtYXhY
SW50ZXJjZXB0KTsKKyAgICB9CisKKyAgICBBU1NFUlQoeDIgPj0geDEpOworICAgIHJlc3VsdC5h
cHBlbmQoTGluZVNlZ21lbnQoeDEsIHgyKSk7Cit9CisKK3ZvaWQgQm94U2hhcGU6OmdldEluY2x1
ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChtX3BhZGRpbmdCb3Vu
ZHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QgPSBtX3BhZGRpbmdCb3VuZHMucmVjdCgpOworICAgIGlmIChsb2dpY2FsVG9wIDwgcmVjdC55
KCkgfHwgbG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQgPiByZWN0Lm1heFkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gRklYTUU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgYSBzdHViLCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NjA1LgorCisgICAgcmVzdWx0
LmFwcGVuZChMaW5lU2VnbWVudChyZWN0LngoKSwgcmVjdC5tYXhYKCkpKTsKK30KKworYm9vbCBC
b3hTaGFwZTo6Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxv
Z2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgTGF5b3V0U2l6ZSYsIExheW91dFVuaXQmIHJlc3VsdCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogdGhpcyBtZXRob2QgaXMgb25seSBhIHN0dWIsIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ2MDYuCisKKyAgICByZXN1bHQg
PSBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3A7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvQm94U2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDIxM2VmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQWRvYmUgU3lzdGVtcyBJbmNv
cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK
KyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJveFNoYXBlX2gKKyNkZWZpbmUgQm94U2hhcGVf
aAorCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIlNoYXBlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQm94U2hhcGUgOiBwdWJsaWMgU2hhcGUgewor
cHVibGljOgorICAgIEJveFNoYXBlKGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcyk7CisK
KyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihtX21hcmdpbkJv
dW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xvZ2lj
YWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91
dFJlY3Q+KG1fcGFkZGluZ0JvdW5kcy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1w
dHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2JvdW5kcy5pc0VtcHR5KCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKExheW91
dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBMYXlvdXRTaXplJiBtaW5Mb2dpY2Fs
SW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBT
aGFwZVR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNoYXBlOjpSb3VuZGVkUmVj
dGFuZ2xlVHlwZTsgfQorCitwcml2YXRlOgorICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3VuZHM7
CisgICAgRmxvYXRSb3VuZGVkUmVjdCBtX21hcmdpbkJvdW5kczsKKyAgICBGbG9hdFJvdW5kZWRS
ZWN0IG1fcGFkZGluZ0JvdW5kczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEJveFNoYXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5j
cHAKaW5kZXggNjE4OWYwMS4uZWQyOGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiAj
aW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIkJveFNoYXBlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgpAQCAtNDUsNiArNDYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlQm94U2hhcGUoY29uc3QgRmxvYXRS
b3VuZGVkUmVjdCYgYm91bmRzKQoreworICAgIEFTU0VSVChib3VuZHMucmVjdCgpLndpZHRoKCkg
Pj0gMCAmJiBib3VuZHMucmVjdCgpLmhlaWdodCgpID49IDApOworICAgIHJldHVybiBhZG9wdFB0
cihuZXcgQm94U2hhcGUoYm91bmRzKSk7Cit9CisKIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBj
cmVhdGVSZWN0YW5nbGVTaGFwZShjb25zdCBGbG9hdFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRT
aXplJiByYWRpaSkKIHsKICAgICBBU1NFUlQoYm91bmRzLndpZHRoKCkgPj0gMCAmJiBib3VuZHMu
aGVpZ2h0KCkgPj0gMCAmJiByYWRpaS53aWR0aCgpID49IDAgJiYgcmFkaWkuaGVpZ2h0KCkgPj0g
MCk7CkBAIC0yNDgsMTAgKzI1NSwxMSBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRl
U2hhcGUoY29uc3QgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSwgZmxvYXQgdGhyZXNobwogCiBQYXNz
T3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNh
bFNpemUsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxSYWRpaSwgV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVjdCBi
b3VuZHMoMCwgMCwgbG9naWNhbFNpemUud2lkdGgoKSwgbG9naWNhbFNpemUuaGVpZ2h0KCkpOwor
ICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXpl
LmhlaWdodCgpKTsKICAgICBGbG9hdFNpemUgcmFkaWkobG9naWNhbFJhZGlpLndpZHRoKCksIGxv
Z2ljYWxSYWRpaS5oZWlnaHQoKSk7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBib3VuZHMocmVjdCwg
cmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWkpOwogCi0gICAgT3duUHRyPFNoYXBlPiBzaGFwZSA9
IGNyZWF0ZVJlY3RhbmdsZVNoYXBlKGJvdW5kcywgcmFkaWkpOworICAgIE93blB0cjxTaGFwZT4g
c2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMpOwogICAgIHNoYXBlLT5tX3dyaXRpbmdNb2Rl
ID0gd3JpdGluZ01vZGU7CiAgICAgc2hhcGUtPm1fbWFyZ2luID0gZmxvYXRWYWx1ZUZvckxlbmd0
aChtYXJnaW4sIDApOwogICAgIHNoYXBlLT5tX3BhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVuZ3Ro
KHBhZGRpbmcsIDApOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>