<?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>123114</bug_id>
          
          <creation_ts>2013-10-21 12:26:49 -0700</creation_ts>
          <short_desc>[CSS Shapes] CORS-enabled fetch for shape image values</short_desc>
          <delta_ts>2013-10-25 13:34:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116348</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941966</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-10-21 12:26:49 -0700</bug_when>
    <thetext>http://dev.w3.org/csswg/css-shapes/#shape-outside-property

&quot;User agents must use the potentially CORS-enabled fetch method defined by the [HTML5] specification for all URLs in a shape-outside value. When fetching, user agents must use &quot;Anonymous&quot; mode, set the referrer source to the stylesheet&apos;s URL and set the origin to the URL of the containing document. If this results in network errors such that there is no valid fallback image, the effect is as if the value auto had been specified.&quot;

Currently, shape image values must be same-origin, see https://bugs.webkit.org/show_bug.cgi?id=117610.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942766</commentid>
    <comment_count>1</comment_count>
      <attachid>214976</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-10-23 11:44:47 -0700</bug_when>
    <thetext>Created attachment 214976
Patch

Access to shape images is now controlled by CORS CSS shape per http://dev.w3.org/csswg/css-shapes/#shape-outside-property. Previously shape images had to be same-origin.

Shape image URL access is defined by the same logic that defines canvas tainting: same-origin and data URLs are allowed and images with a &quot;Access-Control-Allow-Origin:&quot; header that&apos;s either &quot;*&quot; or that matches the document&apos;s origin.

A PotentiallyCrossOriginEnabled RequestOriginPolicy was added to ResourceLoaderOptions, to indicate that a &quot;potentially CORS-enabled fetch&quot; was to be undertaken. The CSSImageValue::cachedImage() method handles this option by effectively setting the &quot;Origin:&quot; request header (see updateRequestForAccessControl() in CrossOriginAccessControl.cpp).  StyleResolver::loadPendingShapeImage() uses the new ResourceLoaderOption.

The static ShapeInsideInfo and ShapeOutsideInfo isEnabledFor() method now performs the CORS check for image valued shapes. The private isOriginClean() method from CanvasRenderingContext2D has been moved to the CachedImage class so that it can be shared by the Canvas and Shape implementations. It checks the response headers per the CORS spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942767</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-23 11:46:42 -0700</bug_when>
    <thetext>Attachment 214976 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http/tests/security/resources/image-access-control.php&apos;, u&apos;LayoutTests/http/tests/security/shape-image-cors-expected.html&apos;, u&apos;LayoutTests/http/tests/security/shape-image-cors.html&apos;, u&apos;LayoutTests/http/tests/security/shape-inside-image-origin-expected.txt&apos;, u&apos;LayoutTests/http/tests/security/shape-inside-image-origin.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSImageValue.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp&apos;, u&apos;Source/WebCore/loader/ResourceLoaderOptions.h&apos;, u&apos;Source/WebCore/loader/cache/CachedImage.cpp&apos;, u&apos;Source/WebCore/loader/cache/CachedImage.h&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeInfo.cpp&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeInfo.h&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeInsideInfo.cpp&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSImageValue.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 15 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>942769</commentid>
    <comment_count>3</comment_count>
      <attachid>214977</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-10-23 11:51:50 -0700</bug_when>
    <thetext>Created attachment 214977
Patch

Fixed a style-o.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943566</commentid>
    <comment_count>4</comment_count>
      <attachid>214977</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-10-25 06:36:38 -0700</bug_when>
    <thetext>Comment on attachment 214977
Patch

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

I think this approach makes sense. I would say r=me, but there are some things I think we can do better:

&gt; Source/WebCore/rendering/shapes/ShapeInfo.cpp:44
&gt; +bool ShapeInfo&lt;RenderType&gt;::checkImageOrigin(const RenderType* renderer, const StyleImage* styleImage)

This function assumes that &apos;renderer&apos; and &apos;styleImage&apos; are both non-null, so we should pass them by reference instead.
It only uses the renderer to dig out the Document, so we could just pass the Document from the call sites and avoid templatizing this function.

&gt; Source/WebCore/rendering/shapes/ShapeInfo.cpp:46
&gt; +    ASSERT(styleImage &amp;&amp; styleImage-&gt;isCachedImage() &amp;&amp; styleImage-&gt;cachedImage() &amp;&amp; styleImage-&gt;cachedImage()-&gt;image());

Hm. Instead of all this asserting, could we just make the function take a CachedImage&amp; directly?
You&apos;re using the StyleImage to grab at the CachedImage inside.

