<?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>213168</bug_id>
          
          <creation_ts>2020-06-13 10:45:59 -0700</creation_ts>
          <short_desc>Implement Blob.text and Blob.arrayBuffer</short_desc>
          <delta_ts>2020-09-03 11:11:05 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>215663</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>213119</dependson>
    
    <dependson>213170</dependson>
    
    <dependson>213198</dependson>
          <blocked>196258</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1662378</commentid>
    <comment_count>0</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-13 10:45:59 -0700</bug_when>
    <thetext>This is a part of bug 196258.
`Blob.stream` needs ReadableStream but it&apos;s switched the compile flag `if ENABLE(STREAMS_API)`.

So First, I implements Blob.text and Blob.arrayBuffer which we can implement without ReadableStream.

https://w3c.github.io/FileAPI/#text-method-algo
https://w3c.github.io/FileAPI/#arraybuffer-method-algo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662464</commentid>
    <comment_count>1</comment_count>
      <attachid>401853</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-14 01:39:27 -0700</bug_when>
    <thetext>Created attachment 401853
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663458</commentid>
    <comment_count>2</comment_count>
      <attachid>402103</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-17 07:09:11 -0700</bug_when>
    <thetext>Created attachment 402103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663500</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-17 08:52:16 -0700</bug_when>
    <thetext>Thanks for tackling this Tetsuharu!

As far as I can tell, ENABLE_STREAMS_API is enabled by default (at least for macOS and iOS, I always have a bit of trouble remembering where to look for other ports).

Given that, does it still make sense to use this implementation strategy? Or would it make more sense to try build these two methods on top of a general ReadableStream based implementation? (It may very well make sense to use this strategy, I am not professing support one way or another, simply asking).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663574</commentid>
    <comment_count>4</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-17 10:30:49 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Thanks for tackling this Tetsuharu!
&gt; 
&gt; As far as I can tell, ENABLE_STREAMS_API is enabled by default (at least for
&gt; macOS and iOS, I always have a bit of trouble remembering where to look for
&gt; other ports).
&gt; 
&gt; Given that, does it still make sense to use this implementation strategy? Or
&gt; would it make more sense to try build these two methods on top of a general
&gt; ReadableStream based implementation? (It may very well make sense to use
&gt; this strategy, I am not professing support one way or another, simply
&gt; asking).

To be honest, I thought (planned) that we (probably I) should refactor these implementation after implementing `Blob.stream`. I&apos;m not sure about that we can build these methods on the top of ReadableStream and its way is simple to implement them and I need to investigate about buiding on general ReadableStream to answer to your question.


---------------


By the way, I seem all(?) ports has enabled ENABLE_STREAMS_API by default.
Cannot we remove this flag? Should I post about it to webkit-dev?