&gt; Source/WebCore/rendering/shapes/ShapeInfo.cpp:49
&gt; +    bool originClean = styleImage-&gt;cachedImage()-&gt;isOriginClean(renderer-&gt;document().securityOrigin());
&gt; +    if (!originClean) {

Why not just return right away?
if (styleImage-&gt;cachedImage()-&gt;isOriginClean(renderer-&gt;document().securityOrigin()))
    return true;
...
return false;

&gt; Source/WebCore/loader/cache/CachedImage.cpp:577
&gt; +bool CachedImage::isOriginClean(SecurityOrigin* securityOrigin)

It&apos;s ugly that this takes the SecurityOrigin by pointer, since it could crash if nullptr is passed.
Although this is a larger problem with SecurityContexts in WebCore, and not something we need to fix in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943643</commentid>
    <comment_count>5</comment_count>
      <attachid>215188</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-10-25 10:18:13 -0700</bug_when>
    <thetext>Created attachment 215188
Patch

I&apos;ve made the suggested changes.

I made static function ShapeInfo&lt;RenderType&gt;::checkImageOrigin() a global function called checkShapeImageOrigin() to avoid creating one static per template instantiation. I would have preferred not to add checkShapeImageOrigin() to the WebCore namespace, but I wasn&apos;t sure how to avoid doing so.  If you know of a better way to handle this, I&apos;d appreciate the advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943674</commentid>
    <comment_count>6</comment_count>
      <attachid>215188</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-10-25 11:25:06 -0700</bug_when>
    <thetext>Comment on attachment 215188
Patch

Looks cool. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943728</commentid>
    <comment_count>7</comment_count>
      <attachid>215188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-25 13:34:39 -0700</bug_when>
    <thetext>Comment on attachment 215188
Patch

Clearing flags on attachment: 215188

Committed r158044: &lt;http://trac.webkit.org/changeset/158044&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943729</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-25 13:34:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214976</attachid>
            <date>2013-10-23 11:44:47 -0700</date>
            <delta_ts>2013-10-23 11:51:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>20375</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWZhNjk5Li5kZTgxN2NiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAt
MjMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFw
ZXNdIENPUlMtZW5hYmxlZCBmZXRjaCBmb3Igc2hhcGUgaW1hZ2UgdmFsdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJpZnkgdGhhdCBpbWFnZXMg
bm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dAorICAgICAgICBhbmQg
dGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEKKyAg
ICAgICAgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0
aGUgbGF5b3V0LgorICAgICAgICBBZGRlZCBhIHNpbXBsZSBQSFAgc2NyaXB0IHRoYXQgb3B0aW9u
YWxseSBhZGRzIHRoZSBhbGxvdyBvcmlnaW4gaGVhZGVyLgorCisgICAgICAgIFJlcGxhY2VkIGFu
ZCByZW5hbWVkIHRoZSBvcmlnaW5hbCBzaGFwZSBzYW1lLW9yaWdpbi1vbmx5IHRlc3QuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJv
bC5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2Ut
Y29ycy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3NoYXBlLWltYWdlLWNvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRt
bDogUmVtb3ZlZC4KKwogMjAxMy0xMC0yMyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9u
LWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sIGhhcyBpbWFnZSBmYWlsdXJlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFn
ZS1hY2Nlc3MtY29udHJvbC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjc5MTlkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9sLnBocApAQCAtMCww
ICsxLDE0IEBACis8P3BocAorJGFsbG93T3JpZ2luID0gJF9HRVRbJ2FsbG93J107CitpZiAoJGFs
bG93T3JpZ2luID09ICJ0cnVlIikgeworICAgIGhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luOiAqIik7Cit9CisKKyRmaWxlID0gJF9HRVRbJ2ZpbGUnXTsKKyRmcCA9IGZvcGVuKCRm
aWxlLCAncmInKTsKK2hlYWRlcigiQ29udGVudC1UeXBlOiBpbWFnZS9wbmciKTsKK2hlYWRlcigi
Q29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOworCitmcGFzc3RocnUoJGZwKTsK
K2V4aXQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
aGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NoYXBlLWltYWdlLWNvcnMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMTljM2YwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAg
ICNjbGVhci1sZWZ0IHsKKyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgv
MSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAg
I2NsZWFyLWxlZnQgPiBkaXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgaGVpZ2h0
OiAyMHB4OworICAgIH0KKworICAgICNzaGFwZS1vdXRzaWRlLWJsb2NrLW9yaWdpbiB7CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1zYW1lLW9yaWdp
biB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1k
YXRhLXVybCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0
c2lkZS1hbGxvdy1vcmlnaW4tdXJsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgIH0KKwor
ICAgICNzaGFwZS1vdXRzaWRlLWRpc2FsbG93LW9yaWdpbi11cmwgeworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkg
dGhhdCBpbWFnZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBh
bmQgdGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEg
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5
b3V0LjwvcD4KKyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRl
LWJsb2NrLW9yaWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxk
aXYgaWQ9InNoYXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5Y
PC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1h
bGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+
PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NoYXBlLWltYWdlLWNvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jNjUwNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNjbGVhci1sZWZ0IHsK
KyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgvMSBBaGVtLCBzYW5zLXNl
cmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI2NsZWFyLWxlZnQgPiBk
aXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICBoZWlnaHQ6IDIwcHg7CisgICAgfQorCisgICAgLyogYmxvY2tlZCBiZWNhdXNlIHRoZSBVUkwn
cyBwb3J0IG51bWJlciBkb2Vzbid0IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uICovCisg
ICAgI3NoYXBlLW91dHNpZGUtYmxvY2stb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1v
dXRzaWRlOiB1cmwoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9yZXNvdXJjZXMvc3F1YXJlMTAwLnBu
ZyIpOworICAgIH0gCisKKyAgICAvKiBBY2Nlc3MgaXMgT0sgYmVjYXVzZSB0aGUgVVJMIGFuZCB0
aGlzIGRvY3VtZW50IGhhdmUgdGhlIHNhbWUgb3JpZ2luLiAqLworICAgICNzaGFwZS1vdXRzaWRl
LXNhbWUtb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoIi9yZXNv
dXJjZXMvc3F1YXJlMTAwLnBuZyIpOworICAgIH0gCisKKyAgICAvKiBEYXRhVVJMIEFjY2VzcyBp
cyBPSywgYXMgaXQgaXMgd2l0aCBDYW52YXMuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGF0YS11
cmwgeworICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiZGF0YTppbWFnZS9zdmcr
eG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScx
MDBweCcgaGVpZ2h0PScyMHB4Jz48cmVjdCB3aWR0aD0nMjAwJyBoZWlnaHQ9JzIwJyBmaWxsPSdi
bHVlJy8+PC9zdmc+Iik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdpbiByZXF1ZXN0IGlz
IE9LIGJlY2F1c2UgdGhlICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoiIGlzIHJldHVy
bmVkLiAqLworICAgICNzaGFwZS1vdXRzaWRlLWFsbG93LW9yaWdpbi11cmwgeworICAgICAgICAt
d2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHA/ZmlsZT0uLi8uLi9yZXNvdXJjZXMv
c3F1YXJlMTAwLnBuZyZhbGxvdz10cnVlIik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdp
biByZXF1ZXN0IGlzIG5vdCBPSyBiZWNhdXNlIGEgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bjoiIGhlYWRlciBpcyBub3QgcmV0dXJuZWQuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGlzYWxs
b3ctb3JpZ2luLXVybCB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogdXJsKCJodHRw
Oi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9s
LnBocD9maWxlPS4uLy4uL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nJmFsbG93PWZhbHNlIik7Cisg
ICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkgdGhhdCBpbWFn
ZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBhbmQgdGhhdCBz
YW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEgIkFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5b3V0LjwvcD4K
KyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWJsb2NrLW9y
aWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxkaXYgaWQ9InNo
YXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjbGVh
ci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5YPC9kaXY+Cisg
ICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1hbGxvdy1vcmln
aW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0i
c2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3No
YXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhjMjc4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBV
bnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkv
cmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvc2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sLiBEb21haW5z
LCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KLUNPTlNPTEUgTUVTU0FHRTogVW5z
YWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jl
c291cmNlcy9zcXVhcmUxMDAucG5nIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRtbC4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotCi1WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4gYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBwcm9w
ZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yIG1lc3Nh
Z2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLgotCi1QQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVJbnNpZGUgaXMgInJlY3Rh
bmdsZSgwcHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgInJlY3RhbmdsZSgw
cHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZSBpcyAibm9uZSIKLVBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgIm5v
bmUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lk
ZS1pbWFnZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2hh
cGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxN2I4NmM1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0gICAgI3NoYXBlIHsK
LSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKLSAg
ICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoMCwgMCwgMCwgMCk7Ci0gICAg
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8cD5WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4KLSAgYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBw
cm9wZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yCi0g
IG1lc3NhZ2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLjwvcD4KLSAgPHAg
aWQ9ImNvbnNvbGUiPjwvcD4KLQotICA8ZGl2IGlkPSJzaGFwZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+
Ci0gIHZhciBzaGFwZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhcGUiKTsK
LSAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaGFwZUVs
ZW1lbnQpLndlYmtpdFNoYXBlSW5zaWRlJywgInJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAwcHgs
IDBweCwgMHB4KSIpOwotICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVPdXRzaWRlJywgInJlY3RhbmdsZSgwcHgs
IDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIpOwotCi0gIC8vIFRoZSBpbWFnZSBVUkwncyBwb3J0
IGRvZXMgbm90IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uIFdlIGV4cGVjdCBhIHBhaXIg
b2YgY29uc29sZSB3YXJuaW5ncy4KLSAgc2hhcGVFbGVtZW50LnN0eWxlLndlYmtpdFNoYXBlSW5z
aWRlID0gJ3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVh
cmUxMDAucG5nIiknOwotICBzaGFwZUVsZW1lbnQuc3R5bGUud2Via2l0U2hhcGVPdXRzaWRlID0g
J3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVhcmUxMDAu
cG5nIiknOwotCi0gIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZScsICJub25lIik7Ci0gIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJr
aXRTaGFwZU91dHNpZGUnLCAibm9uZSIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzg0N2IyOS4uOTMyOTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBA
CisyMDEzLTEwLTIzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgU2hhcGVzXSBDT1JTLWVuYWJsZWQgZmV0Y2ggZm9yIHNoYXBlIGltYWdlIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZXNzIHRv
IHNoYXBlIGltYWdlcyBpcyBub3cgY29udHJvbGxlZCBieSBDT1JTIENTUyBzaGFwZSBwZXIKKyAg
ICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNoYXBlcy8jc2hhcGUtb3V0c2lkZS1w
cm9wZXJ0eS4KKyAgICAgICAgUHJldmlvdXNseSBzaGFwZSBpbWFnZXMgaGFkIHRvIGJlIHNhbWUt
b3JpZ2luLgorCisgICAgICAgIFNoYXBlIGltYWdlIFVSTCBhY2Nlc3MgaXMgZGVmaW5lZCBieSB0
aGUgc2FtZSBsb2dpYyB0aGF0IGRlZmluZXMKKyAgICAgICAgY2FudmFzIHRhaW50aW5nOiBzYW1l
LW9yaWdpbiBhbmQgZGF0YSBVUkxzIGFyZSBhbGxvd2VkIGFuZCBpbWFnZXMKKyAgICAgICAgd2l0
aCBhICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IiBoZWFkZXIgdGhhdCdzIGVpdGhlciAi
KiIgb3IKKyAgICAgICAgdGhhdCBtYXRjaGVzIHRoZSBkb2N1bWVudCdzIG9yaWdpbi4KKworICAg
ICAgICBBIFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkIFJlcXVlc3RPcmlnaW5Qb2xpY3kg
d2FzIGFkZGVkIHRvCisgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucywgdG8gaW5kaWNhdGUg
dGhhdCBhICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2giCisgICAgICAgIHdhcyB0byBi
ZSB1bmRlcnRha2VuLiBUaGUgQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoKSBtZXRob2QgaGFu
ZGxlcyB0aGlzCisgICAgICAgIG9wdGlvbiBieSBlZmZlY3RpdmVseSBzZXR0aW5nIHRoZSAiT3Jp
Z2luOiIgcmVxdWVzdCBoZWFkZXIgKHNlZQorICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbCgpIGluIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHApLgorICAgICAgICBTdHls
ZVJlc29sdmVyOjpsb2FkUGVuZGluZ1NoYXBlSW1hZ2UoKSB1c2VzIHRoZSBuZXcgUmVzb3VyY2VM
b2FkZXJPcHRpb24uCisKKyAgICAgICAgVGhlIHN0YXRpYyBTaGFwZUluc2lkZUluZm8gYW5kIFNo
YXBlT3V0c2lkZUluZm8gaXNFbmFibGVkRm9yKCkgbWV0aG9kCisgICAgICAgIG5vdyBwZXJmb3Jt
cyB0aGUgQ09SUyBjaGVjayBmb3IgaW1hZ2UgdmFsdWVkIHNoYXBlcy4gVGhlIHByaXZhdGUKKyAg
ICAgICAgaXNPcmlnaW5DbGVhbigpIG1ldGhvZCBmcm9tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCBoYXMgYmVlbiBtb3ZlZCB0bworICAgICAgICB0aGUgQ2FjaGVkSW1hZ2UgY2xhc3Mgc28gdGhh
dCBpdCBjYW4gYmUgc2hhcmVkIGJ5IHRoZSBDYW52YXMgYW5kIFNoYXBlCisgICAgICAgIGltcGxl
bWVudGF0aW9ucy4gSXQgY2hlY2tzIHRoZSByZXNwb25zZSBoZWFkZXJzIHBlciB0aGUgQ09SUyBz
cGVjLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2UtY29y
cy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6IEhhbmRsZSB0aGUgbmV3IFJlc291cmNl
TG9hZGVyT3B0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZSk6IFNldCB0aGUg
bmV3IFJlc291cmNlTG9hZGVyT3B0aW9uLgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4pOiBVc2UgdGhlIENhY2hlZEltYWdlOjppc09yaWdpbkNs
ZWFuKCkuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oOiBBZGRlZCBQ
b3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCB0byBSZXF1ZXN0T3JpZ2luUG9saWN5LgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aXNPcmlnaW5DbGVhbik6IE1pZ3JhdGVkIGZyb20gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6
Y2hlY2tJbWFnZU9yaWdpbik6IERvIHRoZSBDT1JTIGNoZWNrIGFuZCBsb2cgYW4gZXJyb3IgbWVz
c2FnZSBpZiBuZWNjZXNzYXJ5LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IpOiBDYWxsIGNoZWNr
SW1hZ2VPcmlnaW4oKSBmb3IgaW1hZ2VzLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hh
cGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpp
c0VuYWJsZWRGb3IpOiBEaXR0by4KKwogMjAxMy0xMC0yMyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBzdHJlYW0gbW9yZSBBUk12N3MgYml0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IGI5ZGViNmMuLjZlMTRkNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCiAKKyNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDU1NDdXJzb3JJbWFnZVZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgpAQCAtNzUsNiArNzYsMTAgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2Fj
aGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICAgICAgICAg
IHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5j
c3MpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihtX2lu
aXRpYXRvck5hbWUpOworCisgICAgICAgIGlmIChvcHRpb25zLnJlcXVlc3RPcmlnaW5Qb2xpY3kg
PT0gUG90ZW50aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQpCisgICAgICAgICAgICB1cGRhdGVSZXF1
ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbG9h
ZGVyLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLmFsbG93Q3JlZGVudGlh
bHMpOworCiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2Fj
aGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1f
aW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAzYzhlNzgxLi43ZjIzZWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zOTY5LDcgKzM5NjksOCBA
QCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZShTaGFwZVZhbHVlKiBz
aGFwZVZhbHVlKQogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRl
ciA9IG1fc3RhdGUuZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCiAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGlj
eSA9IFJlc3RyaWN0VG9TYW1lT3JpZ2luOworICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGlj
eSA9IFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkOworICAgIG9wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAogICAgIHNoYXBlVmFsdWUt
PnNldEltYWdlKGNzc0ltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVy
LCBvcHRpb25zKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA3MGM4MjllLi5lOWYxZDA1IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKQEAgLTg0LDE1ICs4NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdEZv
bnRTaXplID0gMTA7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnRGYW1pbHkg
PSAic2Fucy1zZXJpZiI7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnQgPSAi
MTBweCBzYW5zLXNlcmlmIjsKIAotc3RhdGljIGJvb2wgaXNPcmlnaW5DbGVhbihDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2UsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBp
ZiAoIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGNhY2hlZEltYWdlLT5wYXNzZXNBY2Nlc3NDb250
cm9sQ2hlY2soc2VjdXJpdHlPcmlnaW4pKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1
cm4gIXNlY3VyaXR5T3JpZ2luLT50YWludHNDYW52YXMoY2FjaGVkSW1hZ2UtPnJlc3BvbnNlKCku
dXJsKCkpOwotfQotCiBjbGFzcyBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIgOiBwdWJsaWMgU3Ry
b2tlU3R5bGVBcHBsaWVyIHsKIHB1YmxpYzoKICAgICBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIo
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjYW52YXNDb250ZXh0KQpAQCAtMTcwMiw3ICsxNjkz
LDcgQEAgUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNyZWF0ZVBhdHRlcm4oSFRNTEltYWdlRWxlbWUKICAgICBpZiAoIWNhY2hlZEltYWdlIHx8ICFp
bWFnZS0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2VGb3JSZW5kZXJlcihpbWFnZS0+cmVuZGVyZXIoKSkp
CiAgICAgICAgIHJldHVybiBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoSW1hZ2U6Om51bGxJbWFnZSgp
LCByZXBlYXRYLCByZXBlYXRZLCB0cnVlKTsKIAotICAgIGJvb2wgb3JpZ2luQ2xlYW4gPSBpc09y
aWdpbkNsZWFuKGNhY2hlZEltYWdlLCBjYW52YXMoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAg
Ym9vbCBvcmlnaW5DbGVhbiA9IGNhY2hlZEltYWdlLT5pc09yaWdpbkNsZWFuKGNhbnZhcygpLT5z
ZWN1cml0eU9yaWdpbigpKTsKICAgICByZXR1cm4gQ2FudmFzUGF0dGVybjo6Y3JlYXRlKGNhY2hl
ZEltYWdlLT5pbWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKSwgcmVwZWF0WCwgcmVw
ZWF0WSwgb3JpZ2luQ2xlYW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgKaW5kZXggMGEyZjg3My4uOGUxYjc0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtNTcsNyArNTcsOCBAQCBl
bnVtIFNlY3VyaXR5Q2hlY2tQb2xpY3kgewogCiBlbnVtIFJlcXVlc3RPcmlnaW5Qb2xpY3kgewog
ICAgIFVzZURlZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlLAotICAgIFJlc3RyaWN0VG9T
YW1lT3JpZ2luCisgICAgUmVzdHJpY3RUb1NhbWVPcmlnaW4sCisgICAgUG90ZW50aWFsbHlDcm9z
c09yaWdpbkVuYWJsZWQgLy8gSW5kaWNhdGVzICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0
Y2giIGluIEhUTUwgc3RhbmRhcmQuCiB9OwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDky
N2RjZjMuLmRiYjZkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VicmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3Myw0ICs1
NzQsMTMgQEAgdm9pZCBDYWNoZWRJbWFnZTo6dXNlRGlza0ltYWdlQ2FjaGUoKQogfQogI2VuZGlm
CiAKK2Jvb2wgQ2FjaGVkSW1hZ2U6OmlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luKQoreworICAgIGlmICghaW1hZ2UoKS0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4o
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXNzZXNBY2Nlc3NDb250cm9sQ2hl
Y2soc2VjdXJpdHlPcmlnaW4pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIXNl
Y3VyaXR5T3JpZ2luLT50YWludHNDYW52YXMocmVzcG9uc2UoKS51cmwoKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmgKaW5kZXggM2MxNjU5OS4uN2IzODhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xhc3Mg
TWVtb3J5Q2FjaGU7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyT2JqZWN0Owor
Y2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIHN0cnVjdCBMZW5ndGg7CiAKQEAgLTg0LDYgKzg1LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1c2VEaXNrSW1hZ2VDYWNoZSgpIE9WRVJSSURF
OwogI2VuZGlmCiAKKyAgICBib29sIGlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qKTsKKwog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNv
bnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKaW5kZXggYzc3Y2QxYy4uZGVjNTNjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAt
MzksNiArMzksMjIgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3RlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGU+Citib29sIFNoYXBlSW5mbzxSZW5kZXJUeXBl
Pjo6Y2hlY2tJbWFnZU9yaWdpbihjb25zdCBSZW5kZXJUeXBlKiByZW5kZXJlciwgY29uc3QgU3R5
bGVJbWFnZSogc3R5bGVJbWFnZSkKK3sKKyAgICBBU1NFUlQoc3R5bGVJbWFnZSAmJiBzdHlsZUlt
YWdlLT5pc0NhY2hlZEltYWdlKCkgJiYgc3R5bGVJbWFnZS0+Y2FjaGVkSW1hZ2UoKSAmJiBzdHls
ZUltYWdlLT5jYWNoZWRJbWFnZSgpLT5pbWFnZSgpKTsKKworICAgIGJvb2wgb3JpZ2luQ2xlYW4g
PSBzdHlsZUltYWdlLT5jYWNoZWRJbWFnZSgpLT5pc09yaWdpbkNsZWFuKHJlbmRlcmVyLT5kb2N1
bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGlmICghb3JpZ2luQ2xlYW4pIHsKKyAgICAg
ICAgY29uc3QgVVJMJiB1cmwgPSBzdHlsZUltYWdlLT5jYWNoZWRJbWFnZSgpLT51cmwoKTsKKyAg
ICAgICAgU3RyaW5nIHVybFN0cmluZyA9IHVybC5pc051bGwoKSA/ICInJyIgOiB1cmwuc3RyaW5n
Q2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCk7CisgICAgICAgIHJlbmRlcmVyLT5kb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsICJVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiICsgdXJsU3RyaW5nICsgIi4iKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gb3JpZ2luQ2xlYW47Cit9CisK
IHRlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGU+CiBjb25zdCBTaGFwZSogU2hhcGVJbmZvPFJlbmRl
clR5cGU+Ojpjb21wdXRlZFNoYXBlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5mby5oCmluZGV4IDAzZTk4YjAuLjNhNWE0MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtMTA5LDYgKzEwOSw4IEBA
IHByb3RlY3RlZDoKICAgICBTaGFwZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpOiBt
X3JlbmRlcmVyKHJlbmRlcmVyKSB7IH0KIAogICAgIGNvbnN0IFNoYXBlKiBjb21wdXRlZFNoYXBl
KCkgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgY2hlY2tJbWFnZU9yaWdpbihjb25zdCBSZW5kZXJU
eXBlKiByZW5kZXJlciwgY29uc3QgU3R5bGVJbWFnZSopOworCiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBTaGFwZVZhbHVlKiBzaGFwZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBnZXRJbnRlcnZhbHMoTGF5b3V0VW5pdCwgTGF5b3V0VW5pdCwgU2VnbWVudExpc3QmKSBjb25z
dCA9IDA7CkBAIC0xMjUsNiArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIE93blB0cjxT
aGFwZT4gbV9zaGFwZTsKICAgICBMYXlvdXRTaXplIG1fc2hhcGVMb2dpY2FsU2l6ZTsKIH07CisK
IH0KICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlSW5zaWRlSW5mby5jcHAKaW5kZXggZTU1MmFlOS4uNWI2Y2UzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcApA
QCAtNTMsNyArNTMsNyBAQCBib29sIFNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVkRm9yKGNvbnN0
IFJlbmRlckJsb2NrKiByZW5kZXJlcikKICAgICBjYXNlIFNoYXBlVmFsdWU6OlNoYXBlOgogICAg
ICAgICByZXR1cm4gc2hhcGVWYWx1ZS0+c2hhcGUoKSAmJiBzaGFwZVZhbHVlLT5zaGFwZSgpLT50
eXBlKCkgIT0gQmFzaWNTaGFwZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlVHlwZTsKICAgICBj
YXNlIFNoYXBlVmFsdWU6OkltYWdlOgotICAgICAgICByZXR1cm4gc2hhcGVWYWx1ZS0+aXNJbWFn
ZVZhbGlkKCk7CisgICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5pc0ltYWdlVmFsaWQoKSAmJiBj
aGVja0ltYWdlT3JpZ2luKHJlbmRlcmVyLCBzaGFwZVZhbHVlLT5pbWFnZSgpKTsKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggMTc4Yjk2OC4u
MmY2OWQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZU91dHNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlT3V0c2lkZUluZm8uY3BwCkBAIC00OCw3ICs0OCw3IEBAIGJvb2wgU2hhcGVPdXRzaWRlSW5m
bzo6aXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJveCogYm94KQogICAgIGNhc2UgU2hhcGVWYWx1
ZTo6U2hhcGU6CiAgICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5zaGFwZSgpOwogICAgIGNhc2Ug
U2hhcGVWYWx1ZTo6SW1hZ2U6Ci0gICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5pc0ltYWdlVmFs
aWQoKTsKKyAgICAgICAgcmV0dXJuIHNoYXBlVmFsdWUtPmlzSW1hZ2VWYWxpZCgpICYmIGNoZWNr
SW1hZ2VPcmlnaW4oYm94LCBzaGFwZVZhbHVlLT5pbWFnZSgpKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214977</attachid>
            <date>2013-10-23 11:51:50 -0700</date>
            <delta_ts>2013-10-25 10:18:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>20423</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWZhNjk5Li5kZTgxN2NiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAt
MjMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFw
ZXNdIENPUlMtZW5hYmxlZCBmZXRjaCBmb3Igc2hhcGUgaW1hZ2UgdmFsdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJpZnkgdGhhdCBpbWFnZXMg
bm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dAorICAgICAgICBhbmQg
dGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEKKyAg
ICAgICAgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0
aGUgbGF5b3V0LgorICAgICAgICBBZGRlZCBhIHNpbXBsZSBQSFAgc2NyaXB0IHRoYXQgb3B0aW9u
YWxseSBhZGRzIHRoZSBhbGxvdyBvcmlnaW4gaGVhZGVyLgorCisgICAgICAgIFJlcGxhY2VkIGFu
ZCByZW5hbWVkIHRoZSBvcmlnaW5hbCBzaGFwZSBzYW1lLW9yaWdpbi1vbmx5IHRlc3QuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJv
bC5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2Ut
Y29ycy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3NoYXBlLWltYWdlLWNvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRt
bDogUmVtb3ZlZC4KKwogMjAxMy0xMC0yMyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9u
LWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sIGhhcyBpbWFnZSBmYWlsdXJlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFn
ZS1hY2Nlc3MtY29udHJvbC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjc5MTlkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9sLnBocApAQCAtMCww
ICsxLDE0IEBACis8P3BocAorJGFsbG93T3JpZ2luID0gJF9HRVRbJ2FsbG93J107CitpZiAoJGFs
bG93T3JpZ2luID09ICJ0cnVlIikgeworICAgIGhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luOiAqIik7Cit9CisKKyRmaWxlID0gJF9HRVRbJ2ZpbGUnXTsKKyRmcCA9IGZvcGVuKCRm
aWxlLCAncmInKTsKK2hlYWRlcigiQ29udGVudC1UeXBlOiBpbWFnZS9wbmciKTsKK2hlYWRlcigi
Q29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOworCitmcGFzc3RocnUoJGZwKTsK
K2V4aXQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
aGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NoYXBlLWltYWdlLWNvcnMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMTljM2YwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAg
ICNjbGVhci1sZWZ0IHsKKyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgv
MSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAg
I2NsZWFyLWxlZnQgPiBkaXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgaGVpZ2h0
OiAyMHB4OworICAgIH0KKworICAgICNzaGFwZS1vdXRzaWRlLWJsb2NrLW9yaWdpbiB7CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1zYW1lLW9yaWdp
biB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1k
YXRhLXVybCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0
c2lkZS1hbGxvdy1vcmlnaW4tdXJsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgIH0KKwor
ICAgICNzaGFwZS1vdXRzaWRlLWRpc2FsbG93LW9yaWdpbi11cmwgeworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkg
dGhhdCBpbWFnZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBh
bmQgdGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEg
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5
b3V0LjwvcD4KKyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRl
LWJsb2NrLW9yaWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxk
aXYgaWQ9InNoYXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5Y
PC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1h
bGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+
PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NoYXBlLWltYWdlLWNvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jNjUwNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNjbGVhci1sZWZ0IHsK
KyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgvMSBBaGVtLCBzYW5zLXNl
cmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI2NsZWFyLWxlZnQgPiBk
aXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICBoZWlnaHQ6IDIwcHg7CisgICAgfQorCisgICAgLyogYmxvY2tlZCBiZWNhdXNlIHRoZSBVUkwn
cyBwb3J0IG51bWJlciBkb2Vzbid0IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uICovCisg
ICAgI3NoYXBlLW91dHNpZGUtYmxvY2stb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1v
dXRzaWRlOiB1cmwoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9yZXNvdXJjZXMvc3F1YXJlMTAwLnBu
ZyIpOworICAgIH0gCisKKyAgICAvKiBBY2Nlc3MgaXMgT0sgYmVjYXVzZSB0aGUgVVJMIGFuZCB0
aGlzIGRvY3VtZW50IGhhdmUgdGhlIHNhbWUgb3JpZ2luLiAqLworICAgICNzaGFwZS1vdXRzaWRl
LXNhbWUtb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoIi9yZXNv
dXJjZXMvc3F1YXJlMTAwLnBuZyIpOworICAgIH0gCisKKyAgICAvKiBEYXRhVVJMIEFjY2VzcyBp
cyBPSywgYXMgaXQgaXMgd2l0aCBDYW52YXMuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGF0YS11
cmwgeworICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiZGF0YTppbWFnZS9zdmcr
eG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScx
MDBweCcgaGVpZ2h0PScyMHB4Jz48cmVjdCB3aWR0aD0nMjAwJyBoZWlnaHQ9JzIwJyBmaWxsPSdi
bHVlJy8+PC9zdmc+Iik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdpbiByZXF1ZXN0IGlz
IE9LIGJlY2F1c2UgdGhlICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoiIGlzIHJldHVy
bmVkLiAqLworICAgICNzaGFwZS1vdXRzaWRlLWFsbG93LW9yaWdpbi11cmwgeworICAgICAgICAt
d2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHA/ZmlsZT0uLi8uLi9yZXNvdXJjZXMv
c3F1YXJlMTAwLnBuZyZhbGxvdz10cnVlIik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdp
biByZXF1ZXN0IGlzIG5vdCBPSyBiZWNhdXNlIGEgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bjoiIGhlYWRlciBpcyBub3QgcmV0dXJuZWQuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGlzYWxs
b3ctb3JpZ2luLXVybCB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogdXJsKCJodHRw
Oi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9s
LnBocD9maWxlPS4uLy4uL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nJmFsbG93PWZhbHNlIik7Cisg
ICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkgdGhhdCBpbWFn
ZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBhbmQgdGhhdCBz
YW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEgIkFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5b3V0LjwvcD4K
KyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWJsb2NrLW9y
aWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxkaXYgaWQ9InNo
YXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjbGVh
ci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5YPC9kaXY+Cisg
ICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1hbGxvdy1vcmln
aW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0i
c2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3No
YXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhjMjc4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBV
bnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkv
cmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvc2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sLiBEb21haW5z
LCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KLUNPTlNPTEUgTUVTU0FHRTogVW5z
YWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jl
c291cmNlcy9zcXVhcmUxMDAucG5nIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRtbC4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotCi1WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4gYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBwcm9w
ZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yIG1lc3Nh
Z2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLgotCi1QQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVJbnNpZGUgaXMgInJlY3Rh
bmdsZSgwcHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgInJlY3RhbmdsZSgw
cHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZSBpcyAibm9uZSIKLVBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgIm5v
bmUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lk
ZS1pbWFnZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2hh
cGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxN2I4NmM1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0gICAgI3NoYXBlIHsK
LSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKLSAg
ICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoMCwgMCwgMCwgMCk7Ci0gICAg
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8cD5WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4KLSAgYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBw
cm9wZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yCi0g
IG1lc3NhZ2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLjwvcD4KLSAgPHAg
aWQ9ImNvbnNvbGUiPjwvcD4KLQotICA8ZGl2IGlkPSJzaGFwZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+
Ci0gIHZhciBzaGFwZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhcGUiKTsK
LSAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaGFwZUVs
ZW1lbnQpLndlYmtpdFNoYXBlSW5zaWRlJywgInJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAwcHgs
IDBweCwgMHB4KSIpOwotICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVPdXRzaWRlJywgInJlY3RhbmdsZSgwcHgs
IDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIpOwotCi0gIC8vIFRoZSBpbWFnZSBVUkwncyBwb3J0
IGRvZXMgbm90IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uIFdlIGV4cGVjdCBhIHBhaXIg
b2YgY29uc29sZSB3YXJuaW5ncy4KLSAgc2hhcGVFbGVtZW50LnN0eWxlLndlYmtpdFNoYXBlSW5z
aWRlID0gJ3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVh
cmUxMDAucG5nIiknOwotICBzaGFwZUVsZW1lbnQuc3R5bGUud2Via2l0U2hhcGVPdXRzaWRlID0g
J3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVhcmUxMDAu
cG5nIiknOwotCi0gIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZScsICJub25lIik7Ci0gIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJr
aXRTaGFwZU91dHNpZGUnLCAibm9uZSIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzg0N2IyOS4uOTMyOTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBA
CisyMDEzLTEwLTIzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgU2hhcGVzXSBDT1JTLWVuYWJsZWQgZmV0Y2ggZm9yIHNoYXBlIGltYWdlIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZXNzIHRv
IHNoYXBlIGltYWdlcyBpcyBub3cgY29udHJvbGxlZCBieSBDT1JTIENTUyBzaGFwZSBwZXIKKyAg
ICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNoYXBlcy8jc2hhcGUtb3V0c2lkZS1w
cm9wZXJ0eS4KKyAgICAgICAgUHJldmlvdXNseSBzaGFwZSBpbWFnZXMgaGFkIHRvIGJlIHNhbWUt
b3JpZ2luLgorCisgICAgICAgIFNoYXBlIGltYWdlIFVSTCBhY2Nlc3MgaXMgZGVmaW5lZCBieSB0
aGUgc2FtZSBsb2dpYyB0aGF0IGRlZmluZXMKKyAgICAgICAgY2FudmFzIHRhaW50aW5nOiBzYW1l
LW9yaWdpbiBhbmQgZGF0YSBVUkxzIGFyZSBhbGxvd2VkIGFuZCBpbWFnZXMKKyAgICAgICAgd2l0
aCBhICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IiBoZWFkZXIgdGhhdCdzIGVpdGhlciAi
KiIgb3IKKyAgICAgICAgdGhhdCBtYXRjaGVzIHRoZSBkb2N1bWVudCdzIG9yaWdpbi4KKworICAg
ICAgICBBIFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkIFJlcXVlc3RPcmlnaW5Qb2xpY3kg
d2FzIGFkZGVkIHRvCisgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucywgdG8gaW5kaWNhdGUg
dGhhdCBhICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2giCisgICAgICAgIHdhcyB0byBi
ZSB1bmRlcnRha2VuLiBUaGUgQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoKSBtZXRob2QgaGFu
ZGxlcyB0aGlzCisgICAgICAgIG9wdGlvbiBieSBlZmZlY3RpdmVseSBzZXR0aW5nIHRoZSAiT3Jp
Z2luOiIgcmVxdWVzdCBoZWFkZXIgKHNlZQorICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbCgpIGluIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHApLgorICAgICAgICBTdHls
ZVJlc29sdmVyOjpsb2FkUGVuZGluZ1NoYXBlSW1hZ2UoKSB1c2VzIHRoZSBuZXcgUmVzb3VyY2VM
b2FkZXJPcHRpb24uCisKKyAgICAgICAgVGhlIHN0YXRpYyBTaGFwZUluc2lkZUluZm8gYW5kIFNo
YXBlT3V0c2lkZUluZm8gaXNFbmFibGVkRm9yKCkgbWV0aG9kCisgICAgICAgIG5vdyBwZXJmb3Jt
cyB0aGUgQ09SUyBjaGVjayBmb3IgaW1hZ2UgdmFsdWVkIHNoYXBlcy4gVGhlIHByaXZhdGUKKyAg
ICAgICAgaXNPcmlnaW5DbGVhbigpIG1ldGhvZCBmcm9tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCBoYXMgYmVlbiBtb3ZlZCB0bworICAgICAgICB0aGUgQ2FjaGVkSW1hZ2UgY2xhc3Mgc28gdGhh
dCBpdCBjYW4gYmUgc2hhcmVkIGJ5IHRoZSBDYW52YXMgYW5kIFNoYXBlCisgICAgICAgIGltcGxl
bWVudGF0aW9ucy4gSXQgY2hlY2tzIHRoZSByZXNwb25zZSBoZWFkZXJzIHBlciB0aGUgQ09SUyBz
cGVjLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2UtY29y
cy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6IEhhbmRsZSB0aGUgbmV3IFJlc291cmNl
TG9hZGVyT3B0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZSk6IFNldCB0aGUg
bmV3IFJlc291cmNlTG9hZGVyT3B0aW9uLgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4pOiBVc2UgdGhlIENhY2hlZEltYWdlOjppc09yaWdpbkNs
ZWFuKCkuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oOiBBZGRlZCBQ
b3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCB0byBSZXF1ZXN0T3JpZ2luUG9saWN5LgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aXNPcmlnaW5DbGVhbik6IE1pZ3JhdGVkIGZyb20gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6
Y2hlY2tJbWFnZU9yaWdpbik6IERvIHRoZSBDT1JTIGNoZWNrIGFuZCBsb2cgYW4gZXJyb3IgbWVz
c2FnZSBpZiBuZWNjZXNzYXJ5LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IpOiBDYWxsIGNoZWNr
SW1hZ2VPcmlnaW4oKSBmb3IgaW1hZ2VzLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hh
cGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpp
c0VuYWJsZWRGb3IpOiBEaXR0by4KKwogMjAxMy0xMC0yMyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBzdHJlYW0gbW9yZSBBUk12N3MgYml0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IGI5ZGViNmMuLjdlYjZjNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKyNp
bmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNzUs
NiArNzYsMTAgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Uo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICAgICAgICAgIHJlcXVlc3Qu
c2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihtX2luaXRpYXRvck5h
bWUpOworCisgICAgICAgIGlmIChvcHRpb25zLnJlcXVlc3RPcmlnaW5Qb2xpY3kgPT0gUG90ZW50
aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQpCisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNj
ZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbG9hZGVyLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOworCiAg
ICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2Ug
PSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBT
dHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAzYzhlNzgxLi43ZjIzZWQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zOTY5LDcgKzM5NjksOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZShTaGFwZVZhbHVlKiBzaGFwZVZhbHVl
KQogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fc3Rh
dGUuZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCiAgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGljeSA9IFJlc3Ry
aWN0VG9TYW1lT3JpZ2luOworICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGljeSA9IFBvdGVu
dGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkOworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAogICAgIHNoYXBlVmFsdWUtPnNldEltYWdl
KGNzc0ltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyLCBvcHRpb25z
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA3MGM4MjllLi5lOWYxZDA1IDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKQEAgLTg0LDE1ICs4NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdEZvbnRTaXplID0g
MTA7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnRGYW1pbHkgPSAic2Fucy1z
ZXJpZiI7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnQgPSAiMTBweCBzYW5z
LXNlcmlmIjsKIAotc3RhdGljIGJvb2wgaXNPcmlnaW5DbGVhbihDYWNoZWRJbWFnZSogY2FjaGVk
SW1hZ2UsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBpZiAoIWNhY2hl
ZEltYWdlLT5pbWFnZSgpLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKGNhY2hlZEltYWdlLT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2so
c2VjdXJpdHlPcmlnaW4pKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gIXNlY3Vy
aXR5T3JpZ2luLT50YWludHNDYW52YXMoY2FjaGVkSW1hZ2UtPnJlc3BvbnNlKCkudXJsKCkpOwot
fQotCiBjbGFzcyBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIgOiBwdWJsaWMgU3Ryb2tlU3R5bGVB
cHBsaWVyIHsKIHB1YmxpYzoKICAgICBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIoQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEKiBjYW52YXNDb250ZXh0KQpAQCAtMTcwMiw3ICsxNjkzLDcgQEAgUGFz
c1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBh
dHRlcm4oSFRNTEltYWdlRWxlbWUKICAgICBpZiAoIWNhY2hlZEltYWdlIHx8ICFpbWFnZS0+Y2Fj
aGVkSW1hZ2UoKS0+aW1hZ2VGb3JSZW5kZXJlcihpbWFnZS0+cmVuZGVyZXIoKSkpCiAgICAgICAg
IHJldHVybiBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoSW1hZ2U6Om51bGxJbWFnZSgpLCByZXBlYXRY
LCByZXBlYXRZLCB0cnVlKTsKIAotICAgIGJvb2wgb3JpZ2luQ2xlYW4gPSBpc09yaWdpbkNsZWFu
KGNhY2hlZEltYWdlLCBjYW52YXMoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgYm9vbCBvcmln
aW5DbGVhbiA9IGNhY2hlZEltYWdlLT5pc09yaWdpbkNsZWFuKGNhbnZhcygpLT5zZWN1cml0eU9y
aWdpbigpKTsKICAgICByZXR1cm4gQ2FudmFzUGF0dGVybjo6Y3JlYXRlKGNhY2hlZEltYWdlLT5p
bWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKSwgcmVwZWF0WCwgcmVwZWF0WSwgb3Jp
Z2luQ2xlYW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmgKaW5kZXggMGEyZjg3My4uOGUxYjc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtNTcsNyArNTcsOCBAQCBlbnVtIFNlY3Vy
aXR5Q2hlY2tQb2xpY3kgewogCiBlbnVtIFJlcXVlc3RPcmlnaW5Qb2xpY3kgewogICAgIFVzZURl
ZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlLAotICAgIFJlc3RyaWN0VG9TYW1lT3JpZ2lu
CisgICAgUmVzdHJpY3RUb1NhbWVPcmlnaW4sCisgICAgUG90ZW50aWFsbHlDcm9zc09yaWdpbkVu
YWJsZWQgLy8gSW5kaWNhdGVzICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2giIGluIEhU
TUwgc3RhbmRhcmQuCiB9OwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDkyN2RjZjMuLmRi
YjZkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3Myw0ICs1NzQsMTMgQEAg
dm9pZCBDYWNoZWRJbWFnZTo6dXNlRGlza0ltYWdlQ2FjaGUoKQogfQogI2VuZGlmCiAKK2Jvb2wg
Q2FjaGVkSW1hZ2U6OmlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
KQoreworICAgIGlmICghaW1hZ2UoKS0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soc2VjdXJp
dHlPcmlnaW4pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIXNlY3VyaXR5T3Jp
Z2luLT50YWludHNDYW52YXMocmVzcG9uc2UoKS51cmwoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXgg
M2MxNjU5OS4uN2IzODhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTWVtb3J5Q2Fj
aGU7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CiAKIHN0cnVjdCBMZW5ndGg7CiAKQEAgLTg0LDYgKzg1LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB1c2VEaXNrSW1hZ2VDYWNoZSgpIE9WRVJSSURFOwogI2VuZGlm
CiAKKyAgICBib29sIGlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qKTsKKwogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKaW5kZXggYzc3Y2QxYy4uZGVjNTNjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtMzksNiArMzks
MjIgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBs
YXRlPGNsYXNzIFJlbmRlclR5cGU+Citib29sIFNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y2hlY2tJ
bWFnZU9yaWdpbihjb25zdCBSZW5kZXJUeXBlKiByZW5kZXJlciwgY29uc3QgU3R5bGVJbWFnZSog
c3R5bGVJbWFnZSkKK3sKKyAgICBBU1NFUlQoc3R5bGVJbWFnZSAmJiBzdHlsZUltYWdlLT5pc0Nh
Y2hlZEltYWdlKCkgJiYgc3R5bGVJbWFnZS0+Y2FjaGVkSW1hZ2UoKSAmJiBzdHlsZUltYWdlLT5j
YWNoZWRJbWFnZSgpLT5pbWFnZSgpKTsKKworICAgIGJvb2wgb3JpZ2luQ2xlYW4gPSBzdHlsZUlt
YWdlLT5jYWNoZWRJbWFnZSgpLT5pc09yaWdpbkNsZWFuKHJlbmRlcmVyLT5kb2N1bWVudCgpLnNl
Y3VyaXR5T3JpZ2luKCkpOworICAgIGlmICghb3JpZ2luQ2xlYW4pIHsKKyAgICAgICAgY29uc3Qg
VVJMJiB1cmwgPSBzdHlsZUltYWdlLT5jYWNoZWRJbWFnZSgpLT51cmwoKTsKKyAgICAgICAgU3Ry
aW5nIHVybFN0cmluZyA9IHVybC5pc051bGwoKSA/ICInJyIgOiB1cmwuc3RyaW5nQ2VudGVyRWxs
aXBzaXplZFRvTGVuZ3RoKCk7CisgICAgICAgIHJlbmRlcmVyLT5kb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJVbnNh
ZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCAiICsgdXJsU3RyaW5nICsgIi4iKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gb3JpZ2luQ2xlYW47Cit9CisKIHRlbXBsYXRl
PGNsYXNzIFJlbmRlclR5cGU+CiBjb25zdCBTaGFwZSogU2hhcGVJbmZvPFJlbmRlclR5cGU+Ojpj
b21wdXRlZFNoYXBlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5mby5oCmluZGV4IDAzZTk4YjAuLjNhNWE0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtMTA5LDYgKzEwOSw4IEBAIHByb3RlY3Rl
ZDoKICAgICBTaGFwZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpOiBtX3JlbmRlcmVy
KHJlbmRlcmVyKSB7IH0KIAogICAgIGNvbnN0IFNoYXBlKiBjb21wdXRlZFNoYXBlKCkgY29uc3Q7
CisgICAgc3RhdGljIGJvb2wgY2hlY2tJbWFnZU9yaWdpbihjb25zdCBSZW5kZXJUeXBlKiByZW5k
ZXJlciwgY29uc3QgU3R5bGVJbWFnZSopOworCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1
dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTaGFw
ZVZhbHVlKiBzaGFwZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRl
cnZhbHMoTGF5b3V0VW5pdCwgTGF5b3V0VW5pdCwgU2VnbWVudExpc3QmKSBjb25zdCA9IDA7CkBA
IC0xMjUsNiArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIE93blB0cjxTaGFwZT4gbV9z
aGFwZTsKICAgICBMYXlvdXRTaXplIG1fc2hhcGVMb2dpY2FsU2l6ZTsKIH07CisKIH0KICNlbmRp
ZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
SW5zaWRlSW5mby5jcHAKaW5kZXggZTU1MmFlOS4uNWI2Y2UzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtNTMsNyAr
NTMsNyBAQCBib29sIFNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJs
b2NrKiByZW5kZXJlcikKICAgICBjYXNlIFNoYXBlVmFsdWU6OlNoYXBlOgogICAgICAgICByZXR1
cm4gc2hhcGVWYWx1ZS0+c2hhcGUoKSAmJiBzaGFwZVZhbHVlLT5zaGFwZSgpLT50eXBlKCkgIT0g
QmFzaWNTaGFwZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlVHlwZTsKICAgICBjYXNlIFNoYXBl
VmFsdWU6OkltYWdlOgotICAgICAgICByZXR1cm4gc2hhcGVWYWx1ZS0+aXNJbWFnZVZhbGlkKCk7
CisgICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5pc0ltYWdlVmFsaWQoKSAmJiBjaGVja0ltYWdl
T3JpZ2luKHJlbmRlcmVyLCBzaGFwZVZhbHVlLT5pbWFnZSgpKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggMTc4Yjk2OC4uMmY2OWQxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lk
ZUluZm8uY3BwCkBAIC00OCw3ICs0OCw3IEBAIGJvb2wgU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFi
bGVkRm9yKGNvbnN0IFJlbmRlckJveCogYm94KQogICAgIGNhc2UgU2hhcGVWYWx1ZTo6U2hhcGU6
CiAgICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5zaGFwZSgpOwogICAgIGNhc2UgU2hhcGVWYWx1
ZTo6SW1hZ2U6Ci0gICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5pc0ltYWdlVmFsaWQoKTsKKyAg
ICAgICAgcmV0dXJuIHNoYXBlVmFsdWUtPmlzSW1hZ2VWYWxpZCgpICYmIGNoZWNrSW1hZ2VPcmln
aW4oYm94LCBzaGFwZVZhbHVlLT5pbWFnZSgpKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQo=
</data>
<flag name="review"
          id="237610"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215188</attachid>
            <date>2013-10-25 10:18:13 -0700</date>
            <delta_ts>2013-10-25 13:34:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>20170</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWZhNjk5Li5kZTgxN2NiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAt
MjMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFw
ZXNdIENPUlMtZW5hYmxlZCBmZXRjaCBmb3Igc2hhcGUgaW1hZ2UgdmFsdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJpZnkgdGhhdCBpbWFnZXMg
bm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dAorICAgICAgICBhbmQg
dGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEKKyAg
ICAgICAgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0
aGUgbGF5b3V0LgorICAgICAgICBBZGRlZCBhIHNpbXBsZSBQSFAgc2NyaXB0IHRoYXQgb3B0aW9u
YWxseSBhZGRzIHRoZSBhbGxvdyBvcmlnaW4gaGVhZGVyLgorCisgICAgICAgIFJlcGxhY2VkIGFu
ZCByZW5hbWVkIHRoZSBvcmlnaW5hbCBzaGFwZSBzYW1lLW9yaWdpbi1vbmx5IHRlc3QuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJv
bC5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2Ut
Y29ycy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3NoYXBlLWltYWdlLWNvcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRt
bDogUmVtb3ZlZC4KKwogMjAxMy0xMC0yMyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIGNvbXBvc2l0aW5nL3JlZ2lvbnMvcmVnaW9u
LWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sIGhhcyBpbWFnZSBmYWlsdXJlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9pbWFn
ZS1hY2Nlc3MtY29udHJvbC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjc5MTlkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9sLnBocApAQCAtMCww
ICsxLDE0IEBACis8P3BocAorJGFsbG93T3JpZ2luID0gJF9HRVRbJ2FsbG93J107CitpZiAoJGFs
bG93T3JpZ2luID09ICJ0cnVlIikgeworICAgIGhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luOiAqIik7Cit9CisKKyRmaWxlID0gJF9HRVRbJ2ZpbGUnXTsKKyRmcCA9IGZvcGVuKCRm
aWxlLCAncmInKTsKK2hlYWRlcigiQ29udGVudC1UeXBlOiBpbWFnZS9wbmciKTsKK2hlYWRlcigi
Q29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOworCitmcGFzc3RocnUoJGZwKTsK
K2V4aXQ7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
aGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NoYXBlLWltYWdlLWNvcnMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kMTljM2YwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAg
ICNjbGVhci1sZWZ0IHsKKyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgv
MSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAg
I2NsZWFyLWxlZnQgPiBkaXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgaGVpZ2h0
OiAyMHB4OworICAgIH0KKworICAgICNzaGFwZS1vdXRzaWRlLWJsb2NrLW9yaWdpbiB7CisgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1zYW1lLW9yaWdp
biB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0c2lkZS1k
YXRhLXVybCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICB9CisKKyAgICAjc2hhcGUtb3V0
c2lkZS1hbGxvdy1vcmlnaW4tdXJsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgIH0KKwor
ICAgICNzaGFwZS1vdXRzaWRlLWRpc2FsbG93LW9yaWdpbi11cmwgeworICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkg
dGhhdCBpbWFnZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBh
bmQgdGhhdCBzYW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEg
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5
b3V0LjwvcD4KKyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRl
LWJsb2NrLW9yaWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxk
aXYgaWQ9InNoYXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5Y
PC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1h
bGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+
PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NoYXBlLWltYWdlLWNvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jNjUwNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbWFnZS1jb3JzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNjbGVhci1sZWZ0IHsK
KyAgICAgICAgY2xlYXI6IGxlZnQ7CisgICAgICAgIGZvbnQ6IDIwcHgvMSBBaGVtLCBzYW5zLXNl
cmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgfQorCisgICAgI2NsZWFyLWxlZnQgPiBk
aXYgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICBoZWlnaHQ6IDIwcHg7CisgICAgfQorCisgICAgLyogYmxvY2tlZCBiZWNhdXNlIHRoZSBVUkwn
cyBwb3J0IG51bWJlciBkb2Vzbid0IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uICovCisg
ICAgI3NoYXBlLW91dHNpZGUtYmxvY2stb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1v
dXRzaWRlOiB1cmwoImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9yZXNvdXJjZXMvc3F1YXJlMTAwLnBu
ZyIpOworICAgIH0gCisKKyAgICAvKiBBY2Nlc3MgaXMgT0sgYmVjYXVzZSB0aGUgVVJMIGFuZCB0
aGlzIGRvY3VtZW50IGhhdmUgdGhlIHNhbWUgb3JpZ2luLiAqLworICAgICNzaGFwZS1vdXRzaWRl
LXNhbWUtb3JpZ2luIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiB1cmwoIi9yZXNv
dXJjZXMvc3F1YXJlMTAwLnBuZyIpOworICAgIH0gCisKKyAgICAvKiBEYXRhVVJMIEFjY2VzcyBp
cyBPSywgYXMgaXQgaXMgd2l0aCBDYW52YXMuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGF0YS11
cmwgeworICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiZGF0YTppbWFnZS9zdmcr
eG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScx
MDBweCcgaGVpZ2h0PScyMHB4Jz48cmVjdCB3aWR0aD0nMjAwJyBoZWlnaHQ9JzIwJyBmaWxsPSdi
bHVlJy8+PC9zdmc+Iik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdpbiByZXF1ZXN0IGlz
IE9LIGJlY2F1c2UgdGhlICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoiIGlzIHJldHVy
bmVkLiAqLworICAgICNzaGFwZS1vdXRzaWRlLWFsbG93LW9yaWdpbi11cmwgeworICAgICAgICAt
d2Via2l0LXNoYXBlLW91dHNpZGU6IHVybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9pbWFnZS1hY2Nlc3MtY29udHJvbC5waHA/ZmlsZT0uLi8uLi9yZXNvdXJjZXMv
c3F1YXJlMTAwLnBuZyZhbGxvdz10cnVlIik7CisgICAgfSAKKworICAgIC8qIENyb3NzLW9yaWdp
biByZXF1ZXN0IGlzIG5vdCBPSyBiZWNhdXNlIGEgIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bjoiIGhlYWRlciBpcyBub3QgcmV0dXJuZWQuICovCisgICAgI3NoYXBlLW91dHNpZGUtZGlzYWxs
b3ctb3JpZ2luLXVybCB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogdXJsKCJodHRw
Oi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2ltYWdlLWFjY2Vzcy1jb250cm9s
LnBocD9maWxlPS4uLy4uL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nJmFsbG93PWZhbHNlIik7Cisg
ICAgfSAKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5WZXJpZnkgdGhhdCBpbWFn
ZXMgbm90IGFsbG93ZWQgYnkgQ09SUyBkb24ndCBhZmZlY3QgdGhlIGxheW91dCBhbmQgdGhhdCBz
YW1lLW9yaWdpbiBpbWFnZXMsIGRhdGEgVVJMcywgYW5kIGltYWdlcyB3aXRoIGEgIkFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbjogKiIgaGVhZGVyIGRvIGRlZmluZSB0aGUgbGF5b3V0LjwvcD4K
KyAgICA8ZGl2IGlkPSJjbGVhci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWJsb2NrLW9y
aWdpbiI+PC9kaXY+WDwvZGl2PgorICAgIDxkaXYgaWQ9ImNsZWFyLWxlZnQiPjxkaXYgaWQ9InNo
YXBlLW91dHNpZGUtc2FtZS1vcmlnaW4iPjwvZGl2Plg8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjbGVh
ci1sZWZ0Ij48ZGl2IGlkPSJzaGFwZS1vdXRzaWRlLWRhdGEtdXJsIj48L2Rpdj5YPC9kaXY+Cisg
ICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0ic2hhcGUtb3V0c2lkZS1hbGxvdy1vcmln
aW4tdXJsIj48L2Rpdj5YPC9kaXY+CisgICAgPGRpdiBpZD0iY2xlYXItbGVmdCI+PGRpdiBpZD0i
c2hhcGUtb3V0c2lkZS1kaXNhbGxvdy1vcmlnaW4tdXJsIj48L2Rpdj5YPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3No
YXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zaGFwZS1pbnNpZGUtaW1hZ2Utb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhjMjc4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBV
bnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwOi8vbG9jYWxob3N0OjgwODAvc2VjdXJpdHkv
cmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvc2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sLiBEb21haW5z
LCBwcm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guCi0KLUNPTlNPTEUgTUVTU0FHRTogVW5z
YWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jl
c291cmNlcy9zcXVhcmUxMDAucG5nIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L3NoYXBlLWluc2lkZS1pbWFnZS1vcmlnaW4uaHRtbC4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotCi1WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4gYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBwcm9w
ZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yIG1lc3Nh
Z2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLgotCi1QQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVJbnNpZGUgaXMgInJlY3Rh
bmdsZSgwcHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgInJlY3RhbmdsZSgw
cHgsIDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZSBpcyAibm9uZSIKLVBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZU91dHNpZGUgaXMgIm5v
bmUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NoYXBlLWluc2lk
ZS1pbWFnZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2hh
cGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxN2I4NmM1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2hhcGUtaW5zaWRlLWltYWdlLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0gICAgI3NoYXBlIHsK
LSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKLSAg
ICAgICAgLXdlYmtpdC1zaGFwZS1vdXRzaWRlOiByZWN0YW5nbGUoMCwgMCwgMCwgMCk7Ci0gICAg
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8cD5WZXJpZnkgdGhhdCBzaGFwZS1pbnNp
ZGUgYW5kIHNoYXBlLW91dHNpZGUgY2FuIG5vdCBiZSBzZXQgdG8gYSBVUkwgd2l0aCBhIGRpZmZl
cmVudCBvcmlnaW4KLSAgYW5kIHRoYXQgdGhlIHJlc3VsdCBvZiBkb2luZyBzbyBzZXRzIHRoZSBw
cm9wZXJ0eSB0byAibm9uZSIuIFRoaXMgdGVzdCBzaG91bGQgZ2VuZXJhdGUgdHdvIGVycm9yCi0g
IG1lc3NhZ2VzIGFib3V0IHVuc2FmZSBhdHRlbXB0cyB0byBsb2FkIGEgVVJMLjwvcD4KLSAgPHAg
aWQ9ImNvbnNvbGUiPjwvcD4KLQotICA8ZGl2IGlkPSJzaGFwZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+
Ci0gIHZhciBzaGFwZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhcGUiKTsK
LSAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaGFwZUVs
ZW1lbnQpLndlYmtpdFNoYXBlSW5zaWRlJywgInJlY3RhbmdsZSgwcHgsIDBweCwgMHB4LCAwcHgs
IDBweCwgMHB4KSIpOwotICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKHNoYXBlRWxlbWVudCkud2Via2l0U2hhcGVPdXRzaWRlJywgInJlY3RhbmdsZSgwcHgs
IDBweCwgMHB4LCAwcHgsIDBweCwgMHB4KSIpOwotCi0gIC8vIFRoZSBpbWFnZSBVUkwncyBwb3J0
IGRvZXMgbm90IG1hdGNoIHRoaXMgZG9jdW1lbnQncyBvcmlnaW4uIFdlIGV4cGVjdCBhIHBhaXIg
b2YgY29uc29sZSB3YXJuaW5ncy4KLSAgc2hhcGVFbGVtZW50LnN0eWxlLndlYmtpdFNoYXBlSW5z
aWRlID0gJ3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVh
cmUxMDAucG5nIiknOwotICBzaGFwZUVsZW1lbnQuc3R5bGUud2Via2l0U2hhcGVPdXRzaWRlID0g
J3VybCgiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9zcXVhcmUxMDAu
cG5nIiknOwotCi0gIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hhcGVFbGVtZW50KS53ZWJraXRTaGFwZUluc2lkZScsICJub25lIik7Ci0gIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhcGVFbGVtZW50KS53ZWJr
aXRTaGFwZU91dHNpZGUnLCAibm9uZSIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzg0N2IyOS4uOTMyOTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBA
CisyMDEzLTEwLTIzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAg
IFtDU1MgU2hhcGVzXSBDT1JTLWVuYWJsZWQgZmV0Y2ggZm9yIHNoYXBlIGltYWdlIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZXNzIHRv
IHNoYXBlIGltYWdlcyBpcyBub3cgY29udHJvbGxlZCBieSBDT1JTIENTUyBzaGFwZSBwZXIKKyAg
ICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNoYXBlcy8jc2hhcGUtb3V0c2lkZS1w
cm9wZXJ0eS4KKyAgICAgICAgUHJldmlvdXNseSBzaGFwZSBpbWFnZXMgaGFkIHRvIGJlIHNhbWUt
b3JpZ2luLgorCisgICAgICAgIFNoYXBlIGltYWdlIFVSTCBhY2Nlc3MgaXMgZGVmaW5lZCBieSB0
aGUgc2FtZSBsb2dpYyB0aGF0IGRlZmluZXMKKyAgICAgICAgY2FudmFzIHRhaW50aW5nOiBzYW1l
LW9yaWdpbiBhbmQgZGF0YSBVUkxzIGFyZSBhbGxvd2VkIGFuZCBpbWFnZXMKKyAgICAgICAgd2l0
aCBhICJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IiBoZWFkZXIgdGhhdCdzIGVpdGhlciAi
KiIgb3IKKyAgICAgICAgdGhhdCBtYXRjaGVzIHRoZSBkb2N1bWVudCdzIG9yaWdpbi4KKworICAg
ICAgICBBIFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkIFJlcXVlc3RPcmlnaW5Qb2xpY3kg
d2FzIGFkZGVkIHRvCisgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucywgdG8gaW5kaWNhdGUg
dGhhdCBhICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2giCisgICAgICAgIHdhcyB0byBi
ZSB1bmRlcnRha2VuLiBUaGUgQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoKSBtZXRob2QgaGFu
ZGxlcyB0aGlzCisgICAgICAgIG9wdGlvbiBieSBlZmZlY3RpdmVseSBzZXR0aW5nIHRoZSAiT3Jp
Z2luOiIgcmVxdWVzdCBoZWFkZXIgKHNlZQorICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbCgpIGluIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHApLgorICAgICAgICBTdHls
ZVJlc29sdmVyOjpsb2FkUGVuZGluZ1NoYXBlSW1hZ2UoKSB1c2VzIHRoZSBuZXcgUmVzb3VyY2VM
b2FkZXJPcHRpb24uCisKKyAgICAgICAgVGhlIHN0YXRpYyBTaGFwZUluc2lkZUluZm8gYW5kIFNo
YXBlT3V0c2lkZUluZm8gaXNFbmFibGVkRm9yKCkgbWV0aG9kCisgICAgICAgIG5vdyBwZXJmb3Jt
cyB0aGUgQ09SUyBjaGVjayBmb3IgaW1hZ2UgdmFsdWVkIHNoYXBlcy4gVGhlIHByaXZhdGUKKyAg
ICAgICAgaXNPcmlnaW5DbGVhbigpIG1ldGhvZCBmcm9tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCBoYXMgYmVlbiBtb3ZlZCB0bworICAgICAgICB0aGUgQ2FjaGVkSW1hZ2UgY2xhc3Mgc28gdGhh
dCBpdCBjYW4gYmUgc2hhcmVkIGJ5IHRoZSBDYW52YXMgYW5kIFNoYXBlCisgICAgICAgIGltcGxl
bWVudGF0aW9ucy4gSXQgY2hlY2tzIHRoZSByZXNwb25zZSBoZWFkZXJzIHBlciB0aGUgQ09SUyBz
cGVjLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hhcGUtaW1hZ2UtY29y
cy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6IEhhbmRsZSB0aGUgbmV3IFJlc291cmNl
TG9hZGVyT3B0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZSk6IFNldCB0aGUg
bmV3IFJlc291cmNlTG9hZGVyT3B0aW9uLgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNyZWF0ZVBhdHRlcm4pOiBVc2UgdGhlIENhY2hlZEltYWdlOjppc09yaWdpbkNs
ZWFuKCkuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oOiBBZGRlZCBQ
b3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCB0byBSZXF1ZXN0T3JpZ2luUG9saWN5LgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aXNPcmlnaW5DbGVhbik6IE1pZ3JhdGVkIGZyb20gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6
Y2hlY2tJbWFnZU9yaWdpbik6IERvIHRoZSBDT1JTIGNoZWNrIGFuZCBsb2cgYW4gZXJyb3IgbWVz
c2FnZSBpZiBuZWNjZXNzYXJ5LgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3IpOiBDYWxsIGNoZWNr
SW1hZ2VPcmlnaW4oKSBmb3IgaW1hZ2VzLgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hh
cGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpp
c0VuYWJsZWRGb3IpOiBEaXR0by4KKwogMjAxMy0xMC0yMyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBzdHJlYW0gbW9yZSBBUk12N3MgYml0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IGI5ZGViNmMuLjdlYjZjNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKyNp
bmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgpAQCAtNzUs
NiArNzYsMTAgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Uo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICAgICAgICAgIHJlcXVlc3Qu
c2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihtX2luaXRpYXRvck5h
bWUpOworCisgICAgICAgIGlmIChvcHRpb25zLnJlcXVlc3RPcmlnaW5Qb2xpY3kgPT0gUG90ZW50
aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQpCisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNj
ZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgbG9hZGVyLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOworCiAg
ICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2Ug
PSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBT
dHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAzYzhlNzgxLi43ZjIzZWQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zOTY5LDcgKzM5NjksOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZShTaGFwZVZhbHVlKiBzaGFwZVZhbHVl
KQogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fc3Rh
dGUuZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCiAgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGljeSA9IFJlc3Ry
aWN0VG9TYW1lT3JpZ2luOworICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGljeSA9IFBvdGVu
dGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkOworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAogICAgIHNoYXBlVmFsdWUtPnNldEltYWdl
KGNzc0ltYWdlVmFsdWUtPmNhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyLCBvcHRpb25z
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA3MGM4MjllLi5lOWYxZDA1IDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKQEAgLTg0LDE1ICs4NCw2IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdEZvbnRTaXplID0g
MTA7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnRGYW1pbHkgPSAic2Fucy1z
ZXJpZiI7CiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnQgPSAiMTBweCBzYW5z
LXNlcmlmIjsKIAotc3RhdGljIGJvb2wgaXNPcmlnaW5DbGVhbihDYWNoZWRJbWFnZSogY2FjaGVk
SW1hZ2UsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBpZiAoIWNhY2hl
ZEltYWdlLT5pbWFnZSgpLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKGNhY2hlZEltYWdlLT5wYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2so
c2VjdXJpdHlPcmlnaW4pKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gIXNlY3Vy
aXR5T3JpZ2luLT50YWludHNDYW52YXMoY2FjaGVkSW1hZ2UtPnJlc3BvbnNlKCkudXJsKCkpOwot
fQotCiBjbGFzcyBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIgOiBwdWJsaWMgU3Ryb2tlU3R5bGVB
cHBsaWVyIHsKIHB1YmxpYzoKICAgICBDYW52YXNTdHJva2VTdHlsZUFwcGxpZXIoQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEKiBjYW52YXNDb250ZXh0KQpAQCAtMTcwMiw3ICsxNjkzLDcgQEAgUGFz
c1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZVBh
dHRlcm4oSFRNTEltYWdlRWxlbWUKICAgICBpZiAoIWNhY2hlZEltYWdlIHx8ICFpbWFnZS0+Y2Fj
aGVkSW1hZ2UoKS0+aW1hZ2VGb3JSZW5kZXJlcihpbWFnZS0+cmVuZGVyZXIoKSkpCiAgICAgICAg
IHJldHVybiBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoSW1hZ2U6Om51bGxJbWFnZSgpLCByZXBlYXRY
LCByZXBlYXRZLCB0cnVlKTsKIAotICAgIGJvb2wgb3JpZ2luQ2xlYW4gPSBpc09yaWdpbkNsZWFu
KGNhY2hlZEltYWdlLCBjYW52YXMoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgYm9vbCBvcmln
aW5DbGVhbiA9IGNhY2hlZEltYWdlLT5pc09yaWdpbkNsZWFuKGNhbnZhcygpLT5zZWN1cml0eU9y
aWdpbigpKTsKICAgICByZXR1cm4gQ2FudmFzUGF0dGVybjo6Y3JlYXRlKGNhY2hlZEltYWdlLT5p
bWFnZUZvclJlbmRlcmVyKGltYWdlLT5yZW5kZXJlcigpKSwgcmVwZWF0WCwgcmVwZWF0WSwgb3Jp
Z2luQ2xlYW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmgKaW5kZXggMGEyZjg3My4uOGUxYjc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaApAQCAtNTcsNyArNTcsOCBAQCBlbnVtIFNlY3Vy
aXR5Q2hlY2tQb2xpY3kgewogCiBlbnVtIFJlcXVlc3RPcmlnaW5Qb2xpY3kgewogICAgIFVzZURl
ZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlLAotICAgIFJlc3RyaWN0VG9TYW1lT3JpZ2lu
CisgICAgUmVzdHJpY3RUb1NhbWVPcmlnaW4sCisgICAgUG90ZW50aWFsbHlDcm9zc09yaWdpbkVu
YWJsZWQgLy8gSW5kaWNhdGVzICJwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2giIGluIEhU
TUwgc3RhbmRhcmQuCiB9OwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDkyN2RjZjMuLmRi
YjZkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3Myw0ICs1NzQsMTMgQEAg
dm9pZCBDYWNoZWRJbWFnZTo6dXNlRGlza0ltYWdlQ2FjaGUoKQogfQogI2VuZGlmCiAKK2Jvb2wg
Q2FjaGVkSW1hZ2U6OmlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
KQoreworICAgIGlmICghaW1hZ2UoKS0+aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soc2VjdXJp
dHlPcmlnaW4pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIXNlY3VyaXR5T3Jp
Z2luLT50YWludHNDYW52YXMocmVzcG9uc2UoKS51cmwoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXgg
M2MxNjU5OS4uN2IzODhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTWVtb3J5Q2Fj
aGU7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CiAKIHN0cnVjdCBMZW5ndGg7CiAKQEAgLTg0LDYgKzg1LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB1c2VEaXNrSW1hZ2VDYWNoZSgpIE9WRVJSSURFOwogI2VuZGlm
CiAKKyAgICBib29sIGlzT3JpZ2luQ2xlYW4oU2VjdXJpdHlPcmlnaW4qKTsKKwogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKaW5kZXggYzc3Y2QxYy4uOTJiODk3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtMzksNiArMzks
MjAgQEAKICNpbmNsdWRlICJTaGFwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKKworYm9v
bCBjaGVja1NoYXBlSW1hZ2VPcmlnaW4oRG9jdW1lbnQmIGRvY3VtZW50LCBDYWNoZWRJbWFnZSYg
Y2FjaGVkSW1hZ2UpCit7CisgICAgaWYgKGNhY2hlZEltYWdlLmlzT3JpZ2luQ2xlYW4oZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY29uc3Qg
VVJMJiB1cmwgPSBjYWNoZWRJbWFnZS51cmwoKTsKKyAgICBTdHJpbmcgdXJsU3RyaW5nID0gdXJs
LmlzTnVsbCgpID8gIicnIiA6IHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKTsK
KyAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVy
cm9yTWVzc2FnZUxldmVsLCAiVW5zYWZlIGF0dGVtcHQgdG8gbG9hZCBVUkwgIiArIHVybFN0cmlu
ZyArICIuIik7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHRlbXBsYXRlPGNsYXNzIFJlbmRl
clR5cGU+CiBjb25zdCBTaGFwZSogU2hhcGVJbmZvPFJlbmRlclR5cGU+Ojpjb21wdXRlZFNoYXBl
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5o
CmluZGV4IDAzZTk4YjAuLjRhNmMxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZUluZm8uaApAQCAtMTA5LDYgKzEwOSw3IEBAIHByb3RlY3RlZDoKICAgICBTaGFw
ZUluZm8oY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpOiBtX3JlbmRlcmVyKHJlbmRlcmVyKSB7
IH0KIAogICAgIGNvbnN0IFNoYXBlKiBjb21wdXRlZFNoYXBlKCkgY29uc3Q7CisKICAgICB2aXJ0
dWFsIExheW91dFJlY3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGdldEludGVydmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50
TGlzdCYpIGNvbnN0ID0gMDsKQEAgLTEyNSw2ICsxMjYsOSBAQCBwcml2YXRlOgogICAgIG11dGFi
bGUgT3duUHRyPFNoYXBlPiBtX3NoYXBlOwogICAgIExheW91dFNpemUgbV9zaGFwZUxvZ2ljYWxT
aXplOwogfTsKKworYm9vbCBjaGVja1NoYXBlSW1hZ2VPcmlnaW4oRG9jdW1lbnQmLCBDYWNoZWRJ
bWFnZSYpOworCiB9CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwCmluZGV4IGU1NTJhZTkuLjExZTdmZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRl
SW5mby5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBTaGFwZUluc2lkZUluZm86OmlzRW5hYmxl
ZEZvcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpCiAgICAgY2FzZSBTaGFwZVZhbHVlOjpT
aGFwZToKICAgICAgICAgcmV0dXJuIHNoYXBlVmFsdWUtPnNoYXBlKCkgJiYgc2hhcGVWYWx1ZS0+
c2hhcGUoKS0+dHlwZSgpICE9IEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZVR5
cGU7CiAgICAgY2FzZSBTaGFwZVZhbHVlOjpJbWFnZToKLSAgICAgICAgcmV0dXJuIHNoYXBlVmFs
dWUtPmlzSW1hZ2VWYWxpZCgpOworICAgICAgICByZXR1cm4gc2hhcGVWYWx1ZS0+aXNJbWFnZVZh
bGlkKCkgJiYgY2hlY2tTaGFwZUltYWdlT3JpZ2luKHJlbmRlcmVyLT5kb2N1bWVudCgpLCAqKHNo
YXBlVmFsdWUtPmltYWdlKCktPmNhY2hlZEltYWdlKCkpKTsKICAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggMTc4Yjk2OC4uMDQ2M2U5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUlu
Zm8uY3BwCkBAIC00OCw3ICs0OCw3IEBAIGJvb2wgU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVk
Rm9yKGNvbnN0IFJlbmRlckJveCogYm94KQogICAgIGNhc2UgU2hhcGVWYWx1ZTo6U2hhcGU6CiAg
ICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5zaGFwZSgpOwogICAgIGNhc2UgU2hhcGVWYWx1ZTo6
SW1hZ2U6Ci0gICAgICAgIHJldHVybiBzaGFwZVZhbHVlLT5pc0ltYWdlVmFsaWQoKTsKKyAgICAg
ICAgcmV0dXJuIHNoYXBlVmFsdWUtPmlzSW1hZ2VWYWxpZCgpICYmIGNoZWNrU2hhcGVJbWFnZU9y
aWdpbihib3gtPmRvY3VtZW50KCksICooc2hhcGVWYWx1ZS0+aW1hZ2UoKS0+Y2FjaGVkSW1hZ2Uo
KSkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>