- http://trac.webkit.org/browser/trunk/Source/WTF/wtf/PlatformEnable.h#L465
- http://trac.webkit.org/browser/trunk/Source/cmake/OptionsFTW.cmake#L104
- http://trac.webkit.org/browser/trunk/Source/cmake/OptionsWin.cmake#L58
- http://trac.webkit.org/browser/trunk/Source/cmake/OptionsMac.cmake#L87
- http://trac.webkit.org/browser/trunk/Source/cmake/WebKitFeatures.cmake#L210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663907</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-18 10:04:25 -0700</bug_when>
    <thetext>(In reply to Tetsuharu Ohzeki from comment #4)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; Thanks for tackling this Tetsuharu!
&gt; &gt; 
&gt; &gt; As far as I can tell, ENABLE_STREAMS_API is enabled by default (at least for
&gt; &gt; macOS and iOS, I always have a bit of trouble remembering where to look for
&gt; &gt; other ports).
&gt; &gt; 
&gt; &gt; Given that, does it still make sense to use this implementation strategy? Or
&gt; &gt; would it make more sense to try build these two methods on top of a general
&gt; &gt; ReadableStream based implementation? (It may very well make sense to use
&gt; &gt; this strategy, I am not professing support one way or another, simply
&gt; &gt; asking).
&gt; 
&gt; To be honest, I thought (planned) that we (probably I) should refactor these
&gt; implementation after implementing `Blob.stream`. I&apos;m not sure about that we
&gt; can build these methods on the top of ReadableStream and its way is simple
&gt; to implement them and I need to investigate about buiding on general
&gt; ReadableStream to answer to your question.
&gt; 
&gt; 
&gt; ---------------
&gt; 
&gt; 
&gt; By the way, I seem all(?) ports has enabled ENABLE_STREAMS_API by default.
&gt; Cannot we remove this flag? Should I post about it to webkit-dev?

Couldn&apos;t hurt to email webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664299</commentid>
    <comment_count>6</comment_count>
      <attachid>402103</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-19 01:36:30 -0700</bug_when>
    <thetext>Comment on attachment 402103
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        without `ReadableStream` implementation.

Since the goal is to go with supporting ReadableStream at some point, we should probably extract existing functionality from FetchBodyOwner/FetchBoydConsumer.
Ideally, split FetchBodyOwner in two classes, one that will continue be the base class from FetchRequest and FetchResponse, plus be an ActiveDOMObject.
And the other one which can be reused jointly with FetchBodyConsumer to implement text/arrayBuffer/ReadableStream.

&gt; Source/WebCore/fileapi/BlobPromiseLoader.cpp:65
&gt; +    delete this;

This is a risky pattern.
I do not think we need BlobPromiseLoader to be an ActiveDOMObject.
It might be best to make Blob own the BlobPromiseLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664301</commentid>
    <comment_count>7</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-19 01:48:06 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; This is a risky pattern.
&gt; I do not think we need BlobPromiseLoader to be an ActiveDOMObject.
&gt; It might be best to make Blob own the BlobPromiseLoader.

text/arrayBuffer/ReadableStream is marked as `[NewObject]` in IDL.

If we make Blob owns the BlobPromiseLoader, we need to hold multiple `DeferredPromise` or `BlobPromiseLoader` in Blob by vector or map, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664304</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-19 02:11:13 -0700</bug_when>
    <thetext>&gt; text/arrayBuffer/ReadableStream is marked as `[NewObject]` in IDL.

For text and arrayBuffer, this is the promise that is new, and this is already handled by the binding generator.

Given the algorithm though, you are correct that text and arrayBuffer will be also brand new object. For ReadableStream, a new one needs to be created indeed.

&gt; If we make Blob owns the BlobPromiseLoader, we need to hold multiple
&gt; `DeferredPromise` or `BlobPromiseLoader` in Blob by vector or map, right?


Right, this could be a HashSet.

Thinking a bit more, BlobLoader in BlobLoader.h might be the one you actually want to use.
It could be easily extended to support String, and could be probably extended to ReadableStream as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685352</commentid>
    <comment_count>9</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-09-03 11:11:05 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 215663 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401853</attachid>
            <date>2020-06-14 01:39:27 -0700</date>
            <delta_ts>2020-06-17 07:09:07 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-213168-20200614173925.patch</filename>
            <type>text/plain</type>
            <size>26402</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzYxZGIwOWE2ZGI5OTA2
ZjNlZmI0ZDU4ZmZlYWVmYWEwYTMyZWFkMi4uNWY5ODc2ZTI2YmU0YmZiMWY2ZTlhMDM0MzU1MWQx
ZTU2ODRhMjhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA2LTE0ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IEJsb2IudGV4dCBhbmQgQmxvYi5hcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjphcnJheUJ1ZmZlcik6CisgICAgICAgICog
ZmlsZWFwaS9CbG9iLmg6CisgICAgICAgICogZmlsZWFwaS9CbG9iLmlkbDoKKyAgICAgICAgKiBm
aWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpC
bG9iUHJvbWlzZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUHJvbWlzZUxv
YWRlcjo6QmxvYlByb21pc2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlByb21pc2VM
b2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpzdG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpkaWRTdGFydExvYWRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6QmxvYlByb21pc2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAg
KFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpyZXNvbHZlUHJvbWlzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iUHJvbWlzZUxvYWRlcjo6cmVqZWN0UHJvbWlzZSk6CisgICAgICAgICogZmls
ZWFwaS9CbG9iUHJvbWlzZUxvYWRlci5oOiBBZGRlZC4KKwogMjAyMC0wNi0xMyAgVGV0c3VoYXJ1
IE9oemVraSAgPHRldHN1aGFydS5vaHpla2lAZ21haWwuY29tPgogCiAgICAgICAgIE1vdmUgdGV4
dEZyb21VVEY4KCkgdG8gVGV4dFJlc291cmNlRGVjb2RlciBmcm9tIEZldGNoQm9keUNvbnN1bWVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCA1MmQ0Mzg2MDQxZjcwNmM4MzdjYjJiY2JjMWE4OGZiNzZh
ZjgwOTU4Li5hOTE3NDJkNGJhYWFlMGY2OGI1MzFmNTFjYWM5NDNjYmI2MTYzYzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTUzMSw2ICs1MzEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAKICAgICBmaWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5oCiAgICAgZmlsZWFw
aS9CbG9iLmgKKyAgICBmaWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmgKICAgICBmaWxlYXBpL0Js
b2JQcm9wZXJ0eUJhZy5oCiAgICAgZmlsZWFwaS9FbmRpbmdUeXBlLmgKICAgICBmaWxlYXBpL0Zp
bGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNGRiOGZkMmMzMWQ5MTQ5ZDYyYjk2OWE5NWEzNjQ4ZWQ2
NTU3MGVmLi41Y2VkMDM4NDg3NTY4OWI0YzZiODZiMmU5ZWQ5ZWUxMmRhZjYyMTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTA5OSw2ICsxMDk5LDcgQEAgZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3Bw
CiBmaWxlYXBpL0Jsb2IuY3BwCiBmaWxlYXBpL0Jsb2JCdWlsZGVyLmNwcAogZmlsZWFwaS9CbG9i
Q2FsbGJhY2suY3BwCitmaWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmNwcAogZmlsZWFwaS9CbG9i
VVJMLmNwcAogZmlsZWFwaS9GaWxlLmNwcAogZmlsZWFwaS9GaWxlTGlzdC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2OTdi
YmJlMmM0YjJjYmE0MWY0YzcwMTQ4M2VkYzA2YjlmZTk1NGIwLi42YWNlYWVkZjZiOGQ0YzY4ODIz
NzZiNzlkMzdhZDM3MWZiZjg1M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NSw2ICs2NSw3IEBACiAJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGN0QxNEJEMEEzMDAwRkU5OTcwIC8qIFdl
YkdMQ29udGV4dEdyb3VwLmggKi87IH07CiAJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBX
ZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDAxRDNDRjdGMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3Qu
aCAqLzsgfTsKIAkJMDFEM0NGODcxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUQzQ0Y4
MTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCAqLzsgfTsKKwkJMDU1QzI1
RjUyNDk1Mzk4MzAwREM2NUVGIC8qIEJsb2JQcm9taXNlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNTVDMjVGNDI0OTUzOTdBMDBEQzY1RUYg
LyogQmxvYlByb21pc2VMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNTYyRjk2MTE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDU2MkY5
NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMg
LyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDYwMjdDQUQwQjFD
QkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRl
eHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC01NDAzLDYgKzU0MDQsOCBAQAogCQkwMUQzQ0Y3RjE0QkQwQTMwMDBGRTk5NzAgLyog
V2ViR0xDb250ZXh0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdMQ29udGV4dE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMUQzQ0Y4
MDE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xTaGFyZWRPYmplY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwMUQzQ0Y4MTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFy
ZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xTaGFyZWRP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDU1QzI1RjIyNDk1Mzk3OTAw
REM2NUVGIC8qIEJsb2JQcm9taXNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JQ
cm9taXNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDU1QzI1RjQy
NDk1Mzk3QTAwREM2NUVGIC8qIEJsb2JQcm9taXNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJs
b2JQcm9taXNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA1NjJGOTYw
MTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01UaW1lU3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dE1lbnVJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjkxMCw2ICsyMjkxMyw4IEBACiAJCQkJQTE1
RDc1MTMxRTY4RjdCMTAwQTM1RkJDIC8qIEJsb2JDYWxsYmFjay5oICovLAogCQkJCUExNUQ3NTE0
MUU2OEY3QjEwMEEzNUZCQyAvKiBCbG9iQ2FsbGJhY2suaWRsICovLAogCQkJCTQxRTlEQ0U0MjMx
OTczRkUwMEYzNTk0OSAvKiBCbG9iTG9hZGVyLmggKi8sCisJCQkJMDU1QzI1RjIyNDk1Mzk3OTAw
REM2NUVGIC8qIEJsb2JQcm9taXNlTG9hZGVyLmNwcCAqLywKKwkJCQkwNTVDMjVGNDI0OTUzOTdB
MDBEQzY1RUYgLyogQmxvYlByb21pc2VMb2FkZXIuaCAqLywKIAkJCQk3Qzc3QzNEMDFERUU0NzI0
MDBBNTBCRkEgLyogQmxvYlByb3BlcnR5QmFnLmggKi8sCiAJCQkJN0M3N0MzQ0YxREVFNDcxODAw
QTUwQkZBIC8qIEJsb2JQcm9wZXJ0eUJhZy5pZGwgKi8sCiAJCQkJOTc2RDZDNUYxMjJCOEEzRDAw
MUZEMUY3IC8qIEJsb2JVUkwuY3BwICovLApAQCAtMjk4MzUsNiArMjk4NDAsNyBAQAogCQkJCTRE
M0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRTlEQ0U3MjMxOTc0QkYwMEYzNTk0OSAvKiBCbG9iTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMUM5NEFGOTE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTA1NUMyNUY1MjQ5NTM5ODMwMERDNjVFRiAvKiBCbG9iUHJvbWlzZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0M3N0MzRDExREVFNDcyNDAwQTUwQkZBIC8qIEJsb2JQcm9wZXJ0
eUJhZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVERUYxRjUxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVERUYxRjcxMjFCMEVGQzAwNzI2REIy
IC8qIEJsb2JSZWdpc3RyeUltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMjk5OTAsNiArMjk5OTYs
NyBAQAogCQkJCUVERTNBNTAwMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0NBQzZBRTkyNDdGMDgyRjAwRTYxRDU5IC8qIENvbG9yTWF0cml4LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzgyREY1ODEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JTcGFjZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlw
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUFGNjZCMjNCRkMzOUUwMDQwMzBEQSAvKiBDb2xv
clV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1
IC8qIENvbHVtbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzRURENjdGMUI0ODVEQkYwMDY0
MEU3NSAvKiBDb21iaW5lZEZpbHRlcnNBbHBoYWJldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzEw
OCw3ICszMzExNSw2IEBACiAJCQkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5z
YWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMzZGRDE3MTZDNzgyNjUwMEY4ODdD
MSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEy
RTZFNUEwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3
QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5NjMwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjZCOTk5OTExODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNrQWxsb2NhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9k
ZUxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5kZXggMzJhM2I2
OTg5ZmFiNmVkNjQwNDFiOTBiOWRlYzQ5M2Y2NDAzMTE1Ni4uNzgwYWU3MTYxMmQ0MDkxZWRjMDdi
ODZhNTI2ZDBkODE3NDczY2VmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBAIC0zMyw4ICsz
MywxMCBAQAogCiAjaW5jbHVkZSAiQmxvYkJ1aWxkZXIuaCIKICNpbmNsdWRlICJCbG9iUGFydC5o
IgorI2luY2x1ZGUgIkJsb2JQcm9taXNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgog
I2luY2x1ZGUgIkZpbGUuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgiCkBAIC0yMjAsNSArMjIyLDE2
IEBAIFVSTFJlZ2lzdHJ5JiBCbG9iOjpyZWdpc3RyeSgpIGNvbnN0CiAgICAgcmV0dXJuIEJsb2JV
UkxSZWdpc3RyeTo6cmVnaXN0cnkoKTsKIH0KIAorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0Zp
bGVBUEkvI3RleHQtbWV0aG9kLWFsZ28KK3ZvaWQgQmxvYjo6dGV4dChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCit7CisgICAgQmxvYlByb21pc2VMb2FkZXI6OmxvYWQoQmxvYlByb21pc2VMb2FkZXI6
OlR5cGU6OlRleHQsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHRoaXMsIFdURk1vdmUocHJvbWlz
ZSkpOworfQorCisvLyBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jYXJyYXlidWZmZXIt
bWV0aG9kLWFsZ28KK3ZvaWQgQmxvYjo6YXJyYXlCdWZmZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQoreworICAgIEJsb2JQcm9taXNlTG9hZGVyOjpsb2FkKEJsb2JQcm9taXNlTG9hZGVyOjpUeXBl
OjpBcnJheUJ1ZmZlciwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdGhpcywgV1RGTW92ZShwcm9t
aXNlKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKaW5k
ZXggNjE0ZDgwOWQyMDg5M2Q1ZWZlMDBjODM5MmIzYWUzNjUyYmRhMmFjNS4uYjVjMzhjMzZlZWIy
NTE4ODBiYzA3ZjZmMzMyYWM1ZjJiMGI5YTU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKQEAgLTMy
LDcgKzMyLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQmxvYlByb3BlcnR5QmFnLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTEwNiw2ICsxMDYsMTAg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCbG9iKG1faW50ZXJuYWxV
UkwsIHN0YXJ0LCBlbmQsIGNvbnRlbnRUeXBlKSk7CiAgICAgfQogCisgICAgdm9pZCB0ZXh0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICAvLyB1
c2luZyBBcnJheUJ1ZmZlclByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEFycmF5QnVmZmVyPj47CisgICAgdm9pZCBhcnJheUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JF
X0VYUE9SVCBCbG9iKCk7CiAgICAgQmxvYihWZWN0b3I8QmxvYlBhcnRWYXJpYW50PiYmLCBjb25z
dCBCbG9iUHJvcGVydHlCYWcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCmluZGV4IDY5ZDBmMTU1
YWQ0Nzk4ZDdlNjZiNDA4ZDJkYmVjNjgyMGM2ZWRkZWIuLjdmMWUwMjM5OWI1NzYzYzlmNzhiMTk5
OGRlNDdmOTY3NDU4YzZlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxv
Yi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbApAQCAtNDIsOCArNDIs
OSBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3IgQmxvYiBvciBVU1ZTdHJpbmcpIEJsb2JQYXJ0
OwogICAgIC8vIHNsaWNlIEJsb2IgaW50byBieXRlLXJhbmdlZCBjaHVua3MKICAgICBCbG9iIHNs
aWNlKG9wdGlvbmFsIGxvbmcgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcgbG9uZyBlbmQg
PSAweDdGRkZGRkZGRkZGRkZGRkYsIG9wdGlvbmFsIERPTVN0cmluZz8gY29udGVudFR5cGUgPSBu
dWxsKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQ6Ci0gICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNDbG9zZWQ7Ci0gICAgLy8gdm9pZCBjbG9zZSgpOwotCisgICAgLy8gcmVh
ZCBmcm9tIHRoZSBCbG9iLgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICAvLyBbTmV3T2Jq
ZWN0XSBSZWFkYWJsZVN0cmVhbSBzdHJlYW0oKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgTmV3T2JqZWN0XSBQcm9taXNlPFVTVlN0cmluZz4gdGV4dCgpOworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBOZXdPYmplY3RdIFByb21pc2U8QXJyYXlC
dWZmZXI+IGFycmF5QnVmZmVyKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9CbG9iUHJvbWlzZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JQ
cm9taXNlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWE0ODFlZDBiZGM0OTFjZjY3MTM1NmI0MTA0
OTFjYzJhMTgzZDI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iUHJvbWlzZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgVGV0c3VoYXJ1IE9oemVraSA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+Lgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmxvYlByb21pc2VMb2Fk
ZXIuaCIKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkJsb2IuaCIK
KyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlci5o
IgorI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgQmxvYlByb21pc2VMb2FkZXI6OmxvYWQoVHlwZSB0eXBlLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWZQdHI8QmxvYj4mJiBibG9i
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit7CisgICAgYXV0byBsb2FkZXIgPSBu
ZXcgQmxvYlByb21pc2VMb2FkZXIodHlwZSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92
ZShibG9iKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbG9hZGVyLT5zdGFydChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKK30KKworQmxvYlByb21pc2VMb2FkZXI6OkJsb2JQcm9taXNlTG9hZGVy
KFR5cGUgdHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgUmVmUHRyPEJsb2I+JiYgYmxvYiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQor
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICwgbV90
eXBlKHR5cGUpCisgICAgLCBtX2Jsb2JMb2FkZXIoRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQXJy
YXlCdWZmZXIsIHRoaXMpCisgICAgLCBtX2Jsb2IoV1RGTW92ZShibG9iKSkKKyAgICAsIG1fcHJv
bWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCit2
b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQoreworICAgIG1fYmxvYkxvYWRlci5zdGFydCgmc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgKm1fYmxvYik7Cit9CisKK3ZvaWQgQmxvYlByb21pc2VMb2FkZXI6OnN0
b3AoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpk
aWRTdGFydExvYWRpbmcoKQoreworfQorCit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YSgpCit7Cit9CisKK3ZvaWQgQmxvYlByb21pc2VMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoKQoreworICAgIGF1dG8gYXJyYXlCdWZmZXIgPSBtX2Jsb2JMb2FkZXIuYXJyYXlCdWZmZXJS
ZXN1bHQoKTsKKyAgICByZXNvbHZlUHJvbWlzZShXVEZNb3ZlKGFycmF5QnVmZmVyKSk7Cit9CisK
K3ZvaWQgQmxvYlByb21pc2VMb2FkZXI6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBleGNlcHRpb25D
b2RlKQoreworICAgIHJlamVjdFByb21pc2UoZXhjZXB0aW9uQ29kZSk7Cit9CisKK3ZvaWQgQmxv
YlByb21pc2VMb2FkZXI6OnJlc29sdmVQcm9taXNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiBhcnJh
eUJ1ZmZlcikKK3sKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6QXJyYXlC
dWZmZXI6CisgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKFdURk1vdmUobV9w
cm9taXNlKSwgYXJyYXlCdWZmZXIuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5
cGU6OlRleHQ6IHsKKyAgICAgICAgLy8gQnkgdGhlIHNwZWMgaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L0ZpbGVBUEkvI3RleHQtbWV0aG9kLWFsZ28KKyAgICAgICAgLy8gd2Ugc2hvdWxkIHVzZSBodHRw
czovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jdXRmLTgtZGVjb2RlCisgICAgICAgIC8vIGlu
c3RlYWQgb2YgdGhlIGFsZ29yaXRobSBmb3IgYEZpbGVSZWFkZXIucmVhZEFzVGV4dCgpYAorICAg
ICAgICBhdXRvIGRhdGEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihh
cnJheUJ1ZmZlci0+ZGF0YSgpKTsKKyAgICAgICAgYXV0byBsZW5ndGggPSBhcnJheUJ1ZmZlci0+
Ynl0ZUxlbmd0aCgpOworICAgICAgICBtX3Byb21pc2UtPnJlc29sdmU8SURMRE9NU3RyaW5nPihU
ZXh0UmVzb3VyY2VEZWNvZGVyOjp0ZXh0RnJvbVVURjgoZGF0YSwgbGVuZ3RoKSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQg
QmxvYlByb21pc2VMb2FkZXI6OnJlamVjdFByb21pc2UoRXhjZXB0aW9uQ29kZSBleGNlcHRpb25D
b2RlKQoreworICAgIG1fcHJvbWlzZS0+cmVqZWN0KGV4Y2VwdGlvbkNvZGUpOworICAgIGRlbGV0
ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2JQcm9taXNlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlOGE4Zjk3Mzc2M2JjNTI0YTVh
MmRlODEwOTRhOWUzNTZiMGY5ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYlByb21pc2VMb2FkZXIuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIFRldHN1aGFydSBPaHpla2kgPHRldHN1aGFydS5vaHpla2lAZ21haWwuY29t
Pi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJCbG9iLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKKyNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCbG9iUHJvbWlzZUxvYWRlciBmaW5h
bCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgQXJy
YXlCdWZmZXIsCisgICAgICAgIFRleHQsCisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIGxvYWQo
VHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxCbG9iPiYmLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKKworcHJpdmF0ZToKKyAgICBCbG9iUHJvbWlzZUxvYWRlcihUeXBlLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEJsb2I+JiYsIFJlZjxEZWZlcnJlZFByb21p
c2U+JiYpOworCisgICAgdm9pZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAg
ICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkJsb2JQcm9taXNlTG9hZGVyIjsgfQorICAgIHZvaWQg
c3RvcCgpIGZpbmFsOworCisgICAgLy8gRmlsZVJlYWRlckxvYWRlckNsaWVudAorICAgIHZvaWQg
ZGlkU3RhcnRMb2FkaW5nKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YSgpIGZpbmFs
OworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIGZpbmFsOworICAgIHZvaWQgZGlkRmFpbChF
eGNlcHRpb25Db2RlKSBmaW5hbDsKKworICAgIHZvaWQgcmVzb2x2ZVByb21pc2UoUmVmUHRyPEFy
cmF5QnVmZmVyPiYmKTsKKyAgICB2b2lkIHJlamVjdFByb21pc2UoRXhjZXB0aW9uQ29kZSk7CisK
KyAgICBUeXBlIG1fdHlwZTsKKyAgICBGaWxlUmVhZGVyTG9hZGVyIG1fYmxvYkxvYWRlcjsKKyAg
ICBSZWZQdHI8QmxvYj4gbV9ibG9iOworICAgIFJlZjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlz
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGI5ZWFmMzgwYThhZTcyZWM2ODQzMzcxMmY2ZWZkNzU1NjdiOGIzOGQuLjk1YjQy
YWVhM2FjZmE5ZDI3NjJkZjExMzk2YzdjNDMwZjU1NmMzYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA2LTE0ICBUZXRzdWhhcnUgT2h6ZWtp
ICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEJsb2Iu
dGV4dCBhbmQgQmxvYi5hcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnVnIDIxMzE2ODogSW1wbGVtZW50IEJsb2IudGV4dCBhbmQgQmxv
Yi5hcnJheUJ1ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMTY4CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQ
SS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDYtMTIgIFRldHN1aGFy
dSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KIAogICAgICAgICBDaGFuZ2Ug
RmlsZVJlYWRlci5lcnJvciB0byBET01FeGNlcHRpb24gZnJvbSBvYnNvbGV0ZWQgRmlsZUVycm9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5k
ZXggZDEwM2RmYjg2YTI4OGQwZDdkNTU0MTk4NTVlNjM0MWFjOTI5NjM3YS4uYzA3MGYzYzE4YzRk
ODI4OTc3MGQ1N2UzNmE1MDQzMDc5ZWFjMzcyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmls
ZUFQSS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTYsOCArMTYsOCBAQCBQQVNTIEJsb2Ig
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2l6ZQogUEFTUyBCbG9iIGludGVyZmFjZTogYXR0cmlidXRl
IHR5cGUgCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2xpY2Uob3B0aW9uYWwgbG9u
ZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmluZykgCiBGQUlMIEJs
b2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RyZWFtKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBl
Y3RlZCBwcm9wZXJ0eSAic3RyZWFtIiBtaXNzaW5nCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBvcGVy
YXRpb24gdGV4dCgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInRleHQi
IG1pc3NpbmcKLUZBSUwgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImFycmF5QnVmZmVyIiBtaXNzaW5n
CitQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gdGV4dCgpIAorUEFTUyBCbG9iIGludGVy
ZmFjZTogb3BlcmF0aW9uIGFycmF5QnVmZmVyKCkgCiBQQVNTIEJsb2IgbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgQmxvYihbIlRFU1QiXSkgCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBv
ZiBuZXcgQmxvYihbIlRFU1QiXSkgCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRF
U1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzaXplIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
QEAgLTI1LDggKzI1LDggQEAgUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0p
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHIKIFBBU1MgQmxvYiBpbnRl
cmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNsaWNlKG9w
dGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IGNhbGxpbmcgc2xp
Y2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0
cmluZykgb24gbmV3IEJsb2IoWyJURVNUIl0pIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCiBGQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic3RyZWFtIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInRleHQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgQmxvYiBp
bnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5
QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
ImFycmF5QnVmZmVyIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEJsb2IgaW50
ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCki
IHdpdGggdGhlIHByb3BlciB0eXBlIAorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJU
RVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIoKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgCiBQQVNTIEZpbGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRmlsZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAK
IFBBU1MgRmlsZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCkBAIC00NCw4ICs0NCw4IEBAIFBBU1Mg
QmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0CiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15Rmls
ZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNsaWNlKG9wdGlv
bmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IGNhbGxpbmcgc2xpY2Uo
b3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmlu
Zykgb24gbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIEZBSUwgQmxvYiBpbnRlcmZhY2U6IG5l
dyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic3RyZWFtKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVy
dHkgInN0cmVhbSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBCbG9iIGludGVy
ZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInRleHQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgQmxvYiBp
bnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUg
Y2hhaW4KK1BBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlG
aWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKK1BBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlG
aWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgCiBQQVNTIEZpbGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEZpbGVMaXN0IGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoIAogUEFTUyBGaWxlTGlzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkv
aWRsaGFybmVzcy53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCA3Y2UwOTIwYzA1ZWM3Y2EwZDdhM2ZkY2ZhYThkMjg1N2RmNjJiNDhhLi5hMGE4N2Fi
ZDRlZjYwMmNjNWE0NGUzZjUxZjNkZGVlYTc1ZWVjZTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTE0LDgg
KzE0LDggQEAgUEFTUyBCbG9iIGludGVyZmFjZTogYXR0cmlidXRlIHNpemUKIFBBU1MgQmxvYiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAogUEFTUyBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9u
IHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBE
T01TdHJpbmcpIAogRkFJTCBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHN0cmVhbSgpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0
YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInN0cmVhbSIgbWlzc2luZwotRkFJTCBC
bG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHRleHQoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVj
dGVkIHByb3BlcnR5ICJ0ZXh0IiBtaXNzaW5nCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRp
b24gYXJyYXlCdWZmZXIoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJh
cnJheUJ1ZmZlciIgbWlzc2luZworUEFTUyBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHRleHQo
KSAKK1BBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpIAogUEFTUyBC
bG9iIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEJsb2IoWyJURVNUIl0pIAogUEFT
UyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEJsb2IoWyJURVNUIl0pIAogUEFTUyBCbG9iIGludGVy
ZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2l6ZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0yMyw4ICsyMyw4IEBAIFBBU1MgQmxvYiBpbnRlcmZhY2U6
IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhl
IHByCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywg
b3B0aW9uYWwgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEJsb2IgaW50
ZXJmYWNlOiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBs
b25nLCBvcHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBCbG9iKFsiVEVTVCJdKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogRkFJTCBCbG9iIGludGVyZmFjZTog
bmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFtKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInN0cmVhbSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJU
RVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0ZXh0IiBub3QgZm91bmQgaW4gcHJvdG90eXBl
IGNoYWluCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJhcnJheUJ1ZmZlciIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKK1BBU1MgQmxvYiBpbnRl
cmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVm
ZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBGaWxlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEZpbGUgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIEZpbGUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApAQCAt
NDIsOCArNDIsOCBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMi
XSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydAogUEFTUyBCbG9iIGludGVyZmFj
ZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0
aW9uYWwgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQQVNTIEJsb2IgaW50ZXJm
YWNlOiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25n
LCBvcHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxl
TmFtZSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBGQUlM
IEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzdHJlYW0iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KLUZBSUwgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxl
TmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0ZXh0IiBub3QgZm91bmQgaW4gcHJvdG90eXBl
IGNoYWluCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15
RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFycmF5QnVmZmVyIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShb
Im15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQo
KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShb
Im15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5
QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBGaWxlTGlzdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBGaWxl
TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRmlsZUxpc3QgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402103</attachid>
            <date>2020-06-17 07:09:11 -0700</date>
            <delta_ts>2020-06-19 01:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213168-20200617230910.patch</filename>
            <type>text/plain</type>
            <size>33903</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEwMzk1ODQzNzIyNWVl
MmJlYmZmOTRkNzc1NDU1NjlmMzZkMzNkYi4uOTFiZTEzZGE0MTgxNzZhNWU5Y2NmYzQ2MDcwMGE3
YTllMjI5YTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA2LTE3ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IEJsb2IudGV4dCgpIGFuZCBCbG9iLmFycmF5QnVmZmVyKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzE2OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBwYXJ0IG9mIGJ1ZyAx
OTYyNTguCisgICAgICAgIFRoaXMgZG9lcyBub3QgYEJsb2Iuc3RyZWFtKClgIGJlY2F1c2UKKyAg
ICAgICAgaXQgbmVlZHMgUmVhZGFibGVTdHJlYW0gYnV0IGBSZWFkYWJsZVN0cmVhbWAgaXMgYmVo
aW5kCisgICAgICAgIHRoZSBjb21waWxlIGZsYWcgYGlmIEVOQUJMRShTVFJFQU1TX0FQSSlgLgor
CisgICAgICAgIEhvd2V2ZXIsIHdlIGNhbiBpbXBsZW1lbnQgYEJsb2IudGV4dCgpYCBhbmQgYEJs
b2IuYXJyYXlCdWZmZXIoKWAKKyAgICAgICAgd2l0aG91dCBgUmVhZGFibGVTdHJlYW1gIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6QmxvYjo6YXJyYXlCdWZmZXIpOgorICAgICAgICAqIGZpbGVhcGkv
QmxvYi5oOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5pZGw6CisgICAgICAgIEkgYWxzbyBjbGVh
bmVkIHVwIGNvbW1lbnRzIGFib3V0IEFQSXMgd2hpY2ggYXJlIHJlbW92ZWQgZnJvbSB0aGUgc3Bl
Yy4KKyAgICAgICAgKiBmaWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUHJvbWlzZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iUHJvbWlzZUxvYWRlcjo6QmxvYlByb21pc2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QmxvYlByb21pc2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9t
aXNlTG9hZGVyOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpk
aWRTdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlByb21pc2VMb2FkZXI6OmRp
ZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpkaWRG
YWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JQcm9taXNlTG9hZGVyOjpyZXNvbHZlUHJvbWlz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUHJvbWlzZUxvYWRlcjo6cmVqZWN0UHJvbWlzZSk6
CisgICAgICAgICogZmlsZWFwaS9CbG9iUHJvbWlzZUxvYWRlci5oOiBBZGRlZC4KKwogMjAyMC0w
Ni0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBS
ZWFkYWJsZVN0cmVhbSByb2J1c3QgYWdhaW5zdCB1c2VyIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDUyZDQzODYwNDFmNzA2YzgzN2NiMmJjYmMxYTg4ZmI3NmFmODA5NTguLmE5MTc0MmQ0YmFh
YWUwZjY4YjUzMWY1MWNhYzk0M2NiYjYxNjNjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNTMx
LDYgKzUzMSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAg
IGZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmgKICAgICBmaWxlYXBpL0Jsb2IuaAorICAgIGZpbGVh
cGkvQmxvYlByb21pc2VMb2FkZXIuaAogICAgIGZpbGVhcGkvQmxvYlByb3BlcnR5QmFnLmgKICAg
ICBmaWxlYXBpL0VuZGluZ1R5cGUuaAogICAgIGZpbGVhcGkvRmlsZS5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IGY2NTE3N2Q2NzhkMzcwNGUzNzhhODliYjg3ODhlZmZjMGZmY2ZhZGMuLmVhNWVmYWRmZTVh
YzAyMzQwYjJjYzU3MWY1ZGU5ZmMzNDc4MmViOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMDk5LDYg
KzEwOTksNyBAQCBmaWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKIGZpbGVhcGkvQmxvYi5jcHAK
IGZpbGVhcGkvQmxvYkJ1aWxkZXIuY3BwCiBmaWxlYXBpL0Jsb2JDYWxsYmFjay5jcHAKK2ZpbGVh
cGkvQmxvYlByb21pc2VMb2FkZXIuY3BwCiBmaWxlYXBpL0Jsb2JVUkwuY3BwCiBmaWxlYXBpL0Zp
bGUuY3BwCiBmaWxlYXBpL0ZpbGVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYzYWExOWZhNDNhMmMwOWRmNjRhNjFk
ZDhiMGE5N2RlMzM3NDRmNjAuLjFlNDVkZDA0NTE0OWUzMWFiYWVkMzFjZWQ3ODgzMjc1ZDZlMTNl
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTY1LDYgKzY1LDcgQEAKIAkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdl
YkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwMUQzQ0Y3RDE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0R3JvdXAuaCAq
LzsgfTsKIAkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGN0Yx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oICovOyB9OwogCQkwMUQzQ0Y4
NzE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAxRDNDRjgxMTRCRDBBMzAwMEZFOTk3MCAv
KiBXZWJHTFNoYXJlZE9iamVjdC5oICovOyB9OworCQkwNTVDMjVGNTI0OTUzOTgzMDBEQzY1RUYg
LyogQmxvYlByb21pc2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA1NUMyNUY0MjQ5NTM5N0EwMERDNjVFRiAvKiBCbG9iUHJvbWlzZUxvYWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA1
NjJGOTYxMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNTYyRjk2MDE1NzNGODhGMDAzMUNBMTYg
LyogUGxhdGZvcm1MYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA1RkQ2OUUwMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1RkQ2OURGMTI4
NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjAyN0NBRDBCMUNCRkMwMDA4ODRCMkQgLyogQ29u
dGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNjAyN0NBQzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0MDMsNiArNTQw
NCw4IEBACiAJCTAxRDNDRjdGMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0T2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAxRDNDRjgwMTRCRDBBMzAwMEZFOTk3MCAv
KiBXZWJHTFNoYXJlZE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTFNoYXJlZE9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTAxRDNDRjgxMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFNoYXJlZE9iamVjdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNTVDMjVGMjI0OTUzOTc5MDBEQzY1RUYgLyogQmxvYlByb21p
c2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvYlByb21pc2VMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNTVDMjVGNDI0OTUzOTdBMDBEQzY1RUYgLyog
QmxvYlByb21pc2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlByb21pc2VMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8q
IFBsYXRmb3JtTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1MYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNUZENjlERjEyODQ1RDQz
MDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVRpbWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjAyN0NB
QzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyOTEyLDYgKzIyOTE1LDggQEAKIAkJCQlBMTVENzUxMzFFNjhGN0IxMDBBMzVG
QkMgLyogQmxvYkNhbGxiYWNrLmggKi8sCiAJCQkJQTE1RDc1MTQxRTY4RjdCMTAwQTM1RkJDIC8q
IEJsb2JDYWxsYmFjay5pZGwgKi8sCiAJCQkJNDFFOURDRTQyMzE5NzNGRTAwRjM1OTQ5IC8qIEJs
b2JMb2FkZXIuaCAqLywKKwkJCQkwNTVDMjVGMjI0OTUzOTc5MDBEQzY1RUYgLyogQmxvYlByb21p
c2VMb2FkZXIuY3BwICovLAorCQkJCTA1NUMyNUY0MjQ5NTM5N0EwMERDNjVFRiAvKiBCbG9iUHJv
bWlzZUxvYWRlci5oICovLAogCQkJCTdDNzdDM0QwMURFRTQ3MjQwMEE1MEJGQSAvKiBCbG9iUHJv
cGVydHlCYWcuaCAqLywKIAkJCQk3Qzc3QzNDRjFERUU0NzE4MDBBNTBCRkEgLyogQmxvYlByb3Bl
cnR5QmFnLmlkbCAqLywKIAkJCQk5NzZENkM1RjEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYlVSTC5j
cHAgKi8sCkBAIC0yOTgzNyw2ICsyOTg0Miw3IEBACiAJCQkJNEQzQjAwQUYyMTVENkE2OTAwNzZC
OTgzIC8qIEJsb2JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFOURDRTcyMzE5NzRCRjAw
RjM1OTQ5IC8qIEJsb2JMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzk0QUY5MTkxMzAz
RjAwMEQ1QTg5MyAvKiBCbG9iUGFydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDU1QzI1RjUyNDk1
Mzk4MzAwREM2NUVGIC8qIEJsb2JQcm9taXNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzc3QzNEMTFERUU0NzI0MDBBNTBCRkEgLyogQmxvYlByb3BlcnR5QmFnLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRURFRjFGNTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRURFRjFGNzEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5SW1w
bC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Js
b2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCAzMmEzYjY5ODlm
YWI2ZWQ2NDA0MWI5MGI5ZGVjNDkzZjY0MDMxMTU2Li43ODBhZTcxNjEyZDQwOTFlZGMwN2I4NmE1
MjZkMGQ4MTc0NzNjZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTMzLDggKzMzLDEw
IEBACiAKICNpbmNsdWRlICJCbG9iQnVpbGRlci5oIgogI2luY2x1ZGUgIkJsb2JQYXJ0LmgiCisj
aW5jbHVkZSAiQmxvYlByb21pc2VMb2FkZXIuaCIKICNpbmNsdWRlICJCbG9iVVJMLmgiCiAjaW5j
bHVkZSAiRmlsZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIKQEAgLTIyMCw1ICsyMjIsMTYgQEAg
VVJMUmVnaXN0cnkmIEJsb2I6OnJlZ2lzdHJ5KCkgY29uc3QKICAgICByZXR1cm4gQmxvYlVSTFJl
Z2lzdHJ5OjpyZWdpc3RyeSgpOwogfQogCisvLyBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQ
SS8jdGV4dC1tZXRob2QtYWxnbwordm9pZCBCbG9iOjp0ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKK3sKKyAgICBCbG9iUHJvbWlzZUxvYWRlcjo6bG9hZChCbG9iUHJvbWlzZUxvYWRlcjo6VHlw
ZTo6VGV4dCwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdGhpcywgV1RGTW92ZShwcm9taXNlKSk7
Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNhcnJheWJ1ZmZlci1tZXRo
b2QtYWxnbwordm9pZCBCbG9iOjphcnJheUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit7
CisgICAgQmxvYlByb21pc2VMb2FkZXI6OmxvYWQoQmxvYlByb21pc2VMb2FkZXI6OlR5cGU6OkFy
cmF5QnVmZmVyLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCB0aGlzLCBXVEZNb3ZlKHByb21pc2Up
KTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAppbmRleCA2
MTRkODA5ZDIwODkzZDVlZmUwMGM4MzkyYjNhZTM2NTJiZGEyYWM1Li5hYTY4ZjZiODVjMzAxMGY0
ZjcxYWU2N2EwNDViOGQ3OGI0YjVmN2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaApAQCAtMzIsMTEg
KzMyLDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJsb2JQcm9wZXJ0eUJhZy5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgIlVS
TFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KLSNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMTA2LDYgKzEwNyw5IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYihtX2ludGVybmFsVVJMLCBzdGFydCwgZW5kLCBjb250
ZW50VHlwZSkpOwogICAgIH0KIAorICAgIHZvaWQgdGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBhcnJheUJ1ZmZlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKIHByb3RlY3RlZDoK
ICAgICBXRUJDT1JFX0VYUE9SVCBCbG9iKCk7CiAgICAgQmxvYihWZWN0b3I8QmxvYlBhcnRWYXJp
YW50PiYmLCBjb25zdCBCbG9iUHJvcGVydHlCYWcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCmlu
ZGV4IDY5ZDBmMTU1YWQ0Nzk4ZDdlNjZiNDA4ZDJkYmVjNjgyMGM2ZWRkZWIuLmU5NGNkMjM4OTgz
ZmYwMzRmMzQ0NzMzNDAxZjZhOWI0MDFhODRhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbApA
QCAtNDIsOCArNDIsNiBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3IgQmxvYiBvciBVU1ZTdHJp
bmcpIEJsb2JQYXJ0OwogICAgIC8vIHNsaWNlIEJsb2IgaW50byBieXRlLXJhbmdlZCBjaHVua3MK
ICAgICBCbG9iIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxv
bmcgbG9uZyBlbmQgPSAweDdGRkZGRkZGRkZGRkZGRkYsIG9wdGlvbmFsIERPTVN0cmluZz8gY29u
dGVudFR5cGUgPSBudWxsKTsKIAotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQ6Ci0gICAgLy8gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDbG9zZWQ7Ci0gICAgLy8gdm9pZCBjbG9zZSgpOwot
CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE5ld09iamVjdF0gUHJvbWlz
ZTxVU1ZTdHJpbmc+IHRleHQoKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgTmV3T2JqZWN0XSBQcm9taXNlPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcigpOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlByb21pc2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iUHJvbWlzZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTFhNDgxZWQwYmRjNDkxY2Y2NzEzNTZiNDEwNDkxY2MyYTE4M2QyOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYlByb21pc2VMb2FkZXIuY3BwCkBAIC0wLDAg
KzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIFRldHN1aGFydSBPaHpla2kgPHRl
dHN1aGFydS5vaHpla2lAZ21haWwuY29tPi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkJsb2JQcm9taXNlTG9hZGVyLmgiCisKKyNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKKyNpbmNsdWRlICJCbG9iLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgor
I2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKKyNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VE
ZWZlcnJlZC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlC
dWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJsb2JQcm9taXNlTG9hZGVy
Ojpsb2FkKFR5cGUgdHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgUmVmUHRyPEJsb2I+JiYgYmxvYiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQoreworICAgIGF1dG8gbG9hZGVyID0gbmV3IEJsb2JQcm9taXNlTG9hZGVyKHR5cGUsIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIFdURk1vdmUoYmxvYiksIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIGxvYWRlci0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK0Jsb2JQcm9t
aXNlTG9hZGVyOjpCbG9iUHJvbWlzZUxvYWRlcihUeXBlIHR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlZlB0cjxCbG9iPiYmIGJsb2IsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkKKyAgICAsIG1fdHlwZSh0eXBlKQorICAgICwgbV9ibG9iTG9hZGVy
KEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5QnVmZmVyLCB0aGlzKQorICAgICwgbV9ibG9i
KFdURk1vdmUoYmxvYikpCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKK3sKKyAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKK30KKwordm9pZCBCbG9iUHJvbWlzZUxvYWRlcjo6c3RhcnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sKKyAgICBt
X2Jsb2JMb2FkZXIuc3RhcnQoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICptX2Jsb2IpOworfQor
Cit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpzdG9wKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30K
Kwordm9pZCBCbG9iUHJvbWlzZUxvYWRlcjo6ZGlkU3RhcnRMb2FkaW5nKCkKK3sKK30KKwordm9p
ZCBCbG9iUHJvbWlzZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoKQoreworfQorCit2b2lkIEJsb2JQ
cm9taXNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKK3sKKyAgICBhdXRvIGFycmF5QnVmZmVy
ID0gbV9ibG9iTG9hZGVyLmFycmF5QnVmZmVyUmVzdWx0KCk7CisgICAgcmVzb2x2ZVByb21pc2Uo
V1RGTW92ZShhcnJheUJ1ZmZlcikpOworfQorCit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpkaWRG
YWlsKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZSkKK3sKKyAgICByZWplY3RQcm9taXNlKGV4
Y2VwdGlvbkNvZGUpOworfQorCit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpyZXNvbHZlUHJvbWlz
ZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYXJyYXlCdWZmZXIpCit7CisgICAgc3dpdGNoIChtX3R5
cGUpIHsKKyAgICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyOgorICAgICAgICBmdWxmaWxsUHJvbWlz
ZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKG1fcHJvbWlzZSksIGFycmF5QnVmZmVyLmdldCgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpUZXh0OiB7CisgICAgICAgIC8vIEJ5IHRo
ZSBzcGVjIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyN0ZXh0LW1ldGhvZC1hbGdvCisg
ICAgICAgIC8vIHdlIHNob3VsZCB1c2UgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcv
I3V0Zi04LWRlY29kZQorICAgICAgICAvLyBpbnN0ZWFkIG9mIHRoZSBhbGdvcml0aG0gZm9yIGBG
aWxlUmVhZGVyLnJlYWRBc1RleHQoKWAKKyAgICAgICAgYXV0byBkYXRhID0gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oYXJyYXlCdWZmZXItPmRhdGEoKSk7CisgICAgICAg
IGF1dG8gbGVuZ3RoID0gYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKTsKKyAgICAgICAgbV9wcm9t
aXNlLT5yZXNvbHZlPElETERPTVN0cmluZz4oVGV4dFJlc291cmNlRGVjb2Rlcjo6dGV4dEZyb21V
VEY4KGRhdGEsIGxlbmd0aCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIEJsb2JQcm9taXNlTG9hZGVyOjpyZWplY3RQcm9t
aXNlKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZSkKK3sKKyAgICBtX3Byb21pc2UtPnJlamVj
dChleGNlcHRpb25Db2RlKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iUHJvbWlzZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iUHJvbWlzZUxvYWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjliZThhOGY5NzM3NjNiYzUyNGE1YTJkZTgxMDk0YTllMzU2YjBmOWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JQcm9taXNlTG9hZGVyLmgKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBUZXRzdWhhcnUgT2h6ZWtp
IDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQmxvYi5oIgorI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCisjaW5j
bHVkZSAiRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQmxvYlByb21pc2VMb2FkZXIgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
dWJsaWMgRmlsZVJlYWRlckxvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBU
eXBlIDogdWludDhfdCB7CisgICAgICAgIEFycmF5QnVmZmVyLAorICAgICAgICBUZXh0LAorICAg
IH07CisKKyAgICBzdGF0aWMgdm9pZCBsb2FkKFR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBSZWZQdHI8QmxvYj4mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKK3ByaXZhdGU6Cisg
ICAgQmxvYlByb21pc2VMb2FkZXIoVHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0
cjxCbG9iPiYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKworICAgIHZvaWQgc3RhcnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJCbG9i
UHJvbWlzZUxvYWRlciI7IH0KKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKworICAgIC8vIEZpbGVS
ZWFkZXJMb2FkZXJDbGllbnQKKyAgICB2b2lkIGRpZFN0YXJ0TG9hZGluZygpIGZpbmFsOworICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
KSBmaW5hbDsKKyAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSkgZmluYWw7CisKKyAgICB2
b2lkIHJlc29sdmVQcm9taXNlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7CisgICAgdm9pZCByZWpl
Y3RQcm9taXNlKEV4Y2VwdGlvbkNvZGUpOworCisgICAgVHlwZSBtX3R5cGU7CisgICAgRmlsZVJl
YWRlckxvYWRlciBtX2Jsb2JMb2FkZXI7CisgICAgUmVmUHRyPEJsb2I+IG1fYmxvYjsKKyAgICBS
ZWY8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwMmY1MTJlNTU3YjQ4Yjc5ZTM0
ZThkZGZkYjAxMDllYzRmNzA4YTc3Li5hMzkyZGY4NzQxYmQ5NTUzYTY1NjIxNjY1N2JkZTIwM2Fl
NjdlNDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMC0wNi0xNyAgVGV0c3VoYXJ1IE9oemVraSAgPHRldHN1aGFydS5vaHpla2lAZ21haWwuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBCbG9iLnRleHQgYW5kIEJsb2IuYXJyYXlCdWZmZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzE2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1ZmZlci5hbnktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1hcnJheS1i
dWZmZXIuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXRleHQuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2ItdGV4dC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxo
YXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDYtMTcgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgUmVhZGFibGVTdHJlYW0gcm9idXN0
IGFnYWluc3QgdXNlciBjb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1ZmZlci5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9G
aWxlQVBJL2Jsb2IvQmxvYi1hcnJheS1idWZmZXIuYW55LWV4cGVjdGVkLnR4dAppbmRleCBmOWU5
NGZkODk1N2QwYzcxYzRjZTQxOGQzY2IzMjdmOGI0M2IwMjNkLi5lNjA0NTQ3MDA5M2E0OGZkNGUy
N2ViODIzMzUyMGM3MTllOTNjNDdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1ZmZlci5hbnkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2ItYXJyYXktYnVmZmVyLmFueS1leHBlY3RlZC50eHQKQEAg
LTEsNyArMSw3IEBACiAKLUZBSUwgQmxvYi5hcnJheUJ1ZmZlcigpIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5hcnJh
eUJ1ZmZlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLmFycmF5QnVmZmVyKCknLCAnYmxv
Yi5hcnJheUJ1ZmZlcicgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5hcnJheUJ1ZmZlcigpIGVt
cHR5IEJsb2IgZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGJsb2IuYXJyYXlCdWZmZXIgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAnYmxvYi5hcnJheUJ1ZmZlcigpJywgJ2Jsb2IuYXJyYXlCdWZmZXInIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEJsb2IuYXJyYXlCdWZmZXIoKSBub24tYXNjaWkgaW5wdXQgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9i
LmFycmF5QnVmZmVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IuYXJyYXlCdWZmZXIoKScs
ICdibG9iLmFycmF5QnVmZmVyJyBpcyB1bmRlZmluZWQpIgotRkFJTCBCbG9iLmFycmF5QnVmZmVy
KCkgbm9uLXVuaWNvZGUgaW5wdXQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLmFycmF5QnVmZmVyIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2Jsb2IuYXJyYXlCdWZmZXIoKScsICdibG9iLmFycmF5QnVmZmVyJyBpcyB1
bmRlZmluZWQpIgotRkFJTCBCbG9iLmFycmF5QnVmZmVyKCkgY29uY3VycmVudCByZWFkcyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGJsb2IuYXJyYXlCdWZmZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5hcnJheUJ1
ZmZlcigpJywgJ2Jsb2IuYXJyYXlCdWZmZXInIGlzIHVuZGVmaW5lZCkiCitQQVNTIEJsb2IuYXJy
YXlCdWZmZXIoKSAKK1BBU1MgQmxvYi5hcnJheUJ1ZmZlcigpIGVtcHR5IEJsb2IgZGF0YSAKK1BB
U1MgQmxvYi5hcnJheUJ1ZmZlcigpIG5vbi1hc2NpaSBpbnB1dCAKK1BBU1MgQmxvYi5hcnJheUJ1
ZmZlcigpIG5vbi11bmljb2RlIGlucHV0IAorUEFTUyBCbG9iLmFycmF5QnVmZmVyKCkgY29uY3Vy
cmVudCByZWFkcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1hcnJheS1idWZmZXIuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1ZmZlci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApp
bmRleCBmOWU5NGZkODk1N2QwYzcxYzRjZTQxOGQzY2IzMjdmOGI0M2IwMjNkLi5lNjA0NTQ3MDA5
M2E0OGZkNGUyN2ViODIzMzUyMGM3MTllOTNjNDdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1
ZmZlci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLWFycmF5LWJ1ZmZlci5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBCbG9iLmFycmF5QnVm
ZmVyKCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiBibG9iLmFycmF5QnVmZmVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Js
b2IuYXJyYXlCdWZmZXIoKScsICdibG9iLmFycmF5QnVmZmVyJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBCbG9iLmFycmF5QnVmZmVyKCkgZW1wdHkgQmxvYiBkYXRhIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5hcnJheUJ1
ZmZlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLmFycmF5QnVmZmVyKCknLCAnYmxvYi5h
cnJheUJ1ZmZlcicgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5hcnJheUJ1ZmZlcigpIG5vbi1h
c2NpaSBpbnB1dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGJsb2IuYXJyYXlCdWZmZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAnYmxvYi5hcnJheUJ1ZmZlcigpJywgJ2Jsb2IuYXJyYXlCdWZmZXInIGlzIHVuZGVmaW5lZCki
Ci1GQUlMIEJsb2IuYXJyYXlCdWZmZXIoKSBub24tdW5pY29kZSBpbnB1dCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGJsb2Iu
YXJyYXlCdWZmZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5hcnJheUJ1ZmZlcigpJywg
J2Jsb2IuYXJyYXlCdWZmZXInIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2IuYXJyYXlCdWZmZXIo
KSBjb25jdXJyZW50IHJlYWRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5hcnJheUJ1ZmZlciBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdibG9iLmFycmF5QnVmZmVyKCknLCAnYmxvYi5hcnJheUJ1ZmZlcicgaXMgdW5k
ZWZpbmVkKSIKK1BBU1MgQmxvYi5hcnJheUJ1ZmZlcigpIAorUEFTUyBCbG9iLmFycmF5QnVmZmVy
KCkgZW1wdHkgQmxvYiBkYXRhIAorUEFTUyBCbG9iLmFycmF5QnVmZmVyKCkgbm9uLWFzY2lpIGlu
cHV0IAorUEFTUyBCbG9iLmFycmF5QnVmZmVyKCkgbm9uLXVuaWNvZGUgaW5wdXQgCitQQVNTIEJs
b2IuYXJyYXlCdWZmZXIoKSBjb25jdXJyZW50IHJlYWRzIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXRl
eHQuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2ItdGV4dC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGU0
YzhiNmI5MGM4YWRkZDNlYmI4MjdiODJlNDM0OGI0NjE0ZjUyOGUuLmMwZTdhZDAzY2FiYWVhZTIz
YTBiMTYwZGFiMTJiY2JmY2UyOGMzNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2ItdGV4dC5hbnktZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
RmlsZUFQSS9ibG9iL0Jsb2ItdGV4dC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBA
CiAKLUZBSUwgQmxvYi50ZXh0KCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLnRleHQgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAnYmxvYi50ZXh0KCknLCAnYmxvYi50ZXh0JyBpcyB1bmRlZmluZWQpIgotRkFJTCBCbG9i
LnRleHQoKSBlbXB0eSBibG9iIGRhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLnRleHQgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAnYmxvYi50ZXh0KCknLCAnYmxvYi50ZXh0JyBpcyB1bmRlZmluZWQpIgotRkFJTCBC
bG9iLnRleHQoKSBtdWx0aS1lbGVtZW50IGFycmF5IGluIGNvbnN0cnVjdG9yIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxv
Yi50ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IudGV4dCgpJywgJ2Jsb2IudGV4dCcg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi50ZXh0KCkgbm9uLXVuaWNvZGUgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9i
LnRleHQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi50ZXh0KCknLCAnYmxvYi50ZXh0JyBp
cyB1bmRlZmluZWQpIgotRkFJTCBCbG9iLnRleHQoKSBkaWZmZXJlbnQgY2hhcnNldCBwYXJhbSBp
biB0eXBlIG9wdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGJsb2IudGV4dCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdi
bG9iLnRleHQoKScsICdibG9iLnRleHQnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2IudGV4dCgp
IGRpZmZlcmVudCBjaGFyc2V0IHBhcmFtIHdpdGggbm9uLWFzY2lpIGlucHV0IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxv
Yi50ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IudGV4dCgpJywgJ2Jsb2IudGV4dCcg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi50ZXh0KCkgaW52YWxpZCB1dGYtOCBpbnB1dCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGJsb2IudGV4dCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLnRleHQoKScsICdibG9i
LnRleHQnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2IudGV4dCgpIGNvbmN1cnJlbnQgcmVhZHMg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBibG9iLnRleHQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi50ZXh0KCknLCAn
YmxvYi50ZXh0JyBpcyB1bmRlZmluZWQpIgorUEFTUyBCbG9iLnRleHQoKSAKK1BBU1MgQmxvYi50
ZXh0KCkgZW1wdHkgYmxvYiBkYXRhIAorUEFTUyBCbG9iLnRleHQoKSBtdWx0aS1lbGVtZW50IGFy
cmF5IGluIGNvbnN0cnVjdG9yIAorUEFTUyBCbG9iLnRleHQoKSBub24tdW5pY29kZSAKK1BBU1Mg
QmxvYi50ZXh0KCkgZGlmZmVyZW50IGNoYXJzZXQgcGFyYW0gaW4gdHlwZSBvcHRpb24gCitQQVNT
IEJsb2IudGV4dCgpIGRpZmZlcmVudCBjaGFyc2V0IHBhcmFtIHdpdGggbm9uLWFzY2lpIGlucHV0
IAorUEFTUyBCbG9iLnRleHQoKSBpbnZhbGlkIHV0Zi04IGlucHV0IAorUEFTUyBCbG9iLnRleHQo
KSBjb25jdXJyZW50IHJlYWRzIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXRleHQuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0ZpbGVBUEkvYmxvYi9CbG9iLXRleHQuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZTRj
OGI2YjkwYzhhZGRkM2ViYjgyN2I4MmU0MzQ4YjQ2MTRmNTI4ZS4uYzBlN2FkMDNjYWJhZWFlMjNh
MGIxNjBkYWIxMmJjYmZjZTI4YzM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi10ZXh0LmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2ItdGV4dC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MSwxMCArMSwxMCBAQAogCi1GQUlMIEJsb2IudGV4dCgpIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi50ZXh0IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IudGV4dCgpJywgJ2Jsb2IudGV4dCcgaXMgdW5kZWZpbmVk
KSIKLUZBSUwgQmxvYi50ZXh0KCkgZW1wdHkgYmxvYiBkYXRhIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi50ZXh0IGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IudGV4dCgpJywgJ2Jsb2IudGV4dCcgaXMgdW5kZWZp
bmVkKSIKLUZBSUwgQmxvYi50ZXh0KCkgbXVsdGktZWxlbWVudCBhcnJheSBpbiBjb25zdHJ1Y3Rv
ciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IGJsb2IudGV4dCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLnRleHQoKScs
ICdibG9iLnRleHQnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2IudGV4dCgpIG5vbi11bmljb2Rl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogYmxvYi50ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2IudGV4dCgpJywg
J2Jsb2IudGV4dCcgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi50ZXh0KCkgZGlmZmVyZW50IGNo
YXJzZXQgcGFyYW0gaW4gdHlwZSBvcHRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLnRleHQgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnYmxvYi50ZXh0KCknLCAnYmxvYi50ZXh0JyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBCbG9iLnRleHQoKSBkaWZmZXJlbnQgY2hhcnNldCBwYXJhbSB3aXRoIG5vbi1hc2NpaSBpbnB1
dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IGJsb2IudGV4dCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLnRleHQoKScs
ICdibG9iLnRleHQnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2IudGV4dCgpIGludmFsaWQgdXRm
LTggaW5wdXQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBibG9iLnRleHQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi50
ZXh0KCknLCAnYmxvYi50ZXh0JyBpcyB1bmRlZmluZWQpIgotRkFJTCBCbG9iLnRleHQoKSBjb25j
dXJyZW50IHJlYWRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi50ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Js
b2IudGV4dCgpJywgJ2Jsb2IudGV4dCcgaXMgdW5kZWZpbmVkKSIKK1BBU1MgQmxvYi50ZXh0KCkg
CitQQVNTIEJsb2IudGV4dCgpIGVtcHR5IGJsb2IgZGF0YSAKK1BBU1MgQmxvYi50ZXh0KCkgbXVs
dGktZWxlbWVudCBhcnJheSBpbiBjb25zdHJ1Y3RvciAKK1BBU1MgQmxvYi50ZXh0KCkgbm9uLXVu
aWNvZGUgCitQQVNTIEJsb2IudGV4dCgpIGRpZmZlcmVudCBjaGFyc2V0IHBhcmFtIGluIHR5cGUg
b3B0aW9uIAorUEFTUyBCbG9iLnRleHQoKSBkaWZmZXJlbnQgY2hhcnNldCBwYXJhbSB3aXRoIG5v
bi1hc2NpaSBpbnB1dCAKK1BBU1MgQmxvYi50ZXh0KCkgaW52YWxpZCB1dGYtOCBpbnB1dCAKK1BB
U1MgQmxvYi50ZXh0KCkgY29uY3VycmVudCByZWFkcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9G
aWxlQVBJL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CmluZGV4IGQxMDNkZmI4NmEyODhkMGQ3ZDU1
NDE5ODU1ZTYzNDFhYzkyOTYzN2EuLmMwNzBmM2MxOGM0ZDgyODk3NzBkNTdlMzZhNTA0MzA3OWVh
YzM3MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3Rl
ZC50eHQKQEAgLTE2LDggKzE2LDggQEAgUEFTUyBCbG9iIGludGVyZmFjZTogYXR0cmlidXRlIHNp
emUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIAogUEFTUyBCbG9iIGludGVy
ZmFjZTogb3BlcmF0aW9uIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBs
b25nLCBvcHRpb25hbCBET01TdHJpbmcpIAogRkFJTCBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9u
IHN0cmVhbSgpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInN0cmVhbSIg
bWlzc2luZwotRkFJTCBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHRleHQoKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJ0ZXh0IiBtaXNzaW5nCi1GQUlMIEJsb2IgaW50
ZXJmYWNlOiBvcGVyYXRpb24gYXJyYXlCdWZmZXIoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVj
dGVkIHByb3BlcnR5ICJhcnJheUJ1ZmZlciIgbWlzc2luZworUEFTUyBCbG9iIGludGVyZmFjZTog
b3BlcmF0aW9uIHRleHQoKSAKK1BBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcnJheUJ1
ZmZlcigpIAogUEFTUyBCbG9iIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEJsb2Io
WyJURVNUIl0pIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IEJsb2IoWyJURVNUIl0pIAog
UEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAic2l6ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCkBAIC0yNSw4ICsyNSw4IEBAIFBBU1Mg
QmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InR5cGUiIHdpdGggdGhlIHByCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1Qi
XSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlv
bmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
CiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywg
b3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBCbG9iKFsiVEVT
VCJdKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogRkFJTCBC
bG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c3RyZWFtKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
InN0cmVhbSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBCbG9iIGludGVyZmFj
ZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0ZXh0IiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRF
U1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJhcnJheUJ1ZmZlciIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNU
Il0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
K1BBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBGaWxlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQ
QVNTIEZpbGUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCiBQQVNTIEZpbGUgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIApAQCAtNDQsOCArNDQsOCBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmls
ZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydAogUEFT
UyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFs
IGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCiBQ
QVNTIEJsb2IgaW50ZXJmYWNlOiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0
aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBGaWxlKFsibXlGaWxl
Qml0cyJdLCAibXlGaWxlTmFtZSIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBGQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwg
Im15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzdHJlYW0iIG5vdCBmb3VuZCBp
biBwcm90b3R5cGUgY2hhaW4KLUZBSUwgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxl
Qml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0ZXh0IiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15
RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVm
ZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFy
cmF5QnVmZmVyIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEJsb2IgaW50ZXJm
YWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEJsb2IgaW50ZXJm
YWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBGaWxl
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IAogUEFTUyBGaWxlTGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgRmlsZUxp
c3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmls
ZUFQSS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggN2NlMDkyMGMwNWVjN2Nh
MGQ3YTNmZGNmYWE4ZDI4NTdkZjYyYjQ4YS4uYTBhODdhYmQ0ZWY2MDJjYzVhNDRlM2Y1MWYzZGRl
ZWE3NWVlY2UxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFy
bmVzcy53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xNCw4ICsxNCw4IEBAIFBBU1MgQmxvYiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzaXplCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlw
ZSAKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzbGljZShvcHRpb25hbCBsb25nIGxv
bmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSAKIEZBSUwgQmxvYiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBzdHJlYW0oKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVk
IHByb3BlcnR5ICJzdHJlYW0iIG1pc3NpbmcKLUZBSUwgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlv
biB0ZXh0KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
bWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAidGV4dCIgbWlz
c2luZwotRkFJTCBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIGFycmF5QnVmZmVyKCkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3Rh
dGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIiIG1pc3NpbmcKK1BB
U1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0ZXh0KCkgCitQQVNTIEJsb2IgaW50ZXJmYWNl
OiBvcGVyYXRpb24gYXJyYXlCdWZmZXIoKSAKIFBBU1MgQmxvYiBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIG5ldyBCbG9iKFsiVEVTVCJdKSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5l
dyBCbG9iKFsiVEVTVCJdKSAKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJd
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNpemUiIHdpdGggdGhlIHByb3BlciB0eXBlIApAQCAt
MjMsOCArMjMsOCBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcgogUEFTUyBCbG9iIGludGVyZmFj
ZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2xpY2Uob3B0aW9u
YWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmluZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBCbG9iIGludGVyZmFjZTogY2FsbGluZyBzbGljZShv
cHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5n
KSBvbiBuZXcgQmxvYihbIlRFU1QiXSkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIEZBSUwgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
aW5oZXJpdHM6IHByb3BlcnR5ICJzdHJlYW0iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4K
LUZBSUwgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAidGV4dCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBCbG9iIGludGVy
ZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZm
ZXIoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiYXJy
YXlCdWZmZXIiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQmxvYiBpbnRlcmZh
Y2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1Qi
XSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgRmlsZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBGaWxlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAogUEFT
UyBGaWxlIGludGVyZmFjZSBvYmplY3QgbmFtZSAKQEAgLTQyLDggKzQyLDggQEAgUEFTUyBCbG9i
IGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBp
bmhlcml0IHByb3BlcnQKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0
cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2xpY2Uob3B0aW9uYWwg
bG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmluZykiIHdpdGgg
dGhlIHByb3BlciB0eXBlIAogUEFTUyBCbG9iIGludGVyZmFjZTogY2FsbGluZyBzbGljZShvcHRp
b25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSBv
biBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogRkFJTCBCbG9iIGludGVyZmFjZTogbmV3IEZp
bGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
dHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
c3RyZWFtIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCi1GQUlMIEJsb2IgaW50ZXJmYWNl
OiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAidGV4dCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgotRkFJTCBCbG9iIGludGVy
ZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5o
ZXJpdHM6IHByb3BlcnR5ICJhcnJheUJ1ZmZlciIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
bgorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVO
YW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVO
YW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgRmlsZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRmlsZUxpc3QgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGggCiBQQVNTIEZpbGVMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSAK
</data>
<flag name="review"
          id="417533"
          type_id="1"
          status="-"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>